BioF3 FigCode · SCI 绘图代码集

双胞检测(Doublet Detection)

导出日期:2026年6月27日

分类:降维可视化 | 依赖包:Seurat、scDblFinder、SingleCellExperiment

解决的生物学问题

我的数据里有多少疑似双胞?它们集中在哪个 cluster?过滤后影响大吗?

应用场景

输入数据格式

Seurat 对象(已跑 PCA / UMAP)

关键参数

快速开始

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 --- 标注的段落是示例数据生成代码。替换为自己的数据时,保持列名一致即可:

延伸阅读