This is a test version of Biostars. For the public version, visit https://www.biostars.org.
FDR Corrected P-Values in FindAllMarkers() in Seurat

Hi,

I found DEGs within condition+ cells (the transcript was used during alignment so we are confident these cells are condition+) and across sites. So the DEGs were site 1 vs site 2 within condition+ cells. The cell numbers in the clusters were 9 vs 3, or 10 vs 7, so very few cells, which definitely reduces power. Plus I am using a lot of genes (min.pct=0.25), which significantly impacts FDR correction.

In FindAllMarkers on default (Wilcoxon test), FDR correction does:

> p_adj = (p*Ntests)/rank(p)

So even a raw p-value of 0.05 becomes:

> p_adj = (0.05*15000)/1 = 750 (but is capped at 1)

What should we be doing in this case? Should we just use p_val and treat the genes as exploratory? Are there alternate tests/methods which perform better in sparse cell conditions? Alternate ways to correct for multiple testing?

Appreciate any input!

seurat single-cell

1 answer

In single cell experiment, the sparcity of the data is generaly mitigated by the number of cells.

With your number of cells, I would not expect any statistical DEGs, especially using a Wilcoxon Rank Sum test (considering each cell as a replicate itself).

The FindAllMarkers is not designed to give you any DEGs between conditions, it is designed to give the best population markers.

Metrics like Log2FC and pval, are not strickly calculated between condition but are maximize to highlight most probable markers (using pseudocounts).

You could try to run the same function with test.use="DESeq2", or doing a similar pseudobulk strategy differential expression.

Log in to answer this question.