Adaptive mitochondrial filtering for robust single-cell RNA sequencing quality control
Project description
MitoChontrol
Clustering-aware mitochondrial RNA thresholding for single-cell RNA-seq quality control.
MitoChontrol uses per-cluster naive Bayes modeling to identify tissue- and cell-type-specific mtRNA thresholds, replacing the conventional fixed 10 % cutoff with data-driven, probability-based filtering.
Installation
pip install mitochontrol
Or install from source:
git clone https://github.com/uttamLab/mitochontrol.git
cd mitochontrol
pip install -e .
Quick start
Cluster-aware pipeline
The recommended workflow clusters the data first, then applies per-cluster thresholds:
import scanpy as sc
from mitochontrol import clustering, mtctrl_with_clustering
adata = sc.read_h5ad("sample.h5ad")
# Step 1 — cluster
result = clustering(adata, label="Sample1", outdir="output")
# Step 2 — threshold per cluster
thresholds = mtctrl_with_clustering(
adatas={"Sample1": result},
outdir="output",
threshold_probs=(0.8,),
)
adata_out = thresholds["Sample1"]["adata"]
Single-cluster pipeline
For pre-isolated populations or quick exploration:
from mitochontrol import mtctrl_without_clustering
stats = mtctrl_without_clustering(
adata,
sample_id="Sample1",
outdir="output",
)
Optional cell-type annotation
If marker genes are available, clustering() can assign cell types
automatically:
result = clustering(
adata,
label="Sample1",
outdir="output",
marker_genes="markers.csv", # or a {celltype: [genes]} dict
)
Output layout
Both pipelines write results under outdir:
outdir/
├── clustered/
│ ├── adata/Sample1.h5ad
│ ├── umap/Sample1.pdf
│ ├── res_selection/Sample1.pdf
│ ├── DEG/Sample1.csv
│ └── celltype_labels/Sample1.csv
└── mitochontrol/
├── adata/Sample1.h5ad
├── cluster_overlays/Sample1.pdf
├── threshold/Sample1_cluster0_0.8.pdf
├── enrichment/Sample1_cluster0_0.8.pdf
├── filtered_umap/Sample1_cluster0_0.8.pdf
└── threshold_stats.csv
The single-sample pipeline mtctrl_without_clustering does not write
cluster overlays or filtered UMAPs; it saves mt-vs-UMI scatters under
mitochontrol/scatter/ (initial plot plus one threshold-colored file per
probability).
Tutorial
A step-by-step Jupyter notebook is included in
MitoChontrol_tut.ipynb,
demonstrating both the clustered and single-cluster workflows with
heuristic overrides and result visualization.
Citation
If you use MitoChontrol in your research, please cite the associated publication:
Strassburg et al. (2026). MitoChontrol: Adaptive mitochondrial filtering for robust single-cell RNA sequencing quality control. Journal, volume, pages. doi:XXXX
BibTeX:
@article{strauss2026mitochontrol,
title = {MitoChontrol: Adaptive mitochondrial filtering for
robust single-cell RNA sequencing quality control},
author = {Strassburg, C. M. and others},
journal = {Journal},
year = {2026},
doi = {XXXX}
}
License
BSD 3-Clause License. See LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mitochontrol-0.1.0.tar.gz.
File metadata
- Download URL: mitochontrol-0.1.0.tar.gz
- Upload date:
- Size: 1.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4bef9a8bb918e231ea600c57fd1d5b0608e39b9a9c0b3b931df141750d592437
|
|
| MD5 |
62c9109967739d665a809cfe70d39443
|
|
| BLAKE2b-256 |
6cf3435a9048b598e26ae7b0438e55ce4da77367bab38f5ac37fcaa21925b3b8
|
File details
Details for the file mitochontrol-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mitochontrol-0.1.0-py3-none-any.whl
- Upload date:
- Size: 59.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c141bc2df8f3a7784ec95931578e68426959284ad6a20e3f0706e9f18a5249d2
|
|
| MD5 |
7f76eef5d6fde596779e0c3034cb0c61
|
|
| BLAKE2b-256 |
c74e5ecd90546612342de3cdd657294bbd4db2a625665087bf7a2e598520e310
|