# Bioconductor Scdblfinder

> The scDblFinder package gathers various methods for the detection and handling of doublets/multiplets in single-cell sequencing data (i.e. multiple cells captured within the same droplet or reaction volume). It includes methods formerly fou

- Skill: `biomate-ai/bioconductor-scdblfinder` (Agent Skill)
- Install (CLI): `npx skillmds@latest add biomate-ai/bioconductor-scdblfinder`
- Raw SKILL.md: https://api.skillmd.com/api/skills/biomate-ai/bioconductor-scdblfinder/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: biomate-ai (https://skillmd.com/u/biomate-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/biomate-ai/bioconductor-scdblfinder

---


# scDblFinder

## Dependencies & Environment

> Package-intrinsic requirements from the Bioconductor landing page — reproduce in any R environment.

- **Version:** 1.26.0 · **Bioconductor:** 3.23 · **R:** ≥ 4.6
- **Depends:** SingleCellExperiment
- **Imports:** igraph, Matrix, BiocGenerics, BiocParallel, BiocNeighbors, BiocSingular, S4Vectors, SummarizedExperiment, scran, scater, scuttle, bluster, DelayedArray, xgboost, MASS, IRanges, GenomicRanges, GenomeInfoDb, Rsamtools, rtracklayer
- **Install:** `BiocManager::install("scDblFinder")`

## When to Use
- Identifying heterotypic doublets in single-cell RNA sequencing data using the `scDblFinder` iterative classifier.
- Detecting doublets in multiplexed samples by processing each capture separately using the `samples` argument.
- Testing for specific doublet type enrichments (e.g., combinations of clusters) using `doubletPairwiseEnrichment` or `clusterStickiness`.
- Recovering intra-sample doublets that are neighbors to known inter-sample doublets (e.g., from cell hashing) using `recoverDoublets`.

## When NOT to Use
- For identifying homotypic doublets or inter-sample doublets in multiplexed experiments (use cell hashing or genotype-based SNP calls instead, as `scDblFinder` focuses on transcriptionally distinct heterotypic doublets).

## Data Requirements
- A `SingleCellExperiment` object or a simple count matrix containing raw counts (assay 'counts').
- Empty droplets should already be removed prior to running the tool.

## Key Parameters
- **samples** (NULL): Column name in `colData` or a vector indicating the sample/capture of origin to process batches separately.
- **clusters** (FALSE): Cluster labels or `TRUE` to use `fastcluster`; enables cluster-based artificial doublet generation.
- **dbr** (NULL): Expected proportion of doublets; if omitted, automatically estimated based on the number of captured cells.
- **dbr.per1k** (0.008): Expected doublet rate per thousand cells, defaulting to standard 10X rates.
- **artificialDoublets** (NULL): Number of artificial doublets to generate; defaults to roughly the number of cells.
- **nfeatures** (1000): Number of top expressed genes to retain for dimensionality reduction to speed up analysis.

## Best Practices
- Always split multi-sample datasets by providing the `samples` argument so doublets are sought independently for each capture.
- Use the cluster-based approach (`clusters=TRUE`) if your dataset has a very clear cluster structure to avoid generating unidentifiable homotypic artificial doublets.
- Check the distribution of doublet scores (`hist(sce$scDblFinder.score)`); a bimodal distribution indicates successful doublet identification.
- If running multiple samples with the cluster-based approach, pre-cluster all samples together using `fastcluster` and pass the labels to the `clusters` argument to ensure concordant labels across samples.

## Common Pitfalls
- **Way too many doublets called**: Often caused by pooling multiple samples without specifying the `samples` argument, making the tool assume a massive single capture. *Fix*: Provide the `samples` argument to split cells by capture/batch.
- **'Size factors should be positive' error**: Caused by cells with zero reads or very low read counts that drop to zero after feature selection. *Fix*: Filter out empty droplets and extremely low-count cells before running `scDblFinder`.
- **Nonsensical cluster labels across samples**: When running multiple samples without providing cluster labels, `scDblFinder` clusters them sample-wise, leading to mismatched labels. *Fix*: Pre-cluster all samples together using `fastcluster` and pass the labels to the `clusters` argument.

## Alternatives
- **computeDoubletDensity**: A simpler density-based method (formerly `scran::doubletCells`) that identifies cells with a high local density of artificial doublets.
- **findDoubletClusters**: Identifies entire clusters that are likely composed of doublets by checking if their expression profile lies between two other clusters.
- **directDblClassification**: Trains a classifier directly on gene expression without the kNN step, though generally yields worse predictions than `scDblFinder`.

## Citations
- Germain, P. L., Lun, A., Macnair, W., & Robinson, M. D. (2021). Doublet identification in single-cell sequencing data using scDblFinder. F1000Research, 10, 979.
- Howitt et al., 2024. (Referenced regarding doublets in 10x Flex datasets).

## References
- Homepage: bioconductor.org/packages/scDblFinder
- Vignette: vignette_0_d20f7c0c.txt

<!-- biomate-cta -->
---

## Run this on BioMate

This skill is the **knowledge layer** — when, why, and how to use `scdblfinder`. To **run this analysis on your own data** with managed compute, automated QC, and reproducible outputs, use **[BioMate](https://www.biomate.ai?ref=kb&pkg=scdblfinder)** — free to start.

▶ **[Open `scdblfinder` on BioMate →](https://www.biomate.ai?ref=kb&pkg=scdblfinder)**

