单细胞 RNA-seq 数据的生物异质性常常受到测序深度等技术因素的影响。每个细胞中检测到的分子数量在细胞之间可能存在显着差异,即使在同一细胞类型内也是如此。 scRNA-seq 数据的解释需要有效的预处理和标准化,以消除这种技术变异性。
本文介绍了一个建模框架,用于对 scRNA-seq 实验中的分子计数数据进行标准化和方差稳定。该过程省略了对启发式步骤的需要,包括伪计数加法或对数转换,并改进了常见的下游分析任务,例如降维和差异表达。我们将此方法命名为 sctransform。
library(Seurat)
library(ggplot2)
library(sctransform)
加载数据并创建 Seurat 对象
pbmc_data <- Read10X(data.dir = "/brahms/shared/vignette-data/pbmc3k/filtered_gene_bc_matrices/hg19/")
pbmc <- CreateSeuratObject(counts = pbmc_data)
应用 sctransform 标准化
# store mitochondrial percentage in object meta data
pbmc <- PercentageFeatureSet(pbmc, pattern = "^MT-", col.name = "percent.mt")
# run sctransform
pbmc <- SCTransform(pbmc, vars.to.regress = "percent.mt", verbose = FALSE)
使用 PCA 和 UMAP 降维
# These are now standard steps in the Seurat workflow for visualization and clustering
pbmc <- RunPCA(pbmc, verbose = FALSE)
pbmc <- RunUMAP(pbmc, dims = 1:30, verbose = FALSE)
pbmc <- FindNeighbors(pbmc, dims = 1:30, verbose = FALSE)
pbmc <- FindClusters(pbmc, verbose = FALSE)
DimPlot(pbmc, label = TRUE)
用户可以根据规范标记单独注释cluster。然而,与标准 Seurat 工作流程相比,sctransform 标准化在以下几个方面揭示了更明显的生物学差异:
- 基于 CD8A、GZMK、CCL5、CCR7 表达,清晰分离至少 3 个 CD8 T 细胞群(初始细胞、记忆细胞、效应细胞)
- 基于 S100A4、CCR7、IL32 和 ISG15 清晰分离三种 CD4 T 细胞群(初始细胞、记忆细胞、IFN 激活细胞)
- B 细胞簇中的其他发育子结构,基于 TCL1A、FCER2
- 基于 XCL1 和 FCGR3A 将 NK 细胞进一步分离为 CD56dim 与 Bright 簇
# These are now standard steps in the Seurat workflow for visualization and clustering
# Visualize canonical marker genes as violin plots.
VlnPlot(pbmc, features = c("CD8A", "GZMK", "CCL5", "S100A4", "ANXA1", "CCR7", "ISG15", "CD3D"),
pt.size = 0.2, ncol = 4)
# Visualize canonical marker genes on the sctransform embedding.
FeaturePlot(pbmc, features = c("CD8A", "GZMK", "CCL5", "S100A4", "ANXA1", "CCR7"), pt.size = 0.2,
ncol = 3)
FeaturePlot(pbmc, features = c("CD3D", "ISG15", "TCL1A", "FCER2", "XCL1", "FCGR3A"), pt.size = 0.2,
ncol = 3)