Published April 25, 2026
| Version v2.0.0
Software
Open
slowkow/harmonypy: v2.0.0
Authors/Creators
- 1. Mass General Brigham
- 2. Broad Institute of MIT and Harvard
- 3. Seqera
Description
Complete rewrite with C++ backend (Armadillo + nanobind), matching the R harmony2 package step-by-step.
Highlights
- ~10x faster than v0.1.0: 858k cells in ~36s on Apple M1 Ultra (vs ~340s previously)
- Matches R harmony2: correlation ≥0.998 across all PCs
- Minimal dependencies: only
numpyat runtime - Pre-built wheels for Linux (x86_64, aarch64) and macOS (x86_64, arm64), Python 3.9–3.13
New
- C++ backend with BLAS-accelerated dense matrix ops (Accelerate on macOS, OpenBLAS on Linux)
- Custom scatter/gather kernels replace all sparse matrix operations
- K-means initialization matches R exactly (Gumbel-max cosine-distance sampling)
ncoresparameter to control BLAS thread countbatch_prop_cutoffparameter for underrepresented batch handling- Arrowhead matrix inverse for fast single-covariate correction
- Accepts pandas DataFrame, dict of arrays, or NumPy array for
meta_data - C++ progress messages routed through Python
loggingfor proper integration with downstream packages (thanks @yakirr)
Breaking changes
lambdefaults to automatic estimation (was fixed1). Passlamb=1for old behavior.- Default parameters changed to match R harmony2:
max_iter_kmeans20→4,epsilon_cluster1e-5→1e-3,epsilon_harmony1e-4→1e-2 - Only
numpyrequired at runtime (previously pandas, scipy, scikit-learn)
See CHANGELOG.md for full details.
Files
slowkow/harmonypy-v2.0.0.zip
Files
(93.7 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:b684ea53d713cf7c5ccb1c467286bbec
|
93.7 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/slowkow/harmonypy/tree/v2.0.0 (URL)
Software
- Repository URL
- https://github.com/slowkow/harmonypy