From e9b8d526ca0e8df584ee4caa3dc6491fb02c1326 Mon Sep 17 00:00:00 2001 From: Martin Larralde <martin.larralde@embl.de> Date: Wed, 10 Jul 2024 13:34:27 +0200 Subject: [PATCH] Reorganize documentation to use the PyData theme --- docs/_static/css/custom.css | 3 + docs/_static/js/custom-icon.js | 16 ++ docs/api/{daemon.rst => daemon/client.rst} | 18 +- docs/api/daemon/index.rst | 21 ++ docs/api/easel.rst | 193 ----------------- docs/api/easel/block.rst | 13 ++ docs/api/easel/data.rst | 10 + docs/api/easel/index.rst | 130 ++++++++++++ docs/api/easel/linalg.rst | 31 +++ docs/api/easel/misc.rst | 21 ++ docs/api/easel/msa.rst | 13 ++ docs/api/easel/parsers.rst | 11 + docs/api/easel/seq.rst | 13 ++ docs/api/errors.rst | 70 ------- docs/api/errors/index.rst | 53 +++++ docs/api/errors/mem.rst | 6 + docs/api/errors/runtime.rst | 14 ++ docs/api/errors/value.rst | 19 ++ docs/api/hmmer.rst | 49 ----- docs/api/hmmer/index.rst | 70 +++++++ docs/api/hmmer/jackhmmer.rst | 4 + docs/api/hmmer/profile.rst | 6 + docs/api/hmmer/seq.rst | 6 + docs/api/hmmer/utils.rst | 6 + docs/api/index.rst | 230 +-------------------- docs/api/plan7.rst | 219 -------------------- docs/api/plan7/hmms.rst | 18 ++ docs/api/plan7/index.rst | 128 ++++++++++++ docs/api/plan7/iter.rst | 10 + docs/api/plan7/misc.rst | 20 ++ docs/api/plan7/parsers.rst | 10 + docs/api/plan7/pli.rst | 18 ++ docs/api/plan7/results.rst | 22 ++ docs/api/plan7/traces.rst | 14 ++ docs/changes.md | 1 - docs/conf.py | 71 +++---- docs/contributing.md | 1 - docs/examples/index.rst | 2 + docs/{ => guide}/benchmarks.rst | 10 +- docs/guide/changes.md | 1 + docs/guide/contributing.md | 1 + docs/guide/index.rst | 20 ++ docs/{ => guide}/install.rst | 18 +- docs/{ => guide}/performance.rst | 2 +- docs/{ => guide}/publications.rst | 4 +- docs/index.rst | 12 +- docs/requirements.txt | 4 +- 47 files changed, 791 insertions(+), 841 deletions(-) create mode 100644 docs/_static/css/custom.css create mode 100644 docs/_static/js/custom-icon.js rename docs/api/{daemon.rst => daemon/client.rst} (56%) create mode 100644 docs/api/daemon/index.rst delete mode 100644 docs/api/easel.rst create mode 100644 docs/api/easel/block.rst create mode 100644 docs/api/easel/data.rst create mode 100644 docs/api/easel/index.rst create mode 100644 docs/api/easel/linalg.rst create mode 100644 docs/api/easel/misc.rst create mode 100644 docs/api/easel/msa.rst create mode 100644 docs/api/easel/parsers.rst create mode 100644 docs/api/easel/seq.rst delete mode 100644 docs/api/errors.rst create mode 100644 docs/api/errors/index.rst create mode 100644 docs/api/errors/mem.rst create mode 100644 docs/api/errors/runtime.rst create mode 100644 docs/api/errors/value.rst delete mode 100644 docs/api/hmmer.rst create mode 100644 docs/api/hmmer/index.rst create mode 100644 docs/api/hmmer/jackhmmer.rst create mode 100644 docs/api/hmmer/profile.rst create mode 100644 docs/api/hmmer/seq.rst create mode 100644 docs/api/hmmer/utils.rst delete mode 100644 docs/api/plan7.rst create mode 100644 docs/api/plan7/hmms.rst create mode 100644 docs/api/plan7/index.rst create mode 100644 docs/api/plan7/iter.rst create mode 100644 docs/api/plan7/misc.rst create mode 100644 docs/api/plan7/parsers.rst create mode 100644 docs/api/plan7/pli.rst create mode 100644 docs/api/plan7/results.rst create mode 100644 docs/api/plan7/traces.rst delete mode 120000 docs/changes.md delete mode 120000 docs/contributing.md rename docs/{ => guide}/benchmarks.rst (95%) create mode 120000 docs/guide/changes.md create mode 120000 docs/guide/contributing.md create mode 100644 docs/guide/index.rst rename docs/{ => guide}/install.rst (99%) rename docs/{ => guide}/performance.rst (99%) rename docs/{ => guide}/publications.rst (97%) diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css new file mode 100644 index 00000000..e1fb2599 --- /dev/null +++ b/docs/_static/css/custom.css @@ -0,0 +1,3 @@ +code-data#setup span.caption-text { + display: none; +} \ No newline at end of file diff --git a/docs/_static/js/custom-icon.js b/docs/_static/js/custom-icon.js new file mode 100644 index 00000000..bc64dd6b --- /dev/null +++ b/docs/_static/js/custom-icon.js @@ -0,0 +1,16 @@ +/******************************************************************************* + * Set a custom icon for pypi as it's not available in the fa built-in brands + */ +FontAwesome.library.add( + (faListOldStyle = { + prefix: "fa-custom", + iconName: "pypi", + icon: [ + 17.313, // viewBox width + 19.807, // viewBox height + [], // ligature + "e001", // unicode codepoint - private use area + "m10.383 0.2-3.239 1.1769 3.1883 1.1614 3.239-1.1798zm-3.4152 1.2411-3.2362 1.1769 3.1855 1.1614 3.2369-1.1769zm6.7177 0.00281-3.2947 1.2009v3.8254l3.2947-1.1988zm-3.4145 1.2439-3.2926 1.1981v3.8254l0.17548-0.064132 3.1171-1.1347zm-6.6564 0.018325v3.8247l3.244 1.1805v-3.8254zm10.191 0.20931v2.3137l3.1777-1.1558zm3.2947 1.2425-3.2947 1.1988v3.8254l3.2947-1.1988zm-8.7058 0.45739c0.00929-1.931e-4 0.018327-2.977e-4 0.027485 0 0.25633 0.00851 0.4263 0.20713 0.42638 0.49826 1.953e-4 0.38532-0.29327 0.80469-0.65542 0.93662-0.36226 0.13215-0.65608-0.073306-0.65613-0.4588-6.28e-5 -0.38556 0.2938-0.80504 0.65613-0.93662 0.068422-0.024919 0.13655-0.038114 0.20156-0.039466zm5.2913 0.78369-3.2947 1.1988v3.8247l3.2947-1.1981zm-10.132 1.239-3.2362 1.1769 3.1883 1.1614 3.2362-1.1769zm6.7177 0.00213-3.2926 1.2016v3.8247l3.2926-1.2009zm-3.4124 1.2439-3.2947 1.1988v3.8254l3.2947-1.1988zm-6.6585 0.016195v3.8275l3.244 1.1805v-3.8254zm16.9 0.21143-3.2947 1.1988v3.8247l3.2947-1.1981zm-3.4145 1.2411-3.2926 1.2016v3.8247l3.2926-1.2009zm-3.4145 1.2411-3.2926 1.2016v3.8247l3.2926-1.2009zm-3.4124 1.2432-3.2947 1.1988v3.8254l3.2947-1.1988zm-6.6585 0.019027v3.8247l3.244 1.1805v-3.8254zm13.485 1.4497-3.2947 1.1988v3.8247l3.2947-1.1981zm-3.4145 1.2411-3.2926 1.2016v3.8247l3.2926-1.2009zm2.4018 0.38127c0.0093-1.83e-4 0.01833-3.16e-4 0.02749 0 0.25633 0.0085 0.4263 0.20713 0.42638 0.49826 1.97e-4 0.38532-0.29327 0.80469-0.65542 0.93662-0.36188 0.1316-0.65525-0.07375-0.65542-0.4588-1.95e-4 -0.38532 0.29328-0.80469 0.65542-0.93662 0.06842-0.02494 0.13655-0.03819 0.20156-0.03947zm-5.8142 0.86403-3.244 1.1805v1.4201l3.244 1.1805z", // svg path (https://simpleicons.org/icons/pypi.svg) + ], + }), +); diff --git a/docs/api/daemon.rst b/docs/api/daemon/client.rst similarity index 56% rename from docs/api/daemon.rst rename to docs/api/daemon/client.rst index 1bc46f20..f934cc6f 100644 --- a/docs/api/daemon.rst +++ b/docs/api/daemon/client.rst @@ -1,24 +1,10 @@ -Daemon -====== - -.. currentmodule:: pyhmmer.daemon - - -.. automodule:: pyhmmer.daemon - - - Client ------- +====== .. autoclass:: pyhmmer.daemon.Client :special-members: __init__ :members: - -IterativeSearch ---------------- - .. autoclass:: pyhmmer.daemon.IterativeSearch :special-members: __init__ - :members: + :members: \ No newline at end of file diff --git a/docs/api/daemon/index.rst b/docs/api/daemon/index.rst new file mode 100644 index 00000000..cc096a25 --- /dev/null +++ b/docs/api/daemon/index.rst @@ -0,0 +1,21 @@ +Daemon +====== + +.. currentmodule:: pyhmmer.daemon + +.. automodule:: pyhmmer.daemon + + +Client +------ + +.. autosummary:: + + Client + IterativeSearch + +.. toctree:: + :hidden: + :caption: Client + + Client <client> \ No newline at end of file diff --git a/docs/api/easel.rst b/docs/api/easel.rst deleted file mode 100644 index c2907391..00000000 --- a/docs/api/easel.rst +++ /dev/null @@ -1,193 +0,0 @@ -Easel -===== - -.. currentmodule:: pyhmmer.easel - - -.. automodule:: pyhmmer.easel - - -Data Structures ---------------- - -Bitfield -^^^^^^^^ - -.. autoclass:: pyhmmer.easel.Bitfield - :special-members: __init__ - :members: - -KeyHash -^^^^^^^ - -.. autoclass:: pyhmmer.easel.KeyHash - :special-members: __init__ - :members: - - -Sequences ---------- - -Sequence -^^^^^^^^ - -.. autoclass:: pyhmmer.easel.Sequence - :members: - -TextSequence -^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.easel.TextSequence(Sequence) - :special-members: __init__ - :members: - -DigitalSequence -^^^^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.easel.DigitalSequence(Sequence) - :special-members: __init__ - :members: - - -Sequence Blocks ---------------- - -SequenceBlock -^^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.easel.SequenceBlock - :members: - -TextSequenceBlock -^^^^^^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.easel.TextSequenceBlock(SequenceBlock) - :special-members: __init__ - :members: - -DigitalSequenceBlock -^^^^^^^^^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.easel.DigitalSequenceBlock(SequenceBlock) - :special-members: __init__ - :members: - - -SequenceFile ------------- - -SequenceFile -^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.easel.SequenceFile - :special-members: __init__ - :members: - - -Alignments ----------- - -MSA -^^^ - -.. autoclass:: pyhmmer.easel.MSA - :members: - -TextMSA -^^^^^^^ - -.. autoclass:: pyhmmer.easel.TextMSA(MSA) - :special-members: __init__ - :members: - -DigitalMSA -^^^^^^^^^^ - -.. autoclass:: pyhmmer.easel.DigitalMSA(MSA) - :special-members: __init__ - :members: - -MSAFile -^^^^^^^ - -.. autoclass:: pyhmmer.easel.MSAFile - :special-members: __init__ - :members: - - -Linear Algebra --------------- - -Vector -^^^^^^ - -.. autoclass:: pyhmmer.easel.Vector - :members: - -VectorF -^^^^^^^ - -.. autoclass:: pyhmmer.easel.VectorF - :special-members: __init__ - :members: - -VectorU8 -^^^^^^^^ - -.. autoclass:: pyhmmer.easel.VectorU8 - :special-members: __init__ - :members: - -Matrix -^^^^^^ - -.. autoclass:: pyhmmer.easel.Matrix - :members: - -MatrixF -^^^^^^^ - -.. autoclass:: pyhmmer.easel.MatrixF - :special-members: __init__ - :members: - -MatrixU8 -^^^^^^^^ - -.. autoclass:: pyhmmer.easel.MatrixU8 - :special-members: __init__ - :members: - - -Miscellaneous -------------- - -Alphabet -^^^^^^^^ - -.. autoclass:: pyhmmer.easel.Alphabet - :members: - -GeneticCode -^^^^^^^^^^^ - -.. autoclass:: pyhmmer.easel.GeneticCode - :members: - -Randomness -^^^^^^^^^^ - -.. autoclass:: pyhmmer.easel.Randomness - :special-members: __init__ - :members: - -Sequence / Subsequence Index -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.easel.SSIReader - :special-members: __init__ - :members: - -.. autoclass:: pyhmmer.easel.SSIWriter - :special-members: __init__ - :members: diff --git a/docs/api/easel/block.rst b/docs/api/easel/block.rst new file mode 100644 index 00000000..1b869472 --- /dev/null +++ b/docs/api/easel/block.rst @@ -0,0 +1,13 @@ +Blocks +====== + +.. autoclass:: pyhmmer.easel.SequenceBlock + :members: + +.. autoclass:: pyhmmer.easel.TextSequenceBlock(SequenceBlock) + :members: + :special-members: __init__ + +.. autoclass:: pyhmmer.easel.DigitalSequenceBlock(SequenceBlock) + :members: + :special-members: __init__ \ No newline at end of file diff --git a/docs/api/easel/data.rst b/docs/api/easel/data.rst new file mode 100644 index 00000000..a4837795 --- /dev/null +++ b/docs/api/easel/data.rst @@ -0,0 +1,10 @@ +Data Structures +=============== + +.. autoclass:: pyhmmer.easel.Bitfield + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.easel.KeyHash + :special-members: __init__ + :members: \ No newline at end of file diff --git a/docs/api/easel/index.rst b/docs/api/easel/index.rst new file mode 100644 index 00000000..ad43314a --- /dev/null +++ b/docs/api/easel/index.rst @@ -0,0 +1,130 @@ +Easel +===== + +.. currentmodule:: pyhmmer.easel + + +.. automodule:: pyhmmer.easel + + +Data Structures +--------------- + +.. autosummary:: + + Bitfield + KeyHash + +.. toctree:: + :caption: Data Structures + :maxdepth: 1 + :hidden: + + Data Structures <data> + + +Sequences +--------- + +.. autosummary:: + + Sequence + TextSequence + DigitalSequence + +.. toctree:: + :caption: Sequences + :maxdepth: 1 + :hidden: + + Sequences <seq> + + +Sequence Blocks +--------------- + +.. autosummary:: + + SequenceBlock + TextSequenceBlock + DigitalSequenceBlock + +.. toctree:: + :caption: Sequence Blocks + :maxdepth: 1 + :hidden: + + Sequence Blocks <block> + + +Alignments +---------- + +.. autosummary:: + + MSA + TextMSA + DigitalMSA + +.. toctree:: + :caption: Alignments + :maxdepth: 1 + :hidden: + + Alignments <msa> + + +Parsers +------- + +.. autosummary:: + + SequenceFile + MSAFile + +.. toctree:: + :caption: Parsers + :maxdepth: 1 + :hidden: + + Parsers <parsers> + + +Linear Algebra +-------------- + +.. autosummary:: + + Vector + VectorF + VectorU8 + Matrix + MatrixF + MatrixU8 + +.. toctree:: + :caption: Linear Algebra + :maxdepth: 1 + :hidden: + + Linear Algebra <linalg> + + +Miscellaneous +------------- + +.. autosummary:: + + Alphabet + GeneticCode + Randomness + SSIReader + SSIWriter + +.. toctree:: + :caption: Miscellaneous + :maxdepth: 1 + :hidden: + + Miscellaneous <misc> + diff --git a/docs/api/easel/linalg.rst b/docs/api/easel/linalg.rst new file mode 100644 index 00000000..16a414f1 --- /dev/null +++ b/docs/api/easel/linalg.rst @@ -0,0 +1,31 @@ +Linear Algebra +============== + +Vectors +------- + +.. autoclass:: pyhmmer.easel.Vector + :members: + +.. autoclass:: pyhmmer.easel.VectorF(Vector) + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.easel.VectorU8(Vector) + :special-members: __init__ + :members: + + +Matrix +------ + +.. autoclass:: pyhmmer.easel.Matrix + :members: + +.. autoclass:: pyhmmer.easel.MatrixF + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.easel.MatrixU8 + :special-members: __init__ + :members: \ No newline at end of file diff --git a/docs/api/easel/misc.rst b/docs/api/easel/misc.rst new file mode 100644 index 00000000..79147463 --- /dev/null +++ b/docs/api/easel/misc.rst @@ -0,0 +1,21 @@ +Miscellaneous +============= + +.. autoclass:: pyhmmer.easel.Alphabet + :members: + +.. autoclass:: pyhmmer.easel.GeneticCode + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.easel.Randomness + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.easel.SSIReader + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.easel.SSIWriter + :special-members: __init__ + :members: diff --git a/docs/api/easel/msa.rst b/docs/api/easel/msa.rst new file mode 100644 index 00000000..c566bfbe --- /dev/null +++ b/docs/api/easel/msa.rst @@ -0,0 +1,13 @@ +Alignments +========== + +.. autoclass:: pyhmmer.easel.MSA + :members: + +.. autoclass:: pyhmmer.easel.TextMSA(MSA) + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.easel.DigitalMSA(MSA) + :special-members: __init__ + :members: \ No newline at end of file diff --git a/docs/api/easel/parsers.rst b/docs/api/easel/parsers.rst new file mode 100644 index 00000000..32a8f66a --- /dev/null +++ b/docs/api/easel/parsers.rst @@ -0,0 +1,11 @@ +MSAFile +======= + +.. autoclass:: pyhmmer.easel.SequenceFile + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.easel.MSAFile + :special-members: __init__ + :members: + diff --git a/docs/api/easel/seq.rst b/docs/api/easel/seq.rst new file mode 100644 index 00000000..80979a19 --- /dev/null +++ b/docs/api/easel/seq.rst @@ -0,0 +1,13 @@ +Sequence +======== + +.. autoclass:: pyhmmer.easel.Sequence + :members: + +.. autoclass:: pyhmmer.easel.TextSequence + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.easel.DigitalSequence + :special-members: __init__ + :members: \ No newline at end of file diff --git a/docs/api/errors.rst b/docs/api/errors.rst deleted file mode 100644 index 77d0cd37..00000000 --- a/docs/api/errors.rst +++ /dev/null @@ -1,70 +0,0 @@ -Errors -====== - -.. currentmodule:: pyhmmer.errors - -.. automodule:: pyhmmer.errors - - -AllocationError ---------------- - -.. autoexception:: AllocationError(MemoryError) - :special-members: __init__ - :members: - - -UnexpectedError ---------------- - -.. autoexception:: UnexpectedError(RuntimeError) - :special-members: __init__ - :members: - - -EaselError ----------- - -.. autoexception:: EaselError(RuntimeError) - :special-members: __init__ - :members: - - -AlphabetMismatch ----------------- - -.. autoexception:: AlphabetMismatch(ValueError) - :special-members: __init__ - :members: - - -ServerError ------------ - -.. autoexception:: ServerError(RuntimeError) - :special-members: __init__ - :members: - - -MissingCutoffs --------------- - -.. autoexception:: MissingCutoffs(ValueError) - :special-members: __init__ - :members: - - -InvalidParameter ----------------- - -.. autoexception:: InvalidParameter(ValueError) - :special-members: __init__ - :members: - - -InvalidHMM ----------- - -.. autoexception:: InvalidHMM(ValueError) - :special-members: __init__ - :members: diff --git a/docs/api/errors/index.rst b/docs/api/errors/index.rst new file mode 100644 index 00000000..3c7c7cd1 --- /dev/null +++ b/docs/api/errors/index.rst @@ -0,0 +1,53 @@ +Errors +====== + +.. currentmodule:: pyhmmer.errors + +.. automodule:: pyhmmer.errors + + +Memory Errors +------------- + +.. autosummary:: + + AllocationError + +.. toctree:: + :hidden: + :caption: Memory Errors + + Memory Errors <mem> + + +Value Errors +------------ + +.. autosummary:: + + AlphabetMismatch + MissingCutoffs + InvalidHMM + InvalidParameter + +.. toctree:: + :hidden: + :caption: Memory Errors + + Value Errors <value> + + +Runtime Errors +-------------- + +.. autosummary:: + + UnexpectedError + EaselError + ServerError + +.. toctree:: + :hidden: + :caption: Runtime Errors + + Runtime Errors <runtime> \ No newline at end of file diff --git a/docs/api/errors/mem.rst b/docs/api/errors/mem.rst new file mode 100644 index 00000000..8fc7c42d --- /dev/null +++ b/docs/api/errors/mem.rst @@ -0,0 +1,6 @@ +Memory Errors +------------- + +.. autoexception:: AllocationError(MemoryError) + :special-members: __init__ + :members: diff --git a/docs/api/errors/runtime.rst b/docs/api/errors/runtime.rst new file mode 100644 index 00000000..bc5b07b4 --- /dev/null +++ b/docs/api/errors/runtime.rst @@ -0,0 +1,14 @@ +Runtime Errors +-------------- + +.. autoexception:: UnexpectedError(RuntimeError) + :special-members: __init__ + :members: + +.. autoexception:: EaselError(RuntimeError) + :special-members: __init__ + :members: + +.. autoexception:: ServerError(RuntimeError) + :special-members: __init__ + :members: \ No newline at end of file diff --git a/docs/api/errors/value.rst b/docs/api/errors/value.rst new file mode 100644 index 00000000..443bdcd9 --- /dev/null +++ b/docs/api/errors/value.rst @@ -0,0 +1,19 @@ +Value Errors +------------ + + +.. autoexception:: AlphabetMismatch(ValueError) + :special-members: __init__ + :members: + +.. autoexception:: MissingCutoffs(ValueError) + :special-members: __init__ + :members: + +.. autoexception:: InvalidHMM(ValueError) + :special-members: __init__ + :members: + +.. autoexception:: InvalidParameter(ValueError) + :special-members: __init__ + :members: \ No newline at end of file diff --git a/docs/api/hmmer.rst b/docs/api/hmmer.rst deleted file mode 100644 index 66883083..00000000 --- a/docs/api/hmmer.rst +++ /dev/null @@ -1,49 +0,0 @@ -HMMER -===== - -.. currentmodule:: pyhmmer.hmmer - - -.. automodule:: pyhmmer.hmmer - - -hmmsearch ---------- - -.. autofunction:: pyhmmer.hmmer.hmmsearch(queries, sequences, cpus=0, callback=None, **options) - - -hmmscan -------- - -.. autofunction:: pyhmmer.hmmer.hmmscan(queries, profiles, cpus=0, callback=None, background=None, **options) - - -phmmer ------- - -.. autofunction:: pyhmmer.hmmer.phmmer(queries, sequences, cpus=0, callback=None, builder=None, **options) - - -nhmmer ------- - -.. autofunction:: pyhmmer.hmmer.nhmmer(queries, sequences, cpus=0, callback=None, builder=None, **options) - - -hmmpress --------- - -.. autofunction:: pyhmmer.hmmer.hmmpress(hmms, output) - - -hmmalign --------- - -.. autofunction:: pyhmmer.hmmer.hmmalign(hmm, sequences, trim=False, digitize=False, all_consensus_cols=True) - - -jackhmmer ---------- - -.. autofunction:: pyhmmer.hmmer.jackhmmer(queries, sequences, cpus=0, allback=None, builder=None, max_iterations=5, select_hits=None, checkpoints=False, **options) diff --git a/docs/api/hmmer/index.rst b/docs/api/hmmer/index.rst new file mode 100644 index 00000000..4fa64195 --- /dev/null +++ b/docs/api/hmmer/index.rst @@ -0,0 +1,70 @@ +HMMER +===== + +.. currentmodule:: pyhmmer.hmmer + + +Profile Searches +---------------- + +.. toctree:: + :hidden: + :caption: Sequence Searches + + Sequence Searches <seq> + +.. autosummary:: + + hmmsearch + hmmscan + + +Sequence Searches +----------------- + +.. toctree:: + :hidden: + :caption: Profile Searches + + Profile Searches <profile> + +.. autosummary:: + + phmmer + nhmmer + + +Iterative Searches +------------------ + +.. toctree:: + :hidden: + :caption: Iterative Searches + + IterativeSearch <iter> + +.. autosummary:: + + jackhmmer + + +Utilities +--------- + +.. toctree:: + :hidden: + :caption: Utilities + + Utilities <utils> + +.. autosummary:: + + hmmpress + hmmalign + + + + + + + diff --git a/docs/api/hmmer/jackhmmer.rst b/docs/api/hmmer/jackhmmer.rst new file mode 100644 index 00000000..97517e81 --- /dev/null +++ b/docs/api/hmmer/jackhmmer.rst @@ -0,0 +1,4 @@ +Iterative Searches +================== + +.. autofunction:: pyhmmer.hmmer.jackhmmer(queries, sequences, cpus=0, allback=None, builder=None, max_iterations=5, select_hits=None, checkpoints=False, **options) diff --git a/docs/api/hmmer/profile.rst b/docs/api/hmmer/profile.rst new file mode 100644 index 00000000..32de1c37 --- /dev/null +++ b/docs/api/hmmer/profile.rst @@ -0,0 +1,6 @@ +Profile Searches +================ + +.. autofunction:: pyhmmer.hmmer.hmmsearch(queries, sequences, cpus=0, callback=None, **options) + +.. autofunction:: pyhmmer.hmmer.hmmscan(queries, profiles, cpus=0, callback=None, background=None, **options) diff --git a/docs/api/hmmer/seq.rst b/docs/api/hmmer/seq.rst new file mode 100644 index 00000000..f40131fa --- /dev/null +++ b/docs/api/hmmer/seq.rst @@ -0,0 +1,6 @@ +Sequence Searches +================= + +.. autofunction:: pyhmmer.hmmer.phmmer(queries, sequences, cpus=0, callback=None, builder=None, **options) + +.. autofunction:: pyhmmer.hmmer.nhmmer(queries, sequences, cpus=0, callback=None, builder=None, **options) diff --git a/docs/api/hmmer/utils.rst b/docs/api/hmmer/utils.rst new file mode 100644 index 00000000..ff3d79ae --- /dev/null +++ b/docs/api/hmmer/utils.rst @@ -0,0 +1,6 @@ +Utilities +========= + +.. autofunction:: pyhmmer.hmmer.hmmpress(hmms, output) + +.. autofunction:: pyhmmer.hmmer.hmmalign(hmm, sequences, trim=False, digitize=False, all_consensus_cols=True) diff --git a/docs/api/index.rst b/docs/api/index.rst index b7a35cba..630d1e7d 100644 --- a/docs/api/index.rst +++ b/docs/api/index.rst @@ -1,232 +1,16 @@ API Reference ============== -.. toctree:: - :hidden: - - hmmer <hmmer> - easel <easel> - plan7 <plan7> - daemon <daemon> - errors <errors> - - .. currentmodule:: pyhmmer .. automodule:: pyhmmer +.. toctree:: + :maxdepth: 2 -.. only:: html - - HMMER - ----- - - .. autosummary:: - :nosignatures: - - pyhmmer.hmmer.hmmsearch - pyhmmer.hmmer.hmmscan - pyhmmer.hmmer.phmmer - pyhmmer.hmmer.nhmmer - pyhmmer.hmmer.hmmpress - pyhmmer.hmmer.hmmalign - - - Easel - ----- - - Data Structures - ^^^^^^^^^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.easel.Bitfield - pyhmmer.easel.KeyHash - - - Sequences - ^^^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.easel.Sequence - pyhmmer.easel.TextSequence - pyhmmer.easel.DigitalSequence - - - Sequence Blocks - ^^^^^^^^^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.easel.SequenceBlock - pyhmmer.easel.TextSequenceBlock - pyhmmer.easel.DigitalSequenceBlock - - - Sequence File - ^^^^^^^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.easel.SequenceFile - - - Alignments - ^^^^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.easel.MSA - pyhmmer.easel.TextMSA - pyhmmer.easel.DigitalMSA - - - Alignment File - ^^^^^^^^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.easel.MSAFile - - - Linear Algebra - ^^^^^^^^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.easel.Vector - pyhmmer.easel.VectorF - pyhmmer.easel.VectorU8 - pyhmmer.easel.Matrix - pyhmmer.easel.MatrixF - pyhmmer.easel.MatrixU8 - - - Miscellaneous - ^^^^^^^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.easel.Alphabet - pyhmmer.easel.Randomness - pyhmmer.easel.SSIReader - pyhmmer.easel.SSIWriter - - - - Plan7 - ----- - - Profile HMMs - ^^^^^^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.plan7.HMM - pyhmmer.plan7.Profile - pyhmmer.plan7.OptimizedProfile - pyhmmer.plan7.OptimizedProfileBlock - - - HMM Files - ^^^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.plan7.HMMFile - pyhmmer.plan7.HMMPressedFile - - - Pipelines - ^^^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.plan7.Pipeline - pyhmmer.plan7.LongTargetsPipeline - pyhmmer.plan7.Builder - pyhmmer.plan7.Background - - - Results - ^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.plan7.TopHits - pyhmmer.plan7.Hit - pyhmmer.plan7.Domains - pyhmmer.plan7.Domain - pyhmmer.plan7.Alignment - - - Traces - ^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.plan7.TraceAligner - pyhmmer.plan7.Traces - pyhmmer.plan7.Trace - - - Iterative Searches - ^^^^^^^^^^^^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.plan7.IterativeSearch - pyhmmer.plan7.IterationResult - - - Miscellaneous - ^^^^^^^^^^^^^ - - .. autosummary:: - :nosignatures: - - pyhmmer.plan7.Cutoffs - pyhmmer.plan7.EvalueParameters - pyhmmer.plan7.Offsets - pyhmmer.plan7.Transitions - - - Daemon - ------ - - .. autosummary:: - :nosignatures: - - pyhmmer.daemon.Client - pyhmmer.daemon.IterativeSearch - - - Errors - ------ - - .. autosummary:: - :nosignatures: + HMMER <hmmer/index> + Easel <easel/index> + Plan7 <plan7/index> + Daemon <daemon/index> + Errors <errors/index> - pyhmmer.errors.AllocationError - pyhmmer.errors.UnexpectedError - pyhmmer.errors.EaselError - pyhmmer.errors.AlphabetMismatch - pyhmmer.errors.ServerError - pyhmmer.errors.MissingCutoffs - pyhmmer.errors.InvalidParameter - pyhmmer.errors.InvalidHMM diff --git a/docs/api/plan7.rst b/docs/api/plan7.rst deleted file mode 100644 index cf73b546..00000000 --- a/docs/api/plan7.rst +++ /dev/null @@ -1,219 +0,0 @@ -Plan7 -===== - -.. currentmodule:: pyhmmer.plan7 - - -.. automodule:: pyhmmer.plan7 - - -Profile HMMs ------------- - -HMM -^^^ - -.. autoclass:: pyhmmer.plan7.HMM - :special-members: __init__ - :members: - -Profile -^^^^^^^ - -.. autoclass:: pyhmmer.plan7.Profile - :special-members: __init__ - :members: - -OptimizedProfile -^^^^^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.plan7.OptimizedProfile - :special-members: __init__ - :members: - - -OptimizedProfileBlock -^^^^^^^^^^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.plan7.OptimizedProfileBlock - :special-members: __init__ - :members: - - -HMM Files ---------- - -HMMFile -^^^^^^^ - -.. autoclass:: pyhmmer.plan7.HMMFile - :special-members: __init__ - :members: - -HMMPressedFile -^^^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.plan7.HMMPressedFile - :special-members: __init__ - :members: - - -Pipelines ---------- - -Pipeline -^^^^^^^^ - -.. autoclass:: pyhmmer.plan7.Pipeline - :special-members: __init__ - :members: - -LongTargetsPipeline -^^^^^^^^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.plan7.LongTargetsPipeline(Pipeline) - :special-members: __init__ - :members: - - -Builder -^^^^^^^ - -.. autoclass:: pyhmmer.plan7.Builder - :special-members: __init__ - :members: - - -Background -^^^^^^^^^^ - -.. autoclass:: pyhmmer.plan7.Background - :special-members: __init__ - :members: - - - -Results -------- - -TopHits -^^^^^^^ - -.. autoclass:: pyhmmer.plan7.TopHits - :special-members: __init__ - :members: - -Hit -^^^ - -.. autoclass:: pyhmmer.plan7.Hit - :special-members: __init__ - :members: - -Domains -^^^^^^^ - -.. autoclass:: pyhmmer.plan7.Domains - :special-members: __init__ - :members: - -Domain -^^^^^^ - -.. autoclass:: pyhmmer.plan7.Domain - :special-members: __init__ - :members: - -Alignment -^^^^^^^^^ - -.. autoclass:: pyhmmer.plan7.Alignment - :special-members: __init__ - :members: - - -Traces ------- - -TraceAligner -^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.plan7.TraceAligner - :special-members: __init__ - :members: - -Traces -^^^^^^ - -.. autoclass:: pyhmmer.plan7.Traces - :special-members: __init__ - :members: - -Trace -^^^^^ - -.. autoclass:: pyhmmer.plan7.Trace - :special-members: __init__ - :members: - - -Iterative Searches ------------------- - -IterativeSearch -^^^^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.plan7.IterativeSearch - :special-members: __init__ - :members: - - -IterationResult -^^^^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.plan7.IterationResult - :special-members: __init__ - :members: - - -Miscellaneous -------------- - -Cutoffs -^^^^^^^ - -.. autoclass:: pyhmmer.plan7.Cutoffs - :members: - -EvalueParameters -^^^^^^^^^^^^^^^^ - -.. autoclass:: pyhmmer.plan7.EvalueParameters - :members: - -Offsets -^^^^^^^ - -.. autoclass:: pyhmmer.plan7.Offsets - :members: - - -Transitions -^^^^^^^^^^^ - -.. autoclass:: pyhmmer.plan7.Transitions(enum.IntEnum) - - .. autoattribute:: MM - - .. autoattribute:: MI - - .. autoattribute:: MD - - .. autoattribute:: IM - - .. autoattribute:: II - - .. autoattribute:: DM - - .. autoattribute:: DD - diff --git a/docs/api/plan7/hmms.rst b/docs/api/plan7/hmms.rst new file mode 100644 index 00000000..9f8aac62 --- /dev/null +++ b/docs/api/plan7/hmms.rst @@ -0,0 +1,18 @@ +Profile Hidden Markov Models +============================ + +.. autoclass:: pyhmmer.plan7.HMM + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.plan7.Profile + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.plan7.OptimizedProfile + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.plan7.OptimizedProfileBlock + :special-members: __init__ + :members: \ No newline at end of file diff --git a/docs/api/plan7/index.rst b/docs/api/plan7/index.rst new file mode 100644 index 00000000..1fcee76a --- /dev/null +++ b/docs/api/plan7/index.rst @@ -0,0 +1,128 @@ +Plan7 +===== + +.. currentmodule:: pyhmmer.plan7 + +.. automodule:: pyhmmer.plan7 + + +Profile Hidden Markov Models +---------------------------- + +.. autosummary:: + + HMM + Profile + OptimizedProfile + OptimizedProfileBlock + +.. toctree:: + :caption: Profile Hidden Markov Models + :maxdepth: 1 + :hidden: + + Profile Hidden Markov Models <hmms> + + +Parsers +------- + +.. autosummary:: + + HMMFile + HMMPressedFile + +.. toctree:: + :caption: Parsers + :maxdepth: 1 + :hidden: + + Parsers <parsers> + + +Pipelines +--------- + +.. autosummary:: + + Pipeline + LongTargetsPipeline + Builder + Background + +.. toctree:: + :caption: Pipelines + :maxdepth: 1 + :hidden: + + Pipelines <pli> + + +Results +------- + +.. autosummary:: + + TopHits + Hit + Domains + Domain + Alignment + +.. toctree:: + :caption: Results + :maxdepth: 1 + :hidden: + + Results <results> + + +Traces +------ + +.. autosummary:: + + TraceAligner + Traces + Trace + +.. toctree:: + :caption: Traces + :maxdepth: 1 + :hidden: + + Traces <traces> + + +Iterative Searches +------------------ + +.. autosummary:: + + IterativeSearch + IterationResult + +.. toctree:: + :caption: Iterative Searches + :maxdepth: 1 + :hidden: + + Iterative Searches <iter> + + +Miscellaneous +------------- + +.. autosummary:: + + Cutoffs + EvalueParameters + Offsets + Transitions + +.. toctree:: + :caption: Miscellaneous + :maxdepth: 1 + :hidden: + + Miscellaneous <misc> diff --git a/docs/api/plan7/iter.rst b/docs/api/plan7/iter.rst new file mode 100644 index 00000000..9963777f --- /dev/null +++ b/docs/api/plan7/iter.rst @@ -0,0 +1,10 @@ +Iterative Searches +================== + +.. autoclass:: pyhmmer.plan7.IterativeSearch + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.plan7.IterationResult + :special-members: __init__ + :members: \ No newline at end of file diff --git a/docs/api/plan7/misc.rst b/docs/api/plan7/misc.rst new file mode 100644 index 00000000..0d8e12e4 --- /dev/null +++ b/docs/api/plan7/misc.rst @@ -0,0 +1,20 @@ +Miscellaneous +============= + +.. autoclass:: pyhmmer.plan7.Cutoffs + :members: + +.. autoclass:: pyhmmer.plan7.EvalueParameters + :members: + +.. autoclass:: pyhmmer.plan7.Offsets + :members: + +.. autoclass:: pyhmmer.plan7.Transitions(enum.IntEnum) + .. autoattribute:: MM + .. autoattribute:: MI + .. autoattribute:: MD + .. autoattribute:: IM + .. autoattribute:: II + .. autoattribute:: DM + .. autoattribute:: DD \ No newline at end of file diff --git a/docs/api/plan7/parsers.rst b/docs/api/plan7/parsers.rst new file mode 100644 index 00000000..9fdbbb1d --- /dev/null +++ b/docs/api/plan7/parsers.rst @@ -0,0 +1,10 @@ +Parsers +======= + +.. autoclass:: pyhmmer.plan7.HMMFile + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.plan7.HMMPressedFile + :special-members: __init__ + :members: \ No newline at end of file diff --git a/docs/api/plan7/pli.rst b/docs/api/plan7/pli.rst new file mode 100644 index 00000000..cf1c75d6 --- /dev/null +++ b/docs/api/plan7/pli.rst @@ -0,0 +1,18 @@ +Pipelines +========= + +.. autoclass:: pyhmmer.plan7.Pipeline + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.plan7.LongTargetsPipeline(Pipeline) + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.plan7.Builder + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.plan7.Background + :special-members: __init__ + :members: \ No newline at end of file diff --git a/docs/api/plan7/results.rst b/docs/api/plan7/results.rst new file mode 100644 index 00000000..6d6c7c11 --- /dev/null +++ b/docs/api/plan7/results.rst @@ -0,0 +1,22 @@ +Results +======= + +.. autoclass:: pyhmmer.plan7.TopHits + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.plan7.Hit + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.plan7.Domains + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.plan7.Domain + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.plan7.Alignment + :special-members: __init__ + :members: \ No newline at end of file diff --git a/docs/api/plan7/traces.rst b/docs/api/plan7/traces.rst new file mode 100644 index 00000000..6bdb50d9 --- /dev/null +++ b/docs/api/plan7/traces.rst @@ -0,0 +1,14 @@ +Traces +====== + +.. autoclass:: pyhmmer.plan7.TraceAligner + :special-members: __init__ + :members: + +.. autoclass:: pyhmmer.plan7.Traces + :special-members: __init__, __getitem__ + :members: + +.. autoclass:: pyhmmer.plan7.Trace + :special-members: __init__ + :members: \ No newline at end of file diff --git a/docs/changes.md b/docs/changes.md deleted file mode 120000 index 04c99a55..00000000 --- a/docs/changes.md +++ /dev/null @@ -1 +0,0 @@ -../CHANGELOG.md \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 96a05088..daa4a5f4 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -30,8 +30,9 @@ if os.getenv("READTHEDOCS", "False") != "True": # -- Sphinx Setup ------------------------------------------------------------ def setup(app): + pass # Add custom stylesheet - app.add_css_file("css/main.css") + # app.add_css_file("css/main.css") # app.add_js_file("js/apitoc.js") # app.add_js_file("js/example-admonition.js") @@ -114,60 +115,50 @@ default_role = "py:obj" # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'bootstrap' - -# Add any paths that contain custom themes here, relative to this directory. -html_theme_path = sphinx_bootstrap_theme.get_html_theme_path() +html_theme = 'pydata_sphinx_theme' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +html_static_path = ['_static/js', '_static/bibtex', '_static/css'] +html_js_files = ["custom-icon.js"] +html_css_files = ["custom.css"] # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # html_theme_options = { - # Bootswatch (http://bootswatch.com/) theme. - "bootswatch_theme": "flatly", - # Choose Bootstrap version. - "bootstrap_version": "3", - # Tab name for entire site. (Default: "Site") - "navbar_site_name": "Documentation", - # HTML navbar class (Default: "navbar") to attach to <div> element. - # For black navbar, do "navbar navbar-inverse" - "navbar_class": "navbar", - # Render the next and previous page links in navbar. (Default: true) - "navbar_sidebarrel": True, - # Render the current pages TOC in the navbar. (Default: true) - "navbar_pagenav": False, - # A list of tuples containing pages or urls to link to. - "navbar_links": [ - ("GitHub", cfgparser.get("metadata", "url").strip(), True) - ] + [ - (k, v, True) - for k, v in project_urls.items() - if k in {"Zenodo", "PyPI"} + "show_toc_level": 2, + "use_edit_page_button": True, + "icon_links": [ + { + "name": "GitHub", + "url": "https://github.com/pydata/pydata-sphinx-theme", + "icon": "fa-brands fa-github", + }, + { + "name": "PyPI", + "url": "https://pypi.org/project/pydata-sphinx-theme", + "icon": "fa-custom fa-pypi", + }, ], - "admonition_use_panel": True, + "logo": { + "text": "PyHMMER", + "image_dark": "_images/logo.png", + }, + "navbar_align": "left", + "footer_start": ["copyright"], + "footer_center": ["sphinx-version"], } -# Custom sidebar templates, must be a dictionary that maps document names -# to template names. -# -# The default sidebars (for documents that don't match any pattern) are -# defined by theme itself. Builtin themes are using these templates by -# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', -# 'searchbox.html']``. -# -html_sidebars = { - "*": ["localtoc.html"], - "api/*": ["localtoc.html"], - "examples/*": ["localtoc.html"], +html_context = { + "github_user": "althonos", + "github_repo": "pyhmmer", + "github_version": "master", + "doc_path": "docs", } - # -- Options for HTMLHelp output --------------------------------------------- # Output file base name for HTML help builder. diff --git a/docs/contributing.md b/docs/contributing.md deleted file mode 120000 index 44fcc634..00000000 --- a/docs/contributing.md +++ /dev/null @@ -1 +0,0 @@ -../CONTRIBUTING.md \ No newline at end of file diff --git a/docs/examples/index.rst b/docs/examples/index.rst index e143547d..590b2f59 100644 --- a/docs/examples/index.rst +++ b/docs/examples/index.rst @@ -9,6 +9,7 @@ examples, and running with the latest version of the PyHMMER interface. .. toctree:: :maxdepth: 2 + :caption: Analyses Build an HMM from an multiple sequence alignment <msa_to_hmm> Analyse the active site of an enzymatic domain <active_site> @@ -24,6 +25,7 @@ PyHMMER API in combination with Python and other Python libraries: .. toctree:: :maxdepth: 2 + :caption: Code & Data Recipes for extending PyHMMER <recipes> Create a Python package with embedded HMMs <embed_hmms> diff --git a/docs/benchmarks.rst b/docs/guide/benchmarks.rst similarity index 95% rename from docs/benchmarks.rst rename to docs/guide/benchmarks.rst index f974ae06..f0e2c67c 100644 --- a/docs/benchmarks.rst +++ b/docs/guide/benchmarks.rst @@ -16,7 +16,7 @@ the times for pressed HMMs, and dashed-lines the times for HMMs in text format.* v0.7.0 - 2022-12-04 ------------------- -.. image:: _images/bench-v0.7.0.svg +.. image:: /_images/bench-v0.7.0.svg Collections for storing HMMs and Sequences were updated to allow iterating without the GIL. For `hmmscan`, the `OptimizedProfileBlock` store an array @@ -27,7 +27,7 @@ across different threads. v0.5.0 - 2022-03-14 ------------------- -.. image:: _images/bench-v0.5.0.svg +.. image:: /_images/bench-v0.5.0.svg A new dedicated collection has been added to store the target sequences of a `~pyhmmer.plan7.Pipeline`, saving some overhead if the same target sequences @@ -37,7 +37,7 @@ are reused with multiple queries. v0.4.5 - 2021-07-19 ------------------- -.. image:: _images/bench-v0.4.5.svg +.. image:: /_images/bench-v0.4.5.svg By adding an extra requirement on the reference sequences passed to a `~pyhmmer.plan7.Pipeline`, the Cython code can now evaluate a single HMM against the entirety of the reference @@ -59,7 +59,7 @@ optimal number of 5+1 threads (42.2s). v0.4.0 - 2021-06-05 ------------------- -.. image:: _images/bench-v0.4.0.svg +.. image:: /_images/bench-v0.4.0.svg The overhead of PyHMMER has been reduced, and has a much smaller effect when using a high number of threads. @@ -79,7 +79,7 @@ speed up insertions by worker threads. v0.3.0 - 2021-03-11 ------------------- -.. image:: _images/bench-v0.3.0.svg +.. image:: /_images/bench-v0.3.0.svg The small number of proteins renders the HMMER parallelisation useless for any number of worker threads higher than 2 (because of the block size being diff --git a/docs/guide/changes.md b/docs/guide/changes.md new file mode 120000 index 00000000..699cc9e7 --- /dev/null +++ b/docs/guide/changes.md @@ -0,0 +1 @@ +../../CHANGELOG.md \ No newline at end of file diff --git a/docs/guide/contributing.md b/docs/guide/contributing.md new file mode 120000 index 00000000..f939e75f --- /dev/null +++ b/docs/guide/contributing.md @@ -0,0 +1 @@ +../../CONTRIBUTING.md \ No newline at end of file diff --git a/docs/guide/index.rst b/docs/guide/index.rst new file mode 100644 index 00000000..b320ff7e --- /dev/null +++ b/docs/guide/index.rst @@ -0,0 +1,20 @@ +User Guide +========== + +.. toctree:: + :maxdepth: 1 + :caption: Getting Started + + Installation <install> + Publications <publications> + Performance <performance> + + +.. toctree:: + :maxdepth: 1 + :caption: Resources + + Contribution Guide <contributing> + Changelog <changes> + Benchmarks <benchmarks> + diff --git a/docs/install.rst b/docs/guide/install.rst similarity index 99% rename from docs/install.rst rename to docs/guide/install.rst index b11ddbc2..5d70cedd 100644 --- a/docs/install.rst +++ b/docs/guide/install.rst @@ -1,14 +1,7 @@ Installation ============ -.. note:: - - Wheels are provided for Linux and MacOS on x86-64 and NEON-enabled Arm platforms, - but other machines will have to build the wheel from the source distribution. - Building ``pyhmmer`` involves compiling HMMER3 and Easel, which requires a - C compiler to be available. - -.. hint:: +.. caution:: Windows is not supported by HMMER, so it is not possible to build PyHMMER on Windows as the moment. Consider using a Python install inside the @@ -27,7 +20,14 @@ one is available, or from source after compiling the Cython code : .. code:: console $ pip install --user pyhmmer - + +.. note:: + + Wheels are provided for Linux and MacOS on x86-64 and NEON-enabled Arm platforms, + but other machines will have to build the wheel from the source distribution. + Building ``pyhmmer`` involves compiling HMMER3 and Easel, which requires a + C compiler to be available. + Conda ^^^^^ diff --git a/docs/performance.rst b/docs/guide/performance.rst similarity index 99% rename from docs/performance.rst rename to docs/guide/performance.rst index c9de8f85..2e8968f5 100644 --- a/docs/performance.rst +++ b/docs/guide/performance.rst @@ -77,7 +77,7 @@ we annotated proteins from representative genomes of the `Pfam <http://pfam.xfam.org/>`_ collection of HMMs. ``hmmsearch`` runs are shown in green, ``pyhmmer`` runs in blue. -.. image:: _images/progenomes-v0.4.5.svg +.. image:: /_images/progenomes-v0.4.5.svg *The proteins of each genomes were extracted into one FASTA file per genome, and we measured the runtime of either the* ``hmmsearch`` *binary or the* diff --git a/docs/publications.rst b/docs/guide/publications.rst similarity index 97% rename from docs/publications.rst rename to docs/guide/publications.rst index 0f80b57d..89980acc 100644 --- a/docs/publications.rst +++ b/docs/guide/publications.rst @@ -23,8 +23,8 @@ PyHMMER has been used in the following research works: - Bhandari, B.K., Goldman, N. *A generalised protein identification method for novel and diverse sequencing technologies* (preprint). bioRxiv. :doi:`10.1101/2024.02.29.582769`. - Carroll, L.M., M. Larralde, J.S. Fleck, R. Ponnudurai, A. Milanese, E. Cappio, G. Zeller, 2021. *Accurate de novo identification of biosynthetic gene clusters with GECCO* (preprint). bioRxiv. :doi:`10.1101/2021.05.03.442509`. - Ducarmon, Q.R., N. Karcher, H.L.P. Tytgat, O. Delannoy-Bruno, S. Pekel, F. Springer, C. Schudoma, G. Zeller. *Large-scale computational analyses of gut microbial CAZyme repertoires enabled by Cayman* (preprint). bioRxiv. :doi:`10.1101/2024.01.08.574624`. -- Erdrich, S.H., Luthe, T., Kever, L., Roigé, B.B., Arsova, B., Davoudi, E., Frunzke, J. *Expanding the phage galaxy: Isolation and characterization of five novel Streptomyces siphoviruses Ankus, Byblos, DekoNeimoidia, Mandalore, and Naboo* (preprint). bioRxiv. :doi:`10.1101/2024.02.16.580700 `. -- Erdrich, S.H., Schurr, U., Frunzke, J., Arsova, B. *Seed coating with phages for sustainable plant biocontrol of plant pathogens and influence of the seed coat mucilage* (preprint). bioRxiv. :doi:`10.1101/2024.01.12.575253 `. +- Erdrich, S.H., Luthe, T., Kever, L., Roigé, B.B., Arsova, B., Davoudi, E., Frunzke, J. *Expanding the phage galaxy: Isolation and characterization of five novel Streptomyces siphoviruses Ankus, Byblos, DekoNeimoidia, Mandalore, and Naboo* (preprint). bioRxiv. :doi:`10.1101/2024.02.16.580700`. +- Erdrich, S.H., Schurr, U., Frunzke, J., Arsova, B. *Seed coating with phages for sustainable plant biocontrol of plant pathogens and influence of the seed coat mucilage* (preprint). bioRxiv. :doi:`10.1101/2024.01.12.575253`. - Gaschignard, G., Millet, M., Bruley, A., Benzerara, K., Dezi, M., Skouri-Panet, F., Duprat, E., Callebaut, I. *AlphaFold2-guided description of CoBaHMA, a novel family of bacterial domains within the heavy-metal-associated superfamily*. Proteins. 2024 Jan 22. :doi:`10.1002/prot.26668`. :pmid:`38258321`. - Jamali, K., L. Käll, R. Zhang, A. Brown, D. Kimanius, S.H.W. Scheres, 2023. *Automated model building and protein identification in cryo-EM maps* (preprint). bioRxiv. :doi:`10.1101/2023.05.16.541002`. - Kautsar, S.A., J.J.J van der Hooft, D. de Ridder, M.H. Medema, 2021. *BiG-SLiCE: A highly scalable tool maps the diversity of 1.2 million biosynthetic gene clusters*. GigaScience 10, giaa154. :doi:`10.1093/gigascience/giaa154`. diff --git a/docs/index.rst b/docs/index.rst index 62b7c0e4..54142a1c 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -110,7 +110,7 @@ Setup Run ``pip install pyhmmer`` in a shell to download the latest release and all its dependencies from PyPi, or have a look at the -:doc:`Installation page <install>` to find other ways to install ``pyhmmer``. +:doc:`Installation page <guide/install>` to find other ways to install ``pyhmmer``. Citation @@ -119,7 +119,7 @@ Citation PyHMMER is scientific software, with a `published paper <https://doi.org/10.1093/bioinformatics/btad214>`_ in the `Bioinformatics <https://academic.oup.com/bioinformatics>`_. Check the -:doc:`Publications page <publications>` to see how to cite PyHMMER. +:doc:`Publications page <guide/publications>` to see how to cite PyHMMER. Library @@ -128,15 +128,9 @@ Library .. toctree:: :maxdepth: 2 - Installation <install> + User Guide <guide/index> Examples <examples/index> - Performance <performance> - Contributing <contributing> - Publications <publications> - Benchmarks <benchmarks> API Reference <api/index> - Changelog <changes> - Related Projects ---------------- diff --git a/docs/requirements.txt b/docs/requirements.txt index 2769e34e..c593b273 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -11,9 +11,7 @@ ipython ~=7.19 pygments ~=2.4 nbsphinx ~=0.5 sphinxcontrib-jquery ~=4.1 - -# sphinx-bootstrap-theme ~=0.7 with patched admonition -https://github.com/althonos/sphinx-bootstrap-theme/archive/master.zip +pydata-sphinx-theme # dependencies to run the example notebook(s) biopython ==1.79 -- GitLab