How ivysun14/project-perturb works
This repository is a research benchmark for classifying differential-expression outcomes in single-cell perturbation data, with eight alternative methods and post-prediction calibration. The documented data workflow is DE-label generation, train/test splitting, and an optional calibration split; model-specific training and prediction scripts then produce results for analysis. The README establishes the broad benchmark and calibration relationships, while sampled source confirms selected implementation links. Many method-specific internals are unsampled, so the graph keeps those branches at their documented subsystem level.
Main entry points: calibration_split.py Calibration split · scouter_train_full.py Scouter · DE_DOC_stats.py DE label calling · train_test_split.py Train/test splits
Components 20
Data preparation
- Perturbation data
- DE label calling
majority_vote/DE_DOC_stats.py - Train/test splits
majority_vote/train_test_split.py - Calibration split
majority_vote/calibration_split.py
Classification methods
- Majority vote
majority_vote/majority_transfer_full.py - KNN classifier
KNN_vote/knn_classifier.py - Logistic regression
logistic_reg/logistic_reg.py
Expression models
- Scouter
Scouter/scouter_train_full.py - TranScouter
TranScouter/step2_train_full.py - STATE
STATE/step2_train_full.py - Perturbation VAE
VAE/main.py - scVI
scVI/scVI_src/models/scvi/_model.py
Calibration
- Sparsity calibration
calibration/calibrate_sparsity.py - Variance calibration
calibration/var_calibration/calibrate_var.py - DE logreg calibration
calibration/logreg_calibration/calibrate_de_logreg_within.py
Analysis
- Model predictions
- Benchmark metrics
perturb_metrics.py - Error analysis
majority_vote/error_utility.py - Exploratory analysis
EDA/plot_model_prediction_eda.py
Other components
- Researcher
Connections 27
- Researcher → DE label calling: runs
README.md - Perturbation data → DE label calling: tests for DE
README.md - DE label calling → Train/test splits: labels perturbations
README.md - Train/test splits → Calibration split: carves calibration set
README.md - Calibration split → Majority vote: supplies split data
README.md - Calibration split → KNN classifier: supplies split data
README.md - Calibration split → Logistic regression: supplies split data
README.md - Calibration split → Scouter: supplies split data
README.md - Calibration split → TranScouter: supplies split data
README.md - Calibration split → STATE: supplies split data
README.md - Calibration split → Perturbation VAE: supplies split data
README.md - Calibration split → scVI: supplies split data
README.md - Majority vote → Model predictions: produces
README.md - KNN classifier → Model predictions: produces
README.md - Logistic regression → Model predictions: produces
README.md - Scouter → Model predictions: produces
README.md - TranScouter → Model predictions: produces
README.md - STATE → Model predictions: produces
README.md - Perturbation VAE → Model predictions: produces
README.md - scVI → Model predictions: produces
README.md - Model predictions → Sparsity calibration: calibrates zeros
calibration/calibrate_sparsity.py - Model predictions → Variance calibration: calibrates variance
README.md - Model predictions → DE logreg calibration: calibrates DE
README.md - Model predictions → Benchmark metrics: evaluated by
perturb_metrics.py - Model predictions → Error analysis: analyzed for errors
majority_vote/error_utility.py - Model predictions → Exploratory analysis: visualized by
EDA/plot_model_prediction_eda.py - Scouter → Benchmark metrics: metric calls