nicolas-lynn/norman-perturb
Norman 2019 CRISPRa K562 perturbation atlas CRISPRa (gene activation) in K562 chronic myeloid leukemia cells. Single-cell expression in log-normalized counts. Generated 2026-06-08 as one of three companion atlases (Norman, Replogle, VCC). File schema (each config / single-config repo) File Shape Description pseudobulks.h5ad (50, n_genes) 50 control pseudobulks (15 cells each, log-normalized means). Cell-type-specific baseline. coexpression.h5ad… See the full description on the dataset page: https://huggingface.co/datasets/nicolas-lynn/norman-perturb.
Norman 2019 CRISPRa K562 perturbation atlas
CRISPRa (gene activation) in K562 chronic myeloid leukemia cells. Single-cell expression in log-normalized counts.
Generated 2026-06-08 as one of three companion atlases (Norman, Replogle, VCC).
File schema (each config / single-config repo)
Generation pipeline
For each perturbation in the source experiment:
- Per-cell target QC filter — keep only cells in which the target gene moved at least 50% in the expected direction:
- Raw-count datasets (Norman, VCC):
cell_norm_target >= 1.5 * mean_ctrl_norm_target(CRISPRa) or<= 0.5 * mean_ctrl_norm_target(CRISPRi). - z-scored data (Replogle):
cell_target_z <= -1.0(≥ 1 SD below pop mean). - Combinatorial perturbations require all listed targets to pass.
- Drop perturbations with fewer than 15 cells passing the filter.
- Build 50 perturbation pseudobulks of 15 cells each from the filtered pool (sum of counts for raw-count datasets; mean of z for z-scored).
- Build 50 control pseudobulks the same way (no target filter).
- Test DE per gene:
- DESeq2 (negative-binomial Wald test, via pyDESeq2) on count pseudobulks.
- Welch's t-test on z-scored pseudobulk means.
- BH-adjust the per-perturbation p-values to give
de_padj.
Coexpression matrix is Pearson correlation across all cells in the source h5ad (perturbed + control combined), after log-normalization (raw-count sources) or directly on z-values (Replogle).
Caveats
- Pseudobulks are random subsamples from one cell pool, not independent biological replicates. P-values are anticonservative for strict FDR claims. The effect sizes (log2FC / z-difference) and DE-gene rankings are robust; use those for downstream modeling and treat p-values as a ranking aid rather than a calibrated false-discovery rate.
- The per-cell target QC filter selects the subpopulation in which the perturbation strongly landed. That subpopulation typically also has a broader cell-state shift, so DE counts will exceed what you would see on the unfiltered population. Compare
perturbation_deltas(no filter) againstde_log2fc(filtered) to gauge that bias. - Native effect units differ across atlases (log2FC for Norman/VCC; z-difference for Replogle).
perturbation_zscores.parquetis the unit-free standardization (delta / control pseudobulk SD).
Source
Norman, T.M. et al. Exploring genetic interaction manifolds constructed from rich single-cell phenotypes. Science 365, 786-793 (2019).
Citation
If you use this dataset, please also cite the source paper above.
