neurorestore / Libra

MIT License
145 stars 23 forks source link

Libra - singlecell giving opposite results #23

Open saisomesh2594 opened 2 years ago

saisomesh2594 commented 2 years ago

Hi Jordan,

Thanks for creating & maintaining Libra

I've noticed that when using de_family = "singlecell" & de_method = "wilcox" , for some of my comparisons, the results are exact opposite to what I get when I run FindMarkers(..., test.use = "wilcox") directly on my Seurat object. I've also corroborated this by looking at gene expression differences between the groups in my dataset and the Libra result seems to be opposite to that.

I am wondering what might be causing this reversal ? Does the presence / absence of factors on the label_col affect the design of the comparison? I also noticed in the below referenced code, it is mentioned, to avoid logFC conflicts ? Could you clarify this a bit more?

https://github.com/neurorestore/Libra/blob/3598007b70232f294872bfa60ef0212324b728a3/R/singlecell_de.R#L56-L64

Have you come across any such cases in your testing?

Thanks, Somesh

jordansquair commented 2 years ago

Seurat flips the factor order differently compared to all other DE methods so we flip it to match everything else. If you want it to be identical to Seurat FindMarkers you can just set your factor levels.