CytoOne
A unified probabilistic framework for CyTOF data
CytoOne is a single, coherent Bayesian deep generative model for mass cytometry (CyTOF) data. Rather than chaining together task-specific tools — each with its own, sometimes conflicting, distributional assumptions — CytoOne performs batch effect correction, differential expression analysis, and visualization / dimension reduction within one model trained end-to-end.
It pairs a hierarchical latent architecture inspired by the Nouveau Variational Autoencoder (NVAE) with a purpose-built quasi zero-inflated softplus-normal (QZIPN) likelihood tailored to the sparse, noisy nature of CyTOF measurements.
Get started
conda + pip, building from source, or the install-free Docker / Apptainer container for shared servers.
Train CytoOne on the bundled example data and get an embedding in a couple of minutes.
Exactly what the cell-by-marker matrix and metadata should look like.
Step-by-step walk-throughs with the expected output of every step.
What each knob does and how changing it affects your results.
Symptoms, causes, and fixes for the issues users hit most.
How CytoOne fits a typical analysis
Instantiate a
cytooneobject, telling it how your data are scaled (normalize,zero_inflated) and which metadata columns to use.Import your cell-by-marker matrix and (optionally) per-cell metadata.
Train with stochastic variational inference until the reconstruction loss stabilizes.
Infer — a single
infer()call serves visualization, batch correction, and differential expression.Save / reload the trained model for later reuse.
See the interactive tutorial for the full flow with outputs, or the CLI tutorial for the one-command version.