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