第四讲:Removal of confounding factors
由于这一讲并不是每个人都用的上(我就用不上。。。),是关于单细胞测序实验设计中的混杂因素的去除。所以我就听了听,权当学习了。有需要的同学可以仔细听一下。主讲人举了个例子,比如在oral cancer里,饮酒是oral cancer的主要因素,而smoking这一因素会对结果也产生影响,所以需要去除(看起来临床的同学可能会用到)。
主讲人介绍了几种去除这种variable的方法。
视频地址:https://www.youtube.com/watch?v=rhuYhD4GwKw&list=PLjiXAZO27elC_xnk7gVNM85I2IQl5BEJN&index=4
###########################我是分割线###########################
第五讲:单细胞测序的数据整合
视频地址:https://www.youtube.com/watch?v=4KwW90RQz-8&list=PLjiXAZO27elC_xnk7gVNM85I2IQl5BEJN&index=5
实战练习:代码及数据下载:https://github.com/NBISweden/excelerate-scRNAseq/blob/master/session-integration/Data_Integration.md
为什么要数据整合呢?比如说你用的是不同病人的样品,你要比较不同condition的样品,比如sick 和healthy。或者你有好几个单细胞测序的dataset想要放在一起分析,这时候你就需要用到数据整合了。
这里是一个例子,是人类的胰腺的数据。这些数据是来自不同的实验的。虽然都是人类组织,但是是来自8个不同的datasets。
如果你把它们放在一起的话,就像上图左边的那种效果,非常明显的batch effects。这时候不同的颜色代表着不同的批次,而不是不同细胞群的cluster。而右边的图就是整合之后的数据,这时的不同的细胞群才代表着你数据里真实的细胞分群。
这些batch effects是怎么来的呢?主要有两个来源:technical and biological. 技术方面的batch effect主要是你的样品质量、操作过程,或者是你用了两种不一样的platform去做测序,也可能你在裂解细胞的时候不同批次下细胞的状态不一样。biological方面的variation,也就是nature variation,一般是指不同的病人样品,不同的老鼠样品。
所以你需要花些时间来设计你的实验,而不是上来就kuang kuang kuang的开干。上图左边的那种实验设计,把3种处理分别用了3批进行操作。这种操作四绝不可取的!你要做的是像右边那样的实验设计,每一次处理都包括你的所有condition。
Bulk-RNA-seq 的批次效应的去除方法现在已经很成熟了,有很多种方法可以用(上面这些)。但是这些是否适用于单细胞测序呢?很难说它们是否真正适用或者不适用。主讲人介绍他将介绍如何去除单细胞测序中的批次效应。
这里已经有一些方法可以去除单细胞测序中的批次效应,这些方法大致可以分成两个类别:一个是依赖于降维的方法,另一类是依赖于graph-based joint clustering。主讲人接下来只针对里面的个别方法进行讲解。
上图是举个例子,来说明MNN方法。这里有两个batch,在batch 1里有3个细胞群,在batch 2里有相对应的3个细胞群。MNN的方法是:a图里batch 1的红色细胞群寻找的是batch2里与之相似的细胞群,然后batch2里的红色细胞群也在寻找batch1里和自己相似的群,然后找到之后,计算correction vectors,有了correction vectors,就可以去除两个batch间的批次效应,从而将两个batch整合在一起。但是有时也会存在无法整合的情况,比如上图里batch2的黄色细胞群。(所以整合的效果很看重数据的顺序)
这张就是MNN的原理了。(这部分实在是听不懂,关于MNN原理可以自行搜索,我也不太关注原理,我的目的就是知道这方法是干什么的就行了。。。)简单的就是:上图里最下面的网格图,蓝色的batch B经过correction vector的矫正后,就可以和batch A进行merge了。
上图是两个datasets,分别来自SMART-seq2和MARS-seq测序结果。f图是没有经过批次效应处理的,可以看到明显的有批次效应。然后分别用不同的方法进行批次效应处理(g,h,i),貌似看起来MNN的方法效果最好。
Seurat V3的方法实际上是相似的,首先还是要先找到datasets之间对应的细胞,计算对应的细胞之间的factor,然后再进行校正。
这里主讲人的一张PPT非常形象的介绍了PCA。他用鱼来举例子,这里只有两个特征变量:高,宽。如果把图里所有的鱼的高和宽用点来表示,应该是右图里的红点那样,宽度是最主要的feature。所以你的data里用PCA画出来的图,是你的数据里最明显的两个特征。
上面讲的是PCA,那么什么是CCA呢?CCA和PCA是非常类似的。现在你想要从2个甚至更多的datasets里找出主要的variation来源。如果你做PCA分析,你会得到上面作图的那种结果。但如果你做CCA分析,你会发现两个batch重叠在一起。因为你想得到的不是两个datasets之间的区别,而是想得到dataset里主要的variation。
上面这张图展示的是Seurat v3里FindIntegrationAnchors这个功能的原理图,其中一个dataset作为参考(reference),另一个dataset作为Query(查询),也是寻找两个dataset之间的mutual nearest neighbor(在这里被称为anchor)。然后你会得到评分(score),从而得知这个anchor是否good。
这个方法很新,但是和CCA很像。是一种集成非负矩阵分解(iNMF)的方法,名为LIGER。这原理我也这种方法不得了,它可以将两个不同模态的数据集整合在一起。什么意思呢?举个例子:它可以整合RNA-seq和DNA甲基化的dataset。比如下面这个:
这有一种方法称为KBET,它也是一种用于量化单细胞测序不同Dataset之间的批次效应。
上面讲了很多的方法,但是无法证明哪一个方法更好、更适用于你的实验。你只能通过不同的尝试去看哪一种可以给你最好的结果。