[BioC] quantile normalization with common standards

Ido M. Tamir tamir at imp.ac.at
Tue Nov 4 15:12:57 CET 2008

Hi,

suppose I have a high density oligo array. This contains control
oligos, whose distribution should be the same across experiments (spike in),
and experimental oligos, whose distribution differs.

What I did until now was to scale my experimental oligos by the MAD of the
control oligos ( a modification of limmas normalizeMedianAbsValues): I
calculate a scaling factor for the control oligos and apply this factor onto
the experimental oligos of each array.

like:
cmed <- log(apply(abs(M[scaleSubset,]), 2, mean, na.rm=TRUE))
cmed <- exp(cmed - mean(cmed))
print( paste("scaling factors:", paste( formatC(cmed, digits=2),
collapse= " ")  ))
t(t(M)/cmed)

Now I would like to go one step further.
I would like to quantile normalize the control oligos. Then I would like to
apply the transformation that was necessary for each array onto the
experimental oligos.

Maybe this makes my intention clearer:
I don't want to apply the derived averaged distribution onto my experimental
oligos - they are not the same (and I anyway know how to do this). I want to
do the opposite of that and apply the function that was necessary to
transform the control oligos of each array to the averaged quantile
distribution onto my experimental oligos.
Its basically scaling like above, but not only taking MAD as a parameter,
but the whole difference in the distribution between

a) does this make sense.
b) how do I do it.

thank you very much,
ido