orthoani


Nameorthoani JSON
Version 0.6.0 PyPI version JSON
download
home_pagehttps://github.com/althonos/orthoani
SummaryA Python implementation of the OrthoANI algorithm for nucleotide identity measurement.
upload_time2024-11-06 15:02:19
maintainerNone
docs_urlNone
authorMartin Larralde
requires_python>=3.6
licenseMIT
keywords ani average nucleotide identity genomic taxonomy
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # (Py)OrthoANI [![Stars](https://img.shields.io/github/stars/althonos/orthoani.svg?style=social&maxAge=3600&label=Star)](https://github.com/althonos/orthoani/stargazers)

*A Python implementation of the [OrthoANI](https://doi.org/10.1099/ijsem.0.000760) algorithm for nucleotide identity measurement.*

[![Actions](https://img.shields.io/github/actions/workflow/status/althonos/orthoani/test.yml?branch=main&logo=github&style=flat-square&maxAge=300)](https://github.com/althonos/orthoani/actions)
[![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square&maxAge=2678400)](https://choosealicense.com/licenses/mit/)
[![Source](https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/orthoani/)
[![Coverage](https://img.shields.io/codecov/c/gh/althonos/orthoani?style=flat-square&maxAge=3600)](https://codecov.io/gh/althonos/orthoani/)
[![PyPI](https://img.shields.io/pypi/v/orthoani.svg?style=flat-square&maxAge=600)](https://pypi.org/project/orthoani)
[![Wheel](https://img.shields.io/pypi/wheel/orthoani.svg?style=flat-square&maxAge=3600)](https://pypi.org/project/orthoani/#files)
[![Python Versions](https://img.shields.io/pypi/pyversions/orthoani.svg?style=flat-square&maxAge=600)](https://pypi.org/project/orthoani/#files)
[![Python Implementations](https://img.shields.io/pypi/implementation/orthoani.svg?style=flat-square&maxAge=600)](https://pypi.org/project/orthoani/#files)
[![Source](https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/orthoani/)
[![GitHub issues](https://img.shields.io/github/issues/althonos/orthoani.svg?style=flat-square&maxAge=600)](https://github.com/althonos/orthoani/issues)
[![Changelog](https://img.shields.io/badge/keep%20a-changelog-8A0707.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/orthoani/blob/master/CHANGELOG.md)
[![Downloads](https://img.shields.io/pypi/dm/orthoani?style=flat-square&color=303f9f&maxAge=86400&label=downloads)](https://pepy.tech/project/orthoani)


## πŸ—ΊοΈ Overview

OrthoANI is a metric proposed by Lee *et al.*[\[1\]](#ref1)
in 2016 to improve computation of Average Nucleotide Identity. It uses
[BLASTn](https://en.wikipedia.org/wiki/BLAST_(biotechnology)) to find orthologous
blocks in a pair of sequences, and then computes the average identity only
considering alignments of reciprocal orthologs.

![Algorithm](https://www.microbiologyresearch.org/docserver/fulltext/ijsem/66/2/000760-f1.gif)

This project is a reimplementation of the closed-source Java implementation
provided by the authors on [`ezbiocloud.net`](https://www.ezbiocloud.net/sw/oat).
It relies on [Biopython](https://biopython.org/) to handle the I/O, and calls
the BLAST+ binaries using the `subprocess` module of the Python standard 
library.


## πŸ”§ Installing

Installing with `pip` is the easiest:
```console
$ pip install orthoani
```

`orthoani` also requires the BLAST+ binaries to be installed on your machine
and available somewhere in your `$PATH`.


## πŸ’‘ Example

Use Biopython to load two FASTA files, and then `orthoani.orthoani` to compute
the OrthoANI metric between them:
```python
import orthoani
from Bio.SeqIO import read

genome_1 = read("sequence1.fa", "fasta")
genome_2 = read("sequence2.fa", "fasta")

ani = orthoani.orthoani(genome_1, genome_2)
```

`orthoani` can also be used from the CLI using a very simple command-line
interface:
```console
$ orthoani -q sequence1.fa -r sequence2.fa
0.5725
```


## 🐏 Memory

`orthoani` uses the machine temporary folder to handle BLAST+ input and output
files, which is configurable through
[`tempfile.tempdir`](https://docs.python.org/3/library/tempfile.html#tempfile.tempdir).
On some systems (like ArchLinux), this filesystem can reside in memory, which means
that your computer could have trouble processing very large files. If this
happens, try changing the value of the `tempfile.tempdir` to a directory that
is actually located on physical storage.


## πŸ“ Precision

Values computed by this package and the original Java implementation may differ
slightly because in Java the authors perform rounding of floating-point values
at the sub-percent level, while this library uses the full values.


## πŸ“œ About

This library is provided under the open-source
[MIT license](https://choosealicense.com/licenses/mit/).

*This project is in no way not affiliated, sponsored, or otherwise endorsed by
the [original OrthoANI authors](http://www.chunlab.com/). It was developed by
[Martin Larralde](https://github.com/althonos/orthoani) during his PhD project
at the [European Molecular Biology Laboratory](https://www.embl.de/) in
the [Zeller team](https://github.com/zellerlab).*

## πŸ“š References

- <a id="ref1">\[1\]</a> Imchang Lee, Yeong Ouk Kim, Sang-Cheol Park and Jongsik Chun. *OrthoANI: An improved algorithm and software for calculating average nucleotide identity* (2016). International Journal of Systematic and Evolutionary Microbiology. [doi:10.1099/ijsem.0.000760](https://doi.org/10.1099/ijsem.0.000760). [PMID:26585518](https://pubmed.ncbi.nlm.nih.gov/26585518/).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/althonos/orthoani",
    "name": "orthoani",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "ani, average, nucleotide, identity, genomic, taxonomy",
    "author": "Martin Larralde",
    "author_email": "martin.larralde@embl.de",
    "download_url": "https://files.pythonhosted.org/packages/4c/70/21b613818c4a979f5655d2b6cc10857db63676a9e3d87c073392d87f49e2/orthoani-0.6.0.tar.gz",
    "platform": "any",
    "description": "# (Py)OrthoANI [![Stars](https://img.shields.io/github/stars/althonos/orthoani.svg?style=social&maxAge=3600&label=Star)](https://github.com/althonos/orthoani/stargazers)\n\n*A Python implementation of the [OrthoANI](https://doi.org/10.1099/ijsem.0.000760) algorithm for nucleotide identity measurement.*\n\n[![Actions](https://img.shields.io/github/actions/workflow/status/althonos/orthoani/test.yml?branch=main&logo=github&style=flat-square&maxAge=300)](https://github.com/althonos/orthoani/actions)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square&maxAge=2678400)](https://choosealicense.com/licenses/mit/)\n[![Source](https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/orthoani/)\n[![Coverage](https://img.shields.io/codecov/c/gh/althonos/orthoani?style=flat-square&maxAge=3600)](https://codecov.io/gh/althonos/orthoani/)\n[![PyPI](https://img.shields.io/pypi/v/orthoani.svg?style=flat-square&maxAge=600)](https://pypi.org/project/orthoani)\n[![Wheel](https://img.shields.io/pypi/wheel/orthoani.svg?style=flat-square&maxAge=3600)](https://pypi.org/project/orthoani/#files)\n[![Python Versions](https://img.shields.io/pypi/pyversions/orthoani.svg?style=flat-square&maxAge=600)](https://pypi.org/project/orthoani/#files)\n[![Python Implementations](https://img.shields.io/pypi/implementation/orthoani.svg?style=flat-square&maxAge=600)](https://pypi.org/project/orthoani/#files)\n[![Source](https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/orthoani/)\n[![GitHub issues](https://img.shields.io/github/issues/althonos/orthoani.svg?style=flat-square&maxAge=600)](https://github.com/althonos/orthoani/issues)\n[![Changelog](https://img.shields.io/badge/keep%20a-changelog-8A0707.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/orthoani/blob/master/CHANGELOG.md)\n[![Downloads](https://img.shields.io/pypi/dm/orthoani?style=flat-square&color=303f9f&maxAge=86400&label=downloads)](https://pepy.tech/project/orthoani)\n\n\n## \ud83d\uddfa\ufe0f Overview\n\nOrthoANI is a metric proposed by Lee *et al.*[\\[1\\]](#ref1)\nin 2016 to improve computation of Average Nucleotide Identity. It uses\n[BLASTn](https://en.wikipedia.org/wiki/BLAST_(biotechnology)) to find orthologous\nblocks in a pair of sequences, and then computes the average identity only\nconsidering alignments of reciprocal orthologs.\n\n![Algorithm](https://www.microbiologyresearch.org/docserver/fulltext/ijsem/66/2/000760-f1.gif)\n\nThis project is a reimplementation of the closed-source Java implementation\nprovided by the authors on [`ezbiocloud.net`](https://www.ezbiocloud.net/sw/oat).\nIt relies on [Biopython](https://biopython.org/) to handle the I/O, and calls\nthe BLAST+ binaries using the `subprocess` module of the Python standard \nlibrary.\n\n\n## \ud83d\udd27 Installing\n\nInstalling with `pip` is the easiest:\n```console\n$ pip install orthoani\n```\n\n`orthoani` also requires the BLAST+ binaries to be installed on your machine\nand available somewhere in your `$PATH`.\n\n\n## \ud83d\udca1 Example\n\nUse Biopython to load two FASTA files, and then `orthoani.orthoani` to compute\nthe OrthoANI metric between them:\n```python\nimport orthoani\nfrom Bio.SeqIO import read\n\ngenome_1 = read(\"sequence1.fa\", \"fasta\")\ngenome_2 = read(\"sequence2.fa\", \"fasta\")\n\nani = orthoani.orthoani(genome_1, genome_2)\n```\n\n`orthoani` can also be used from the CLI using a very simple command-line\ninterface:\n```console\n$ orthoani -q sequence1.fa -r sequence2.fa\n0.5725\n```\n\n\n## \ud83d\udc0f Memory\n\n`orthoani` uses the machine temporary folder to handle BLAST+ input and output\nfiles, which is configurable through\n[`tempfile.tempdir`](https://docs.python.org/3/library/tempfile.html#tempfile.tempdir).\nOn some systems (like ArchLinux), this filesystem can reside in memory, which means\nthat your computer could have trouble processing very large files. If this\nhappens, try changing the value of the `tempfile.tempdir` to a directory that\nis actually located on physical storage.\n\n\n## \ud83d\udccf Precision\n\nValues computed by this package and the original Java implementation may differ\nslightly because in Java the authors perform rounding of floating-point values\nat the sub-percent level, while this library uses the full values.\n\n\n## \ud83d\udcdc About\n\nThis library is provided under the open-source\n[MIT license](https://choosealicense.com/licenses/mit/).\n\n*This project is in no way not affiliated, sponsored, or otherwise endorsed by\nthe [original OrthoANI authors](http://www.chunlab.com/). It was developed by\n[Martin Larralde](https://github.com/althonos/orthoani) during his PhD project\nat the [European Molecular Biology Laboratory](https://www.embl.de/) in\nthe [Zeller team](https://github.com/zellerlab).*\n\n## \ud83d\udcda References\n\n- <a id=\"ref1\">\\[1\\]</a> Imchang Lee, Yeong Ouk Kim, Sang-Cheol Park and Jongsik Chun. *OrthoANI: An improved algorithm and software for calculating average nucleotide identity* (2016). International Journal of Systematic and Evolutionary Microbiology. [doi:10.1099/ijsem.0.000760](https://doi.org/10.1099/ijsem.0.000760). [PMID:26585518](https://pubmed.ncbi.nlm.nih.gov/26585518/).\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Python implementation of the OrthoANI algorithm for nucleotide identity measurement.",
    "version": "0.6.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/althonos/orthoani/issues",
        "Changelog": "https://github.com/althonos/orthoani/blob/master/CHANGELOG.md",
        "Homepage": "https://github.com/althonos/orthoani"
    },
    "split_keywords": [
        "ani",
        " average",
        " nucleotide",
        " identity",
        " genomic",
        " taxonomy"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e3878c1ed0e7a9ad0500a11892a00b59df54877cc780116c88738b4908d4f67d",
                "md5": "b33f6a6338fca91b3ee0ab48e4901464",
                "sha256": "303db121e92a707154c99a1cea08217e7bc4499d59569eb30313427fdf06b96e"
            },
            "downloads": -1,
            "filename": "orthoani-0.6.0-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b33f6a6338fca91b3ee0ab48e4901464",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.6",
            "size": 10424,
            "upload_time": "2024-11-06T15:02:17",
            "upload_time_iso_8601": "2024-11-06T15:02:17.487391Z",
            "url": "https://files.pythonhosted.org/packages/e3/87/8c1ed0e7a9ad0500a11892a00b59df54877cc780116c88738b4908d4f67d/orthoani-0.6.0-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4c7021b613818c4a979f5655d2b6cc10857db63676a9e3d87c073392d87f49e2",
                "md5": "90f13b8ddf80b60d615477cacbdbdf43",
                "sha256": "4549f5b844c7540e09db0937d095322b92b7bda534362d23bf5864cb1b6b01a5"
            },
            "downloads": -1,
            "filename": "orthoani-0.6.0.tar.gz",
            "has_sig": false,
            "md5_digest": "90f13b8ddf80b60d615477cacbdbdf43",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 14670,
            "upload_time": "2024-11-06T15:02:19",
            "upload_time_iso_8601": "2024-11-06T15:02:19.197095Z",
            "url": "https://files.pythonhosted.org/packages/4c/70/21b613818c4a979f5655d2b6cc10857db63676a9e3d87c073392d87f49e2/orthoani-0.6.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-06 15:02:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "althonos",
    "github_project": "orthoani",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "orthoani"
}
        
Elapsed time: 0.44579s