前面写过一个单细胞聚类图形填充的脚本分享,发现小小技能并不能满足真实的绘图需求,在浏览过一个大神写的文章后,发现能实现的几个需求有好多。在这里以问题的形式来进行一一解答。
Q1: 画图时,tsne和umap,我该选择哪个比较好?
很多客户问到过这个问题,我们也在现场问过10X的技术人员。首先可以确定的是,不管是tsne还是umap,降维获得的细胞对于的cluster结果是一样的。所以两者均可选择。然后就是一个展示的问题了。umap在进行可视化时,采用的算法是达到局部最优,tsne达到的是整体最优。我做过的这些项目中,总结出一个规律,当细胞数目很多时,采用tsne,当细胞数目较少时,采用umap。因为图形是为了证明结论,哪种图最能展示我们的结论,该图是最佳的。
Q2: 我们在降维时发现,发现有些主成分并不是按照递减的规律存在的,如下图所示。P13明显不如P14,怎么办?
一般情况下,主成分对于细胞聚类的影响是有规律的,成分等级越高,越不容易进行细胞聚类。对于单细胞而言,不同类型的细胞marker基因的表达差别是比较明显的,因此为了较好地进行区分,我们一般选择拐点的主成分作为降维的依据。如下图所示,一般选择TOP10。
但不规律时,我们可以进行维度选择来进行聚类降维,脚本如下所示:
rds <- RunUMAP(immune.combind, reduction = 'pca', dims = c(1:10,12,14) )
Q3: 当做细胞聚类时,我该如何选择分辨率?
很多人做单细胞时,都会纠结于这个问题,分辨率太小,担心没有将细胞间的差异体现出来;分辨率太大,可能存在过度聚类的情况,而且对命名影响很大。官网上有推荐的根据细胞数来选择分辨率,将该参数设置在0.4-1.2之间,对于3K左右的单细胞数据集通常会得到良好的结果。对于较大的数据集,最佳分辨率通常会增加。针对具体的情况,判断标准可能偏主观一些。根据我的分析经历,可总结以下几点:
1)对于单个样本,主要看每个cluster的差异基因表达量热图。表现形式一般为每个cluster中其条线出来的差异基因在该cluster中表达量高,而在其他cluster中表达量低。不然,表示有些cluster还可以合并或者细分(如果出现污染或者其他情况另当别论)
2)对于有比较组的情况,除了看cluster的差异基因聚类热图外,还要关注样本之间的差异。样本之间的差别主要表现在同一个cluster中细胞数目的差别。根据比较组条件的设置,差别越大,同一个cluster的细胞数目差别也会比较大。另外差异小提琴图或者表达量气泡图也能说明问题。
可以同时设置不同的分辨率进行对比分析,脚本如下:
rds<-FindClusters(rds,resolution = c(.6,.8,1,1.4,1.6,1.8))
head(rds@meta.data)
orig.ident nCount_RNA nFeature_RNA percent.mt RNA_snn_res.0.6
ACCCATACAACCAC TB1 2016 960 3.0374736 1
AAACATTGAGCTAC TB1 6793 1578 3.3924239 3
AAACATTGATCAGC TB1 1257 1425 3.3832336 1
AAACCGTGCTTCCG TB1 8131 160 1.4440545 0
AAACCGTGTATGCG TB1 1930 2521 1.4214228 3
AAACGCACTGGTAC TB1 1145 2722 1.6243539 1
seurat_clusters RNA_snn_res.0.8 RNA_snn_res.1 RNA_snn_res.1.4
AAACATACAACCAC 1 2 1 5
AAACATTGAGCTAC 0 3 2 2
AAACATTGATCAGC 2 2 1 1
AAACCGTGCTTCCG 3 1 4 4
AAACCGTGTATGCG 8 6 7 8
AAACGCACTGGTAC 1 2 1 1
RNA_snn_res.1.6 RNA_snn_res.1.8
AAACATACAACCAC 9 1
AAACATTGAGCTAC 2 0
AAACATTGATCAGC 1 2
AAACCGTGCTTCCG 4 3
AAACCGTGTATGCG 8 8
AAACGCACTGGTAC 1 1
Q4: 针对不同的批次效应,我该如何进行处理?
对于单细胞测序而言,有可能会出现测序时间、仪器或者加测的情况,形成不同的数据批次,实验误差也会反映到测序数据上,该现象就是我们常说的批次效应。该如何采用seurat进行批次效应的消除呢?
关于去除多组数据中的批次效应,有多种算法,如Seurat包的CCA(canonical correlation analysis)、LIGER的NMF(non-negative matrix factorization)、Scran包的mnnCorrect、Seurat包的sctransform。这里搜集了几个方法的链接,大家可以操作一下。
Seurat包的CCA:https://cloud.tencent.com/developer/article/1499846
Scran包的mnnCorrect:https://www.jianshu.com/p/b7f6a5efed85
Seurat包的sctransform:https://www.jianshu.com/p/e639cc257d51
有篇文献中有将大细胞去批次效应效果做了一个对比,设计到的方法如下图所示,测试了10个数据集,使用五个评估指标对14种方法进行对比评估,大家可以去了解一下。
参考链接:
https://zhuanlan.zhihu.com/p/122502250
https://www.jianshu.com/p/647cb81a77ac
https://www.jianshu.com/p/67d2decf5517