Intron
This project analyzed an in-vivo single-cell CRISPR Perturb-seq screen of tumor-infiltrating CD8 T cells (Zhou et al.
Core trick
Integrates 16 scVI-corrected Perturb-seq samples, calls single guides per cell, and benchmarks GEARS against linear and mean baselines on held-out perturbations.
Tags
Description
This project analyzed an in-vivo single-cell CRISPR Perturb-seq screen of tumor-infiltrating CD8 T cells (Zhou et al. 2023, GEO GSE216909 — 16 samples, 180 transcription-factor knockouts plus non-targeting controls) to map which TFs steer CD8 differentiation toward or away from exhaustion, and to test whether that regulatory logic can be predicted computationally. Starting from raw 10x matrices, I called single guides per cell, integrated all 16 samples with scVI, gated to 89,754 CD8 T cells, and annotated their differentiation states, then reproduced the paper's regulatory-network analysis (MIMOSCA elastic-net regression yielding a TF×gene coefficient matrix, co-functional modules, and gene programmes) and cross-validated it with the pertpy framework (Mixscape, E-distance, Augur). Finally, I benchmarked in-silico perturbation prediction, comparing simple linear/mean baselines against the GEARS deep model. The analysis identified Ikzf1 as the dominant regulator — its knockout retains cells in the progenitor-exhausted state and has the broadest transcriptional footprint (~900 genes) — while Tcf7, Egr2, and Bhlhe40 knockouts drive terminal exhaustion along the opposite axis. Notably, the deep-learning model failed to beat trivial baselines at predicting held-out perturbations, reproducing the central finding of Ahlmann-Eltze et al. 2025. This matters because it pinpoints candidate TFs for reprogramming exhausted T cells — a central goal for improving cancer immunotherapy — while providing a sober, quantitative benchmark showing that current in-silico perturbation models are not yet reliable for predicting the effects of unseen genetic perturbations in this in-vivo setting.
In-tron/Perturb_seq_tumor_infiltrating_CD8★ 00 forksJupyter NotebookMITCreated Jul 13, 2026 · last push Jul 13, 2026
README excerpt
# CD8 Perturb-seq regulome
TF regulomes of CD8 T-cell exhaustion from an **in-vivo single-cell CRISPR
Perturb-seq** screen of tumor-infiltrating CD8 T cells (Zhou et al. 2023,
*Nature*; GEO **GSE216909**, 16 samples, 180 TFs × 4 guides + 80 non-targeting
controls).
The pipeline reproduces the regulatory-network analysis of Zhou et al. Fig 1,
applies the MIMOSCA (Dixit et al. 2016) and pertpy (Heumos et al.) frameworks,
and benchmarks in-silico perturbation prediction (Ahlmann-Eltze et al. 2025:
linear/mean baselines vs the GEARS deep model).
This repository is **fully self-contained** — each analysis stage is a
standalone Jupyter notebook with all helper code inlined (no external framework
required), and the stages are orchestrated by **Nextflow**.
## Pipeline
```
data/raw (16 CellRanger samples + feature_reference.csv)
│
┌────▼─────────────────────────────────────────────┐
│ 01_perturbseq_processing.ipynb │ guide calling · QC ·
│ → cd8_all16_scvi_processed.h5ad │ scVI integration ·
└────┬──────────────┬─────────────────┬────────────┘ CD8 gating · states
│ │ │
┌────▼────┐ ┌─────▼─────┐ ┌──────▼──────────┐
│02_mimosca│ │03_pertpy │ │04_insilico │
│ Zhou Fig1│ │ Mixscape │ │ linear/mean vs │
│ β,modules│ │ E-distance│ │ GEARS (optional)│
│ GSEA │ │ Augur │ │ │
└──────────┘ └───────────┘ └───────────