From e7be21bd44f30999f1bf51d5a484e5682bbf64c1 Mon Sep 17 00:00:00 2001 From: Martin Larralde <martin.larralde@embl.de> Date: Wed, 10 Jul 2024 23:09:19 +0200 Subject: [PATCH] Update documentation index to show related packages [ci skip] --- docs/_static/js/custom-icon.js | 28 +++++++ docs/guide/index.rst | 5 +- docs/index.rst | 129 +++++++++++++++++++++++++++------ 3 files changed, 137 insertions(+), 25 deletions(-) diff --git a/docs/_static/js/custom-icon.js b/docs/_static/js/custom-icon.js index bc64dd6b..035be992 100644 --- a/docs/_static/js/custom-icon.js +++ b/docs/_static/js/custom-icon.js @@ -14,3 +14,31 @@ FontAwesome.library.add( ], }), ); + +FontAwesome.library.add( + (faListOldStyle = { + prefix: "fa-custom", + iconName: "sword", + icon: [ + 256, // viewBox width + 256, // viewBox height + [], // ligature + "e002", // unicode codepoint - private use area + "M221.65723,34.34326A8.00246,8.00246,0,0,0,216,32h-.02539l-63.79883.20117A8.00073,8.00073,0,0,0,146.0332,35.106L75.637,120.32275,67.31348,111.999A16.02162,16.02162,0,0,0,44.68555,112L32.001,124.68555A15.99888,15.99888,0,0,0,32,147.31348l20.88672,20.88769L22.94531,198.14258a16.01777,16.01777,0,0,0,.001,22.62695l12.28418,12.28418a16.00007,16.00007,0,0,0,22.62793,0L87.79883,203.1123,108.68652,224.001A16.02251,16.02251,0,0,0,131.31445,224L143.999,211.31445A15.99888,15.99888,0,0,0,144,188.68652l-8.32324-8.32324,85.21679-70.39648a8.00125,8.00125,0,0,0,2.90528-6.14258L224,40.02539A8.001,8.001,0,0,0,221.65723,34.34326Zm-13.84668,65.67822-83.49829,68.97706L111.314,156l54.34327-54.34277a8.00053,8.00053,0,0,0-11.31446-11.31446L100,144.686,87.00195,131.6875,155.97852,48.189l51.99609-.16357Z", // svg path (https://simpleicons.org/icons/pypi.svg) + ], + }), +); + +FontAwesome.library.add( + (faListOldStyle = { + prefix: "fa-custom", + iconName: "knife", + icon: [ + 256, // viewBox width + 256, // viewBox height + [], // ligature + "e003", // unicode codepoint - private use area + "M231.79883,32.2002a28.05536,28.05536,0,0,0-39.667.06933L18.27441,210.41211a8,8,0,0,0,3.92676,13.38281,155.06019,155.06019,0,0,0,34.957,4.00293c33.4209-.001,66.877-10.86914,98.32813-32.1748,31.74512-21.50391,50.14551-45.79981,50.91406-46.82325a8.00114,8.00114,0,0,0-.74316-10.457L186.919,119.60547l44.97753-47.90332A28.03445,28.03445,0,0,0,231.79883,32.2002ZM189.207,144.52148a225.51045,225.51045,0,0,1-43.10351,38.13184c-34.46973,23.23145-69.999,32.665-105.83887,28.13477l106.29492-108.915,23.30176,23.30175q.208.22852.43847.44434l.082.07617Z", // svg path (https://simpleicons.org/icons/pypi.svg) + ], + }), +); diff --git a/docs/guide/index.rst b/docs/guide/index.rst index b320ff7e..7c952ece 100644 --- a/docs/guide/index.rst +++ b/docs/guide/index.rst @@ -1,6 +1,10 @@ User Guide ========== +This section contains guides and documents about some aspects of PyHMMER, +including the rationale behind the parallelization strategy implemented +in `pyhmmer.hmmer`. + .. toctree:: :maxdepth: 1 :caption: Getting Started @@ -9,7 +13,6 @@ User Guide Publications <publications> Performance <performance> - .. toctree:: :maxdepth: 1 :caption: Resources diff --git a/docs/index.rst b/docs/index.rst index b85467ad..e552454d 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -77,22 +77,23 @@ language, that provides bindings to HMMER3. It directly interacts with the HMMER internals, which has the following advantages over CLI wrappers: .. grid:: 1 2 3 3 + :gutter: 1 .. grid-item-card:: :fas:`battery-full` Batteries-included - Just install ``pyhmmer`` as a ``pip`` or ``conda`` dependency, no need - for the HMMER binaries or any other dependency. + Just add ``pyhmmer`` as a ``pip`` or ``conda`` dependency, no need + for the HMMER binaries or any external dependency. .. grid-item-card:: :fas:`screwdriver-wrench` Flexible - Create input `~pyhmmer.easel.Sequence` and `~pyhmmer.plan7.HMM` objects + Create input `~pyhmmer.easel.Sequence` and `~pyhmmer.plan7.HMM` objects with the :doc:`API <api/index>`, or load them from a file. - + .. grid-item-card:: :fas:`gears` Practical - + Retrieve nested results as dedicated `~pyhmmer.plan7.TopHits` objects, write them to a file, or use them for further Python analysis. - + .. grid-item-card:: :fas:`gauge-high` Fast Run `hmmsearch` in parallel using an efficient threading model, which @@ -100,15 +101,10 @@ HMMER internals, which has the following advantages over CLI wrappers: .. grid-item-card:: :fas:`dolly` Shareable - :doc:`Distribute <examples/embed_hmms> and load` `~pyhmmer.plan7.HMM` - from inside a Python package to facilitate sharing analyses. + :doc:`Distribute and load <examples/embed_hmms>` `~pyhmmer.plan7.HMM` + objects from inside a Python package to facilitate sharing analyses. - .. grid-item-card:: :fas:`dolly` Distributable - - :doc`Distribute <examples/embed_hmms>` and load `HMM` next - in Python package to facilitate sharing and improve reproducibility. - - .. grip-item-card:: :fas:`eye` Inspectable + .. grid-item-card:: :fas:`eye` Transparent Access the internals of a `~pyhmmer.plan7.HMM`, inspect the attributes and manually edit transitions or emissions scores. @@ -137,22 +133,107 @@ Library :maxdepth: 2 User Guide <guide/index> - .. Examples <examples/index> + Examples <examples/index> API Reference <api/index> + Related Projects ---------------- -Building a HMM from scratch? Then you may be interested in the `PyFAMSA <https://pypi.org/project/pyfamsa/>`_ -package, providing bindings to `FAMSA <https://github.com/refresh-bio/FAMSA>`_, -a very fast multiple sequence aligner. In addition, you may want to trim alignments: -in that case, consider `PytrimAl <https://pypi.org/project/pytrimal>`_, which -wraps `trimAl 2.0 <https://github.com/inab/trimal/tree/2.0_RC>`_. +The following Python libraries may be of interest for bioinformaticians. + +.. grid:: 1 3 5 5 + :gutter: 1 + + .. grid-item-card:: :fas:`fire` Pyrodigal + :link: https://pyrodigal.readthedocs.io + + Gene Finding (with Prodigal). + + .. grid-item-card:: :fas:`virus-covid` Pyrodigal-gv + :link: https://github.com/althonos/pyrodigal-gv + + Pyrodigal for Giant Viruses. + + .. grid-item-card:: :fas:`align-center` PyFAMSA + :link: https://pyfamsa.readthedocs.io + + Multiple Sequence Alignment (with FAMSA). + + .. grid-item-card:: :fas:`scissors` PytrimAl + :link: https://pytrimal.readthedocs.io + + Alignment Trimming (with trimAl). + + .. grid-item-card:: :fas:`music` LightMotif + :link: https://lightmotif.readthedocs.io + + Platform-accelerated motif scoring. + + .. grid-item-card:: :fas:`knife;fa-custom` Diced + :link: https://diced.readthedocs.io + + CRISPR Detection (with MinCED). + + .. grid-item-card:: :fas:`table-cells` Scoring Matrices + :link: https://scoring-matrices.readthedocs.io + + Common scoring matrices for Cython. + + .. grid-item-card:: :fas:`chain` Pyskani + :link: https://pyskani.readthedocs.io + + Average Nucleotide Identity (with skani). + + .. grid-item-card:: :fas:`forward-fast` PyFastANI + :link: https://pyfastani.readthedocs.io + + Average Nucleotide Identity (with FastANI). + + .. grid-item-card:: :fas:`magnifying-glass` PyJess + :link: https://pyjess.readthedocs.io + + Geometric Template Matching (with Jess). + + .. grid-item-card:: :fas:`repeat` PyTantan + :link: https://pytantan.readthedocs.io + + Tandem Repeat Masking (with Tantan). + + .. grid-item-card:: :fas:`gem` PyOpal + :link: https://pyopal.readthedocs.io + + Query/Database Aligner (with Opal). + + .. grid-item-card:: :fas:`sword;fa-custom` PySWRD + :link: https://pyswrd.readthedocs.io + + Database Heuristic Filtering (with SWORD). + + .. grid-item-card:: :fas:`rocket` Mini3di + :link: https://github.com/althonos/mini3di + + Protein structure to 3di (with FoldSeek). + + .. grid-item-card:: :fas:`calculator` ``peptides.py`` + :link: https://peptides.readthedocs.io + + Peptide descriptors. + + .. grid-item-card:: :fas:`diagram-project` Pronto + :link: https://pronto.readthedocs.io + + Open Biomedical Ontologies in Python. + + .. grid-item-card:: :fas:`box` NAFcodec + :link: https://nafcodec.readthedocs.io + + Nucleotide Archival Format in Python. + + .. grid-item-card:: :fas:`bank` ``gb-io.py`` + :link: https://gb-io.readthedocs.io -If despite of all the advantages listed earlier, you would rather use HMMER -through its CLI, this package will not be of great help. You can instead check -the `hmmer-py <https://github.com/EBI-Metagenomics/hmmer-py>`_ package developed -by `Danilo Horta <https://github.com/horta>`_ at the `EMBL-EBI <https://www.ebi.ac.uk>`_. + Fast GenBank parser written in Rust. License -- GitLab