COATIΒΆ
COATI (Cross-Omics Aligned Trajectory Inference) reconstructs continuous developmental trajectories from time-indexed cell-state snapshots. A neural ODE evolves cells in a primary space such as RNA PCA, while a fixed cross-modal map projects the same trajectories into a secondary space such as ATAC LSI.
Observed distributions in both modalities constrain the learned flow. Balanced COATI conserves particle mass; unbalanced COATI additionally learns population growth or depletion. The model keeps the modalities in their own feature spaces instead of merging them into one embedding.
Read the Model formulation and Parameters
import coati as ct
data = ct.TemporalData.from_npz("primary.npz", keys=["t0", "t1"], times=[0., 1.])
result = ct.train_vector_field(data, multimodal=False, balanced=True)
result.plot_trajectory()
For a self-contained CPU example, clone COATI and run examples/run_toy.py. Synthetic-data preparation is maintained in the repository examples, outside the installed package. The API above reads your prepared embeddings. Validation includes synthetic workflows and a short biological temporal-holdout tutorial; it does not establish biological superiority.
Get started
Understand and extend
- Configuration and extension
- Model formulation
- UMAP flow and growth
- Cross-modal maps
- Molecular trajectory readouts
- Python API
- Validation
- Biological temporal holdout
- Original-engine equivalence
- 200-step CPU toy runs
- Interfaces and tutorials
- Scope
- AnnData conventions and UMAP growth
- Gastrulation UMAP dynamics
- Standalone gastrulation map quality
- Lineage molecular readouts
- Cell-type mass accounting
- Mass-weighted secondary kinetic energy
- Fresh Gaussian map and synchronized transport
- BranchSync
- Mouse gastrulation quickstart
- Original Gaussian reference reproduction