esApply {Biobase} | R Documentation |
esApply
is a wrapper to apply for use with exprSet
s and eSet
s. Because the application of a function to the rows of the expression array usually involves variables in the phenoData
slot we have used a special evaluation paradigm here. The function FUN
may reference any data in phenoData by name.
Consider defining the function as a method for 'exprSet', 'eSet'
esApply(X, MARGIN, FUN, ...)
X |
An instance of class exprSet . It is assumed that X has information on gene expression for G genes in N tissue samples. |
MARGIN |
The margin to apply to, either 1 for rows or 2 for columns. |
FUN |
Any function |
... |
Additional parameters for FUN |
The phenoData
from X
is installed in an environment. This environment is installed as the environment of FUN
. This will then provide bindings for any symbols in FUN
that are the same as the names of the phenoData
of X
. If FUN
has an environment already it is retained but placed after the newly created environment. Some variable shadowing could occur under these circumstances.
The result of apply(exprs(X),MARGIN, FUN, ...)
.
V.J. Carey <stvjc@channing.harvard.edu>, R. Gentleman
data(eset) # we know that eset has covariates in the pData called "cov1" and "cov2" # here cov1 is an unbound value, it will be resolved by using the pData # here are two functions conforming to the esApply protocol mytt.demo <- function(y) { ys <- split( y, cov1 ) t.test( ys[[1]], ys[[2]] )$p.value } # obtain the p value of the slope associated with cov2, adjusting for cov1 # (if we were concerned with sign we could save the z statistic instead at coef[3,3] myreg.demo <- function( y ) { summary(lm(y~cov1+cov2))$coef[3,4] } newt <- esApply( eset, 1, mytt.demo ) # a resampling method resamp <- function( ESET ) { ntiss <- ncol(exprs(ESET)) newind <- sample(1:ntiss, size=ntiss, replace=TRUE) ESET[newind,] } # a filter q3g100filt <- function( eset ) { apply( exprs(eset), 1, function(x)quantile(x,.75)>100 ) } # filter after resampling and then apply set.seed(123) rest <- esApply( { bool <- q3g100filt(resamp(eset)); eset[bool,] }, 1, mytt.demo )