I have gene expression measured in two biopsies each from 125 animals. One biopsy was untreated, while the other was pre-treated with a drug. The investigator hybridized untreated biopsies to the green channel of an Agilent microarray and treated biopsies to the corresponding red channels. The animals are genetically distinct, so green does not represent a uniform reference.
To get the red/green ratio, I'm using limma:
raw = read.maimages(source="agilent.median", files=file.list, wt.fun=wtAgilent)
norm = normalizeWithinArrays(raw, method="loess", bc.method="normexp", offset=50)
I would also like to normalize the red and green channels separately with normalizeBetweenArrays(). I can apparently extract the green channel only with the green.only parameter of read.maimages() , but there is no red.only parameter. What is the best (most elegant and correct) way to extract the separate channels and normalize them? I have a feeling the method="Rquantile" parameter of normalizeBetweenArrays() isn't quite what I want, but I'm not sure what is.
I have another method worth trying. You mentioned that green.only can help you only read the green intensities. You can reverse the color settings in the target file, and read the intensities using green.only parameter. Then what will you get? The red intensities!Right? After reading the data, possibly you need to modify some names of the list component to avoid later confusion. I think this should be the most elegant and correct way to deal with this problem.
Thanks, but you're describing the problem I want to solve, not the solution. normalizeBetweenArrays returns an MAList object, not a normalized version of the red and green channels separately. I want to look at the channels independently of their ratio to each other, effectively making this both a two-color and one-color array. To get normalized red/green ratio values, I'm using normalizeWithinArrays.
The function normalizeBetweenArrays can accept objects of numeric matrix, EListRaw, RGList or MAList. EListRaw is for one-color arrays. You can mimic one-color arrays by manully building objects of EListRaw for red and green channels. EListRaw is a list, so you can build EListRaw objects by providing the essential components of the list. I did not try it, but it should work if the EListRaw objects are correctly built.