当前位置: 华文星空 > 知识

不知道你的单细胞分多少群合适,clustree帮助你

2021-06-27知识

我们以 seurat 官方教程为例:

rm(list = ls()) library(Seurat) # devtools::install_github('satijalab/seurat-data') library(SeuratData) library(ggplot2) library(patchwork) library(dplyr) load(file = 'basic.sce.pbmc.Rdata') DimPlot(pbmc, reduction = 'umap', label = TRUE, pt.size = 0.5) + NoLegend() sce=pbmc

如果你不知道 basic.sce.pbmc.Rdata 这个文件如何得到的,麻烦自己去跑一下 可视化单细胞亚群的标记基因的5个方法,自己 save(pbmc,file = 'basic.sce.pbmc.Rdata') ,我们后面的教程都是依赖于这个 文件哦!

这个官方例子里面,我们是直接使用了 resolution = 0.5 这样的方式 :

pbmc <- FindNeighbors(pbmc, dims = 1:10) pbmc <- FindClusters(pbmc, resolution = 0.5)

实际上这个 resolution 是可以多次调试的,比如:

# 参考:https://mp.weixin.qq.com/s/WRhMC3Ojy1GWYfLS_4vSeA #先执行不同resolution 下的分群 library(Seurat) library(clustree) sce <- FindClusters( object = sce, resolution = c(seq(.1,1.6,.2)) ) clustree([email protected], prefix = "RNA_snn_res.") colnames([email protected])

如下所示,可以看到不同的resolution ,分群的变化情况:

我们是直接使用的 resolution = 0.5 ,仅仅是其中的一个可能性!

而且根据动态分群的树,很容易看出来,对应3这个亚群对应的b细胞来说,无论怎么样调整参数,它都很难细分亚群了,同样的还有7这个亚群对应DC,和8这个亚群对应的Platelet也是很难再细分啦。

但是T细胞和monocyte还有进一步细分的可能性!

这些可视化代码如下:

p1=DimPlot(sce, reduction = 'umap', group.by = 'RNA_snn_res.0.5', label = TRUE, pt.size = 0.5) + NoLegend() p2=DimPlot(pbmc, reduction = 'umap',# group.by = 'seurat_clusters', label = TRUE, pt.size = 0.5) + NoLegend() library(patchwork) p1+p2 p1=DimPlot(sce, reduction = 'umap', group.by = 'RNA_snn_res.0.5', label = TRUE, pt.size = 0.5) + NoLegend() p2=DimPlot(sce, reduction = 'umap',group.by = 'RNA_snn_res.1.5', label = TRUE, pt.size = 0.5) + NoLegend() library(patchwork) p1+p2

有分群的可能性,并不代表你一定要进行细分亚群,如果你分群后无法进行准确的生物学描述,那样细分亚群的意义就不大!

比如前面的CD4的T细胞亚群细分:

load(file = 'sce.cd4.subset.Rdata') #先执行不同resolution 下的分群 library(Seurat) library(clustree) sce <- FindClusters( object = sce, resolution = c(seq(.1,1.6,.2)) ) clustree([email protected], prefix = "RNA_snn_res.")

这样的细分亚群就相互交织:

意义并不是很大