hello,下半年开始,我们也要开始新的工作了,今天我们需要解决的问题有两个。
(1)细胞亚群细分的时候仍然要分开样本去除批次效应???harmony
(2)harmony算法是不是刚才是整合分析就用,还是说再分群再用???
其实就是涉及到harmony整合分析的问题。
首先第一个问题,再分群批次去除的问题。
我们做肿瘤研究的单细胞数据,一般来说会选择初步很粗狂的定义大的细胞亚群,比如我常用的 第一次分群是通用规则是:
- immune (CD45+,PTPRC),
- epithelial/cancer (EpCAM+,EPCAM),
- stromal (CD10+,MME,fibo or CD31+,PECAM1,endo)
然后绝大部分文章都是抓住免疫细胞亚群进行细分,包括淋巴系(T,B,NK细胞)和髓系(单核,树突,巨噬,粒细胞)的两大类作为第二次细分亚群。说起来很简单,但是实际上每次做到单细胞数据集的细分亚群就非常的头疼,尤其是myeloid的髓系,(单核,树突,巨噬,粒细胞)有时候根本就分不清楚,而且分完之后仍然是可以继续细分。
我尝试对它这个数据集进行数据分析图表复现,比如单独把髓系拿出来进行重新降维聚类分群,然后可视化如下所示:
load(file = 'sce_recluster.Rdata')
p1=DimPlot(sce,reduction = "umap",label=T
,group.by = 'Cell_type')
p2=DimPlot(sce,reduction = "umap",label=T
,group.by = 'orig.ident')
table(sce$orig.ident,sce$seurat_clusters)
p3=DimPlot(sce,reduction = "umap",label=T)
library(patchwork)
p1/p2/p3
可以看到pDC这个细胞亚群,由 4和8群组成,而且包含多个病人!
但是p07这个病人就非常的诡异,这个样品里面的多种髓系细胞居然是与其它病人样品的髓系细胞距离超级远!
但是如果你harmony处理一下,然后再降维聚类分群,代码如下所示:
load(file = 'main_sce_recluster.Rdata')
sce.all.filt=sce
library(harmony)
sce.all.int <- RunHarmony(sce.all.filt,
c( "orig.ident" ))
names(sce.all.int@reductions)
harmony_embeddings <- Embeddings(sce.all.int, 'harmony')
harmony_embeddings[1:5, 1:5]
sce.all.int=RunTSNE(sce.all.int,reduction = "harmony", dims = 1:30)
sce.all.int=RunUMAP(sce.all.int,reduction = "harmony",dims = 1:10)
sce=sce.all.int
sce <- FindNeighbors(sce, reduction = "harmony",dims = 1:15)
sce <- FindClusters(sce, resolution = 0.8)
load(file = 'after_harmony/main_sce_recluster.Rdata')
p1=DimPlot(sce,reduction = "umap",label=T
,group.by = 'Cell_type')
p2=DimPlot(sce,reduction = "umap",label=T
,group.by = 'orig.ident')
table(sce$orig.ident,sce$seurat_clusters)
p3=DimPlot(sce,reduction = "umap",label=T)
library(patchwork)
p1/p2/p3
出图如下:
可以看到这个时候的p07这个病人不会在独立成为一个亚群啦,而且呢,pDC这个细胞亚群也比较纯粹一点了,说明再分群的时候,需要去除批次效应。
第二个问题:harmony是不是一开始就用。
我们以这个单细胞转录组文献,《Single-cell transcriptomics reveals regulators underlying immune cell diversity and immune subtypes associated with prognosis in nasopharyngeal carcinoma》为例子,15个鼻咽癌样品,加上1个正常人样品。全部的样品的单细胞转录组数据整合后,如果不使用harmony等算法去除样品差异,默认的降维聚类分群,如下所示:
我们根据左边的标记基因以及生物学背景知识,可以进行如下所示的命名:
<figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> </figcaption>
可以看到,效果还不错,很有意思, 给大家的感觉是 harmony等算法去除样品差异并不是必须的。但是如果我们具体到每个样品,有如下所示的现象:
可以看到,首先上皮细胞大的亚群里面,每个病人独立成为小亚群,泾渭分明,这个符合预期,因为每个肿瘤病人都有自己的特异性。但是免疫细胞各个亚群里面,病人之间的界限就模糊很多。值得注意的是P07这个病人的样品,它主要是T细胞和髓系细胞,而且是独立成为一个亚群了,这就是单细胞转录组的样品差异,理论上是需要去除的!
有意思的事情就来了
如果我们在样品层面就开始使用harmony等算法去除样品差异,又会导致另外一个可怕的事情发生,如下所示:
<figcaption style="margin-top: 5px;text-align: center;color: #888;font-size: 14px;"> </figcaption>
就是本来是应该是具备病人特异性的上皮细胞,这个时候被抹除了样品差异。
好好的上皮细胞,被拆分的七零八落,如下所示:
我们也可以以病人样品视角来看:
这个算法真的是太可怕了,样品差异被抹除的干干净净了!这不是最可怕的,真正的问题是,这个上皮细胞被打散到了其它免疫细胞里面,因为这个harmony算法!我们可以对上皮细胞的最重要的marker基因EPCAM进行如下所示可视化,并且使用harmony等算法去除样品差异前后可以对比看看。
harmony虽好,但也不要贪杯啊