decideTests {limma} | R Documentation

## Multiple Testing Across Genes and Contrasts

### Description

Identify which genes are significantly differentially expressed for each contrast from a fit object containing p-values and test statistics. A number of different multiple testing strategies are offered that adjust for multiple testing down the genes as well as across contrasts for each gene.

### Usage

    ## S3 method for class 'MArrayLM'
    decideTests(object, method = "separate", adjust.method = "BH", p.value = 0.05,
                lfc = 0, ...)
    ## Default S3 method:
    decideTests(object, method = "separate", adjust.method = "BH", p.value = 0.05,
                lfc = 0, coefficients = NULL, cor.matrix = NULL, tstat = NULL, df = Inf,
                genewise.p.value = NULL, ...)

### Arguments

`object` | a numeric matrix of p-values or an `MArrayLM` object from which p-values and t-statistics can be extracted.
`method` | character string specifying how genes and contrasts are to be combined in the multiple testing scheme. Choices are `"separate"`, `"global"`, `"hierarchical"` or `"nestedF"`.
`adjust.method` | character string specifying p-value adjustment method. Possible values are `"none"`, `"BH"`, `"fdr"` (equivalent to `"BH"`), `"BY"` and `"holm"`. See `p.adjust` for details.
`p.value` | numeric value between 0 and 1 giving the required family-wise error rate or false discovery rate.
`lfc` | numeric, minimum absolute log2-fold-change required.
`coefficients` | numeric matrix of coefficients or log2-fold-changes. Of same dimensions as `object`.
`cor.matrix` | correlation matrix of coefficients. Square matrix of dimension `ncol(object)`.
`tstat` | numeric matrix of t-statistics. Of same dimensions as `object`.
`df` | numeric vector of length `nrow(object)` giving degrees of freedom for the t-statistics.
`genewise.p.value` | numeric vector of length `nrow(object)` containing summary gene-level p-values for use with `method="hierarchical"`.
`...` | other arguments are not used.

### Details

This function can be applied to a matrix of p-values but is more often applied to an `MArrayLM` fit object produced by `eBayes` or `treat`. In either case, rows of `object` correspond to genes and columns to coefficients or contrasts.

This function applies a multiple testing procedure and a significance level cutoff to the statistics contained in `object`. It implements a number of multiple testing procedures for determining whether each statistic should be considered significantly different from zero.

The setting `method="separate"` is equivalent to using `topTable` separately for each coefficient in the linear model fit, and will identify the same probes as significantly differentially expressed if `adjust.method` is the same. `method="global"` will treat the entire matrix of t-statistics as a single vector of unrelated tests. `method="hierarchical"` adjusts down genes and then across contrasts. `method="nestedF"` adjusts down genes and then uses `classifyTestsF` to classify contrasts as significant or not for the selected genes. Please see the limma User's Guide for a discussion of the statistical properties of these methods.

### Value

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.

If `lfc>0` then contrasts are judged significant only when the log2-fold change is at least this large in absolute value. For example, one might choose `lfc=log2(1.5)` to restrict to 50% changes or `lfc=1` for 2-fold changes. In this case, contrasts must satisfy both the p-value and the fold-change cutoff to be judged significant.

### Note

Although this function enables users to set p-value and lfc cutoffs simultaneously, this combination criterion is not generally recommended. Unless the fold changes and p-values are very highly correlated, the addition of a fold change cutoff can increase the family-wise error rate or false discovery rate above the nominal level. Users wanting to use fold change thresholding are recommended to use `treat` instead of `eBayes` and to leave `lfc` at the default value when using `decideTests`.

### Author(s)

Gordon Smyth

### See Also

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

[Package limma version 3.38.3 Index]