PyFastANI |Stars| ================= .. |Stars| image:: https://img.shields.io/github/stars/althonos/pyfastani.svg?style=social&maxAge=3600&label=Star :target: https://github.com/althonos/pyfastani/stargazers :class: dark-light `Cython `_ *bindings and Python interface to* `FastANI `_, *a method for fast whole-genome similarity estimation.* |Actions| |Coverage| |PyPI| |Bioconda| |AUR| |Wheel| |Versions| |Implementations| |License| |Source| |Mirror| |Issues| |Docs| |Changelog| |Downloads| .. |Actions| image:: https://img.shields.io/github/actions/workflow/status/althonos/pyfastani/test.yml?branch=main&logo=github&style=flat-square&maxAge=300 :target: https://github.com/althonos/pyfastani/actions :class: dark-light .. |Coverage| image:: https://img.shields.io/codecov/c/gh/althonos/pyfastani/branch/main.svg?style=flat-square&maxAge=600 :target: https://codecov.io/gh/althonos/pyfastani/ :class: dark-light .. |PyPI| image:: https://img.shields.io/pypi/v/pyfastani.svg?style=flat-square&maxAge=3600 :target: https://pypi.python.org/pypi/pyfastani :class: dark-light .. |Bioconda| image:: https://img.shields.io/conda/vn/bioconda/pyfastani?style=flat-square&maxAge=3600 :target: https://anaconda.org/bioconda/pyfastani :class: dark-light .. |AUR| image:: https://img.shields.io/aur/version/python-pyfastani?logo=archlinux&style=flat-square&maxAge=3600 :target: https://aur.archlinux.org/packages/python-pyfastani :class: dark-light .. |Wheel| image:: https://img.shields.io/pypi/wheel/pyfastani?style=flat-square&maxAge=3600 :target: https://pypi.org/project/pyfastani/#files :class: dark-light .. |Versions| image:: https://img.shields.io/pypi/pyversions/pyfastani.svg?style=flat-square&maxAge=3600 :target: https://pypi.org/project/pyfastani/#files :class: dark-light .. |Implementations| image:: https://img.shields.io/pypi/implementation/pyfastani.svg?style=flat-square&maxAge=3600&label=impl :target: https://pypi.org/project/pyfastani/#files :class: dark-light .. |License| image:: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square&maxAge=3600 :target: https://choosealicense.com/licenses/mit/ :class: dark-light .. |Source| image:: https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=2678400&style=flat-square :target: https://github.com/althonos/pyfastani/ :class: dark-light .. |Mirror| image:: https://img.shields.io/badge/mirror-EMBL-009f4d?style=flat-square&maxAge=2678400 :target: https://git.embl.de/larralde/pyfastani/ :class: dark-light .. |Issues| image:: https://img.shields.io/github/issues/althonos/pyfastani.svg?style=flat-square&maxAge=600 :target: https://github.com/althonos/pyfastani/issues :class: dark-light .. |Docs| image:: https://img.shields.io/readthedocs/pyfastani?style=flat-square&maxAge=3600 :target: http://pyfastani.readthedocs.io/en/stable/?badge=stable :class: dark-light .. |Changelog| image:: https://img.shields.io/badge/keep%20a-changelog-8A0707.svg?maxAge=2678400&style=flat-square :target: https://github.com/althonos/pyfastani/blob/main/CHANGELOG.md :class: dark-light .. |Downloads| image:: https://img.shields.io/pypi/dm/pyfastani?style=flat-square&color=303f9f&maxAge=86400&label=downloads :target: https://pepy.tech/project/pyfastani :class: dark-light Overview -------- FastANI is a method published in 2018 by Jain *et al.* for high-throughput computation of whole-genome `Average Nucleotide Identity (ANI) `_. It uses `MashMap `_ to compute orthologous mappings without the need for expensive alignments. ``pyfastani`` is a Python module, implemented using the `Cython `_ language, that provides bindings to FastANI. It directly interacts with the FastANI 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 add ``pyfastani`` as a ``pip`` or ``conda`` dependency, no need for the ``fastani`` binary or any external dependency. .. grid-item-card:: :fas:`hammer` Easy compilation Required libraries that were needed for threading or I/O are provided as stubs, and `Boost::math` headers are vendored to build the package without any system dependency. .. grid-item-card:: :fas:`file-circle-xmark` Sans I/O Everything happens in memory, making it easier to pass your sequences to FastANI without needing to write them to a temporary file. .. grid-item-card:: :fas:`server` Multi-threaded Genome query resolves the fragment mapping step in parallel, leading to shorter querying times even with a single genome. .. grid-item-card:: :fas:`microchip` Portable Get SIMD-acceleration on any supported platform without having to build the package from scratch. .. grid-item-card:: :fas:`magnifying-glass` Introspectable The genome sketches can be accessed from the Python API, allowing to view the minimizers for a genome database. Setup ----- PyFastANI is available for all modern Python versions (3.7+). Run ``pip install pyfastani`` in a shell to download the latest release from PyPi, or have a look at the :doc:`Installation page ` to find other ways to install ``pyfastani``. Library ------- .. toctree:: :maxdepth: 2 User Guide API Reference Related Projects ---------------- The following Python libraries may be of interest for bioinformaticians. .. include:: related.rst License ------- This library is provided under the `MIT License `_. The fastANI code was written by `Chirag Jain `_ and is distributed under the terms of the `Apache License 2.0 `_, unless otherwise specified in vendored sources. The ``cpu_features`` code was written by `Guillaume Chatelet `_ and is distributed under the terms of the `Apache License 2.0 `_. The ``Boost::math`` headers were written by `Boost Libraries `_ contributors and is distributed under the terms of the `Boost Software License `_. See the :doc:`Copyright page ` for more information. *This project is in no way not affiliated, sponsored, or otherwise endorsed by the original* ``fastANI`` *authors. It was developed by* `Martin Larralde `_ *during his PhD project at the* `European Molecular Biology Laboratory `_ *in the* `Zeller team `_.