if you want the really short, terribly oversimplified way I think of this, it's, "FDR is rank based, which introduces quantization"
I used DEseq to find differentially expressed genes between two samples, for each sample i have 3 replicates, for the DEseq result, i got exactly same padj value for a lot of genes but their p-values are different as attached, is this normal ?
2 answers
To expand on German's answer, this is due to how adjust p-values are calculated with the default (Benjamini-Hochberg) adjustment procedure in R. In short, the p-values are ranked from smallest to largest, and those ranks become part of the calculation.
This Stats SE post explains it nicely, but in short, each unadjusted p-value is multiplied by the number of tests and then divided by its rank order. When p-values are particularly close to each other, this can lead to a more lowly ranked unadjusted p-value ending up with a smaller adjusted p-value than the one before it. In these cases where the resulting sequence is non-decreasing, the preceding p-value is changed to the subsequent one such that they are the same. This is what you're observing in your results, and it's normal.
Yup, this is fine. FDR shows the expected proportion of false discoveries at this threshold and sometimes for different p-values the expected FP proportion is the same for different p-values.
Log in to answer this question.