Cython bindings and Python interface to HMMER3.
HMMER is a biological sequence analysis tool that uses profile hidden Markov models to search for sequence homologs. HMMER3 is maintained by members of the the Eddy/Rivas Laboratory at Harvard University.
pyhmmer is a Python module, implemented using the Cython
language, that provides bindings to HMMER3. It directly interacts with the
HMMER internals, which has the following advantages over CLI wrappers:
single dependency: If your software or your analysis pipeline is distributed as a Python package, you can add
pyhmmeras a dependency to your project, and stop worrying about the HMMER binaries being properly setup on the end-user machine.
no intermediate files: Everything happens in memory, in Python objects you have control on, making it easier to pass your inputs to HMMER without needing to write them to a temporary file. Output retrieval is also done in memory, via instances of the
no input formatting: The Easel object model is exposed in the
pyhmmer.easelmodule, and you have the possibility to build a
Sequenceobject yourself to pass to the HMMER pipeline. This is useful if your sequences are already loaded in memory, for instance because you obtained them from another Python library (such as Pyrodigal or Biopython).
no output formatting: HMMER3 is notorious for its numerous output files and its fixed-width tabular output, which is hard to parse (even
Bio.SearchIO.HmmerIOis struggling on some sequences).
hmmsearchon sequences and HMMs in disk storage is typically faster than directly using the
pyhmmer.hmmer.hmmsearchuses a different parallelisation strategy compared to the
hmmsearchbinary from HMMER, which helps getting the most of multiple CPUs.
pip install pyhmmer in a shell to download the latest release and all
its dependencies from PyPi, or have a look at the
Installation page to find other ways to install
PyHMMER is scientific software, with a published paper in the Bioinformatics. Check the Publications page to see how to cite PyHMMER.
- API Reference
- v0.8.1 - 2023-05-19
- v0.8.0 - 2023-05-01
- v0.7.4 - 2023-04-14
- v0.7.3 - 2023-03-24
- v0.7.2 - 2023-02-17
- v0.7.1 - 2022-12-15
- v0.7.0 - 2022-12-04
- v0.6.3 - 2022-09-09
- v0.6.2 - 2022-08-12
- v0.6.1 - 2022-06-28
- v0.6.0 - 2022-05-01
- v0.5.0 - 2022-03-14
- v0.4.11 - 2021-12-15
- v0.4.10 - 2021-12-06
- v0.4.9 - 2021-11-11
- v0.4.8 - 2021-10-27
- v0.4.7 - 2021-09-28
- v0.4.6 - 2021-09-10
- v0.4.5 - 2021-07-19
- v0.4.4 - 2021-07-07
- v0.4.3 - 2021-07-03
- v0.4.2 - 2021-06-20
- v0.4.1 - 2021-06-06
- v0.4.0 - 2021-06-05 - YANKED
- v0.3.1 - 2021-05-08
- v0.3.0 - 2021-03-11
- v0.2.2 - 2021-03-04
- v0.2.1 - 2021-01-29
- v0.2.0 - 2021-01-21
- v0.1.4 - 2021-01-15
- v0.1.3 - 2021-01-08
- v0.1.2 - 2021-01-07
- v0.1.1 - 2020-12-02
- v0.1.0 - 2020-12-01
- v0.1.0-a5 - 2020-11-28
- v0.1.0-a4 - 2020-11-24
- v0.1.0-a3 - 2020-11-19
- v0.1.0-a2 - 2020-11-12
- v0.1.0-a1 - 2020-11-10
This library is provided under the MIT License.
The HMMER3 and Easel code is available under
the BSD 3-clause license,
which allows redistribution of their sources in the
This project is in no way not affiliated, sponsored, or otherwise endorsed by the original HMMER authors. It was developed by Martin Larralde during his PhD project at the European Molecular Biology Laboratory in the Zeller team.