Dear Michael,
If I understand you correctly, you are asking about adjusting the p-values for multiple testing.
The default in edgeR is to adjust the p-value in order to control the expected false discovery rate (FDR). FDR is a scalable quantity in a numerical sense, so the fact that you control the FDR for each contrast separately is less important than if you were trying to control the type I error rate. What I mean by "scalable" is this: if the true FDR is below a given level for each of 5 contrasts separately, then the true FDR must automatically be below that level across all 5 contrasts together. That's just a numerical identity.
This doesn't mean that applying the Benjamini-Hochberg algorithm (BH) to each contrast separately is equivalent to applying the algorithm across all the p-values together. The BH algorithm controls the expected FDR below a given value, not the actual FDR. So if you apply BH to lots of contrasts, then the chance that the true FDR will be above the nominal level for one or more of the contrasts is quite high. But it does mean nevertheless that applying BH across each of the contrasts separately remains a relatively robust practice in terms of overall FDR control.
The situation would be different if you used adjust.method="holm". Holm's method controls the family-wise type I error rate, and the type I error rate does not scale over multiple contrasts.
Note also that applying the BH algorithm to all the contrasts simultaneously is not a panacea anyway. Controlling the expected FDR across all genes and all contrasts does not also control the expected FDR within each contrast separately when the percentage of DE genes differs between the contrasts. In particular, the expected FDR for individual contrasts with relatively DE genes can become overly high. Applying FDR globally to all contrasts is conservative for contrasts with many DE genes and liberal for those with few, even while it controls the expected FDR overall.
If you want to get fancy, the decideTests() function in the limma package provides a variety of ways to control either the FDR or the family-wise error rate within and between contrasts. However the default practice remains to apply FDR to each contrast separately, and I continue to recommend that for the majority of analyses.
Best wishes
Gordon
Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
What method is used for FDR control in exactTest?
Thanks,
Naomi
Hi Naomi,
exactTest just computes p-values. Just as in limma, adjustment for multiple testing is done at the collation stage, rather than at the time of constructing the test and the p-value.
To see the default for topTags:
Regards
Gordon
Great to know!
So the FDR does scale across multiple contrasts.
Thank you!