fdr.control {GeneTS}R Documentation

Controlling the False Discovery Rate in Multiple Testing


fdr.control controls the False Discovery Rate (FDR) at a given level Q using the algorithms described in Benjamini and Hochberg (1995) and Storey (2002). The FDR is the expected proportion of false positives (erroneous rejections) among the significant tests (rejections). For a given vector of p-values and the desired FDR level Q the corresponding p-value cut-off and the q-values for each hypothesis (see Storey, 2002) are computed.


fdr.control(p, Q=0.05, eta0=1.0, robust=FALSE)


p vector of p-values
Q desired FDR level
eta0 proportion of null p-values (default: eta0=1).
robust use small sample approximation for estimating q-values (default: robust=FALSE)



  1. the default settings correspond to the step-up procedure to control the FDR by Benjamini and Hochberg (1995).
  2. q-values for each hypothesis are computed as defined in Storey (2002).
  3. small sample approximation for q-value (robust=TRUE) is from Storey (2002).
  4. default eta0=0 is safe but also most conservative choice (for other possibilities see fdr.estimate.eta0).


A list object with the following components:

qvalues a vector with the q-values for each hypothesis.
significant a vector with a TRUE/FALSE value for each hypothesis
num.significant number of significant hypotheses.
pvalue.cutoff cutoff level for the individual p-values to obtain the desired control of FDR. Hypotheses whose corresponding p-values are below or equal to this cuttoff level are rejected (i.e. significant).


Konstantinos Fokianos (http://www.ucy.ac.cy/~fokianos/) and Korbinian Strimmer (http://www.stat.uni-muenchen.de/~strimmer/).

Adapted in part from S-PLUS code by Y. Benjamini (http://www.math.tau.ac.il/~roee/FDR_Splus.txt) and R code from J.D. Storey (http://faculty.washington.edu/~jstorey/).


Benjamini, Y., and Y. Hochberg (1995) Controlling the false discovery rate: a practical and powerful approach to multiple testing. J. Roy. Statist. Soc. B, 57, 289–300.

Storey, J. D. (2002) A direct approach to false discovery rates. J. Roy. Statist. Soc. B., 64, 479–498.

See Also



# load GeneTS library

# load data set

# how many genes and how many samples?

# p-values from Fisher's g test
pval.caulobacter <- fisher.g.test(caulobacter)

# FDR test on the level 0.05
fdr.control(pval.caulobacter, Q = 0.05)

[Package GeneTS version 2.3 Index]