Perturb-seq
A Perturb-seq analysis reads each cell's CRISPR guide with its transcriptome, so every cell is an experiment: what its guide's target does to the whole cell, against cells whose guide targets nothing.
Start a Perturb-seq analysis
In a project, click New session and choose Perturb-seq as the kind of analysis. It covers single-cell CRISPR screens of every kind: 10x Feature Barcoding with CRISPR Guide Capture, direct-capture Perturb-seq, CROP-seq, ECCITE-seq's guide library, and knockout, CRISPRi or CRISPRa alike.
What to upload
- Cell Ranger output:
filtered_feature_bc_matrix(folder or.h5) with its CRISPR Guide Capture features. The.h5keeps each guide's target; with a folder, send the run'sfeature_reference.csvtoo, or the guides' names have to say their targets (TP53_2,sgCD274-1andIRF1g3all do). - A table of guide counts beside each sample's matrix, as GEO keeps them (guides by cells): it is paired with the sample whose cell barcodes it shares. A table with no zero in it, every count one more than was counted (Papalexi 2021's), has that one taken off.
- An
.h5ador MuData file with the guide counts in it (MuData's guide modality, as pertpy writes it). - The guides already called: Cell Ranger's
protospacer_calls_per_cell.csvbeside the matrix, a cell table naming each cell's guide, or an object's own column (scPerturb'sperturbation). Guide Calls then takes them as they are.
Control guides are found by their names and targets (non-targeting, safe-targeting, intergenic, scrambled,
the Weissman lab's Gal4, Cell Ranger's Non-Targeting). Without them each perturbation can only be compared with the others, and
most steps need them.
Calling the guides
Every droplet holds a few UMIs of every guide in the pool, from the ambient solution, so a cell carries a guide only when it holds more of it than that explains. Guide Calls fits each guide's UMIs within each sample, as Cell Ranger does by default: on 10x's 1k A375 screen it makes Cell Ranger 8's own calls in all 1,163 cells, and on Papalexi 2021's ECCITE-seq screen, where the ambient guides are many, it agrees with the authors' calls in 86% of the cells. The crispat benchmark (Braunger 2024) found no method best on every screen, so Replogle's Poisson-Gaussian mixture, a fixed UMI threshold and SCEPTRE's top-guide rule are there to compare against.
In a screen of one guide per cell, a cell with guides against two targets is mostly two cells in one droplet, and is left out of the comparisons (marked multiple). A screen that gave cells two guides on purpose, as Norman 2019's did, is recognised by its recurring pairs: its cells keep both targets and Genetic Interactions reads them.
Cells that escaped
Not every cell with a guide loses its target: Cas9 leaves in-frame edits and a guide can fail in a cell. Papalexi 2021 found 20 to 80% of a target's cells unperturbed. Perturbed Cells finds them with Mixscape: on Papalexi's ECCITE-seq screen it calls 79% of the IFNGR2 cells perturbed, against the paper's 74.6%. Every later step can then compare only the cells that were perturbed.
Is it a real effect?
A test on single cells is only as good as its calibration: a Wilcoxon or a t-test on cells calls genes for guides that target nothing. Perturbation DE uses SCEPTRE (Barry 2024), whose resampling keeps it calibrated, and shows its calibration check on every run: the same test on control guides against the other control cells, whose p-values must lie on the diagonal. On 10x's A549 CRISPRi screen it discovered none of 4,574 control pairs, with 4.8% of their p-values under 0.05.
Each perturbation's genes are adjusted as their own list, as a contrast's are in a bulk analysis, so a perturbation that did nothing shows no genes however many the others changed. Adjusted across every pair at once, as SCEPTRE does, the strong perturbations raise the threshold for the rest: on Papalexi's screen the 14 targets with no other sign of an effect showed 21 to 58 genes each. A fold change is read against what the control cells' own model expects of the perturbation's cells.
A perturbation can change many genes a little and pass no single gene's test. Perturbation Strength's energy distance (scPerturb) and Perturbation DE's transcriptome-wide impact (TRADE, Nadig 2025) measure the whole response, the noise of the estimates taken out. The energy distance is read in the principal components of the highly variable genes, as scPerturb reads it, so a response confined to a few other genes can stay below chance there and still show in Perturbation DE.
What the construct and the targets do to the clustering
The construct's own transcripts (dCas9-KRAB, Cas9, the selection and reporter genes, a CROP-seq guide's transcript) vary with how much of the vector a cell expresses, not with its state, so they are left out of the highly variable genes. So are the genes the guides target: a target's own knockdown says which guide a cell carries, not what the guide did to it, and a target knocked down tenfold would otherwise drive a principal component by itself and make a guide that changes nothing else look like a perturbation.
Step reference
| Step | Stage | What it does | You get | Key inputs |
|---|---|---|---|---|
| Initial Plot | Setup | Reads the genes of the cells and the CRISPR guides of the same cells: Cell Ranger's guide capture features (with each guide's target from the feature reference), a separate table of guide counts beside each sample, an .h5ad or MuData that holds them, or the guides already called per cell. | Cells per sample, the guide UMIs in each cell, how clearly one guide leads in each cell, and how evenly the library's guides are spread over the cells. | None. |
| Guide Calls | QC | Which guides each cell carries, against the ambient guides every droplet holds, and each cell's perturbation: its guides' target, a control, or left out (guides against two targets in a screen of one guide per cell are mostly two cells in a droplet). A screen that gave cells two guides by design is recognised by its recurring pairs, and its cells keep both targets. | Guides per cell in each sample, the cells each perturbation has, and four guides' UMIs with the threshold drawn. | Call guides by Cell Ranger's mixture (default), Replogle's mixture, a UMI threshold, the cell's top guide, or as uploaded. Minimum UMIs. Guides per cell: automatic (default), one, or two by design. |
| Knockdown | QC | How much of its own target's mRNA each guide leaves, against the control cells, per target and per guide, with a rank-sum test. A target that fewer than 5% of control cells express cannot show a knockdown, and a Cas9 knockout can work and leave its target's mRNA in place. | Each target's mRNA left as a share of the control level, and each guide's knockdown against the cells it has, the guides that did not lower their target named. | The screen lowers (CRISPRi, knockout) or raises (CRISPRa) its targets, or automatic. Fewest cells. |
| Perturbed Cells | Analysis | Which cells with a guide were really perturbed (Mixscape) and how strongly (Mixscale). Each cell is set against its 20 nearest control cells, so what it shares with them (cycle phase, state, sample) cancels; a target's cells are then split into those that moved away from the controls and those that escaped. | The share of each target's cells perturbed, the split for the targets whose cells divide most evenly, and the perturbed cells of each target on Mixscape's discriminants. | Control neighbours (20). Principal components (15). Fewest changed genes for a target (5). Neighbours within each sample (default) or across all. |
| Perturbation Strength | Analysis | How far each perturbation moved the cells from the control cells, scPerturb's energy distance in PCA space, and the E-test: whether that is more than chance, by shuffling the labels within each sample. | Each perturbation's distance (red beyond chance), the distance against its cells, and against the share of its cells perturbed. | Every cell with the guide, or only the cells found perturbed. Principal components. Fewest cells. |
| Perturbation DE | Analysis | The genes each perturbation changed, by SCEPTRE's calibrated test, each perturbation's genes adjusted as its own list, with the test's check on control guides against the other control cells, and each perturbation's transcriptome-wide impact (TRADE). | The calibration on control pairs, the genes each perturbation changed, the impacts, and volcanoes. | Perturbations (none ticked: all). Every cell with the guide, or only the perturbed ones. Genes tested: every gene in 5% of cells (default) or the highly variable genes. Fewest cells. |
| Perturbation Map | Analysis | Groups the perturbations by the response they cause, as Replogle 2022 found complexes and pathways: each perturbation's expression z-scored to the control cells of its own sample, correlated over the genes that respond, grouped, mapped, and the gene programmes that move together across them. | The perturbations' correlations grouped, the map of them, and each perturbation on each gene programme. | Every cell with the guide, or only the perturbed ones. Perturbations with a response (default: beyond chance in the E-test, or 10 genes changed or more in Perturbation DE), or all. Fewest cells. |
| Cell State Shifts | Analysis | Which perturbations move cells from one state (a cluster, a cell type) to another, against the control cells, tested by shuffling the labels within each sample. | Each state's enrichment in each perturbation's cells, and how far each perturbation moved the cells. | Cell states. Every cell with the guide, or only the perturbed ones. Fewest cells. |
| Genetic Interactions | Analysis | For a screen of two guides per cell by design: each pair's response fitted as a mix of its two singles' (Norman 2019), and read as stronger than both (synergy), weaker (buffering), dominated by one (epistasis), or new. | Every pair by magnitude and model fit, coloured by dominance, and the pairs furthest out against their fitted singles. | Every cell with the guides, or only the perturbed ones. Fewest cells. |