[BioC] ArrayExpress as NChannelSet data into limma-compatible type

Martin Morgan mtmorgan at fhcrc.org
Wed Sep 23 01:50:34 CEST 2009

Hi Chris --

Chris Fjell wrote:
> I've been trying with no success to analyze 2-channel array data from
> ArrayExpress. The scanner specific data files are not available (I've
> used ImaGene files previously with ease.)
> I used the ArrayExpress package to get the data very conveniently and
> easily. The data are loaded into R as NChannelSet data.
> I cannot sort out how to get this into a format acceptable by limma.
> It's easy enough to access the channels as well as annotations but limma
> methods such as (for example) limma's normalizeWithinArrays()
>      normalizeWithinArrays(object, layout, method="printtiploess",
> weights=object$weights, span=0.3, iterations=4, controlspots=NULL, df=5,
> robust="M", bc.method="subtract", offset=0)
> where
>      object: object of class 'list', 'RGList' or 'MAList' containing red
>           and green intensities constituting two-color microarray data.
>> ae = ArrayExpress("E-FPMI-11", rawcol=list(R="Software Unknown:Signal
> Mean_cy5", G="Software Unknown:Signal Mean_cy3", Rb="Software
> Unknown:Background Mean_cy5", Gb="Software Unknown:Background Mean_cy3"));

I looked at ?"RGList-class" and tried

  rg <- new("RGList", as.list(assayData(ae)))
  ma <- normalizeWithinArrays(rg, method="median")

I could have moved more info. into the RGList with

  args <- c(as.list(assayData(ae)),
            list(targets=pData(ae), genes=fData(ae)))
  rg <- new("RGList", args)

If I wanted to use some normalization methods, e.g., loess, then I'd
need to extract the relevant information from fData(ae), and feed this
to the 'layout' argument of ?normalizeWithinArrays.

Does that get you on your way?


>> class( ae )
> [1] "NChannelSet"
> attr(,"package")
> [1] "Biobase"
>> test = normalizeWithinArrays( ae )
> Error in MA.RG(object, bc.method = bc.method, offset = offset) :
>   Object doesn't contain R and G components
> I also notice that the convert routines will convert to NChannelSet but
> not from NChannelSet to other types such as used by limma (RGList, MAList).
> I am tempted to now write the data back to file and construct a generic
> 2-color data object using limma::read.maimages(). But this seems an odd
> thing to do.
> I've also tried getting the data directly to file and then using the
> RMAGEML package but it seems to not install due to need for SJava
> installed which won't install on either Mac (my workstation) or Linux
> Ubuntu 7.10 due to compilation errors in the SJava C code (subject of
> another post if needed).
> How do I use NChannelSet data or convert to RGList or MAList?
> Thanks for any help...

More information about the Bioconductor mailing list