上一篇已经讲解了Seurat标准流程,推文的最后,注意到了不同样本之间的表达数据是存在批次效应的,就像下图这样,有些是可以聚到一起的亚群,却出现了不同样本分开/偏移的情况,比如第3群,这种就是批次效应:
接下来我会介绍Seurat v3的标准整合流程、Seurat结合Harmony 的整合流程,仍然使用上一个数据集
1. Seurat v3的标准整合流程
对于不同样本先分别运行Seurat的标准流程到找Variable基因这一步
library(Seurat)
library(tidyverse)
### testA ----
testA.seu=CreateSeuratObject(counts = testA)
testA.seu <- NormalizeData(testA.seu, normalization.method = "LogNormalize", scale.factor = 10000)
testA.seu <- FindVariableFeatures(testA.seu, selection.method = "vst", nfeatures = 2000)
### testB ----
testB.seu=CreateSeuratObject(counts = testB)
testB.seu <- NormalizeData(testB.seu, normalization.method = "LogNormalize", scale.factor = 10000)
testB.seu <- FindVariableFeatures(testB.seu, selection.method = "vst", nfeatures = 2000)
然后就是主要的整合步骤,object.list参数是由多个Seurat对象构成的列表,如下:
### Integration ----
testAB.anchors <- FindIntegrationAnchors(object.list = list(testA.seu,testB.seu), dims = 1:20)
testAB.integrated <- IntegrateData(anchorset = testAB.anchors, dims = 1:20)