[Bioc-devel] medianpolish for Affymetrix genechip probesets

Ben Bolstad bmb at bmbolstad.com
Fri Mar 9 16:40:06 CET 2007


The method you suggest would work, but I am a little hesitant to
recommend you .Call the c code directly. I'd prefer that you just call
rma() with the background and normalize arguments set to FALSE, though
that will add a little additional overhead, it won't do anything more
that the median polish summarization step. That is essentially the
approach taken in GCRMA (except that it sets background=FALSE,
normalize=TRUE in its rma() call).

However, you do raise a larger issue about the multiple implementations
in various different packages. Mostly the functionality that is
duplicated consists of the exact same C code in affy, affyPLM and oligo
(except sometimes a little outdated), with larger differences in
BufferedMatrixMethods. I did make a promise in the past that I would fix
this potential maintenance problem by building a package that unify this
C code in a single location. This way potential developers who wanted to
use say, quantile normalization or median polish, but did not want to
"Depends:" on affy (or similar). But building infrastructure is
decidedly un-sexy, so it is still on my to do list (though perhaps a
little higher now).



On Fri, 2007-03-09 at 14:31 +0000, Wolfgang Huber wrote:
> Hi Rafa, Ben et al.,
> what is nowadays the prefered implementation of the "medianpolish" 
> probeset summarization / expression value computation method, and which 
> interface to it do you recommend others to use?
> I have just been looking through affy, BufferedMatrixMethods, oligo, 
> affyPLM, gcrma and found the choice exciting, stimulating and ... large.
> The reason for the question: vsn can be used to do bg correction and 
> normalization of Affy genechips together with medianpolish to summarize. 
> In the vsn vignette I have so far been recommending to use
> expresso(x, bg.correct=FALSE, normalize.method="vsn",
>           pmcorrect.method="pmonly", summary.method="medianpolish")
> but this can be very slow and I would like to provide a more efficient 
> wrapper à la rma() without reinventing the medianpolish wheel.
> So far I gather that
> 1. I should use, in affy/src/rma2.c:
> SEXP rma_c_call(SEXP PMmat, SEXP MMmat, SEXP ProbeNamesVec,
>                  SEXP N_probes, SEXP norm_flag)
> with norm_flag==0, and
> 2. that I need to exponentiate (2^x) the vsn-transformed data before 
> sending it that way because the first thing you do there is to take log2.
> Is this correct? Any pointers or comments are welcome.
> Best wishes
>    Wolfgang
> ------------------------------------------------------------------
> Wolfgang Huber  EBI/EMBL  Cambridge UK  http://www.ebi.ac.uk/huber
> _______________________________________________
> Bioc-devel at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel

More information about the Bioc-devel mailing list