esApply {Biobase}R Documentation

Apply for the Expression Data in 'exprSet'

Description

esApply is a wrapper to apply for use with exprSets and eSets. 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'

Usage

esApply(X, MARGIN, FUN, ...)

Arguments

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

Details

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.

Value

The result of apply(exprs(X),MARGIN, FUN, ...).

Author(s)

V.J. Carey <stvjc@channing.harvard.edu>, R. Gentleman

See Also

apply, exprSet

Examples

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 )


[Package Biobase version 1.8.0 Index]