scikit-bio
Bioinformatics data structures and algorithms
scikit-bio spent two years turning a NumPy library into an array-API-native one.
◆Recent moves
- 2mo ago
0.7.3: array API and GPU support go library-wide
⚡ SPARKThe GPU work that started as a compositional-arithmetic special case in 0.7.0 becomes a global mechanism built on the Python array API standard — the arc this library has been building toward for two years. The release also adds mmvec for microbe-metabolite co-occurrence and rclr for compositional transforms, accelerates the minimum-evolution phylogenetics algorithms, and cuts import time.
View source ↗ - 6mo ago
0.7.2: condensed distance matrices halve memory for permanova and mantel
permanova and mantel can now operate directly on condensed DistanceMatrix objects, cutting memory in half and removing conversion overhead — the practical payoff of the matrix class hierarchy introduced in 0.7.1. New jc69 and k2p evolutionary distance metrics, an align_dists function, PHYLIP distance-matrix reading, and OrdinationResults plotting round it out. The release also flags that the metadata module still needs a refactor before pandas 3.0.
View source ↗ - 9mo ago
scikit-bio 0.7.1.post1
A packaging-only release: the 0.7.1 source distribution would not build against Python 3.14, and Windows ARM64 wheels are now built natively. No library changes.
View source ↗ - 9mo ago
0.7.1: native ANCOM-BC and a three-tier distance matrix hierarchy
Brings ANCOM-BC into scikit-bio as a native Python implementation, removing a reason to leave the library for differential abundance testing. Underneath, distance matrices are restructured into PairwiseMatrix, SymmetricMatrix and DistanceMatrix with optional condensed storage — the groundwork 0.7.2 then spends on halving permanova and mantel memory.
View source ↗ - 1y ago
0.7.0: optional C++ acceleration, GPU tensors, and native Polars/PyTorch/JAX interop
⚡ SPARKThe release that set the direction the 0.7 series has followed since: scikit-bio-binaries as an optional C++ extension for very large datasets, GPU-resident tensors handled without round-tripping through CPU, and native support for Polars, Anndata, PyTorch and JAX alongside pandas. pair_align, phylomix data augmentation, and dirmult_lme arrived in the same cut.
View source ↗ - 1y ago
0.6.3: phylogenetics module rebuilt for very large trees
A large release under a small version number, concentrated on skbio.tree: TreeNode optimized for very large phylogenies, expanded Robinson-Foulds and cophenetic distance variants, and optimized minimum-evolution and neighbor-joining reconstruction. Reproducibility also improves — every stochastic algorithm now accepts a seed or generator — which becomes table stakes for the acceleration work that follows.
View source ↗