对Seurat对象使用harmony方法整合

Harmony方法在2019年发表在上面nature methods,

harmony算法与其他整合算法相比的优势:

  1. 整合数据的同时对稀有细胞的敏感性依然很好;
  2. 省内存;
  3. 适合于更复杂的单细胞分析实验设计,可以比较来自不同供体,组织和技术平台的细胞。

基本原理

%E5%AF%B9Seurat%E5%AF%B9%E8%B1%A1%E4%BD%BF%E7%94%A8harmony%E6%96%B9%E6%B3%95%E6%95%B4%E5%90%88%2071935e48f5e741889d44e2fe098f3ee4/Untitled.png

我们用不同颜色表示不同数据集,用形状表示不同的细胞类型。首先,Harmony应用主成分分析将转录组表达谱嵌入到低维空间中,然后应用迭代过程去除数据集特有的影响。

(A)Harmony概率性地将细胞分配给cluster,从而使每个cluster内数据集的多样性最大化。

(B)Harmony计算每个cluster的所有数据集的全局中心,以及特定数据集的中心。

(C)在每个cluster中,Harmony基于中心为每个数据集计算校正因子。

(D)最后,Harmony使用基于C的特定于细胞的因子校正每个细胞。由于Harmony使用软聚类,因此可以通过多个因子的线性组合对其A中进行的软聚类分配进行线性校正,来修正每个单细胞。重复步骤A到D,直到收敛为止。聚类分配和数据集之间的依赖性随着每一轮的减少而减小。

在R中安装harmony

library(devtools)
install_github("immunogenomics/harmony")

使用Seurat进行PCA

library(Seurat)
library(tidyverse)
library(dplyr)
library(patchwork)
library(harmony)

harmony要求输入的对象必须含有PCA坐标。运行NormalizeData(), FindVariableFeatures(), ScaleData(), RunPCA()后,得到相应的seurat对象。具体操作见 Seurat基本分析流程

使用harmony进行整合

在seurat流程中使用harmony非常方便,只需要注意以下两点:

  1. 运行harmony的函数为RunHarmony()
  2. 在下游分析中,降维方式选择harmony而不是默认的pca

比如,需要运行UMAP,则使用以下代码:

seuratObj <- RunHarmony(seuratObj, "dataset")
seuratObj <- RunUMAP(seuratObj, reduction = "harmony")

在分析流程上,按照seurat标准流程进行即可。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容