scikit-bio
Data structures, algorithms and educational resources for bioinformatics.
What it is and what it does
scikit-bio is a Python library for bioinformatics that provides data structures and algorithms for working with biological data. It sits at the intersection of scientific computing—built on numpy, scipy, pandas, and statsmodels—and domain-specific bioinformatics, offering abstractions for biological sequences and diversity metrics. The package is actively maintained and widely adopted in projects like QIIME 2, Qiita, and Emperor, suggesting it has become a foundational layer for the bioinformatics Python ecosystem.
The library depends on a substantial stack of scientific packages: 11 runtime dependencies including h5py for data storage, biom-format for microbiome data interchange, and decorator for function wrapping. This makes installation moderately friction-heavy but also means it integrates well with existing scientific Python workflows. It supports Python 3.10 and above and is available as prebuilt wheels across major platforms and architectures, reducing build friction for most users.
Use it for:
- Analyze microbiome data using diversity metrics and phylogenetic tree operations with biom-format integration.
- Work with phylogenetic trees and evolutionary relationships in biological datasets.
- Integrate bioinformatics workflows with pandas DataFrames and numpy arrays for downstream analysis.
- Store and retrieve large biological datasets using h5py-backed data structures.
- Build educational bioinformatics applications using standardized data structures and algorithms.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
scikit-bio provides data structures, algorithms, and educational resources for bioinformatics analysis, including sequence, phylogenetic, and diversity data manipulation.
Yes, if you are doing bioinformatics work in Python. scikit-bio is actively maintained, widely adopted by established projects, has no known vulnerabilities, and provides a permissive BSD-3-Clause license. The medium install friction is justified by its comprehensive dependency stack and the maturity it brings. Not necessary for general scientific computing; install only if you need domain-specific bioinformatics data structures.
Install
scikit-bio on PyPI
pip
pip install scikit-biouv
uv add scikit-biopoetry
poetry add scikit-bioInstalling scikit-bio
Before you install
Medium install friction due to 11 runtime dependencies including numpy, scipy, pandas, h5py, and statsmodels. Active maintenance with a release 74 days ago and ongoing commits. Supports Python 3.10 and above with prebuilt wheels for macOS, Linux, and Windows across multiple architectures.
License in practice
BSD-3-Clause permissive license allows commercial and private use with minimal restrictions, requiring only license and copyright notice retention.
Quickstart
pip install scikit-bio
import decorator
import numpy
import pandas
# scikit-bio integrates with numpy and pandas for data manipulation
Requires Python 3.10 or above; multiple compiled dependencies (numpy, scipy, h5py) may require build tools on some systems.
Verify before relying
- Specific API surface and which sequence types (DNA, RNA, protein) are supported.
- Whether educational resources are integrated into the package or primarily external documentation.
- Exact scope of phylogenetic tree algorithms and formats supported.
- Performance characteristics or scalability limits for large datasets.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 11 — requests, decorator, natsort, numpy, pandas, scipy, h5py, biom-format, statsmodels, patsy, array-api-compat |
| Maintenance | actively maintained — 74 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 143,050/month — #11,186 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: scikit_bio-0.7.3-cp310-cp310-macosx_10_9_x86_64.whl; scikit_bio-0.7.3-cp310-cp310-macosx_11_0_arm64.whl; scikit_bio-0.7.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; scikit_bio-0.7.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; scikit_bio-0.7.3-cp310-cp310-win_amd64.whl; scikit_bio-0.7.3-cp311-cp311-macosx_10_9_x86_64.whl; scikit_bio-0.7.3-cp311-cp311-macosx_11_0_arm64.whl; scikit_bio-0.7.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; scikit_bio-0.7.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; scikit_bio-0.7.3-cp311-cp311-win_amd64.whl; scikit_bio-0.7.3-cp311-cp311-win_arm64.whl; scikit_bio-0.7.3-cp312-cp312-macosx_10_13_x86_64.whl; scikit_bio-0.7.3-cp312-cp312-macosx_11_0_arm64.whl; scikit_bio-0.7.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; scikit_bio-0.7.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; scikit_bio-0.7.3-cp312-cp312-win_amd64.whl; scikit_bio-0.7.3-cp312-cp312-win_arm64.whl; scikit_bio-0.7.3-cp313-cp313-macosx_10_13_x86_64.whl; scikit_bio-0.7.3-cp313-cp313-macosx_11_0_arm64.whl; scikit_bio-0.7.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
biom-formatReads, writes, and manipulates Biological…
permissive · top 15,000 on PyPI
biotiteBiotite provides a unified Python library for…
permissive · top 5,000 on PyPI
edam-ontologyProvides a Python-packaged version of the EDAM…
permissive · top 15,000 on PyPI
deepbiopDeepBioP is a deep learning preprocessing…
permissive · top 15,000 on PyPI
biopythonBiopython provides Python tools for…
unclear · top 5,000 on PyPI
logomakerLogomaker creates customized sequence…
permissive · top 15,000 on PyPI
biocommons.seqrepoSeqRepo stores and retrieves biological…
permissive · top 15,000 on PyPI
bioblendBioBlend provides a Python client library for…
permissive · top 15,000 on PyPI
pyrangesPyRanges provides efficient querying and…
permissive · top 15,000 on PyPI
ete3ETE3 reconstructs, manipulates, analyzes, and…
copyleft · top 15,000 on PyPI