satijalab / seurat

R toolkit for single cell genomics
http://www.satijalab.org/seurat
Other
2.3k stars 917 forks source link

FindAllMarkers - test.use = "roc" (clarification required) #1586

Closed tracychew closed 5 years ago

tracychew commented 5 years ago

Hi,

I was looking into how to interpret results from the "roc" test for FindAllMarkers and found that the PBMC tutorial suggests to interpret results differently to what the vignette suggests:

The tutorial: "For example, the ROC test returns the ‘classification power’ for any individual marker (ranging from 0 - random, to 1 - perfect)."

The vignette: ""roc" : Identifies 'markers' of gene expression using ROC analysis. For each gene, evaluates (using AUC) a classifier built on that gene alone, to classify between two groups of cells. An AUC value of 1 means that expression values for this gene alone can perfectly classify the two groupings (i.e. Each of the cells in cells.1 exhibit a higher level than each of the cells in cells.2). An AUC value of 0 also means there is perfect classification, but in the other direction. A value of 0.5 implies that the gene has no predictive power to classify the two groups."

Would someone be able to clarify this for me?

I am using the v3.0 tutorial and the Seurat 3.0.0 package.

Thanks!

andrewwbutler commented 5 years ago

Hi,

The value that is returned from the "roc" test isn't the raw AUC value but rather what is described in the tutorial as "classification power" (abs(AUC-0.5)) * 2). So an AUC of 0.5 (no predictive power, random) would correspond to a "classification power" of 0 where as and AUC of either 0 or 1 would correspond to a "classification power" of 1. It looks like the function documentation is missing the * 2 (we will update this) but otherwise both are correct.