classifyTests {limma}R Documentation

Multiple Testing Genewise Across Contrasts


For each gene, classify a series of related t-statistics as up, down or not significant.


classifyTestsF(object, cor.matrix=NULL, df=Inf, p.value=0.01, fstat.only=FALSE)
classifyTestsT(object, t1=4, t2=3)
classifyTestsP(object, df=Inf, p.value=0.05, method="holm")
FStat(object, cor.matrix=NULL)


object numeric matrix of t-statistics or an MArrayLM object from which the t-statistics may be extracted.
cor.matrix covariance matrix of each row of t-statistics. Defaults to the identity matrix.
df numeric vector giving the degrees of freedom for the t-statistics. May have length 1 or length equal to the number of rows of tstat.
p.value numeric value between 0 and 1 giving the desired size of the test
fstat.only logical, if TRUE then return the overall F-statistic as for FStat instead of classifying the test results
t1 first critical value for absolute t-statistics
t2 second critical value for absolute t-statistics
method character string specifying p-value adjustment method. See p.adjust for possible values.


Note that these functions do not adjust for multiple testing across genes. The adjustment for multiple testing is across the contrasts rather than the more usual control across genes. The functions described here are called by decideTests. Most users should use decideTests rather than using these functions directly.

These functions implement multiple testing procedures for determining whether each statistic in a matrix of t-statistics should be considered significantly different from zero. Rows of tstat correspond to genes and columns to coefficients or contrasts.

FStat computes the gene-wise F-statistics for testing all the contrasts equal to zero. It is equivalent to classifyTestsF with fstat.only=TRUE.

classifyTestsF uses a nested F-test approach giving particular attention to correctly classifying genes which have two or more significant t-statistics, i.e., are differential expressed under two or more conditions. For each row of tstat, the overall F-statistics is constructed from the t-statistics as for FStat. At least one constrast will be classified as significant if and only if the overall F-statistic is significant. If the overall F-statistic is significant, then the function makes a best choice as to which t-statistics contributed to this result. The methodology is based on the principle that any t-statistic should be called significant if the F-test is still significant for that row when all the larger t-statistics are set to the same absolute size as the t-statistic in question.

classifyTestsT and classifyTestsP implement simpler classification schemes based on threshold or critical values for the individual t-statistics in the case of classifyTestsT or p-values obtained from the t-statistics in the case of classifyTestsP. For classifyTestsT, classifies any t-statistic with absolute greater than t2 as significant provided that at least one t-statistic for that gene is at least t1 in absolute value. classifyTestsP applied p-value adjustment from p.adjust to the p-values for each gene.

If tstat is an MArrayLM object, then all arguments except for p.value are extracted from it.

cor.matrix is the same as the correlation matrix of the coefficients from which the t-statistics are calculated. If cor.matrix is not specified, then it is calculated from design and contrasts if at least design is specified or else defaults to the identity matrix. In terms of design and contrasts, cor.matrix is obtained by standardizing the matrix t(contrasts) %*% solve(t(design) %*% design) %*% contrasts to a correlation matrix.


An object of class TestResults. This is essentially a numeric matrix with elements -1, 0 or 1 depending on whether each t-statistic is classified as significantly negative, not significant or significantly positive respectively.
FStat produces a numeric vector of F-statistics with attributes df1 and df2 giving the corresponding degrees of freedom.


Gordon Smyth

See Also

An overview of multiple testing functions is given in 08.Tests.


tstat <- matrix(c(0,5,0, 0,2.5,0, -2,-2,2, 1,1,1), 4, 3, byrow=TRUE)

# See also the examples for and vennDiagram

[Package limma version 2.16.5 Index]