单细胞分析(10)——scRNA-seq 双细胞(Doublet)筛选

scRNA-seq 双细胞(Doublet)筛选

1. 背景介绍

1.1 什么是双细胞?

在单细胞转录组测序(scRNA-seq)过程中,实验技术的不完美可能会导致两个或多个细胞共享相同的条形码(barcode),形成 双细胞(doublets)。这些细胞会影响数据分析的准确性,导致错误的细胞类型鉴定、伪影(artifacts)和假阳性信号。

1.2 为什么需要去除双细胞?

双细胞的存在会对单细胞分析造成以下影响:

  • 扰乱细胞聚类(clustering),影响细胞类型定义
  • 影响差异表达基因分析(DEG)
  • 误导轨迹推断(trajectory inference)
  • 影响肿瘤微环境和免疫细胞的正确解析

1.3 现有的双细胞鉴定工具

目前有多种方法用于双细胞鉴定,例如:

  • DoubletFinder(推荐,准确性较高)
  • Scrublet(适用于 Python)
  • DoubletDetection
  • cxds/bcds/hybrid
  • DoubletDecon

根据Cell Systems 2021年的研究,DoubletFinder 在准确性上表现最佳,因此本教程采用 DoubletFinder 进行双细胞去除。


2. DoubletFinder 过滤双细胞的流程

DoubletFinder 主要基于 PCA 降维 + KNN 近邻搜索,通过模拟伪双细胞(artificial doublets)来预测真实数据中的双细胞。

2.1 数据预处理

在去除双细胞之前,首先需要对 scRNA-seq 数据进行标准的预处理。

# 读取数据
sc_data = readRDS(file = './tmp/scRNA_qc_list.RDS')

# 合并多个样本
sc_merged <- sc_data[[1]]
for (i in 2:length(sc_data)) {
  sc_merged <- merge(sc_merged, y = sc_data[[i]], project = "merged")
}
sc_merged$samples = sc_merged$orig.ident
rm(sc_data)

# 数据标准化和降维
combo <- sc_merged
combo <- SCTransform(combo, vars.to.regress = c("nCount_RNA", "nFeature_RNA", "percent.hb", 
                                                "percent.platelet", "percent.heatshock"), verbose = TRUE)
combo <- RunPCA(combo, npcs = 100)

# 选择 PCA 维度
ElbowPlot(combo)

2.2 选择最佳 PCA 维度

使用 ElbowPlot 选择合适的 PCA 维度,通常选择拐点处的维度,例如 前 50-60 个主成分

combo <- FindNeighbors(combo, reduction = "pca", dims = 1:60)
combo <- FindClusters(combo, resolution = 0.7)
combo <- RunUMAP(combo, reduction = "pca", dims = 1:60, seed.use = 123)

2.3 运行 DoubletFinder

DoubletFinder 需要 计算最佳 pK 值,这是用于识别双细胞的关键参数。

(1) 计算最佳 pK
combo.list <- SplitObject(combo, split.by = "samples")

pkchoose.list <- list()
for (i in 1:length(combo.list)) {
  seu_temp <- combo.list[[i]]
  
  sweep.res.list <- paramSweep_v3(seu_temp, PCs = seu_temp@commands$RunUMAP.SCT.pca$dims, sct = TRUE)
  sweep.stats <- summarizeSweep(sweep.res.list, GT = FALSE)
  
  # 计算最佳 pK
  sweep.stats.pk <- find.pK(sweep.stats)
  pK=as.numeric(as.character(sweep.stats.pk$pK))
  BCmetric=sweep.stats.pk$BCmetric
  pK_choose = pK[which(BCmetric %in% max(BCmetric))]
}
(2) 计算双细胞比例
nExp_poi <- 0.0059 * nrow(seu_temp@meta.data)
(3) 运行 DoubletFinder
seu_temp <- doubletFinder_v3(seu_temp, PCs = seu_temp@commands$RunUMAP.SCT.pca$dims, 
                             sct = TRUE, pN = 0.25, pK = as.numeric(pK_choose), nExp = nExp_poi, 
                             reuse.pANN = FALSE)

