系列回顾:
ArchR官网教程学习笔记1:Getting Started with ArchR
(一)什么是Doublets?
单细胞数据的一个主要问题是“doublets”对分析的影响。doublets是指单个液滴捕获了一个barcoded珠和多于一个的核。这就导致了从多个细胞读取的reads显示为单个细胞,该细胞实际上是两个细胞的平均值。在本章中,我们将用计算方法去除这些doublet,并详细描述去除doublet的过程。
(二)ArchR是如何识别Doublets的?
在任何平台上生成的单细胞数据都容易受到doublets的影响。doublets是指单个液滴接收一个barcode珠和一个以上的核。在10x平台下,总“细胞”中的doublets实际上与加载到反应中的细胞数成正比。即使使用标准试剂盒产生的较低水平的doublets,也有超过5%的数据可能来自doublets,这对聚类产生了重大影响。这个问题在发育/轨迹数据的背景下变得问题会严重的多,因为doublets看起来像是两种细胞类型之间的混合物,这可能会与中间细胞类型或细胞状态相混淆。
为了预测哪些“细胞”实际上是doublets,我们合成doublets(通过混合成千上万个单独细胞组合数据)。然后将这些合成的doublets投射到UMAP中,并识别它们的近邻。通过数千次重复这一过程,我们可以在数据中识别出和duoblets信号非常相似的“细胞”。
为了开发和验证ArchR的doublet识别,我们从10个基因不同的细胞系的混合pool中生成了scATAC-seq数据。在scATAC-seq中,这10个细胞系应该形成10个不同的clusters,但当我们故意过量增加10xGenomics的scATAC-seq反应,每个反应靶标25000个细胞,许多的doublets居然消失了。我们知道这些是doublets因为我们用 demuxlet 来识别含有来自两种不同细胞基因型的液滴。
在通过计算去除了doublets后,数据结构与我们预期的是符合的:
(三)代码操作:去除doublets
默认情况下,ArchR使用doublet 参数。我们鼓励所有用户检查去除前后的数据,以了解doublet 去除是如何影响细胞的。下面我们将展示一些主要的可调节的特性。
在ArchR中,使用addDoubletScores()
在单个步骤中执行doublets移除。它会把推断的doublet分数添加到每个Arrow file 中,每个样品大概花大约2-5分钟来处理。你可以尝试使用?addDoubletScores
来查看有关doublets识别参数的文档。
> doubScores <- addDoubletScores(
input = ArrowFiles,
k = 10, #Refers to how many cells near a "pseudo-doublet" to count.
knnMethod = "UMAP", #Refers to the embedding to use for nearest neighbor search with doublet projection.
LSIMethod = 1
)
#运行的时候会弹出很多信息:
ArchR logging to : ArchRLogs\ArchR-addDoubletScores-537c1086681d-Date-2020-11-18_Time-11-36-10.log
If there is an issue, please report to github with logFile!
2020-11-18 11:36:10 : Batch Execution w/ safelapply!, 0 mins elapsed.
2020-11-18 11:36:10 : scATAC_BMMC_R1 (1 of 3) : Computing Doublet Statistics, 0 mins elapsed.
scATAC_BMMC_R1 (1 of 3) : UMAP Projection R^2 = 0.98315
2020-11-18 11:39:13 : scATAC_CD34_BMMC_R1 (2 of 3) : Computing Doublet Statistics, 3.051 mins elapsed.
Biased Clusters : Cluster12
scATAC_CD34_BMMC_R1 (2 of 3) : UMAP Projection R^2 = 0.9736
2020-11-18 11:41:26 : scATAC_PBMC_R1 (3 of 3) : Computing Doublet Statistics, 5.266 mins elapsed.
scATAC_PBMC_R1 (3 of 3) : UMAP Projection R^2 = 0.97657
ArchR logging successful to : ArchRLogs\ArchR-addDoubletScores-537c1086681d-Date-2020-11-18_Time-11-36-10.log
在上面代码运行后的输出文件中,ArchR报告了每个Arrow file的UMAP投影的R2值。如果这些R2值非常低(比如小于0.9),这通常表明Arrow file中的细胞具有很小的异质性。这使得doublets calling的准确性变差了,因为大多数的doublets都是“同型的”(homotypic)——或者是带有两个非常相似细胞的单个液滴。在这些情况下,我们建议跳过doublets预测。或者,你可以尝试设置knnMethod =“LSI”和force = TRUE(在LSI中执行投影)。但是,你应该手动评估结果,并确保其如你预期的那样执行。
添加doublets分数将在“QualityControl”文件夹中创建plot图。在每个样品文件夹中各有3个plots(实际上3个plot合并到了一个pdf文件里):
1.Doublet Enrichments - 这些代表了在每个细胞附近的模拟doublets的富集程度,与我们的预期相比。
2.Doublet Scores - 代表了在每个单细胞附近模拟的doublets与预期相比的显著性(-log10(binomial adjusted p-value)) 。我们发现这个值与Doublet Enrichments不一样,所以使用Doublet Enrichments来进行doublets的鉴定。
3.Doublet Density - 表示doublets的密度,表示duoblet在二维空间的投影。
下面是三个样品的结果图: