Note
Mental model.
| Tool | Ecosystem | Approach |
|---|---|---|
| Harmony | R / Py | Iterative soft-clustering in PC space |
| Seurat CCA / RPCA | R | Anchor-based cross-sample matching |
| scVI / scANVI | Python | Variational autoencoder |
| BBKNN | Python | Batch-balanced k-NN graph |
| MNN / fastMNN | R / Py | Mutual nearest neighbors |
Tip
Rule of thumb:
ifnb dataset (CTRL vs IFN-β-stimulated PBMCs) — the canonical small two-sample integration case.Warning
Over-integration is real.
RunPCA() — no extra tooling above the standard workflowharmony reduction that drops in for pca in FindNeighbors and RunUMAPWarning
The “after” panel above is a cartoon. Real integration warps the embedding non-rigidly — that’s what makes it powerful and what makes over-integration dangerous. Always sanity-check with both batch and a known biological covariate.
Three diagnostics, all of which appear in Tutorial 05:
ifnb, score each cell on a panel of interferon-stimulated genes (ISG15, IFI6, MX1, …) and confirm STIM cells still score higher than CTRL cells within the same cluster. If integration has flattened that gap, you’ve over-corrected.These three checks generalize to any batch-integrated dataset. The third is particularly important and easy to forget.
The three checks above are qualitative. Two common numerical scores:
Warning
A mixing metric alone can be gamed by over-correction
The integration moved cells spatially (the bottom panels of the previous figure) without erasing the IFN-β biology (ISG score still STIM > CTRL within every cluster). That’s the right outcome.
Tip
This is the most important diagnostic and the one most often skipped. Always run a known biological signal through the post-integration object and confirm the signal survives. Pretty UMAPs are not the same as preserved biology.
Single Cell RNA-seq Workshop · Lecture 05