QuantNado¶

QuantNado converts BAM-, bedGraph-, and VCF-derived assays into Zarr-backed stores and gives you one analysis API for region queries, feature reduction, counting, normalisation, PCA, plotting, and peak calling.
Current Workflow¶
- Run
quantnado dataset createonce per sample to build per-sample.zarrstores. - Optionally run
quantnado dataset combineto merge those stores into a single multi-sample.zarr. - Open the dataset with
QuantNado.open(...)orQuantNadoDataset(...).
Supported Assays¶
| Assay | Inputs | Typical array keys |
|---|---|---|
ATAC, ChIP, CUT&TAG |
BAM | atac, chip_<ip>, cat_<ip>, coverage |
MCC |
BAM | viewpoint-specific arrays |
METH |
BAM + methylation bedGraph | methyl_pct, n_methylated, n_total, coverage |
RNA |
BAM | rna_fwd, rna_rev, coverage |
SNP |
VCF.gz | GT, AF, DP, MQ, coverage |
Minimal Example¶
quantnado dataset create \
--sample Sample-1 \
--assay ATAC \
--bamfile /data/ATAC-Sample-1.bam \
--output-dir dataset \
--chromsizes hg38.chrom.sizes
quantnado dataset create \
--sample Sample-1_H3K27ac \
--assay ChIP \
--bamfile /data/Sample-1_H3K27ac.bam \
--ip H3K27ac \
--output-dir dataset
quantnado dataset combine \
--stores dataset/Sample-1.zarr dataset/Sample-1_H3K27ac.zarr \
--output dataset/combined.zarr
from quantnado import QuantNado
qn = QuantNado.open("dataset/combined.zarr")
region = qn.sel("chr21", 36_000_000, 36_010_000)
signal = qn.reduce("promoters.bed", reduction="mean", modality="coverage")
matrix, features = qn.quantify_signal("genes.gtf", feature_type="gene", assay="RNA", modality="coverage")
qn.group_by(
ip="ip",
treatment={"control": ["control"], "treated": ["treated"]},
match="contains",
)
qn.info
Key Concepts¶
- A dataset can be either a directory of per-sample
.zarrstores or a combined.zarr. assayfilters samples by biological type such asRNAorATAC.modalityselects a concrete array key such ascoverage,rna_fwd, orchip_h3k27ac.group_by()caches reusable sample-group namespaces, andsubset()can intersect assay, sample, IP, and group filters.- Most analysis methods return xarray objects, so they stay lazy until you compute or plot.
reduce()returns anxr.Dataset,extract()returns anxr.DataArray,quantify_signal()returns a pandas feature matrix plus metadata from stored signal, andcount_features()reserves room for backend-specific counting semantics.