Does SingleR return output for every cell it's given or only those that it can provide an annotation for?
1
0
Entering edit mode
w.gus.dunn • 0
@wgusdunn-24271
Last seen 6 months ago

I have a 10X single cell experiment that has ~8000 cells in it. When I feed it into SingleR, I get cell type predictions for only about 800 cells. I have not noticed this in other experiments. Now this experiment has other aspects besides gene expression and it seems to be behaving strangely there as well.

My hypothesis is that something went wrong in the lab. But it has exposed behavior in SingleR that has surprised me. SingleR does at times return output for cells that it does not feel comfortable labeling. They end up getting their labels removed during the "pruning" stage. This made me expect to get SOMETHING for every cell I give it. Even if the output is equivalent to "UNLABELED".

My question is: Should I expect an "answer" for every cell I give to SingleR? Or if the first stage of the process fails to find a similar expression profile in the reference(s) does the code drop that cell from the output?

SingleR Single Cell • 205 views
0
Entering edit mode
Aaron Lun ★ 26k
@alun
Last seen 1 hour ago
The city by the bay

I'm not quite sure what you mean by "I get cell type predictions for only about 800 cells", but if you're looking at the labels field, then yes, SingleR should give you a label for every cell. The output DataFrame should have a number of rows equal to the number of columns in the input matrix/SE/SCE. If this is not the case, it sounds like a bug.

If you're looking at the pruned.labels field, you might get NAs for a few cells but you should be getting actual labels for most cells. This is by definition - SingleR defines a "good" assignment score in a relative sense, so pruning can only be performed on the cells that have assignment scores much lower than the majority. Even so, the output DataFrame should still have the same number of rows as columns of the input object.