[Paper] || 单细胞批次校正算法 Batch effects in single-cell RNA-sequencing data are corrected by matching m...

问题背景

  1. 由于生物技术限制,有时一次实验可以测得的数据较少,我们需要将几个批次的细胞数据合并进行下游分析;
  2. 数据合并时会出现批次效应(Batch effects),不同实验人员、测序平台、时间等因素会给测序带去技术噪音,干扰聚类等单细胞分析流程;
  3. 多组学的联合分析是单细胞测序分析的趋势,今后有可能需要整合多种类型数据。


    [Paper] || 单细胞批次校正算法 Batch effects in single-cell RNA-sequencing data are corrected by matching m..._第1张图片
    Batch effects (左图显示两个批次测序带来的误差,右图是批次校正后的结果,也是批次校正算法希望得到的).png

方法

Batch effects corrected by matching mutual nearest neighbors (MNN)

  • MNN (互近邻搜索算法)


    [Paper] || 单细胞批次校正算法 Batch effects in single-cell RNA-sequencing data are corrected by matching m..._第2张图片
    Mutual nearest neighbors (MNN).png

    如上图,例如红色圆圈代表批次1的细胞,蓝色圆圈代表批次2的细胞,当某个红色细胞和蓝色细胞互为最近邻时,将其作为一对最近邻细胞,计算两者间的欧氏距离。

  • 算法流程
  1. 对细胞的基因表达计数余弦标准化;
  2. 计算批次1和批次2中每一对细胞的欧式距离;
  3. 设置最近邻区域大小为k,找出所有最近邻细胞对(此文章假设最近邻细胞对属于同一种细胞类型);
  4. 计算细胞对的距离向量,用高斯核函数计算最终的两个批次之间的距离,这个向量的长度等于原数据中基因的个数;
  5. 将批次2的细胞统一减去此距离向量,投射在批次1细胞所在平面;
  6. 如果有批次3进来,循环1~5流程。


    [Paper] || 单细胞批次校正算法 Batch effects in single-cell RNA-sequencing data are corrected by matching m..._第3张图片
    mnnCorrect().png

    [Paper] || 单细胞批次校正算法 Batch effects in single-cell RNA-sequencing data are corrected by matching m..._第4张图片
    mnnCorrect().png

用法

此方法在R语言中可调用mnnCorrect()函数,需要先加载batchelor包。

library(batchelor)

B1 <- matrix(rnorm(10000), ncol = 50) # Batch 1 
B2 <- matrix(rnorm(10000), ncol = 50) # Batch 2
out <- mnnCorrect(B1, B2) # corrected values

校正后,总细胞个数为各批次之和,基因和原各批次相同。


原文Link: Batch effects in single-cell RNA-sequencing data are corrected by matching mutual nearest neighbors

你可能感兴趣的:([Paper] || 单细胞批次校正算法 Batch effects in single-cell RNA-sequencing data are corrected by matching m...)