seurat3的merge功能和cellranger的aggr整合多个10X单细胞转录组对比

2020-03-30 11:35:38 浏览数 (1)

昨天我在单细胞天地的教程:使用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个样本的详细信息,是可以深入比较每个细胞的:

需要注意的是样本命名方式不一样,所以要仔细调整顺序哦。

可以看到,两次聚类分群几乎一致,只不过是分的群的数量不一样,所以稍微有一点差异。

0 人点赞