Skip to contents

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 SingleR function.

de.method

"de.method" parameter in SingleR function.

sd.thresh

Deprecated and ignored.

de.n

An integer scalar specifying the number of DE genes to use when genes="de". If de.method="classic", defaults to 500 * (2/3) ^ log2(N) where N is the number of unique labels. Otherwise, defaults to 10. Ignored if genes is 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 ?trainSingleR and ?classifySingleR for 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.