[Bioc-devel] medianpolish for Affymetrix genechip probesets
Wolfgang, 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). Best, Ben
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