Dudoit-class {ClassComparison}R Documentation

The Dudoit Class

Description

An implementation of the method of Dudoit and colleagues to apply the Westfall-Young adjustment to p-values to control the family-wise error rate when analyzing microarray data.

Usage

Dudoit(data, classes, nPerm = 1000, verbose = TRUE)
## S4 method for signature 'Dudoit, missing':
plot(x, ylab='T statistics', ...)
## S4 method for signature 'Dudoit':
cutoffSignificant(object, alpha, ...)
## S4 method for signature 'Dudoit':
selectSignificant(object, alpha, ...)
## S4 method for signature 'Dudoit':
countSignificant(object, alpha, ...)

Arguments

data Either a data frame or matrix with numeric values or an ExpressionSet as defined in the BioConductor tools for analyzing microarray data.
classes If data is a data frame or matrix, then classes must be either a logical vector or a factor. If data is an ExpressionSet, then classes can be a character string that names one of the factor columns in the associated phenoData subobject.
nPerm An integer; the number of permutations to perform
verbose A logical flag
object A Dudoit object
alpha A real number; the target family-wise error rate
x A Dudoit object
ylab Label for the y axis
... The usual extra arguments for generic or plotting routines.

Details

In 2002, Dudoit and colleagues introduced a method to adjust the p-values when performing gene-by-gene tests for differential expression. The adjustment was based on the method of Westfall and Young, with the goal of controlling the family-wise error rate.

Value

The standard method for plot returns what you would expect.
The cutoffSignificant method returns a real number (its input value alpha). The selectSignficant method returns a vector of logical values identifying the significant test results, and countSignificant returns an integer counting the number of significant test results.

Objects from the Class

As usual, objects can be created by new, but better methods are available in the form of the Dudoit function. The basic inputs to this function are the same as those used for row-by-row statistical tests throughout the ClassComparison package; a detailed description can be found in the MultiTtest class.

The additional input determines the number, nPerm, of permutations to perform. The accuracy of the p-value adjustment depends on this value. Since the implementation is in R (and does not call out to something compiled like C or FORTRAN), however, the computations are slow. The default value of 1000 can take a long time with modern microarrays that contain 40,000 spots.

Slots

adjusted.p:
The numeric vector of adjusted p-values.
t.statistics:
Object of class numeric containing the computed t-statistics.
p.values:
Object of class numeric containing the computed p-values.
groups:
Object of class character containing the names of the classes being compared.
call:
Object of class call containing the function call that created the object.

Extends

Class MultiTtest, directly. In particular, objects of this class inherit methods for summary, hist, and plot from the base class.

Methods

cutoffSignificant(object, alpha, ...)
Determine cutoffs on the adjusted p-values at the desired significance level. In other words, this function simplyt returns alpha.
selectSignificant(object, alpha, ...)
Compute a logical vector for selecting significant test results.
countSignificant(object, alpha, ...)
Count the number of significant test results.
plot
signature(x = Dudoit, y = missing): ...

Author(s)

Kevin R. Coombes <kcoombes@mdanderson.org>

References

Dudoit, S., Y.H. Yang, M.J. Callow, and T.P. Speed. 2002. Statistical Methods for Identifying Differentially Expressed Genes in Replicated cDNA Microarray Experiments, Statistica Sinica, 12(1): 111-139.

Westfall, P.H., Young, S.S. Resampling-based multiple testing: examples and methods for p-value adjustment. Wiley series in probability and mathematics statistics. John Wiley and Sons, 1993.

See Also

MultiTtest, Bum, SmoothTtest

Examples

ng <- 10000
ns <- 15
nd <- 200
fake.class <- factor(rep(c('A', 'B'), each=ns))
fake.data <- matrix(rnorm(ng*ns*2), nrow=ng, ncol=2*ns)
fake.data[1:nd, 1:ns] <- fake.data[1:nd, 1:ns] + 2
fake.data[(nd+1):(2*nd), 1:ns] <- fake.data[(nd+1):(2*nd), 1:ns] - 2

# the permutation test is slow. it really needs more than
# 100 permutations, but this is just an example...
dud <- Dudoit(fake.data, fake.class, nPerm=100)
summary(dud)
plot(dud)
countSignificant(dud, 0.05)

rm(ng, ns, nd, fake.class, fake.data, dud)

[Package ClassComparison version 1.3 Index]