After having the output from SingleR for cell type annotation, what's the next step to assign the cell type to each cluster
Entering edit mode
keqiao • 0
Last seen 29 days ago
United States


I'm quite confused what's the workflow after I get the output from singleR output. I have 3 groups scRNAseq data(4 control, 8 treatment1, 8 treatment2), and my goal is to give cell type annotation for each group. And now, I just learned how to perform QC, normalization, dimension reduction, and singleR for one dataset. To give the cell type for each group, should I integrate datasets within each group separately, and then using singleR? specifically, how to assign the cell type to each cluster on my tSNE plot for each group?

I really appreciate any comment, thank you.

SingleCellSignalR SingleCellWorkflow SingleR • 141 views
Entering edit mode

I believe, you have a seurat object with 3 groups with barcodes. If this is the case, it's straight forward, get singleR predictions on each cell and add this to seurat object's

Here is an example,

HCA <- HumanPrimaryCellAtlasData() # human cell atlas dataset (ref for singleR prediction)

sobj_counts <- as.SingleCellExperiment(sobj) # sobj is seurat object

sobj_counts <- logNormCounts(sobj_counts)

hca.predict <- SingleR(sobj_counts, ref = HCA, labels = HCA$label.main)

Add predicted data as metadata to the seurat object

sobj[["HCA"]] <- hca.predict$labels


DimPlot(sobj, = c("HCA","sample_types), reduction = "tsne/umap",label =T/F)

moreover, you can split by = "sample types to view the predictions

I hope this helps!

Best, SG

Entering edit mode
Aaron Lun ★ 26k
Last seen 6 hours ago
The city by the bay

SingleR is a well-behaved classification method in that each cell's assigned cell type is independent of the presence/behavior of other cells in the test dataset. So whether you call SingleR on each dataset separately, or call SingleR on the combined object, it doesn't matter; you'll get the same results. (Assuming that the reference is the same, of course.)

That statement above assumes that you're calling SingleR on either the counts or values generated by a monotonic transformation of the counts, e.g., log-normalized expression values. This may or may not be the case depending on what you're doing upstream - for example, see comments here. In particular, output from data integration or batch correction are definitely not appropriate for SingleR.


Login before adding your answer.

Traffic: 395 users visited in the last hour
Help About
Access RSS

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6