Skip to main content

bonsai-rs

Tree representations of single-cell data under Brownian motion. Python bindings for the bonsai-rs crate, a clean-room implementation of Bonsai (de Groot et al., Nature Biotechnology 2026, doi 10.1038/s41587-026-03220-2).

Raw UMI counts in, tree out. Sanity runs first, also in Rust, so the error bars Bonsai needs come from the counts rather than from nowhere.

Install

uv pip install bonsai-rs            # numpy only; dense counts
uv pip install "bonsai-rs[sparse]"  # adds scipy, for sparse counts

Wheels for Python 3.10 and up on Linux x86_64 and macOS.

Use

import bonsai_rs as bs

res = bs.bonsai_from_counts(counts, cell_totals=totals)  # cells x genes

res.tree  # parent array, branch lengths, leaf count
res.node_means  # posterior position of every node, ancestors too
xy = bs.layout(res.tree)  # (n_nodes, 2), edges run node -> parent
newick = bs.to_newick(res.tree, labels=cell_names)

cell_totals is each cell's UMI total over all genes. Leave it out and the row sums are used, which is only right when counts holds every gene.

Already have means and standard deviations? bs.bonsai(means, sds).

Docs

gregorlueg.github.io/bonsai-rs: quickstart, the Sanity handover and its sharp edges, and the API reference.

Development

uv sync
uv run maturin develop --release
uv run pytest
uv run --group docs mkdocs serve

Licence

MIT. Built from the paper and its CC-BY-4.0 Supplementary Information only; see PROVENANCE.md in the repository. Cite the paper.

Release files for bonsai-rs 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for bonsai-rs 0.1.0
File Interpreter ABI Platform
bonsai_rs-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
bonsai_rs-0.1.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
bonsai_rs-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 3.9 MB

Release files / bonsai_rs-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL bonsai_rs-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.5 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
df05d77c1ffcc0f6421aae1acd7bcafc7a12c89d33d94016b8537d24391f83d9
BLAKE2b-256 checksum
How to use checksums
435b53ed4ebc25369ddc66294c9a9f1324508a3fe12a92341d1f9ab9e994f98d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / bonsai_rs-0.1.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL bonsai_rs-0.1.0-cp310-abi3-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
10c6db36c180352fb573ff481252e7a946518ca8b3f2b053bad470f6904a838e
BLAKE2b-256 checksum
How to use checksums
709047ed174bab93f3dd63f4b4d849943c28b802d6eacecc17a032a7a99d5c1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / bonsai_rs-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl

Download URL bonsai_rs-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl
Size 1.3 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
21819a433ad20e9a3788753f0172d68edb7e41373528478eaa05add9881cf28c
BLAKE2b-256 checksum
How to use checksums
dd3ce2235626c0121db53b057021bd10484288eb6da49d2bb05bfbb9e7318ec1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.1

3 release files

This release

0.1.0 This release

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page