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". If- de.method="classic", defaults to- 500 * (2/3) ^ log2(N)where- Nis the number of unique labels. Otherwise, defaults to 10. Ignored if- genesis 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.