Pyrodigal |Stars| ================= .. |Stars| image:: https://img.shields.io/github/stars/althonos/pyrodigal.svg?style=social&maxAge=3600&label=Star :target: https://github.com/althonos/pyrodigal/stargazers *Cython bindings and Python interface to* `Prodigal `_, *an ORF finder for genomes and metagenomes*. **Now with SIMD!** |Actions| |Coverage| |PyPI| |Bioconda| |AUR| |Wheel| |Versions| |Implementations| |License| |Source| |Mirror| |Issues| |Docs| |Changelog| |Downloads| |Paper| .. |Actions| image:: https://img.shields.io/github/workflow/status/althonos/pyrodigal/Test/main?logo=github&style=flat-square&maxAge=300 :target: https://github.com/althonos/pyrodigal/actions .. |GitLabCI| image:: https://img.shields.io/gitlab/pipeline/larralde/pyrodigal/main?gitlab_url=https%3A%2F%2Fgit.embl.de&logo=gitlab&style=flat-square&maxAge=600 :target: https://git.embl.de/larralde/pyrodigal/-/pipelines .. |Coverage| image:: https://img.shields.io/codecov/c/gh/althonos/pyrodigal?style=flat-square&maxAge=600 :target: https://codecov.io/gh/althonos/pyrodigal/ .. |PyPI| image:: https://img.shields.io/pypi/v/pyrodigal.svg?style=flat-square&maxAge=3600 :target: https://pypi.python.org/pypi/pyrodigal .. |Bioconda| image:: https://img.shields.io/conda/vn/bioconda/pyrodigal?style=flat-square&maxAge=3600 :target: https://anaconda.org/bioconda/pyrodigal .. |AUR| image:: https://img.shields.io/aur/version/python-pyrodigal?logo=archlinux&style=flat-square&maxAge=3600 :target: https://aur.archlinux.org/packages/python-pyrodigal .. |Wheel| image:: https://img.shields.io/pypi/wheel/pyrodigal?style=flat-square&maxAge=3600 :target: https://pypi.org/project/pyrodigal/#files .. |Versions| image:: https://img.shields.io/pypi/pyversions/pyrodigal.svg?style=flat-square&maxAge=3600 :target: https://pypi.org/project/pyrodigal/#files .. |Implementations| image:: https://img.shields.io/pypi/implementation/pyrodigal.svg?style=flat-square&maxAge=3600&label=impl :target: https://pypi.org/project/pyrodigal/#files .. |License| image:: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square&maxAge=3600 :target: https://choosealicense.com/licenses/mit/ .. |Source| image:: https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=2678400&style=flat-square :target: https://github.com/althonos/pyrodigal/ .. |Mirror| image:: https://img.shields.io/badge/mirror-EMBL-009f4d?style=flat-square&maxAge=2678400 :target: https://git.embl.de/larralde/pyrodigal/ .. |Issues| image:: https://img.shields.io/github/issues/althonos/pyrodigal.svg?style=flat-square&maxAge=600 :target: https://github.com/althonos/pyrodigal/issues .. |Docs| image:: https://img.shields.io/readthedocs/pyrodigal?style=flat-square&maxAge=3600 :target: http://pyrodigal.readthedocs.io/en/stable/?badge=stable .. |Changelog| image:: https://img.shields.io/badge/keep%20a-changelog-8A0707.svg?maxAge=2678400&style=flat-square :target: https://github.com/althonos/pyrodigal/blob/main/CHANGELOG.md .. |Downloads| image:: https://img.shields.io/badge/dynamic/json?style=flat-square&color=303f9f&maxAge=86400&label=downloads&query=%24.total_downloads&url=https%3A%2F%2Fapi.pepy.tech%2Fapi%2Fprojects%2Fpyrodigal :target: https://pepy.tech/project/pyrodigal .. |Paper| image:: https://img.shields.io/badge/paper-JOSS-9400ff?style=flat-square&maxAge=86400 :target: https://doi.org/10.21105/joss.04296 Overview -------- Pyrodigal is a Python module that provides bindings to Prodigal using `Cython `_. It directly interacts with the Prodigal internals, which has the following advantages: - **single dependency**: Pyrodigal is distributed as a Python package, so you can add it as a dependency to your project, and stop worrying about the Prodigal binary being present on the end-user machine. - **no intermediate files**: Everything happens in memory, in a Python object you fully control, so you don't have to invoke the Prodigal CLI using a sub-process and temporary files. Sequences can be passed directly as strings or bytes, which avoids the overhead of formatting your input to FASTA for Prodigal. - **lower memory usage**: Pyrodigal is slightly more conservative when it comes to using memory, which can help process very large sequences. It also lets you save some more memory when running several *meta*-mode analyses - **better performance**: Pyrodigal uses *SIMD* instructions to compute which dynamic programming nodes can be ignored when scoring connections. This can save from a third to half the runtime depending on the sequence. Setup ----- Run ``pip install pyrodigal`` in a shell to download the latest release and all its dependencies from PyPi, or have a look at the :doc:`Installation page ` to find other ways to install ``pyrodigal``. Library ------- .. toctree:: :maxdepth: 2 Installation Contributing Publications Benchmarks API Reference Changelog License ------- This library is provided under the `GNU General Public License v3.0 `_. The Prodigal code was written by `Doug Hyatt `_ and is distributed under the terms of the GPLv3 as well. The ``cpu_features`` library was written by `Guillaume Chatelet `_ and is licensed under the terms of the `Apache License 2.0 `_. *This project is in no way not affiliated, sponsored, or otherwise endorsed by the original* `Prodigal`_ *authors. It was developed by* `Martin Larralde `_ *during his PhD project at the* `European Molecular Biology Laboratory `_ *in the* `Zeller team `_.