单细胞RNA-seq去除批次效应

这是一篇2018年发表在NBT上的文章,讲述的是两套单细胞数据如何去除批次效应


文章链接:
https://www.nature.com/articles/nbt.4091

前言

由于不同的实验室,以及各个技术人员手法不同,在测单细胞RNA-seq的时候往往会造成批次效应,从而影响到细胞亚群的分类。
作者提出了基于高维表达空间中mutual nearest neighbors (MNNs)的检测方法来进行批处理校正。 作者提出来的方法并不依赖批次之间预定义或相等的种群组成。而传统的RNA-seq去除批次效应往往依赖于广义线性模型,挖掘潜在的协变量(批次效应因子),并将它去除。但是对于单细胞数据来说,由于单细胞的维数更高,数据量更庞大,并且像10X这样的测序手段,每个细胞的异质性比较大,所以用广义线性模型去除批次效应并不理想。这里有传送门:关于批次效应的若干问题
在scRNA-seq研究中,批次之间的种群组成通常不同。即使每批中存在相同的细胞类型,数据集中每种细胞类型的丰度也会根据过程的细微差异(造成这种细微差异的原因可能是细胞培养或组织提取,解离和分选)
作者提出了一种新的方法,该方法定义了批次之间最相似的相同类型细胞,根据批次之间这些最相似的细胞来消除生物学相关批次之间的差异
因此,作者提出了一种矫正scRNA-seq的算法:MNN

原理


首先,Batch 1Batch 2 是两个批次的scRNA-seq,而不同颜色表示不同的细胞类群(对应颜色和字符,x 对应 x'y 对应 y')。

该算法的步骤为:

  1. 对数据进行余弦归一化


    其中式子中的 Yx 表示的是 cell x 的表达矩阵向量

  2. 对余弦归一化后的数据计算细胞间的欧式距离(利用每个细胞的表达谱向量计算细胞间距离)

  3. 进行邻近处理


    此时,软件在两个 Batch 之间找最邻近的细胞类群,比方说 Batch 1 的 x'Batch 2 的 x 最邻近,Batch 1 的 y'Batch 2 的 y 最邻近
    作者将这些两个 Batch 之间最邻近的细胞类群解释为尽管属于不同批次但仍属于相同细胞类型或状态的细胞。
    也就是说,两个 Batch 之间距离最近的两个细胞类群,作者仍然把它们看为是同一细胞类群(忽略批次效应带来的影响)

  4. 对细胞类群进行批次矫正,用高斯核函数计算两个 Batch 之间距离最近的两个细胞类群,因为作者仍然把它们看为是同一细胞类群,所以这两个Batch 之间,距离最近的两个细胞类群之间的距离即为批次效应所带来的影响

  1. Batch 2 的细胞统一减去这一批次效应的差异距离,即可投射在 Batch 1 所在的平面内,这样批次效应就去除了

    如果有 Batch 3 ,重复上述步骤即可

MNN算法的基本假设

我们对MNN对的使用涉及三个假设:
(i). 两个批次中至少存在一个细胞群在两个批次中是同一细胞群
(ii). 批次效应几乎与生物学子空间正交
(iii). 批次效应变化为比不同细胞类型之间的生物效应差异要小得多

结果比较


作者比较了不去除批次效应的数据,以及利用MNN,limma和ComBat等软件去除批次效应的结果,可以看到利用MNN去除批次效应后,细胞聚类更为密切

软件运用

软件在Github上有:https://github.com/MarioniLab/MNN2017
或者利用R包:batchelor也可以

library(batchelor)

result = mnnCorrect(A1,A2)
#A1,A2为两个批次的单细胞表达矩阵

你可能感兴趣的:(单细胞RNA-seq去除批次效应)