[Bioc-devel] medianpolish for Affymetrix genechip probesets
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 Huber EBI/EMBL Cambridge UK http://www.ebi.ac.uk/huber
> Bioc-devel at stat.math.ethz.ch mailing list
More information about the Bioc-devel