BioF3 FigCode · SCI 绘图代码集
双胞检测(Doublet Detection)
分类:降维可视化 | 依赖包:Seurat、scDblFinder、SingleCellExperiment
解决的生物学问题
我的数据里有多少疑似双胞?它们集中在哪个 cluster?过滤后影响大吗?
应用场景
- 10x 高 loading rate 数据
- 多样本合并前 QC
- 罕见 cluster 真假判断
- 论文质控章节标准图
输入数据格式
Seurat 对象(已跑 PCA / UMAP)
关键参数
- expected_doublet_rate(0.075 per 10k cells)
- sct = FALSE/TRUE(是否用 SCTransform)
- pN / pK 网格搜索参数
快速开始
1. 直接在线运行
打开 FigCode 在线绘图,点击本工具卡片的"在线绘图"按钮即可用内置示例数据出图,零环境配置。
2. 本地复现
下载脚本和示例数据,本地 RStudio 运行:
# 下载
curl -O https://<your-site>/figcode/scripts/sc-doublet.R
curl -O https://<your-site>/figcode/data/sc-doublet.csv
3. 安装依赖
# CRAN 包
install.packages(c("scDblFinder", "SingleCellExperiment"))
# Bioconductor 包(如需)
# BiocManager::install(c())
完整代码
library(Seurat)
library(scDblFinder)
library(SingleCellExperiment)
# --- Demo data ---
data("pbmc_small")
seu <- pbmc_small
if (!"umap" %in% Reductions(seu)) {
seu <- ScaleData(seu, verbose = FALSE) %>%
RunPCA(verbose = FALSE) %>%
RunUMAP(dims = 1:10, verbose = FALSE)
}
# --- Convert to SCE and run scDblFinder ---
sce <- as.SingleCellExperiment(seu)
sce <- scDblFinder(sce, samples = NULL)
# Transfer back to Seurat
seu$doublet_class <- sce$scDblFinder.class
seu$doublet_score <- sce$scDblFinder.score
# --- Plot ---
p1 <- DimPlot(seu, group.by = "doublet_class",
cols = c(singlet = "#e5e7eb", doublet = "#dc2626"),
order = "doublet") +
ggtitle(sprintf("Doublets: %d / %d (%.1f%%)",
sum(seu$doublet_class == "doublet"),
ncol(seu),
100 * mean(seu$doublet_class == "doublet")))
p2 <- FeaturePlot(seu, features = "doublet_score") +
scale_color_gradient(low = "#e5e7eb", high = "#dc2626") +
ggtitle("Doublet score (continuous)")
p1 | p2
替换为自己的数据
脚本中以 # --- Demo data --- 标注的段落是示例数据生成代码。替换为自己的数据时,保持列名一致即可:
- 输入格式:Seurat 对象(已跑 PCA / UMAP)
- 使用
read.csv()/readRDS()读取本地文件
延伸阅读
- 相关教程:双胞检测 完整流程
- 出现 bug?欢迎在 FigCode 页面 点击对应卡片,在评论区留言。