Annotate single cells using SingleR
Usage
RunSingleR(
srt_query,
srt_ref,
query_group = NULL,
ref_group = NULL,
query_assay = "RNA",
ref_assay = "RNA",
genes = "de",
de.method = "wilcox",
sd.thresh = 1,
de.n = NULL,
aggr.ref = FALSE,
aggr.args = list(),
quantile = 0.8,
fine.tune = TRUE,
tune.thresh = 0.05,
prune = TRUE,
BPPARAM = BiocParallel::bpparam()
)Arguments
- srt_query
An object of class Seurat to be annotated with cell types.
- srt_ref
An object of class Seurat storing the reference cells.
- query_group
A character vector specifying the column name in the `srt_query` metadata that represents the cell grouping.
- ref_group
A character vector specifying the column name in the `srt_ref` metadata that represents the cell grouping.
- query_assay
A character vector specifying the assay to be used for the query data. Defaults to the default assay of the `srt_query` object.
- ref_assay
A character vector specifying the assay to be used for the reference data. Defaults to the default assay of the `srt_ref` object.
- genes
"genes" parameter in
SingleRfunction.- de.method
"de.method" parameter in
SingleRfunction.- sd.thresh
Deprecated and ignored.
- de.n
An integer scalar specifying the number of DE genes to use when
genes="de". Ifde.method="classic", defaults to500 * (2/3) ^ log2(N)whereNis the number of unique labels. Otherwise, defaults to 10. Ignored ifgenesis a list of markers/DE genes.- aggr.ref, aggr.args
Arguments controlling the aggregation of the references prior to annotation, see
trainSingleR.- BPPARAM
A BiocParallelParam object specifying how parallelization should be performed in other steps, see
?trainSingleRand?classifySingleRfor more details.
Examples
data("panc8_sub")
# Simply convert genes from human to mouse and preprocess the data
genenames <- make.unique(capitalize(rownames(panc8_sub), force_tolower = TRUE))
#> Error in capitalize(rownames(panc8_sub), force_tolower = TRUE): could not find function "capitalize"
panc8_sub <- RenameFeatures(panc8_sub, newnames = genenames)
#> Error: object 'genenames' not found
panc8_sub <- check_srtMerge(panc8_sub, batch = "tech")[["srtMerge"]]
#> Warning: Failed to check Seurat version compatibility: 'list' object cannot be coerced to type 'double'
#> [2025-09-08 16:17:18.943393] Spliting srtMerge into srtList by column tech... ...
#> [2025-09-08 16:17:19.109035] Checking srtList... ...
#> Warning: Failed to check Seurat version compatibility: 'list' object cannot be coerced to type 'double'
#> Warning: The following arguments are not used: drop
#> Warning: The following arguments are not used: drop
#> Error in as.vector(data): no method for coercing this S4 class to a vector
# Annotation
data("pancreas_sub")
pancreas_sub <- Standard_SCP(pancreas_sub)
#> [2025-09-08 16:17:21.299859] Start Standard_SCP
#> [2025-09-08 16:17:21.300057] Checking srtList... ...
#> Warning: Failed to check Seurat version compatibility: 'list' object cannot be coerced to type 'double'
#> Warning: The following arguments are not used: drop
#> Warning: The following arguments are not used: drop
#> Error in as.vector(data): no method for coercing this S4 class to a vector
pancreas_sub <- RunSingleR(
srt_query = pancreas_sub, srt_ref = panc8_sub,
query_group = "Standardclusters", ref_group = "celltype",
)
#> Error in check_R("SingleR"): could not find function "check_R"
CellDimPlot(pancreas_sub, group.by = "singler_annotation")
#> Error in CellDimPlot(pancreas_sub, group.by = "singler_annotation"): singler_annotation is not in the meta.data of srt object.
pancreas_sub <- RunSingleR(
srt_query = pancreas_sub, srt_ref = panc8_sub,
query_group = NULL, ref_group = "celltype"
)
#> Error in check_R("SingleR"): could not find function "check_R"
CellDimPlot(pancreas_sub, group.by = "singler_annotation")
#> Error in CellDimPlot(pancreas_sub, group.by = "singler_annotation"): singler_annotation is not in the meta.data of srt object.