Skip to main content
MiTo

MiTo (Mitochondrial single-cell lineage tracing Toolkit)

Mitochondrial single-cell multi-omics in Python.

PyPI Python Tests Documentation License: MIT

MiTo infers clonal ancestries in single-cell data from natural mtDNA variation.

The framework provides the infrastructure to convert MAESTER, scmtATAC-seq and RedeeM pre-processing outputs into Allele Frequency Matrices (i.e., AnnData objects), filter informative mtDNA variants, genotype individual cells, and infer mitochondrial phylogenies and clones for downstream multi-omic analysis.

Versions. This README documents MiTo 1.0.0, the stable release of the original MiTo API, the one used for the analyses of the MiTo paper. MiTo 2.x has a redesigned API and one pipeline for MAESTER, ReDeeM and mtscATAC: see the current documentation. To stay on this release, use pip install "scmito<2". See CHANGELOG.md.

Installation

pip install scmito

Requires Python 3.11+.

import mito as mt
print(mt.__version__)

Quick start

import scanpy as sc
import mito as mt

# Allele Frequency Matrix (cell x site AnnData with AD / DP layers)
afm = sc.read('afm_unfiltered.h5ad')

# Cell and variant filters, distances in mtDNA mutation space
afm = mt.pp.filter_cells(afm, cell_filter='filter2')
afm = mt.pp.filter_afm(afm, filtering='MiTo')

# Phylogeny and clonal inference
tree = mt.tl.build_tree(afm, precomputed=True, solver='UPMGA')
annotator = mt.tl.MiToTreeAnnotator(tree)
annotator.clonal_inference()

# Visualization
mt.pl.plot_tree(tree, features=['MiTo clone'])

See getting-started tutorial for the full vignette.

API

MiTo follows the scverse layout, composing with scanpy and anndata:

Module Purpose
io Build AFMs from pre-processing outputs, read/write Newick tree objects
pp Cell and variant filtering, genotyping, distances, kNN graphs, embeddings
tl Tree building, clonal inference, clustering, fate bias
pl Trees, heatmaps, embeddings, coverage and variant-spectrum plots
ut Metrics, helpers

Supported platforms: scRNA-seq (MAESTER), scmtATAC-seq and 10x MultiOme (RedeeM).

Full reference: MiTo docs.

Reproducing the paper

The paper analyses run with MiTo 1.0.0, using the conda recipe in MiTo_benchmark_repro (envs/environment.yml, which installs scmito==1.0.0 and the additional libraries the scripts need).

The Nature Communications release is 0.1.5. 1.0.0 differs from it in one way that matters for these analyses: mt.pp.kNN_graph(from_distances=True) returns the k nearest neighbours, where 0.1.5 returned every other cell. kNN-based quantities (kNN purity, entropy and kBET, UMAP embeddings, Leiden clustering on distances) therefore differ from the published ones. In the comparison we ran against the deposited tuning table, distance- and tree-based metrics (AUPRC, ARI, NMI) were identical. See CHANGELOG.md.

Development

git clone https://github.com/andrecossa5/MiTo.git
cd MiTo
pip install -e ".[test]"
pytest

Citation

If MiTo is useful in your work, please cite:

Cossa, A. Dalmasso A. et al. MiTo: mitochondrial lineage tracing and single-cell multi-omics. Nat Comm (2026). https://doi.org/10.1038/s41467-026-71607-5

MiTo builds on the Cassiopeia package for phylogeny reconstruction and data infrastructure. Please, cite it as well.

Releases

See CHANGELOG.md.

License

MIT — see LICENSE.

Metadata

Release files for scmito 1.0.0

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

Source distribution (sdist)

Source distribution for scmito 1.0.0
File Size Uploaded
scmito-1.0.0.tar.gz 1.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for scmito 1.0.0
File Interpreter ABI Platform
scmito-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 3.2 MB

Release files / scmito-1.0.0.tar.gz

Download URL scmito-1.0.0.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
69d774079edbac552373dc22baa0adf55847bdb9fbc040ec454edcab6d3d53fd
BLAKE2b-256 checksum
How to use checksums
ecc5bedfd700aecd0283a76597068c84d6bd543300f819a402480af71df509ce
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 Oct 16, 2026.

Transparency log

Release files / scmito-1.0.0-py3-none-any.whl

Download URL scmito-1.0.0-py3-none-any.whl
Size 1.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
55398a668b675d5711e355e01595c4d246daa7118aba147dee6c90ec4fa043f3
BLAKE2b-256 checksum
How to use checksums
3e482164d636fb07238dbcb225b3af007c884fa788291a0157325fc1641c2fcc
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 Oct 16, 2026.

Transparency log

Release history Release notifications | RSS feed

1.0.2

2 release files

This release

1.0.0 This release

2 release files

0.2.1

2 release files

0.2.0

2 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