Learn R Programming

edgeR (version 3.14.0)

glmTreat: Test for Differential Expression Relative to a Threshold

Description

Conduct genewise statistical tests for a given coefficient or contrast relative to a specified fold-change threshold.

Usage

glmTreat(glmfit, coef=ncol(glmfit$design), contrast=NULL, lfc=0) treatDGE(glmfit, coef=ncol(glmfit$design), contrast=NULL, lfc=0)

Arguments

glmfit
a DGEGLM object, usually output from glmFit or glmQLFit.
coef
integer or character vector indicating which coefficients of the linear model are to be tested equal to zero. Values must be columns or column names of design. Defaults to the last coefficient. Ignored if contrast is specified.
contrast
numeric vector specifying the contrast of the linear model coefficients to be tested against the log2-fold-change threshold. Length must equal to the number of columns of design. If specified, then takes precedence over coef.
lfc
numeric scalar specifying the absolute value of the log2-fold change threshold above which differential expression is to be considered.

Value

glmTreat produces an object of class DGELRT with the same components as for glmfit plus the following:
lfc
absolute value of the specified log2-fold-change threshold.
table
data frame with the same rows as glmfit containing the log2-fold-changes, average log2-counts per million and p-values, ready to be displayed by topTags.
comparison
character string describing the coefficient or the contrast being tested.
The data frame table contains the following columns:
logFC
shrunk log2-fold-change of expression between conditions being tested.
unshrunk.logFC
unshrunk log2-fold-change of expression between conditions being tested. Exists only when prior.count is not equal to 0 for glmfit.
logCPM
average log2-counts per million, the average taken over all libraries.
PValue
p-values.

Details

glmTreat implements a test for differential expression relative to a minimum required fold-change threshold. Instead of testing for genes which have log-fold-changes different from zero, it tests whether the log2-fold-change is greater than lfc in absolute value. glmTreat is analogous to the TREAT approach developed by McCarthy and Smyth (2009) for microarrays.

glmTreat detects whether glmfit was produced by glmFit or glmQLFit. In the former case, it conducts a modified likelihood ratio test (LRT) against the fold-change threshold. In the latter case, it conducts a quasi-likelihood (QL) F-test against the threshold.

If lfc=0, then glmTreat is equivalent to glmLRT or glmQLFTest, depending on whether likelihood or quasi-likelihood is being used.

If there is no shrinkage on log-fold-changes, i.e., fitting glms with prior.count=0, then unshrunk.logFC and logFC are essentially the same. Hence they are merged into one column of logFC in table. Note that glmTreat constructs test statistics using unshrunk.logFC rather than logFC.

glmTreat was previously called treatDGE. The old function name is now deprecated and will be removed in a future release of edgeR.

References

McCarthy, D. J., and Smyth, G. K. (2009). Testing significance relative to a fold-change threshold is a TREAT. Bioinformatics 25, 765-771. http://bioinformatics.oxfordjournals.org/content/25/6/765

See Also

topTags displays results from glmTreat.

Examples

Run this code
ngenes <- 100
n1 <- 3
n2 <- 3
nlibs <- n1+n2
mu <- 100
phi <- 0.1
group <- c(rep(1,n1), rep(2,n2))
design <- model.matrix(~as.factor(group))

### 4-fold change for the first 5 genes
i <- 1:5
fc <- 4
mu <- matrix(mu, ngenes, nlibs)
mu[i, 1:n1] <- mu[i, 1:n1]*fc

counts <- matrix(rnbinom(ngenes*nlibs, mu=mu, size=1/phi), ngenes, nlibs)
d <- DGEList(counts=counts,lib.size=rep(1e6, nlibs), group=group)

gfit <- glmFit(d, design, dispersion=phi)
tr <- glmTreat(gfit, coef=2, lfc=1)
topTags(tr)

Run the code above in your browser using DataLab