P-value Adjustment Calculator (FDR / BH / Bonferroni)

Paste a column of p-values or a whole results table to get BH (FDR), Bonferroni, Holm and other multiple-testing adjusted p-values — identical to R’s p.adjust, ready to download.

Everything runs locally in your browser. Pasted data is never uploaded to any server.

1. Data

2. P-value column

3. Methods and threshold

Methods (pick one or more)

Result

Paste some p-values first, or click “Load example”.

  • Results are identical to R’s stats::p.adjust (same method names; BH is R’s "fdr"). Empty cells (including blank lines) and NA are treated as missing and not counted in n, matching R’s default n = sum(!is.na(p)). This tool also treats non-numbers and values outside 0–1 as missing (R’s p.adjust does not check the range and would compute anyway). Output rows match input rows one to one, blank lines included.
  • Upper-bound values such as “<2.2e-16” printed by R are replaced by the bound. Adjusted values are non-decreasing in every input, so this gives conservative upper bounds that are still valid; for exact values, export full-precision p-values from your analysis.
  • FDR (false discovery rate): among the results called significant, the expected share of false positives is at most α. BH is the usual choice for omics data (differential expression, enrichment and the like); BY is more conservative and holds under any dependence between tests.
  • FWER (family-wise error rate): the probability of even one false positive across all tests is at most α — much stricter than FDR, suited to a small number of tests where no false positive is acceptable (e.g. validating a few candidate genes). Holm is never worse than Bonferroni and can always replace it; Hochberg and Hommel are more powerful but assume independent or positively correlated tests.
  • Adjust over all tests you ran. Pasting only pre-filtered p-values (say, those below 0.05) shrinks n and makes the adjusted values too optimistic — that is a misuse.
  • “Significant” counts adjusted p strictly below α. Choose the method and threshold before looking at the results, rather than trying several and keeping the best-looking one.