althonos / pyhmmer

Cython bindings and Python interface to HMMER3.
https://pyhmmer.readthedocs.io
MIT License
129 stars 12 forks source link

Proposal to add `pyhmmer.jackhmmer` function #35

Closed zdk123 closed 1 year ago

zdk123 commented 1 year ago

Follows up on PR #34 by adding a top-level jackhmmer interface to pyhmmer.

Feel free say this is out of scope with your intentions for this package, but this would bring near-parity to hmmer3 command line utilities.

codecov[bot] commented 1 year ago

Codecov Report

Patch coverage: 65.18% and project coverage change: -0.21 :warning:

Comparison is base (0f803aa) 76.43% compared to head (09fe991) 76.23%.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #35 +/- ## ========================================== - Coverage 76.43% 76.23% -0.21% ========================================== Files 7 7 Lines 6829 6931 +102 ========================================== + Hits 5220 5284 +64 - Misses 1609 1647 +38 ``` | Flag | Coverage Δ | | |---|---|---| | v3.10 | `76.23% <65.18%> (-0.21%)` | :arrow_down: | | v3.11 | `76.23% <65.18%> (-0.21%)` | :arrow_down: | | v3.7 | `76.20% <65.18%> (-0.21%)` | :arrow_down: | | v3.8 | `76.23% <65.18%> (-0.21%)` | :arrow_down: | | v3.9 | `76.23% <65.18%> (-0.21%)` | :arrow_down: | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Martin+Larralde#carryforward-flags-in-the-pull-request-comment) to find out more. | [Impacted Files](https://codecov.io/gh/althonos/pyhmmer/pull/35?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Martin+Larralde) | Coverage Δ | | |---|---|---| | [pyhmmer/hmmer.py](https://codecov.io/gh/althonos/pyhmmer/pull/35?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Martin+Larralde#diff-cHlobW1lci9obW1lci5weQ==) | `64.57% <64.92%> (-1.04%)` | :arrow_down: | | [pyhmmer/\_\_init\_\_.py](https://codecov.io/gh/althonos/pyhmmer/pull/35?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Martin+Larralde#diff-cHlobW1lci9fX2luaXRfXy5weQ==) | `100.00% <100.00%> (ø)` | | ... and [1 file with indirect coverage changes](https://codecov.io/gh/althonos/pyhmmer/pull/35/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Martin+Larralde) Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Martin+Larralde). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Martin+Larralde)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

althonos commented 1 year ago

Hi Zach,

Thanks a lot for this contribution, this is really useful and goes right into the scope of the project, so I'll be happy to get it merged and published in here. I'll try to have a look at the code more in depth this week.

althonos commented 1 year ago

Hi Zach!

Sorry this took so long, I had a busy month :sweat_smile: I fixed some issues regarding the checkpointing and pipeline initialization (because jackhmmer uses a default incE and incdomE compared to the normal pipeline). Otherwise, most of the changes are just updating the type annotations to accomodate for the new query and return types. In particular, mypy should be able to figure out the return type based on the value of the checkpoints argument.

zdk123 commented 1 year ago

Thanks a million @althonos, I figured you'd have opinions on the design and implementation here, happy to have just gotten the ball rolling!

althonos commented 1 year ago

Perfect, let's merge then! I'm not gonna release right away because there are a bunch of breaking changes I want to add for v0.8.0 as well.