[BioC] questions about the details of RMA and MAS5 in Affy package

James W. MacDonald jmacdon at med.umich.edu
Wed May 2 17:12:36 CEST 2007

Hi James,

James Anderson wrote:
> Hi,
> There are some commands in Affy package which can finish almost all the steps, however, I am trying to understand every single details of RMA and MAS5, 
> for RMA, I guess it has the following steps:
> 1. Background subtraction
> 2. quantile normalization
> 3. median polish to convert probe level to probe set level.
> What's the command for doing median polish to convert probe level to probe set level? In addition, since there is memory problem, justRMA can solve the problem in probe set level, is there any similar method that can solve the problem in probe level, something like justRMAprobe? 

A justRMAprobe wouldn't make any sense, since the background and 
normalization steps are carried out on all the data from each chip. The 
median polish is done by C code, so there isn't a command per se. 
However, the implementation is identical to the R function medpolish(), 
so if you had a matrix of background corrected, normalized PM probes 
from one probeset you could do medpolish(probematrix) and you would get 
the same results.

> Regarding MAS5, I guess it also has background subtraction and normalization, which normalize method does MAS5 use? I typed 
> [1] "constant"         "contrasts"        "invariantset"     "loess"           
> [5] "qspline"          "quantiles"        "quantiles.robust"
> Does it use "invariantset" or something else?

Something else. MAS5 does the normalization _after_ computing expression 
values, so it uses affy.scalevalue.exprSet().

> In addition, I think it's the same as RMA in the sense that after background subtraction and normalization, probe level is obtained, then what's the command to convert the probe level to probe set level in MAS5? Again, how to deal with the memory problem? 

No it is not the same. The background subtraction is based on 
subtracting IM values (not the same as MM values, see the affy 
documentation if interested), and then doing a Tukey bi-weight on the 
resulting background subtracted values. After which the data are 
normalized using the above mentioned function.

There is no need for a memory-bounded algorithm for MAS5 because the 
expression value calculation is done on a chip by chip basis. You could 
simply do the first step of the mas5() function on reasonably sized 
subsets of your data, and after all have been processed, you could then 
combine the data and run affy.scalevalue.exprSet().

The combination step might be too memory intensive, so it might be 
necessary to hack affy.scalevalue.exprSet() to use a matrix instead, but 
it would be simple to do.



> Thank you very much! Your reply will be highly appreciated!
> James
> ---------------------------------
> 	[[alternative HTML version deleted]]
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor

James W. MacDonald, M.S.
Affymetrix and cDNA Microarray Core
University of Michigan Cancer Center
1500 E. Medical Center Drive
7410 CCGC
Ann Arbor MI 48109

Electronic Mail is not secure, may not be read every day, and should not be used for urgent or sensitive issues.

More information about the Bioconductor mailing list