昨天我在单细胞天地的教程:使用seurat3的merge功能整合8个10X单细胞转录组样本 完完整整的展示了如何使用seurat3的merge功能整合8个10X单细胞转录组样本,因为这个数据集的文章作者使用的是cellranger流程,而且我们在单细胞天地多次分享过流程笔记,大家可以自行前往学习,如下:
- 单细胞实战(一)数据下载
- 单细胞实战(二) cell ranger使用前注意事项
- 单细胞实战(三) Cell Ranger使用初探
- 单细胞实战(四) Cell Ranger流程概览
- 单细胞实战(五) 理解cellranger count的结果
我们得比较一下,作者的ellranger的aggr整合多个10X单细胞转录组得到的表达矩阵,跟我们使用seurat3的merge功能整合8个10X单细胞转录组样本后的表达矩阵是否有差异。
幸运的是,作者在GEO数据库也放上去了自己ellranger的aggr整合多个10X单细胞转录组得到的表达矩阵,所以我们只需要下载走seurat3的降维分群即可跟昨天的教程:使用seurat3的merge功能整合8个10X单细胞转录组样本 聚类分群结果进行对比啦!
首先走seurat3的降维分群流程
代码语言:javascript复制library(Seurat)
sce=CreateSeuratObject(counts = Read10X('input/'),
project = 'merge' )
# 步骤 ScaleData 的耗时取决于电脑系统配置(保守估计大于一分钟)
sce <- ScaleData(object = sce,
vars.to.regress = c('nCount_RNA'),
model.use = 'linear',
use.umi = FALSE)
sce <- FindVariableFeatures(object = sce,
mean.function = ExpMean,
dispersion.function = LogVMR,
x.low.cutoff = 0.0125,
x.high.cutoff = 4,
y.cutoff = 0.5)
length(VariableFeatures(sce))
sce <- RunPCA(object = sce, pc.genes = VariableFeatures(sce))
# 下面只是展现不同降维算法而已,并不要求都使用一次。
sce <- RunICA(sce )
sce <- RunTSNE(sce )
#sce <- RunUMAP(sce,dims = 1:10)
#VizPCA( sce, pcs.use = 1:2)
DimPlot(object = sce, reduction = "pca")
DimPlot(object = sce, reduction = "ica")
DimPlot(object = sce, reduction = "tsne")
#DimPlot(object = sce, reduction = "umap")
# 针对PCA降维后的表达矩阵进行聚类 FindNeighbors FindClusters 两个步骤。
sce <- FindNeighbors(object = sce, dims = 1:20, verbose = FALSE)
sce <- FindClusters(object = sce, resolution = 0.3,verbose = FALSE)
# 继续tSNE可视化
DimPlot(object = sce, reduction = "tsne",group.by = 'RNA_snn_res.0.3')
DimPlot(object = sce, reduction = "tsne",
group.by = 'orig.ident')
head(rownames(sce@meta.data))
tail(rownames(sce@meta.data))
library(stringr)
table(str_split(rownames(sce@meta.data),'-',simplify = T)[,2],
sce@meta.data$RNA_snn_res.0.3)
可以看到4个发育时期的8个样本,仍然是同一个发育时期的2个样本非常类似,不同发育时期的样本就差异很大。所以也可以理解为10X单细胞转录组的样本批次效应被去除了。
这些细胞亚群的tSNE图如下:
结论就是seurat3的merge功能和cellranger的aggr整合多个10X单细胞转录组的效果是类似的,但是仍然是有学员提出merge完全不带任何样本效应处理的功能,就只是合并一下数据,这个时候SCtransform就值得拥有。
我们下一讲会详细说明,其实大家也可以自己看看试试看更多数据整合,去除批次效应算法,比如
- Batch correction: integrative non-negative matrix factorization (NMF) using LIGER
- Batch correction: canonical correlation analysis (CCA) using Seurat
- 三个10X单细胞转录组样本CCA整合
这本书基本上都介绍了:https://broadinstitute.github.io/2019_scWorkshop/correcting-batch-effects.html
仔细检查两次分类
前面我们虽然得到的结论都是同一个发育时期的2个样本非常类似,不同发育时期的样本就差异很大。实际上,我们有着8个样本的详细信息,是可以深入比较每个细胞的:
需要注意的是样本命名方式不一样,所以要仔细调整顺序哦。
可以看到,两次聚类分群几乎一致,只不过是分的群的数量不一样,所以稍微有一点差异。