scRNAseq双细胞去除-1: DoubletFinder

10x平台的双细胞率(符合泊松分布1):

根据Poisson分布,单个液滴包含超过一个细胞(doublets或multiplets)的频率随着上机细胞的浓度而改变。通常如果上样细胞浓度较高,doublets/multiplets的频率也会增加。因此,单细胞实验中的doublets事件限制了实验时的细胞通量。

1. DoubletFinder概述

官网:https://github.com/ddiez/DoubletFinder

Cell Systems原文2

1.1 原理

DoubletFinder的原理是从现有的矩阵的细胞中根据我们预先定义好的细胞类型模拟一些双细胞出来(比如单核和T细胞的双细胞、B细胞和中性粒细胞的双细胞等等),将模拟出的双细胞和原有矩阵的细胞混合在一起,进行降维聚类,原则上人工模拟的doublets会与真实的doublets距离较近,因此计算每个细胞K最近邻细胞中人工模拟doublets的比例 (pANN),就可以根据pANN值对每个barcode的doublets概率进行排序。另外依据泊松分布的统计原理可以计算每个样本中doublets的数量,结合之前的细胞pANN值排序,就可以过滤doublets了。

1.2 步骤

DoubletFinder可以分为以下几个步骤:

  • 1.2.1 参数选择
    (1)处理原始矩阵,完成Seurat一般流程。从现有的scRNA-seq数据随机生成细胞对,对细胞对原始UMI值取均值,生成artificial doublets,合成doublets占所有细胞的比例为pN,默认最大pN为25%,目的是生成足够多的人工doublets;
    (2)将artificial doublets和原有的scRNA-seq矩阵合并,使用Seurat的pipeline预处理合并的real-artifical data至PCA降维。需要注意的是,在合并数据中,不对nUMI进行线性回归削弱,以保留doublets和singlets之间的差异;
    (3)将合并后的细胞在主成分空间的嵌入信息转换成欧几里得距离矩阵,基于该距离矩阵定义每个细胞的最近邻(nearest neighbors,NN);
    (4)用pK表示领域大小(neighborhood size,例如对5,000细胞的数据,pK=0.01时,相当于寻找给定细胞近邻的200个细胞)。将人造NN(artificial nearest neighbors,ANN)数除以领域大小,得到人造NN的比例(pANN=n(模拟的doublets)/n(真实细胞+模拟的doublets));
    (5)对不同的pN-pK组合分别计算pANN。利用 BCmvn (均值-方差标准化双峰系数)最大化的方法寻找计算pANN的最优pK值,而将pN固定为25%,并利用该组合下的pANN鉴别doublets;并排除DoubletFinder不能检出的同源doublets,得到优化后的预估doublets数量。
pN增大,人造双细胞比例(红色点)会上升。pK增大,用于计算pANN的最近邻细胞(黑色带黄边点)数目增加
  • 1.2.2 鉴定doublets

(6)根据期望doublet rate,估计总doublets数的期望值;
(7)(可选)根据Poisson doublet形成率估计异型来源的(heterotypic)doublets期望值。这里涉及一个同型来源(homotypic)doublets的校正步骤,同型doublets的比例(pHomo)等于每个细胞类型频率的平方和。将1-pHomo作为异型doublets的频率pHeter,计算异型doublets的期望数量;
(8)根据doublets的期望数设置pANN的阈值,鉴定并去除doublets。

  • 关于BCmvn

在数据分布中,BC(bimodality coefficient,双峰性系数)用来衡量与单峰分布的偏离程度。在DoubletFinder里,作者假设最优的pK-pN组合应该使得pANN呈非单峰分布,也就是说doublet(pANN偏大)和singlet(pANN偏小)能够截然分成两个峰。对于每个pK-pN组合都可以根据pANN的分布计算BC值。对给定pK值下的所有pN(例如从5%到25%),计算BC值的均值μBC,以及方差σ2BC,二者相除得到 BCmvn 值,选取最大值所代表的pK作为最优pK。

  • pN和pK对分类准确性的影响
研究结果显示单纯改变pN参数几乎不影响分类效果,因此一般默认将pN设置为25%,以生成足够多的artificial doublets。但pK过小或过大都会使分类准确性下降。可以理解为如果doublets本身的表达谱差异较大,pK过小时,相当于只能找到和人工doublets相似度较高的doublets,假阴性率会增加。而pK过大时,每个细胞的pANN就会被稀释。因此pK值需要根据不同数据集进行优化
  • 细胞聚类数和聚类区分度对DoubletFinder的影响