combo.list[[i]] <- seu_temp

2.4 整合双细胞结果

doublet.cell.list <- list()
doublet.df <- list()
for (i in names(combo.list)) {
  seu_temp <- combo.list[[i]]
  doublet.sub <- seu_temp@meta.data[, grepl("DF", colnames(seu_temp@meta.data)), drop = F]
  doublet.df[[i]] <- doublet.sub
  doublet.cell.list[[i]] <- rownames(doublet.sub)
  sc_merged <- AddMetaData(sc_merged, doublet.sub, paste0("Doublet.", i))
}

# 汇总双细胞识别结果
sc_merged$Doublet.Call <- apply(sc_merged@meta.data[, c(9:16)], 1, function(x) x[!is.na(x)][1])

3. 结果可视化

DimPlot(sc_merged, group.by = "Doublet.Call", reduction = "umap") + ggtitle("Doublet Identification")
table(sc_merged$Doublet.Call)

4. 结果保存

saveRDS(sc_merged, file = './tmp/scRNA_qc_withDoublet.RDS')

5. 结论

  • 双细胞(doublets)是 scRNA-seq 分析中的常见问题,需要在分析流程中加以去除。
  • DoubletFinder 是目前准确性较高的方法,适用于 Seurat 处理的单细胞数据。
  • 正确选择 pKnExp 计算参数,可以显著提高双细胞检测的准确性。
  • 去除双细胞后,数据的聚类、差异分析、轨迹推断的可信度将会更高。
### 单细胞测序去除细胞的方法与工具 在单细胞测序数据分析过程中,去除细胞(doublets)是一个重要的预处理步骤。细胞是指两个或多个细胞被错误地捕获到同一个液滴或孔中,从而导致数据污染。为了有效识别并移除这些细胞,研究者开发了一系列方法和工具。 #### 方法概述 一种常用策略是基于模拟细胞的分布特征来构建参考模型,并通过比较真实数据中的细胞表达模式与该模型之间的相似性来进行检测[^1]。这种方法假设真实的细胞会表现出两种不同细胞类型的混合转录组特性。另一种思路则是利用生物学标记基因或者特定技术手段(如唯一分子标识符UMI计数)实现更精确的区分[^2]。 #### 工具介绍 以下是几种广泛使用的用于去除单细胞RNA-seq数据集中细胞的计算工具: 1. **Scrublet** Scrublet 是一款专门设计用来预测和过滤掉scRNA-seq实验产生的doublet事件的Python包。它采用合成doublet建模的方式,在不依赖外部对照样本的情况下估计实际存在的doublet比例,并提供灵活参数调整选项以便适应不同类型的数据集需求[^3]。 ```python import scrublet as scr scrub = scr.Scrublet(sparse_counts_matrix) doublet_scores, predicted_doublets = scrub.scrub() ``` 2. **DoubletFinder** DoubletFinder 利用k-means聚类算法结合PCA降维后的空间结构信息寻找潜在的异常点作为候选doublet对象。此R软件包还允许用户自定义阈值以优化最终筛选效果[^4]。 3. **DecontX** DecontX 属于Cell Ranger官方支持的一个功能模块,主要针对 droplet-based 平台生成的大规模scRNAseq 数据进行去噪处理,其中包括对可能存在的cross-contamination 和 doublet 进行校正操作[^5]。 以上提到的各种解决方案各有优劣之处,具体选择取决于项目目标以及可用资源等因素考虑。 ### 注意事项 值得注意的是,尽管上述工具有助于减少由细胞引起的偏差,但在某些情况下完全消除它们可能是不可能的任务;因此,在解释结果时仍需谨慎对待残留影响的可能性[^6]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信小鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值