quantile normalization with common standards
1
0
Entering edit mode
Ido M. Tamir ▴ 150
@ido-m-tamir-2778
Last seen 10.2 years ago
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
GO oligo GO oligo • 953 views
ADD COMMENT
0
Entering edit mode
@wolfgang-huber-3550
Last seen 3 months ago
EMBL European Molecular Biology Laborat…
Hi Ido a) yes b) I don't know a function in Bioconductor that lets you do this easily for quantiles (it should not be too hard to program this yourself using interpolation, but I would be concerned about the precision of the method if your number of control oligos is not very large). Chapter 7 of this vignette explains how to do it with vsn (which has fewer parameters to estimate and hence might be more precise): http://www.bioconductor.org/packages/2.4/bioc/vignettes/vsn/inst/doc/v sn.pdf Best wishes Wolfgang ------------------------------------------------------------------ Wolfgang Huber EBI/EMBL Cambridge UK http://www.ebi.ac.uk/huber 04/11/2008 14:12 Ido M. Tamir scripsit > 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
ADD COMMENT
0
Entering edit mode
On Tue, 2008-11-04 at 16:27 +0000, Wolfgang Huber wrote: > Hi Ido > > a) yes > > b) I don't know a function in Bioconductor that lets you do this easily > for quantiles (it should not be too hard to program this yourself using > interpolation, but I would be concerned about the precision of the > method if your number of control oligos is not very large). The pair of functions normalize.quantiles.determine.target() normalize.quantiles.use.target() in preprocessCore might come handy as well. Yet, as you say there are unknowns about what is happening with relatively small number of control probes (but it might be worthwhile toying around with that) > Chapter 7 of > this vignette explains how to do it with vsn (which has fewer parameters > to estimate and hence might be more precise): > http://www.bioconductor.org/packages/2.4/bioc/vignettes/vsn/inst/doc /vsn.pdf > > Best wishes > Wolfgang > > ------------------------------------------------------------------ > Wolfgang Huber EBI/EMBL Cambridge UK http://www.ebi.ac.uk/huber > > > 04/11/2008 14:12 Ido M. Tamir scripsit > > 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 > > _______________________________________________ > 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
ADD REPLY

Login before adding your answer.

Traffic: 857 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6