aroma.affymetrix and affy - different results
4
0
Entering edit mode
@markus-schmidberger-2240
Last seen 10.3 years ago
Hi, I compared results from aroma.affymetrix and affy. Especially for rma background correction and quantil normalization. But there are DIFFERENCES! Any ideas for these differences? Attached my test code. Best Markus ######################################################## Code: cs <- AffymetrixCelSet$fromName("test", chipType="HG-U133_Plus_2") cs <- extract(cs, 1:10) bc <- RmaBackgroundCorrection(cs) csBC <- process(bc) affyBatch_aroma_bgc <- extractAffyBatch(csBC) qn <- QuantileNormalization(cs, typesToAvg="pm") csN <- process(qn) affyBatch_aroma_norm <- extractAffyBatch(csN) pathCELFiles <- "/home/schmidb/tmp/rawData/test/HG-U133_Plus_2" celFile <- list.celfiles(path=pathCELFiles,full.names=TRUE); affyBatch <- ReadAffy(filenames=celFile[1:10]) affyBatch_bgc <- bg.correct(affyBatch, method="rma") affyBatch_norm <- normalize.AffyBatch.quantiles(affyBatch, type="pmonly") ########################################################### Comparison: all.equal(exprs(affyBatch_bgc), exprs(affyBatch_aroma_bgc)) [1] "Attributes: < Component 2: Component 2: 10 string mismatches >" [2] "Mean relative difference: 2.300415e-08" all.equal(exprs(affyBatch_norm), exprs(affyBatch_aroma_norm)) [1] "Attributes: < Component 2: Component 2: 10 string mismatches >" [2] "Mean relative difference: 0.2979911" (sampleNames are the same!) #################################################### sessionInfo() R version 2.7.1 (2008-06-23) x86_64-unknown-linux-gnu locale: LC_CTYPE=de_DE.UTF-8;LC_NUMERIC=C;LC_TIME=de_DE.UTF-8;LC_COLLATE=de_DE .UTF-8;LC_MONETARY=C;LC_MESSAGES=de_DE.UTF-8;LC_PAPER=de_DE.UTF-8;LC_N AME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=de_DE.UTF-8;LC_IDENTI FICATION=C attached base packages: [1] tools stats graphics grDevices utils datasets methods [8] base other attached packages: [1] hgu133plus2cdf_2.2.0 affyPara_1.1.5 snow_0.3-0 [4] aroma.affymetrix_0.9.3 aroma.apd_0.1.3 R.huge_0.1.5 [7] affxparser_1.12.2 aroma.core_0.9.3 sfit_0.1.5 [10] aroma.light_1.8.1 digest_0.3.1 matrixStats_0.1.2 [13] R.rsp_0.3.4 R.cache_0.1.7 R.utils_1.0.2 [16] R.oo_1.4.3 R.methodsS3_1.0.1 affy_1.18.2 [19] preprocessCore_1.2.0 affyio_1.8.0 Biobase_2.0.1 -- Dipl.-Tech. Math. Markus Schmidberger Ludwig-Maximilians-Universit?t M?nchen IBE - Institut f?r medizinische Informationsverarbeitung, Biometrie und Epidemiologie Marchioninistr. 15, D-81377 Muenchen URL: http://ibe.web.med.uni-muenchen.de Mail: Markus.Schmidberger [at] ibe.med.uni-muenchen.de Tel: +49 (089) 7095 - 4599
Normalization affy Normalization affy • 1.8k views
ADD COMMENT
0
Entering edit mode
schmidi ▴ 20
@schmidi-2894
Last seen 10.3 years ago
Hi, this was only a testcode, therefore I did quantile normalization at the unadjusted signals. Now I used qn <- QuantileNormalization(cs, typesToUpdate="pm") and still get a BIG DIFFERENCES: all.equal(exprs(affyBatch_norm), exprs(affyBatch_aroma_norm)) [1] "Attributes: < Component 2: Component 2: 10 string mismatches >" [2] "Mean relative difference: 0.2979911" The differences in the background corrected sig Best Markus On Jul 4, 2:16?pm, "Ken Simpson" <ken.m.simp... at="" gmail.com=""> wrote: > Further to Mark's email, it is not the probe ordering that is the problem > (note that the difference in the background corrected signals is ~ 1e-8), > but the following line: > > > qn <- QuantileNormalization(cs, typesToAvg="pm") > > This is telling aroma.affymetrix to average the quantiles from the PM only > to get the target distribution. ?However, by default, the normalisation will > adjust *all* the signals using the target distribution, not just the PM - > hence the difference Markus is seeing. ?If this line is changed to > > > qn <- QuantileNormalization(cs, typesToUpdate="pm") > > then you should see very little difference between the two implementations > (~ 1e-5 in the test run I did). ?By default, typesToAvg = typesToUpdate and > so this call will average the PM quantiles (typesToAvg="pm"), and update > *only* the PM signals (typesToUpdate="pm"). > > (Markus - I'm not sure why you performed background correction but then > quantile normalised the unadjusted signals - was this just for testing > purposes?) > > Cheers, > > Ken > > On Fri, Jul 4, 2008 at 10:07 AM, Mark Robinson <mrobin... at="" wehi.edu.au=""> > wrote: > > > > > Markus. > > > The aroma.affymetrix processing is based on the defaults of affyPLM's > > 'fitPLM', which is: background.method = "RMA.2" and normalize.method = > > "quantile". > > > Here is a test script that I wrote about a year ago (so take it with a > > grain of salt): > >http://bioinf.wehi.edu.au/folders/mrobinson/for_hb/u133.test.mark.R > > > My test was based on the chip effects and they matched up, so > > presumably the BG adjustment and normalization also matched. ?I > > believe a variation of this test is used everytime aroma.affymetrix is > > built. ?Note I haven't used the 'extractAffyBatch' and I'm not sure if > > that introduces any differences in the order, etc. > > > Sorry, I haven't answered your question as I don't have access to run > > my code at the moment ... but hopefully this give you an avenue to > > check. > > > Mark > > > On 03/07/2008, at 10:49 PM, Markus Schmidberger wrote: > > > > Hi, > > > > I compared results from aroma.affymetrix and affy. Especially for > > > rma background correction and quantil normalization. But there are > > > DIFFERENCES! > > > > Any ideas for these differences? > > > Attached my test code. > > > > Best > > > Markus > > > > ######################################################## > > > Code: > > > > cs <- AffymetrixCelSet$fromName("test", chipType="HG- U133_Plus_2") > > > cs <- extract(cs, 1:10) > > > bc <- RmaBackgroundCorrection(cs) > > > csBC <- process(bc) > > > affyBatch_aroma_bgc <- extractAffyBatch(csBC) > > > > qn <- QuantileNormalization(cs, typesToAvg="pm") > > > csN <- process(qn) > > > affyBatch_aroma_norm <- extractAffyBatch(csN) > > > > pathCELFiles <- "/home/schmidb/tmp/rawData/test/HG-U133_Plus_2" > > > celFile <- list.celfiles(path=pathCELFiles,full.names=TRUE); > > > affyBatch <- ReadAffy(filenames=celFile[1:10]) > > > affyBatch_bgc <- bg.correct(affyBatch, method="rma") > > > affyBatch_norm <- normalize.AffyBatch.quantiles(affyBatch, > > > type="pmonly") > > > > ########################################################### > > > Comparison: > > > > all.equal(exprs(affyBatch_bgc), exprs(affyBatch_aroma_bgc)) > > > ? [1] "Attributes: < Component 2: Component 2: 10 string mismatches >" > > > ? [2] "Mean relative difference: 2.300415e-08" > > > all.equal(exprs(affyBatch_norm), exprs(affyBatch_aroma_norm)) > > > [1] "Attributes: < Component 2: Component 2: 10 string mismatches >" > > > [2] "Mean relative difference: 0.2979911" > > > > (sampleNames are the same!) > > > > #################################################### > > > sessionInfo() > > > R version 2.7.1 (2008-06-23) > > > x86_64-unknown-linux-gnu > > > > locale: > > > LC_CTYPE > > > = > > > de_DE > > > .UTF > > > -8 > > > ;LC_NUMERIC > > > = > > > C > > > ;LC_TIME > > > = > > > de_DE > > > .UTF > > > -8 > > > ;LC_COLLATE > > > = > > > de_DE > > > .UTF > > > -8 > > > ;LC_MONETARY > > > = > > > C > > > ;LC_MESSAGES > > > = > > > de_DE > > > .UTF > > > -8 > > > ;LC_PAPER > > > = > > > de_DE > > > .UTF > > > -8 > > > ;LC_NAME > > > = > > > C > > > ;LC_ADDRESS > > > =C;LC_TELEPHONE=C;LC_MEASUREMENT=de_DE.UTF-8;LC_IDENTIFICATION=C > > > > attached base packages: > > > [1] tools ? ? stats ? ? graphics ?grDevices utils ? ? datasets > > > methods [8] base > > > other attached packages: > > > [1] hgu133plus2cdf_2.2.0 ? affyPara_1.1.5 > > > snow_0.3-0 ? ? ? ? ? [4] aroma.affymetrix_0.9.3 > > > aroma.apd_0.1.3 ? ? ? ?R.huge_0.1.5 ? ? ? ? [7] > > > affxparser_1.12.2 ? ? ?aroma.core_0.9.3 ? ? ? sfit_0.1.5 > > > [10] aroma.light_1.8.1 ? ? ?digest_0.3.1 > > > matrixStats_0.1.2 ? ?[13] R.rsp_0.3.4 > > > R.cache_0.1.7 ? ? ? ? ?R.utils_1.0.2 ? ? ? ?[16] > > > R.oo_1.4.3 ? ? ? ? ? ? R.methodsS3_1.0.1 ? ? ?affy_1.18.2 > > > [19] preprocessCore_1.2.0 ? affyio_1.8.0 ? ? ? ? ? Biobase_2.0.1 > > > -- > > > Dipl.-Tech. Math. Markus Schmidberger > > > > Ludwig-Maximilians-Universit?t M?nchen > > > IBE - Institut f?r medizinische Informationsverarbeitung, > > > Biometrie und Epidemiologie > > > Marchioninistr. 15, D-81377 Muenchen > > > URL:http://ibe.web.med.uni-muenchen.deMail: Markus.Schmidberger > > > [at] ibe.med.uni-muenchen.de > > > Tel: +49 (089) 7095 - 4599 > > > > _______________________________________________ > > > Bioconductor mailing list > > > Bioconduc... at stat.math.ethz.ch > > >https://stat.ethz.ch/mailman/listinfo/bioconductor > > > Search the archives: > >http://news.gmane.org/gmane.science.biology.informatics.conductor > > > ------------------------------ > > Mark Robinson > > Epigenetics Laboratory, Garvan > > Bioinformatics Division, WEHI > > e: m.robin... at garvan.org.au > > e: mrobin... at wehi.edu.au > > p: 03 9345 2628 > > f: 03 9347 0852 > > ------------------------------
ADD COMMENT
0
Entering edit mode
Mark Robinson ★ 1.1k
@mark-robinson-2171
Last seen 10.3 years ago
Markus. The aroma.affymetrix processing is based on the defaults of affyPLM's 'fitPLM', which is: background.method = "RMA.2" and normalize.method = "quantile". Here is a test script that I wrote about a year ago (so take it with a grain of salt): http://bioinf.wehi.edu.au/folders/mrobinson/for_hb/u133.test.mark.R My test was based on the chip effects and they matched up, so presumably the BG adjustment and normalization also matched. I believe a variation of this test is used everytime aroma.affymetrix is built. Note I haven't used the 'extractAffyBatch' and I'm not sure if that introduces any differences in the order, etc. Sorry, I haven't answered your question as I don't have access to run my code at the moment ... but hopefully this give you an avenue to check. Mark On 03/07/2008, at 10:49 PM, Markus Schmidberger wrote: > Hi, > > I compared results from aroma.affymetrix and affy. Especially for > rma background correction and quantil normalization. But there are > DIFFERENCES! > > Any ideas for these differences? > Attached my test code. > > Best > Markus > > ######################################################## > Code: > > cs <- AffymetrixCelSet$fromName("test", chipType="HG-U133_Plus_2") > cs <- extract(cs, 1:10) > bc <- RmaBackgroundCorrection(cs) > csBC <- process(bc) > affyBatch_aroma_bgc <- extractAffyBatch(csBC) > > qn <- QuantileNormalization(cs, typesToAvg="pm") > csN <- process(qn) > affyBatch_aroma_norm <- extractAffyBatch(csN) > > pathCELFiles <- "/home/schmidb/tmp/rawData/test/HG-U133_Plus_2" > celFile <- list.celfiles(path=pathCELFiles,full.names=TRUE); > affyBatch <- ReadAffy(filenames=celFile[1:10]) > affyBatch_bgc <- bg.correct(affyBatch, method="rma") > affyBatch_norm <- normalize.AffyBatch.quantiles(affyBatch, > type="pmonly") > > ########################################################### > Comparison: > > all.equal(exprs(affyBatch_bgc), exprs(affyBatch_aroma_bgc)) > [1] "Attributes: < Component 2: Component 2: 10 string mismatches >" > [2] "Mean relative difference: 2.300415e-08" > all.equal(exprs(affyBatch_norm), exprs(affyBatch_aroma_norm)) > [1] "Attributes: < Component 2: Component 2: 10 string mismatches >" > [2] "Mean relative difference: 0.2979911" > > (sampleNames are the same!) > > #################################################### > sessionInfo() > R version 2.7.1 (2008-06-23) > x86_64-unknown-linux-gnu > > locale: > LC_CTYPE > = > de_DE > .UTF > -8 > ;LC_NUMERIC > = > C > ;LC_TIME > = > de_DE > .UTF > -8 > ;LC_COLLATE > = > de_DE > .UTF > -8 > ;LC_MONETARY > = > C > ;LC_MESSAGES > = > de_DE > .UTF > -8 > ;LC_PAPER > = > de_DE > .UTF > -8 > ;LC_NAME > = > C > ;LC_ADDRESS > =C;LC_TELEPHONE=C;LC_MEASUREMENT=de_DE.UTF-8;LC_IDENTIFICATION=C > > attached base packages: > [1] tools stats graphics grDevices utils datasets > methods [8] base > other attached packages: > [1] hgu133plus2cdf_2.2.0 affyPara_1.1.5 > snow_0.3-0 [4] aroma.affymetrix_0.9.3 > aroma.apd_0.1.3 R.huge_0.1.5 [7] > affxparser_1.12.2 aroma.core_0.9.3 sfit_0.1.5 > [10] aroma.light_1.8.1 digest_0.3.1 > matrixStats_0.1.2 [13] R.rsp_0.3.4 > R.cache_0.1.7 R.utils_1.0.2 [16] > R.oo_1.4.3 R.methodsS3_1.0.1 affy_1.18.2 > [19] preprocessCore_1.2.0 affyio_1.8.0 Biobase_2.0.1 > -- > Dipl.-Tech. Math. Markus Schmidberger > > Ludwig-Maximilians-Universit?t M?nchen > IBE - Institut f?r medizinische Informationsverarbeitung, > Biometrie und Epidemiologie > Marchioninistr. 15, D-81377 Muenchen > URL: http://ibe.web.med.uni-muenchen.de Mail: Markus.Schmidberger > [at] ibe.med.uni-muenchen.de > Tel: +49 (089) 7095 - 4599 > > _______________________________________________ > 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 ------------------------------ Mark Robinson Epigenetics Laboratory, Garvan Bioinformatics Division, WEHI e: m.robinson at garvan.org.au e: mrobinson at wehi.edu.au p: 03 9345 2628 f: 03 9347 0852
ADD COMMENT
0
Entering edit mode
schmidi ▴ 20
@schmidi-2894
Last seen 10.3 years ago
Hi Ken, you are right. I removed the normalised signals in the probeData directory and re-run: Now I have these results: > all.equal(exprs(affyBatch_bgc),exprs(affyBatch_aroma_bgc)) [1] "Attributes: < Component 2: Component 2: 10 string mismatches >" [2] "Mean relative difference: 2.300415e-08" > all.equal(exprs(affyBatch_norm),exprs(affyBatch_aroma_norm)) [1] "Attributes: < Component 2: Component 2: 10 string mismatches >" [2] "Mean relative difference: 0.000647665" But there is still an error of dimension 10^(-4). This is very much for two methods, which should create the same results. But the raw data only hava an accuracy of 10^(-1), so I think this could be OK. I also had a look to some quality plots (hist and boxplot), the plots look very well. Best Markus On Jul 4, 2:58?pm, "Ken Simpson" <ken.m.simp... at="" gmail.com=""> wrote: > Hi Markus, > > Please make sure that process() is actually updating the signals in the > normalized CEL files. ?I strongly suspect that the cached signals are being > returned. ?If in doubt, remove the normalised signals in the probeData > directory and re-run. ?I am almost 100% sure that you will get consistent > results after the re-run. > > Cheers, > > Ken > > On Fri, Jul 4, 2008 at 10:54 PM, schmidi <schmidber... at="" gmx.at=""> wrote: > > > Hi, > > > this was only a testcode, therefore I did quantile normalization at > > the unadjusted signals. > > > Now I used > > qn <- QuantileNormalization(cs, typesToUpdate="pm") > > and still get a BIG DIFFERENCES: > > all.equal(exprs(affyBatch_norm), exprs(affyBatch_aroma_norm)) > > [1] "Attributes: < Component 2: Component 2: 10 string mismatches >" > > [2] "Mean relative difference: 0.2979911" > > > The differences in the background corrected sig > > > Best > > Markus > > > On Jul 4, 2:16 pm, "Ken Simpson" <ken.m.simp... at="" gmail.com=""> wrote: > > > Further to Mark's email, it is not the probe ordering that is the problem > > > (note that the difference in the background corrected signals is ~ 1e-8), > > > but the following line: > > > > > qn <- QuantileNormalization(cs, typesToAvg="pm") > > > > This is telling aroma.affymetrix to average the quantiles from the PM > > only > > > to get the target distribution. ?However, by default, the normalisation > > will > > > adjust *all* the signals using the target distribution, not just the PM - > > > hence the difference Markus is seeing. ?If this line is changed to > > > > > qn <- QuantileNormalization(cs, typesToUpdate="pm") > > > > then you should see very little difference between the two > > implementations > > > (~ 1e-5 in the test run I did). ?By default, typesToAvg = typesToUpdate > > and > > > so this call will average the PM quantiles (typesToAvg="pm"), and update > > > *only* the PM signals (typesToUpdate="pm"). > > > > (Markus - I'm not sure why you performed background correction but then > > > quantile normalised the unadjusted signals - was this just for testing > > > purposes?) > > > > Cheers, > > > > Ken > > > > On Fri, Jul 4, 2008 at 10:07 AM, Mark Robinson <mrobin... at="" wehi.edu.au=""> > > > wrote: > > > > > Markus. > > > > > The aroma.affymetrix processing is based on the defaults of affyPLM's > > > > 'fitPLM', which is: background.method = "RMA.2" and normalize.method = > > > > "quantile". > > > > > Here is a test script that I wrote about a year ago (so take it with a > > > > grain of salt): > > > >http://bioinf.wehi.edu.au/folders/mrobinson/for_hb/u133.test.mark.R > > > > > My test was based on the chip effects and they matched up, so > > > > presumably the BG adjustment and normalization also matched. ?I > > > > believe a variation of this test is used everytime aroma.affymetrix is > > > > built. ?Note I haven't used the 'extractAffyBatch' and I'm not sure if > > > > that introduces any differences in the order, etc. > > > > > Sorry, I haven't answered your question as I don't have access to run > > > > my code at the moment ... but hopefully this give you an avenue to > > > > check. > > > > > Mark > > > > > On 03/07/2008, at 10:49 PM, Markus Schmidberger wrote: > > > > > > Hi, > > > > > > I compared results from aroma.affymetrix and affy. Especially for > > > > > rma background correction and quantil normalization. But there are > > > > > DIFFERENCES! > > > > > > Any ideas for these differences? > > > > > Attached my test code. > > > > > > Best > > > > > Markus > > > > > > ######################################################## > > > > > Code: > > > > > > cs <- AffymetrixCelSet$fromName("test", chipType="HG- U133_Plus_2") > > > > > cs <- extract(cs, 1:10) > > > > > bc <- RmaBackgroundCorrection(cs) > > > > > csBC <- process(bc) > > > > > affyBatch_aroma_bgc <- extractAffyBatch(csBC) > > > > > > qn <- QuantileNormalization(cs, typesToAvg="pm") > > > > > csN <- process(qn) > > > > > affyBatch_aroma_norm <- extractAffyBatch(csN) > > > > > > pathCELFiles <- "/home/schmidb/tmp/rawData/test/HG- U133_Plus_2" > > > > > celFile <- list.celfiles(path=pathCELFiles,full.names=TRUE); > > > > > affyBatch <- ReadAffy(filenames=celFile[1:10]) > > > > > affyBatch_bgc <- bg.correct(affyBatch, method="rma") > > > > > affyBatch_norm <- normalize.AffyBatch.quantiles(affyBatch, > > > > > type="pmonly") > > > > > > ########################################################### > > > > > Comparison: > > > > > > all.equal(exprs(affyBatch_bgc), exprs(affyBatch_aroma_bgc)) > > > > > ? [1] "Attributes: < Component 2: Component 2: 10 string mismatches > > >" > > > > > ? [2] "Mean relative difference: 2.300415e-08" > > > > > all.equal(exprs(affyBatch_norm), exprs(affyBatch_aroma_norm)) > > > > > [1] "Attributes: < Component 2: Component 2: 10 string mismatches >" > > > > > [2] "Mean relative difference: 0.2979911" > > > > > > (sampleNames are the same!) > > > > > > #################################################### > > > > > sessionInfo() > > > > > R version 2.7.1 (2008-06-23) > > > > > x86_64-unknown-linux-gnu > > > > > > locale: > > > > > LC_CTYPE > > > > > = > > > > > de_DE > > > > > .UTF > > > > > -8 > > > > > ;LC_NUMERIC > > > > > = > > > > > C > > > > > ;LC_TIME > > > > > = > > > > > de_DE > > > > > .UTF > > > > > -8 > > > > > ;LC_COLLATE > > > > > = > > > > > de_DE > > > > > .UTF > > > > > -8 > > > > > ;LC_MONETARY > > > > > = > > > > > C > > > > > ;LC_MESSAGES > > > > > = > > > > > de_DE > > > > > .UTF > > > > > -8 > > > > > ;LC_PAPER > > > > > = > > > > > de_DE > > > > > .UTF > > > > > -8 > > > > > ;LC_NAME > > > > > = > > > > > C > > > > > ;LC_ADDRESS > > > > > =C;LC_TELEPHONE=C;LC_MEASUREMENT=de_DE.UTF-8;LC_IDENTIFICATION=C > > > > > > attached base packages: > > > > > [1] tools ? ? stats ? ? graphics ?grDevices utils ? ? datasets > > > > > methods [8] base > > > > > other attached packages: > > > > > [1] hgu133plus2cdf_2.2.0 ? affyPara_1.1.5 > > > > > snow_0.3-0 ? ? ? ? ? [4] aroma.affymetrix_0.9.3 > > > > > aroma.apd_0.1.3 ? ? ? ?R.huge_0.1.5 ? ? ? ? [7] > > > > > affxparser_1.12.2 ? ? ?aroma.core_0.9.3 ? ? ? sfit_0.1.5 > > > > > [10] aroma.light_1.8.1 ? ? ?digest_0.3.1 > > > > > matrixStats_0.1.2 ? ?[13] R.rsp_0.3.4 > > > > > R.cache_0.1.7 ? ? ? ? ?R.utils_1.0.2 ? ? ? ?[16] > > > > > R.oo_1.4.3 ? ? ? ? ? ? R.methodsS3_1.0.1 ? ? ?affy_1.18.2 > > > > > [19] preprocessCore_1.2.0 ? affyio_1.8.0 ? ? ? ? ? Biobase_2.0.1 > > > > > -- > > > > > Dipl.-Tech. Math. Markus Schmidberger > > > > > > Ludwig-Maximilians-Universit?t M?nchen > > > > > IBE - Institut f?r medizinische Informationsverarbeitung, > > > > > Biometrie und Epidemiologie > > > > > Marchioninistr. 15, D-81377 Muenchen > > > > > URL:http://ibe.web.med.uni- muenchen.deMail:Markus.Schmidberger > > > > > [at] ibe.med.uni-muenchen.de > > > > > Tel: +49 (089) 7095 - 4599 > > > > > > _______________________________________________ > > > > > Bioconductor mailing list > > > > > Bioconduc... at stat.math.ethz.ch > > > > >https://stat.ethz.ch/mailman/listinfo/bioconductor > > > > > Search the archives: > > > >http://news.gmane.org/gmane.science.biology.informatics.conductor > > > > > ------------------------------ > > > > Mark Robinson > > > > Epigenetics Laboratory, Garvan > > > > Bioinformatics Division, WEHI > > > > e: m.robin... at garvan.org.au > > > > e: mrobin... at wehi.edu.au > > > > p: 03 9345 2628 > > > > f: 03 9347 0852 > > > > ------------------------------
ADD COMMENT
0
Entering edit mode
@henrik-bengtsson-4333
Last seen 7 months ago
United States
Hi, here are some more details on what Ken says: The QuantileNormalization(cs, ...) method in aroma.affymetrix normalizes each array separately toward a target distribution. If not specified explicitly, the target distribution is calculated as the average sort():ed and approx():ed intensities across all arrays in the data set. The details can be found in averageQuantile() for the AffymetrixCelSet class. The algorithm is the same as aroma.light::averageQuantile() for the 'list' class, which was adopted from 'limma' in 2002 and 2006 (which to the best of my knowledge originates from Ben Bolstad's first implementation). See print(aroma.light::averageQuantile.list) for details. The normalization toward the target distribution is then done using aroma.light::normalizeQuantile(), which also was adopted from 'limma' (with the same ancestors etc). See print(aroma.light::normalizeQuantileRank.numeric) for details. I haven't followed development of the limma version, but I'd say they give very similar, if not all.equal(), results. Finally, another reason for the observed differences may be differences in precision. The output from QuantileNormalization is stored in CEL files, where probe intensities are stored as floats (4 bytes). Normalized data held in memory are doubles (8 bytes), which is the case for most Bioconductor packages. FYI, one of the redundancy tests being run before every major release of aroma.affymetrix, verifies that aroma.affymetrix (RmaBackgroundCorrection + QuantileNormalization + RmaPlm) can reproduce the RMA chip-effect estimates as estimated by affyPLM (mean/sd squared differences < 10^-4). The test was adopted from the script that Mark Robinson posted earlier. Cheers /Henrik On Mon, Jul 7, 2008 at 11:16 PM, ken.m.simpson at gmail.com <ken.m.simpson at="" gmail.com=""> wrote: > > Hi Markus, > > Glad to hear you are getting (almost!) consistent results. The > remaining discrepancy is very small and probably not of concern. It > is no doubt due to slight differences in the implementation of > quantile normalization in the two packages, but without delving into > the code I can't give a definitive answer on that. > > Cheers, > > Ken > > On Jul 7, 5:43 pm, schmidi <schmidber... at="" gmx.at=""> wrote: >> Hi Ken, >> >> you are right. I removed the normalised signals in the probeData >> directory and re-run: >> >> Now I have these results: >> >> > all.equal(exprs(affyBatch_bgc),exprs(affyBatch_aroma_bgc)) >> >> [1] "Attributes: < Component 2: Component 2: 10 string mismatches >" >> [2] "Mean relative difference: 2.300415e-08"> all.equal(exprs(affyBatch_norm),exprs(affyBatch_aroma_norm)) >> >> [1] "Attributes: < Component 2: Component 2: 10 string mismatches >" >> [2] "Mean relative difference: 0.000647665" >> >> But there is still an error of dimension 10^(-4). This is very much >> for two methods, which should create the same results. But the raw >> data only hava an accuracy of 10^(-1), so I think this could be OK. >> I also had a look to some quality plots (hist and boxplot), the plots >> look very well. >> >> Best >> Markus >> > --~--~---------~--~----~------------~-------~--~----~ > When reporting problems on aroma.affymetrix, make sure 1) to run the latest version of the package, 2) to report the output of sessionInfo() and traceback(), and 3) to post a complete code example. > > > You received this message because you are subscribed to the Google Groups "aroma.affymetrix" group. > To post to this group, send email to aroma-affymetrix at googlegroups.com > To unsubscribe from this group, send email to aroma-affymetrix- unsubscribe at googlegroups.com > For more options, visit this group at http://groups.google.com/group /aroma-affymetrix?hl=en > -~----------~----~----~----~------~----~------~--~--- > >
ADD COMMENT

Login before adding your answer.

Traffic: 615 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