{"id":23163,"library":"scikit-bio","title":"scikit-bio","description":"scikit-bio is a Python library for bioinformatics, providing data structures, algorithms, and educational resources. Version 0.7.2 (released 2025-09-15) requires Python >=3.10. Released approximately every 3-6 months, with active development on GitHub.","status":"active","version":"0.7.2","language":"python","source_language":"en","source_url":"https://github.com/scikit-bio/scikit-bio","tags":["bioinformatics","sequence analysis","phylogenetics","distance matrix"],"install":[{"cmd":"pip install scikit-bio","lang":"bash","label":"PyPI install"}],"dependencies":[],"imports":[{"note":"DistanceMatrix is a top-level export in skbio, not a submodule.","wrong":"import skbio.stats.distance.DistanceMatrix","symbol":"DistanceMatrix","correct":"from skbio import DistanceMatrix"},{"note":"TreeNode is directly available in skbio since version 0.6.0.","wrong":"from skbio.tree import TreeNode","symbol":"TreeNode","correct":"from skbio import TreeNode"}],"quickstart":{"code":"from skbio import DistanceMatrix, TreeNode\n\ndm = DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]], ids=['a', 'b', 'c'])\nprint(dm)\n\ntree = TreeNode.read(['((a,b),c);'])\nprint(tree.ascii_art())","lang":"python","description":"Create a distance matrix and parse a Newick tree."},"warnings":[{"fix":"Review the migration guide in the changelog: https://github.com/scikit-bio/scikit-bio/blob/main/CHANGELOG.md","message":"scikit-bio 0.6.0 introduced major API changes and deprecations. Code written for 0.5.x may require updates, especially in sequence I/O and tree modules.","severity":"breaking","affected_versions":">=0.6.0"},{"fix":"Replace imports like `from skbio.math import ...` with `from skbio.stats import ...` or use scipy directly.","message":"The `skbio.math` submodule is deprecated. Use `skbio.stats` or `scipy` instead.","severity":"deprecated","affected_versions":">=0.6.0"},{"fix":"Always use `dm[row, col]` instead of `dm[row][col]`.","message":"DistanceMatrix in scikit-bio 0.7.x is a condensed form by default. Indexing with [i][j] may give unexpected results. Use `dm[i, j]` syntax.","severity":"gotcha","affected_versions":">=0.7.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `from skbio.stats import ...` instead, e.g., `from skbio.stats.distance import permanova`.","cause":"The `skbio.math` submodule was deprecated in 0.6.0 and removed.","error":"ModuleNotFoundError: No module named 'skbio.math'"},{"fix":"Use `from skbio.sequence import DNA` or `skbio.sequence.DNA`.","cause":"The top-level `DNA`, `RNA`, `Protein` classes were removed in 0.6.0. Use `skbio.sequence.DNA` instead.","error":"AttributeError: module 'skbio' has no attribute 'DNA'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}