Multiple testing correction
Adjust a list of p-values by Benjamini–Hochberg or Bonferroni.
Controls the false discovery rate — the expected share of false positives among your hits. The standard for genomics.
Paste a column of p-values to correct.
p_adj = min over k ≥ i of (p₍ₖ₎ × m ÷ k)- Controlling the false discovery rate — Journal of the Royal Statistical Society B, 1995
When to use this
Use this when you have run many tests at once — a differential expression list, a screen — and need to correct the p-values. Benjamini–Hochberg controls the proportion of your hits that are false; Bonferroni controls the chance of any false positive at all, and is far stricter.
Worked example
A differential expression list of 20,000 genes.
- Method
- Benjamini–Hochberg
- Threshold
- FDR 0.05
Result
An FDR of 0.05 means about 5% of the genes you call significant are expected to be wrong — which is a different promise from Bonferroni’s.
What people get wrong
- Not correcting at all. Twenty thousand tests at α = 0.05 give a thousand false positives before any biology is involved.
- Using Bonferroni on a genome-wide screen. It controls a stricter error rate than you usually need and will discard almost everything real.
- Correcting a subset chosen after looking at the results. The family has to be defined before you see which tests were interesting.
Questions
+What does an FDR of 0.05 actually mean?
Of the tests you call significant, about 5% are expected to be false positives. It is a statement about your hit list, not about each individual test.
+When is Bonferroni the right choice?
When a single false positive is costly — a clinical decision, a confirmatory test — and the number of comparisons is small.
+Why is my adjusted p-value the same as another gene’s?
Benjamini–Hochberg enforces monotonicity, so adjacent adjusted values are often tied. That is expected behaviour, not a bug.
Related tools
- t-test calculator — Compare two groups and get the effect size and interval, not just a p-value.
Science last reviewed .