On Sep 6, 2007, at 12:51 PM, Khan, Sohail wrote:
> Dear List,
>
> I was wondering if RMA function can be applied to a data frame or a
> matrix??
> Thanks.
What exactly do you mean by that. For the entire algortihm
(background correction, normalization and summarization) you need to
keep track of probesets - ie. groups of probes targeting the same
gene. This is only really necessary for the summarization though.
Where do you have such information? You can certainly hack the
functions to work and the background correction and normalization
works without problem on a matrix - did you check?
Kasper
> Dear List,
>
> I was wondering if RMA function can be applied to a data frame or a
matrix??
> Thanks.
>
> -Sohail
Hi,
If your matrix contains the intensity data from actual microarrays,
this is a function you could use (or leverage):
#
# intensity and intensitySD are objects equivalent to matrices.
# They should contain probe intensities in rows and samples in
# columns. Probe intensities should be ordered the same way they
# are in a .CEL file.
# chipType is a string containing the chip type (see function
# cleancdfname()).
# chipSizeX and chipSizeY specify the number of features on the chip.
#
CreateAffyBatch <- function( intensity, intensitySD, chipType,
chipSizeX, chipSizeY )
{
exprs <- data.matrix( intensity )
se.exprs <- data.matrix( intensitySD )
sampleIndices <- 1 : ncol( exprs )
sampleNames <- paste( "sample", sampleIndices, sep = "" )
colnames( exprs ) <- sampleNames
colnames( se.exprs ) <- sampleNames
phenoData.data <- as.data.frame( sampleIndices )
rownames( phenoData.data ) <- sampleNames
colnames( phenoData.data ) <- "sample"
if( length( findClass( "AnnotatedDataFrame" ) ) == 1 )
{
phenoData <- new( "AnnotatedDataFrame", data = phenoData.data
)
phenoData at varMetadata[[1]] <- "arbitrary numbering"
} else {
phenoData <- new( "phenoData", pData = phenoData.data,
varLabels = list( sample = "arbitrary numbering" ) )
}
affyBatch <- new( "AffyBatch", exprs = exprs, se.exprs = se.exprs,
cdfName = chipType, annotation = cleancdfname( chipType,
addcdf = FALSE ),
ncol = chipSizeX, nrow = chipSizeY, phenoData = phenoData )
return( affyBatch )
}