How lotfollahi-lab/perturbgen works
PerturbGen is a single-cell generative model for predicting perturbation effects along cellular trajectories. Its principal workflow curates and tokenizes transcriptomes, trains a masking encoder and trajectory/count model, then applies in-silico perturbations to predict downstream states. The README also describes cell/gene embeddings, context-specific gene-program discovery, and perturbation atlases (PIPs). These are represented as product capabilities, but their detailed implementation paths are not established by the excerpts. The SOURCE INDEX supports the main training, model, and data-module relationships; unsampled analysis links are documented at capability level only.
Main entry points: perturbgen/train.py Trajectory training entry · trainer.py Perturbation engine · val.py Perturbation inference · scmaskgit/train.py Masking training entry
Components 24
Cohort preparation
- Transcriptome cohort
pretraining_cohort - Cohort harmonization
pretraining_cohort/preprocessing/harmonize_bronze_to_silver.py - Cohort tokenization
pretraining_cohort/tokenization/tokenization.py - Gene tokenization
perturbgen/pp/GF_tokenisation.py - Token utilities
perturbgen/pp/tokenizer.py
Masking pretraining
- Masking data loader
scmaskgit/Dataloaders/datamodule.py - Masking transformer
scmaskgit/Modules/T_model.py - Masking trainer
scmaskgit/Model/trainer.py - Masking training entry
scmaskgit/train.py
Trajectory modeling
- Trajectory data loader
perturbgen/Dataloaders/datamodule.py - Trajectory transformer
perturbgen/Modules/transformer.py - Trajectory trainer
perturbgen/Model/trainer.py - Trajectory training entry
perturbgen/train.py - Python model API
perturbgen/model.py
Perturbation inference
- Perturbation engine
perturbgen/Perturb/trainer.py - Perturbation transformer
perturbgen/Perturb/transformer.py - Perturbation inference
perturbgen/Perturb/val.py - Predicted cell states
perturbgen/src/utils.py
Biological analysis
- Embedding analysis
perturbgen/model.py - Gene program discovery
- PIP atlas analysis
- Prediction metrics
perturbgen/src/metric.py
Other components
- Researcher
- Weights & Biases
Connections 29
- Researcher → Transcriptome cohort: provides data
- Transcriptome cohort → Cohort harmonization: curated by
- Cohort harmonization → Cohort tokenization: precedes tokenization
- Cohort tokenization → Gene tokenization: tokenizes cells
- Gene tokenization → Token utilities: uses
perturbgen/pp/GF_tokenisation.py - Researcher → Masking training entry: starts training
- Masking training entry → Masking data loader: loads batches
scmaskgit/train.py - Masking training entry → Masking trainer: configures training
scmaskgit/train.py - Masking trainer → Masking transformer: trains
scmaskgit/Model/trainer.py - Masking transformer → Trajectory transformer: encoder reference
perturbgen/Modules/transformer.py - Researcher → Trajectory training entry: starts training
- Trajectory training entry → Trajectory data loader: loads batches
perturbgen/train.py - Trajectory training entry → Trajectory trainer: configures training
perturbgen/train.py - Trajectory trainer → Trajectory transformer: trains
perturbgen/Model/trainer.py - Researcher → Python model API: uses model API
perturbgen/model.py - Python model API → Trajectory training entry: invokes training
perturbgen/model.py - Python model API → Perturbation inference: invokes inference
perturbgen/model.py - Perturbation inference → Trajectory data loader: loads input data
perturbgen/Perturb/val.py - Perturbation inference → Perturbation engine: configures inference
perturbgen/Perturb/val.py - Perturbation engine → Trajectory trainer: inherits count decoder
perturbgen/Perturb/trainer.py - Perturbation engine → Perturbation transformer: applies intervention
perturbgen/Perturb/trainer.py - Perturbation engine → Predicted cell states: writes predictions
perturbgen/Perturb/trainer.py - Predicted cell states → Prediction metrics: evaluated against data
- Researcher → Embedding analysis: requests embeddings
- Embedding analysis → Gene program discovery: supports discovery
- Predicted cell states → PIP atlas analysis: aggregated into PIPs
- Researcher → PIP atlas analysis: analyzes perturbations
- Trajectory training entry → Weights & Biases: logs runs
- Perturbation inference → Weights & Biases: logs inference