DoubletFinder 去除双细胞

1. 参考资料

  • https://mp.weixin.qq.com/s/ybr1rK5CcC-BfDKUYxKcNw
  • https://www.jianshu.com/p/66eba837f22e
  • https://github.com/ddiez/DoubletFinder

2. DoubletFinder 概述

  • 首先这个包的输入是经过预处理(包括归一化、降维,但不一定要聚类)的 Seurat 对象
  • doubletFinder_v3 的部分参数
    • seu,一个经过充分处理的 Seurat 对象(具体如前所述
    • PCs,根据自己数据的实际情况选择有统计学意义的 PC,具体如何选择见:https://www.jianshu.com/p/ddf520db5d6f 的 4.1 节
    • pN,定义生成的人工双峰的数量,表示为合并的真实人工数据的一部分,默认设置为 25%
    • pK,定义用于计算 pANN 的 PC 邻域大小,表示为合并的真实 real-artificial 数据的一部分,对于每个 scRNA-seq 数据集都需要调整 pK,止于 pK 怎么挑,我摊牌了,不想学,具体见文首的链接
    • nExp,定义了用于进行最终 doublet/singlet 预测的 pANN 阈值,可以从 10X / Drop-Seq 装置中的细胞装载密度来最好地估计该值,并根据 homotypic doublets 对估计比例进行调整。
    • sct 取决于你走的 Seurat 流程是用 NormalizeData() + FindVariableFeatures() + ScaleData() 还是 SCTransform()
  • 注意:不能用于整合了多个样本(在不同 lane 测序)的 Seurat 对象

3. 代码

## 因为几乎全都是中间变量,就没好好命名
# 找最佳 PK
sweep.res.list_kidney <- paramSweep_v3(seurat, PCs = 1:40, sct = T)
sweep.stats_kidney <- summarizeSweep(sweep.res.list_kidney, GT = FALSE)
bcmvn_kidney <- find.pK(sweep.stats_kidney)
mpK<-as.numeric(as.vector(bcmvn_kidney$pK[which.max(bcmvn_kidney$BCmetric)]))

# 找最佳 nExp
annotations <- [email protected]$seurat_clusters
homotypic.prop <- modelHomotypic(annotations)
nExp_poi <- round(0.075*ncol(seurat@assays$integrated@data))
nExp_poi.adj <- round(nExp_poi*(1-homotypic.prop))

# 找 Doublet
seurat_filterDouble <- doubletFinder_v3(seurat, PCs = 1:40, pN = 0.25, pK = mpK, nExp = nExp_poi, reuse.pANN = FALSE, sct = T)

4. 结果

> table(seurat_integrated_filterDouble$DF.classifications_0.25_0.28_1042)

Doublet Singlet
   1042   12849
image

友情宣传

  • 生信爆款入门-全球听(买一得五)(第5期)(可能是最后一期),你的生物信息学入门课
  • 数据挖掘第3期(两天变三周,实力加量),医学生/临床医师首选技能提高课
  • 生信技能树的2019年终总结,你的生物信息学成长宝藏
  • 2020学习主旋律,B站74小时免费教学视频为你领路

你可能感兴趣的:(DoubletFinder 去除双细胞)