当数据中细胞类型较少时,pK值对结果的影响不大,而随着细胞类型的增多,过大的pK反而降低分类的准确性,因此更加强调了参数优化的重要性。而当数据的异质性不大(例如pDE为0.5%)时,无论pK如何改变,其分类效果都不是很好,这也再次强调了DoubletFinder不适用于异质性较低的数据集,例如经过分选纯化的单一细胞类型样本。
1.3 缺点

DoubletFinder对同种类型细胞间的doublets(即从转录相似的细胞状态衍生的doublets)不敏感。

2. 使用:

双细胞去除与Seurat的交互:在seurat标准流程进行到TSNE和UMAP降维之后,FindAllMarkers之前进行DoubletFinder操作。

  • 安装:
devtools::install_github('chris-mcginnis-ucsf/DoubletFinder')
  • 2.1 寻找最优pK值
library(DoubletFinder)
#这是一个测试最佳参数的过程,运行速度慢
sweep.res.list <- paramSweep_v3(scRNA, PCs = 1:pcSelect, sct = F)
#使用log标准化,sct参数设置为 sct = F(默认 ),如使用SCT标准化方法,设置为T
sweep.stats <- summarizeSweep(sweep.res.list, GT = FALSE)  
bcmvn <- find.pK(sweep.stats) #可以看到最佳参数的点
pK_bcmvn <- bcmvn$pK[which.max(bcmvn$BCmetric)] %>% as.character() %>% as.numeric() #提取最佳pk值
  • 2.2 检测双细胞

双细胞有两种,同源双细胞和异源双细胞。DoubletFinder只能检测异源双细胞。所以需要把同源双细胞可能的比率去除掉,以优化期望的doublets数量。

# DoubletRate = ncol(pbmc)*8*1e-6 #按每增加1000个细胞,双细胞比率增加千分之8来计算
DoubletRate = 0.075    # 直接查表,10000细胞对应的doublets rate是~7.6%
DoubletRate = ncol(pbmc)*8*1e-6 #更通用
#估计同源双细胞比例,根据modelHomotypic()中的参数人为混合双细胞。这里是从seurat_clusters中来混双细胞 
homotypic.prop <- modelHomotypic(scRNA$seurat_clusters) #最好提供celltype,而不是seurat_clusters。
# 计算双细胞比例
nExp_poi <- round(DoubletRate*ncol(scRNA)) 
# 使用同源双细胞比例对计算的双细胞比例进行校正 
nExp_poi.adj <- round(nExp_poi*(1-homotypic.prop))

## 使用确定好的参数鉴定doublets
scRNA <- doubletFinder_v3(scRNA, PCs = 1:pcSelect, pN = 0.25, pK = pK_bcmvn, 
                          nExp = nExp_poi.adj, reuse.pANN = F, sct = F)

## 结果展示,分类结果在pbmc@meta.data中
DimPlot(pbmc2, reduction = "umap", group.by = "DF.classifications_0.25_0.3_171")

主要参数:

参数 意义
seu 这是一个经过充分处理的Seurat对象(即,在NormalizeData,FindVariableGenes,ScaleData,RunPCA和RunTSNE全部运行之后)。
pN 定义生成的人工双峰的数量 (variable numbers of artificial doublets),表示为合并的真实人工数据的一部分。基于DoubletFinder在很大程度上是pN不变,默认设置为25%
pK 定义用于计算pANN (proportion of artificial nearest neighbors) 的PC邻域大小,表示为合并的真实人工数据的一部分。没有设置默认值,应该根据每个scRNA-seq数据集调整pK。
nExp 定义用于进行最终双峰/单峰预测的pANN阈值。可以从10X / Drop-Seq中的细胞密度估计该值,并根据同型双峰的估计比例进行调整。

⚠️注意:预测的双细胞不一定全部都是双细胞,不同软件的预测结果也有差异。因此,在去除双细胞的时候要谨慎。
此外需要注意的是,各个组织的细胞所含线粒体的正常比例差别较大,不可一概而论。比如肌肉细胞线粒体含量最高可达50%肿瘤区域的正常细胞线粒体含量有时也在30%以上

确定是否剔除预测双细胞的一般步骤:
1. 查看降维图上预测出来的双细胞位置。在降维图上,真实的双细胞更倾向于处于主群边缘或游离出来。
2. 如果预测的双细胞单独聚成群,查看其marker基因是否具有明显的多种细胞marker。
3. 不是我们主要研究对象的细胞群中的双细胞可以不去除。


参考文献:

  1. Estimating the frequency of multiplets in single-cell RNA sequencing from cell-mixing experiments
  2. DoubletFinder: Doublet Detection
    in Single-Cell RNA Sequencing Data Using Artificial Nearest Neighbors

参考:
https://www.jianshu.com/p/0cb401b1ebe6

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容