{ "info": { "author": "Roderick Bovee & One Codex ", "author_email": "Roderick Bovee & One Codex ", "bugtrack_url": null, "classifiers": [], "description": "# Taxonomy\n\n[![PyPI version](https://badge.fury.io/py/taxonomy.svg)](https://pypi.org/project/taxonomy/)\n[![Crates version](https://img.shields.io/crates/v/taxonomy.svg)](https://crates.io/crates/taxonomy)\n[![CircleCI](https://circleci.com/gh/onecodex/taxonomy.svg?style=shield)](https://circleci.com/gh/onecodex/taxonomy)\n\nThis is a Rust library for reading, writing, and editing biological taxonomies. There are associated Python bindings for accessing most of the functionality from Python.\n\nThis library was developed initially as a component in One Codex's metagenomic classification pipeline before being refactored out, expanded, and open-sourced. It is designed such that it can be used *as is* with a number of taxonomic formats *or* the Taxonomy trait it provides can be used to add last common ancestor, traversal, etc. methods to a downstream package's taxonomy implementation.\n\nThe library ships with a number of features:\n - [X] Common support for taxonomy handling across Rust and Python\n - [X] Fast and low(er) memory usage\n - [X] NCBI taxonomy, JSON (\"tree\" and \"node_link_data\" formats), Newick, and PhyloXML support\n - [X] Easily extensible (in Rust) to support other formats and operations\n\n\n# Python Usage\n\nThe Python taxonomy API can open and manipulate all of the formats from the Rust library:\n\n```python\nfrom taxonomy import Taxonomy\n\ntax = Taxonomy.from_newick('(A,(B,C)D)E;')\nassert tax.parent('A') == 'E'\nassert tax.parent('B') == 'D'\n```\n\nIf you have the NCBI taxonomy locally ([found on their FTP](ftp://ftp.ncbi.nlm.nih.gov/pub/taxonomy/taxdump.tar.gz)), you can use that too:\n\n```python\nncbi_tax = Taxonomy.from_ncbi('./nodes.dmp', './names.dmp')\nassert tax.name('562') == 'Escherichia coli'\nassert tax.rank('562') == 'species'\n```\n\nNote that Taxonomy IDs in NCBI format are integers, but they're converted to strings on import. We find working with \"string taxonomy IDs\" greatly simplifies interoperation between different taxonomy systems.\n\n\n# Installation\n\n## Rust\nThis library can be added to an existing Cargo.toml file and installed straight from crates.io.\n\n## Python\nYou can install the Python bindings directly from PyPI (binaries are only built for select architextures) with:\n```bash\npip install taxonomy\n```\n\n\n# Development\n\n## Rust\nThere is a test suite runable with `cargo test`.\n\n## Python\nTo work on the Python library on a Mac OS X/Unix system (requires Python 3):\n```bash\n# you need the nightly version of Rust installed\ncurl https://sh.rustup.rs -sSf | sh\nrustup default nightly\n\n# finally, install the library\n./setup.py install # (or ./setup.py develop)\n```\n\n### Building binary wheels and pushing to PyPI\n\n```\n# For each supported Python version and architecture combination...\n## On a Mac\npython setup.py install\npython setup.py bdist_wheel\ntwine upload dist/*\n\n## On Linux\n# I built the 0.3.1 wheels with a forked version of pyo3-pack; we should reevaluate the next time\n# we build wheels if we can just get this to work with rust-python.\ngit clone https://github.com/onecodex/pyo3-pack\ndocker run -it --rm --entrypoint /bin/bash -v .../pyo3-pack:/pyo3pack -v .../taxonomy/:/mnt konstin2/pyo3-pack\ncd /pyo3pack\ncargo install --path . --force\ncd /mnt\nrustup default nightly\npyo3-pack build --python-feature-gate python\n```\n\n# Other Taxonomy Libraries\n\nThere are taxonomic toolkits for other programming languages that offer different features and provided some inspiration for this library:\n\n*ETE Toolkit (http://etetoolkit.org/)* A Python taxonomy library\n\n*Taxize (https://ropensci.github.io/taxize-book/)* An R toolkit for working with taxonomic data\n\n", "description_content_type": "text/markdown; charset=UTF-8; variant=GFM", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "taxonomy bioinformatics", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "taxonomy", "package_url": "https://pypi.org/project/taxonomy/", "platform": "", "project_url": "https://pypi.org/project/taxonomy/", "project_urls": null, "release_url": "https://pypi.org/project/taxonomy/0.3.3/", "requires_dist": null, "requires_python": "", "summary": "Routines for loading, saving, and manipulating taxonomic trees", "version": "0.3.3" }, "last_serial": 5705202, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0af1ecbe4c33e79cc193cafe36ec7d5a", "sha256": "ec804a56692e2d73fecbfe09caeec93af3b3e1896f663a7a4d0f4e5cb4729811" }, "downloads": -1, "filename": "taxonomy-0.1.0-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "0af1ecbe4c33e79cc193cafe36ec7d5a", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 485673, "upload_time": "2019-04-26T03:35:52", "url": "https://files.pythonhosted.org/packages/3c/9a/b076d68c1d6dfa76b65c412278c1ae19d825892b76b2aec21884b5558e01/taxonomy-0.1.0-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "f378b4b1e1e486f17079960e6f9b5d49", "sha256": "32c3374e61f99cd78343a8cd1ad3fe69f422e9ae4c210d4c4d8d0e2141dd16f6" }, "downloads": -1, "filename": "taxonomy-0.1.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "f378b4b1e1e486f17079960e6f9b5d49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 881343, "upload_time": "2019-04-26T03:35:58", "url": "https://files.pythonhosted.org/packages/3f/45/ecb23894df5bd89192db1fca0e0313638c98e40ce34b398431494d62dfe1/taxonomy-0.1.0.linux-x86_64.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "1fddbdf02d771fc05fd2df8740f6a3e9", "sha256": "5a683e711c1a3196603f0bb1a1664f55f42341bc319f564ba151b3955bfcf701" }, "downloads": -1, "filename": "taxonomy-0.3.1-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "1fddbdf02d771fc05fd2df8740f6a3e9", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 4708135, "upload_time": "2019-06-06T17:34:07", "url": "https://files.pythonhosted.org/packages/a9/de/3bbea08c69e149e7599663f83cad5781ff15943b6655d9ff7c8bb5add4a8/taxonomy-0.3.1-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "46fc9f3dfaf88a4a7728908c725d052c", "sha256": "63f9208dff7d98923cbbac57e4cbf3151a3d3df646a5edc194b0e9e5897b8001" }, "downloads": -1, "filename": "taxonomy-0.3.1-cp36-cp36m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "46fc9f3dfaf88a4a7728908c725d052c", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 499852, "upload_time": "2019-05-10T20:18:51", "url": "https://files.pythonhosted.org/packages/62/ee/4bd22e957dd1bdbd536cf64ddf7967206698c8fe594637e9650919680d7e/taxonomy-0.3.1-cp36-cp36m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "49e6caa5a70f376664a20b19dc8ba6e6", "sha256": "9bd6b9bbfaec1669dbeea204e7fb3f7e763e023dc51b1e4ca303e59e1ca2cdc0" }, "downloads": -1, "filename": "taxonomy-0.3.1-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "49e6caa5a70f376664a20b19dc8ba6e6", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 4712069, "upload_time": "2019-06-06T17:34:10", "url": "https://files.pythonhosted.org/packages/12/67/225bf2c55e6fcb2b9e52820de842b3e92d15c59106c51b6496f148eac5f8/taxonomy-0.3.1-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "59d0f76ce586f8dd962bb3c3e55a5144", "sha256": "18fef9d9e6a2cc582010d5c43786a599c555d04536af4c6403356d52c8ebaba5" }, "downloads": -1, "filename": "taxonomy-0.3.1-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "59d0f76ce586f8dd962bb3c3e55a5144", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 501035, "upload_time": "2019-04-30T20:40:42", "url": "https://files.pythonhosted.org/packages/51/72/093ac939ecfd7519c00ce6332a839e46c3fc1e7e74aec547509edfc94071/taxonomy-0.3.1-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "3fd16a565b1c8d5cea78e507f8005b85", "sha256": "3e9da9a39ada679808f1def4f9423a90c5ff756ef7ebffb83df87fe7f6637ad3" }, "downloads": -1, "filename": "taxonomy-0.3.1-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "3fd16a565b1c8d5cea78e507f8005b85", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 4711613, "upload_time": "2019-06-06T17:34:13", "url": "https://files.pythonhosted.org/packages/df/c0/da3b64a6ebc85f37efa7b15a3fb57712174bf0b0ecb9d92fb4335be7960e/taxonomy-0.3.1-cp37-cp37m-manylinux1_x86_64.whl" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "4de564e6a6035d559c1379df68d8bff8", "sha256": "1ea0d476564c9036b86e6b23cba5ffde534e79cd52f556e49c4cdcef897d8fbc" }, "downloads": -1, "filename": "taxonomy-0.3.3-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "4de564e6a6035d559c1379df68d8bff8", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 4801914, "upload_time": "2019-08-20T19:29:28", "url": "https://files.pythonhosted.org/packages/90/bc/9da91b09c0de59d7385c1e65c8a6d052d3b8173402cda2d7c083788d4906/taxonomy-0.3.3-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "ef520f99f8bf7462d42ec3d3fddf4ace", "sha256": "b8aeda16181488004673561c651e0364b3365d0d786fdc34c31a85ab9cc383ab" }, "downloads": -1, "filename": "taxonomy-0.3.3-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "ef520f99f8bf7462d42ec3d3fddf4ace", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 4805933, "upload_time": "2019-08-20T19:29:31", "url": "https://files.pythonhosted.org/packages/71/dc/2418922162c5bd180989854e2ea9617b3c214059d3a97eb0aeb684f03690/taxonomy-0.3.3-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "e0541d15c6384974288620af3ce5f649", "sha256": "186ec1cf63c0cc4f58360aad2864b75db28c0c86f1d7f67d42be04693cd2d8fc" }, "downloads": -1, "filename": "taxonomy-0.3.3-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "e0541d15c6384974288620af3ce5f649", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 4120700, "upload_time": "2019-08-20T19:29:34", "url": "https://files.pythonhosted.org/packages/cb/fb/16cf70231416822d435c7f0c4ce87a7cf73e4f969e3c459c33b604f50e33/taxonomy-0.3.3-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "84100bfc85b8cf16f8d60805283dd364", "sha256": "a9d23a51032062f50fb767480fa3c2cb8cc42852a5b8bb9d09a6c1c7c92c9ab7" }, "downloads": -1, "filename": "taxonomy-0.3.3-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "84100bfc85b8cf16f8d60805283dd364", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 4807428, "upload_time": "2019-08-20T19:29:38", "url": "https://files.pythonhosted.org/packages/db/08/4208d745b95554ebacbe8c64c9842861adcf6acc97f7ca3264e75407fa23/taxonomy-0.3.3-cp37-cp37m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "00a37b66af3b42eeb11712757108c255", "sha256": "3cbe6bb49c476d9f5e9673b4fc2680423e7b4f5d9a5930be4644759212b087a0" }, "downloads": -1, "filename": "taxonomy-0.3.3-py3.7-macosx-10.14-x86_64.egg", "has_sig": false, "md5_digest": "00a37b66af3b42eeb11712757108c255", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 483115, "upload_time": "2019-08-20T19:29:40", "url": "https://files.pythonhosted.org/packages/8f/16/8e2a5c8ccea7c7822c0ddd130380390359ffb59d99d8ce164d482a40d39e/taxonomy-0.3.3-py3.7-macosx-10.14-x86_64.egg" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4de564e6a6035d559c1379df68d8bff8", "sha256": "1ea0d476564c9036b86e6b23cba5ffde534e79cd52f556e49c4cdcef897d8fbc" }, "downloads": -1, "filename": "taxonomy-0.3.3-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "4de564e6a6035d559c1379df68d8bff8", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 4801914, "upload_time": "2019-08-20T19:29:28", "url": "https://files.pythonhosted.org/packages/90/bc/9da91b09c0de59d7385c1e65c8a6d052d3b8173402cda2d7c083788d4906/taxonomy-0.3.3-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "ef520f99f8bf7462d42ec3d3fddf4ace", "sha256": "b8aeda16181488004673561c651e0364b3365d0d786fdc34c31a85ab9cc383ab" }, "downloads": -1, "filename": "taxonomy-0.3.3-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "ef520f99f8bf7462d42ec3d3fddf4ace", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 4805933, "upload_time": "2019-08-20T19:29:31", "url": "https://files.pythonhosted.org/packages/71/dc/2418922162c5bd180989854e2ea9617b3c214059d3a97eb0aeb684f03690/taxonomy-0.3.3-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "e0541d15c6384974288620af3ce5f649", "sha256": "186ec1cf63c0cc4f58360aad2864b75db28c0c86f1d7f67d42be04693cd2d8fc" }, "downloads": -1, "filename": "taxonomy-0.3.3-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "e0541d15c6384974288620af3ce5f649", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 4120700, "upload_time": "2019-08-20T19:29:34", "url": "https://files.pythonhosted.org/packages/cb/fb/16cf70231416822d435c7f0c4ce87a7cf73e4f969e3c459c33b604f50e33/taxonomy-0.3.3-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "84100bfc85b8cf16f8d60805283dd364", "sha256": "a9d23a51032062f50fb767480fa3c2cb8cc42852a5b8bb9d09a6c1c7c92c9ab7" }, "downloads": -1, "filename": "taxonomy-0.3.3-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "84100bfc85b8cf16f8d60805283dd364", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 4807428, "upload_time": "2019-08-20T19:29:38", "url": "https://files.pythonhosted.org/packages/db/08/4208d745b95554ebacbe8c64c9842861adcf6acc97f7ca3264e75407fa23/taxonomy-0.3.3-cp37-cp37m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "00a37b66af3b42eeb11712757108c255", "sha256": "3cbe6bb49c476d9f5e9673b4fc2680423e7b4f5d9a5930be4644759212b087a0" }, "downloads": -1, "filename": "taxonomy-0.3.3-py3.7-macosx-10.14-x86_64.egg", "has_sig": false, "md5_digest": "00a37b66af3b42eeb11712757108c255", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 483115, "upload_time": "2019-08-20T19:29:40", "url": "https://files.pythonhosted.org/packages/8f/16/8e2a5c8ccea7c7822c0ddd130380390359ffb59d99d8ce164d482a40d39e/taxonomy-0.3.3-py3.7-macosx-10.14-x86_64.egg" } ] }