[BioC] Xps package : errors and RMA difference with Partek GS

cstrato cstrato at aon.at
Wed Apr 1 21:31:54 CEST 2009


Dear Arnaud,

Yes, xps uses the same background algorithm as APT (and Partek) but uses 
by default only the probes defined in "exonlevel" for background 
correction and quantile normalization, i.e. in your case only the "core" 
probes are used.

However, xps offers the possibility to select the probes to be used for 
background correction, quantile normalization and summarization 
individually. For RMA normalization you can do:

data.rma <- rma(data.exon, "ExonRMAbq16core", filedir=datdir, 
background="antigenomic",
                normalize=T, option="transcript",  
exonlevel=c(16316,16316,9216))

This means that probes "core+extended+full+ambiguous+affx" (=16316) are 
used for background correction and quantile normalization, respectively, 
and probes "core" (=9216) are used for summarization.

As you will see, the results will be more similar to the results 
obtained with APT (see also Figures 17 vs 15 in APTvsXPS.pdf). However, 
it is my belief that it is better to use the same probes for all three 
steps. Maybe this is reflected in your results of finding differentially 
expressed genes?

Best regards
Christian


arnaud Le Cavorzin wrote:
> Hi.
>
> Thank you for your anwser.
>
> I have downloaded the last version of xps and performed the 
> metaProbesets with success.
>
>
> So if I understand, xps use the same background correction algorithm 
> than Partek or APT. But the difference between these softwares seems 
> to be caused by the probes used for the background correction. 
> Moreover it seems to get a difference not only for the background 
> correction, but for the quantile normalization too, again due to the 
> different probes.
>
> In fact I can't get the same results on my samples with xps package 
> and with Partek.
> With Partek we found no expression differences for all of the genes 
> (after fdr correction), while xps found a little more than 1100 genes 
> who are differentially expressed (after using prefilter() and 
> unifilter() function, with the same options than in Partek).
>
> And I don't know why.
>
> Thank you for your help and your answer,
> Best regards
>
> Arnaud
>
>
> > Date: Tue, 31 Mar 2009 22:04:42 +0200
> > From: cstrato at aon.at
> > To: arnaudlc at msn.com
> > CC: bioconductor at stat.math.ethz.ch; delphine.rossille at chu-rennes.fr
> > Subject: Re: [BioC] Xps package : errors and RMA difference with 
> Partek GS
> >
> > Dear Arnaud,
> >
> > Let me first answer your question how to export the background data
> > (although an example is shown in vignette xps.pdf p.15):
> >
> > # 1. compute background (or rma)
> > data.bg <- bgcorrect(data.exon, "ExonRMABgrdCore", filedir=datdir,
> > method="rma", select="antigenomic", option="pmonly:epanechnikov",
> > params=c(16384), exonlevel="core")
> >
> > # 2. find background treenames for data.bg
> > getTreeNames(rootFile(data.bg))
> >
> > # 3. get background for all trees
> > export.root(rootFile(data.bg), schemeFile(data.bg), setName(data.bg),
> > "*", "rbg", "fBg", "BgrdAll.txt")
> > # or get background intensity for e.g. tree "BreastA.rbg"
> > export.root(rootFile(data.bg), schemeFile(data.bg), setName(data.bg),
> > "BreastA", "rbg", "fBg", "BgrdBreastA.txt")
> >
> > In addition you can also export the background subtracted intensities:
> > # 4. get background corrected intensities for all trees
> > export.root(rootFile(data.bg), schemeFile(data.bg), setName(data.bg),
> > "*", "int", "fInten", "IntenAll.txt")
> >
> > However, please note that only the "core" probes are corrected, so I am
> > not sure if you can use these data in another program.
> >
> >
> > Some notes on background correction:
> >
> > Please note that the above background correction does NOT use
> > "antigenomic" probes for background correction. The parameter
> > select="antigenomic" does only define the kind of MM probes (although
> > they are not used in this case). Which probes are used as PM probes is
> > defined by exonlevel="core", which means that only "core" probes are
> > used for background correction.
> >
> > As you know, in the RMA background algorithm observed PM probes are
> > modeled as the sum of a normal noise component and an exponential 
> signal
> > component. Since in above case only "core" probes are selected as PM
> > probes, only these probes are used for background correction. This may
> > be the reason why the background data differ from the background data
> > computed by APT, as explained in vignette APTvsXPS.pdf.
> >
> > If you want to compute the background using "genomic" or "antigenomic"
> > probes and the APT algorithm based on GC content of these probes then
> > you need to use:
> > data.bg <- bgcorrect(data.exon, "ExonGCBgrdCore", filedir=datdir,
> > method="gccontent", select="antigenomic", option="attenuatebg",
> > params=c(0.4, 0.005, -1.0), exonlevel="core")
> > or the dedicated function:
> > data.bg <- bgcorrect.gc(data.exon, "ExonGCBgrdCore", filedir=datdir,
> > select="antigenomic", exonlevel="core")
> >
> >
> > Maybe one note on processing time:
> > My main goal was to allow processing of exon arrays on computers with
> > 1GB RAM only, and to allow access to all interim data such as 
> background
> > intensities and background-corrected probe intensities. Thus, all these
> > data are stored as root trees, which means that saving all these 
> interim
> > data on HD is probably the time-consuming step.
> >
> > I hope that I could answer your questions.
> >
> > Best regards
> > Christian
> >
> >
> > arnaud Le Cavorzin wrote:
> > > Hi
> > >
> > > Thank you for your answer, I will download your last version when it
> > > will be available.
> > >
> > > We found that the difference between Partek GS and xps package is the
> > > background correction.
> > > And Partek's support confirmed that Partek GS doesn't use genomic or
> > > antigenomic background correction but correction like described by
> > > Professor Bolstad.
> > >
> > > But I have an other problem : I would like to perform background
> > > correction with xps, using the function bgcorrect(), and after to
> > > export the data.bg.rma for performing the normalization and
> > > summarization with Partek GS (that take less time than xps)
> > > I have tried with function export.expr(), export.data and export()
> > > without success.
> > >
> > > How can I do to extract the data.bg.rma into a .txt file, if it was
> > > possible of course?
> > >
> > > Thanks
> > > Best regards
> > >
> > > Arnaud
> > >
> > >
> > > > Date: Mon, 30 Mar 2009 22:33:48 +0200
> > > > From: cstrato at aon.at
> > > > To: arnaudlc at msn.com
> > > > CC: bioconductor at stat.math.ethz.ch; delphine.rossille at chu-rennes.fr
> > > > Subject: Re: [BioC] Xps package : errors and RMA difference with
> > > Partek GS
> > > >
> > > > Dear Arnaud,
> > > >
> > > > The error you get does only appear on Windows, since MS VC++ 
> requires
> > > > every C function used to be listed in an Export Definition File
> > > > "xps.def". Since I have added this function later and do use 
> WinXP only
> > > > for testing purposes, I have forgotten to add function 
> "MetaProbesets".
> > > >
> > > > I have just uploaded a new version xps_1.2.8 to BioC which adds this
> > > > function to xps.def.
> > > > You should be able to download the new version in the next one or
> > > two days.
> > > >
> > > > Thank you for reporting this error. I am sorry for the 
> inconvenience.
> > > >
> > > > Best regards
> > > > Christian
> > > >
> > > >
> > > > arnaud Le Cavorzin wrote:
> > > > > Hi
> > > > >
> > > > > I have tried to create a .mps file with xps. But I have got an 
> error,
> > > > > in french
> > > > > "Erreur dans .C("MetaProbesets", as.character(schemefile),
> > > > > as.character(infile), :
> > > > > le nom C de symbole "MetaProbesets" est introuvable dans la 
> DLL pour
> > > > > le package "xps" "
> > > > > That means that there is an error with the name C of symbol
> > > > > MetaProbesets is missing into the ddl for the package xps.
> > > > >
> > > > > I don't understand what it mean, can you help me about this?
> > > > >
> > > > > The script used :
> > > > >
> > > > > /> xps.rma=validData(data.rma)
> > > > > > writeLines(rownames(xps.rma),"core.txt")
> > > > > > metaProbesets(scheme.huex10stv2r2,"core.txt","coreList.mps",
> > > > > + exonlevel="core")/
> > > > >
> > > > > (I have performed a RMA with
> > > > > background="antigenomic",option="transcript" and exonlevel="core"
> > > > > before this, for the comparison with APT and Partek GS)
> > > > >
> > > > > Thank you
> > > > > Best regards
> > > > >
> > > > > Arnaud
> > > > >
> > > > >
> > > > > > Date: Sat, 28 Mar 2009 23:03:21 +0100
> > > > > > From: cstrato at aon.at
> > > > > > To: arnaudlc at msn.com
> > > > > > CC: bioconductor at stat.math.ethz.ch; 
> delphine.rossille at chu-rennes.fr
> > > > > > Subject: Re: [BioC] Xps package : errors and RMA difference with
> > > > > Partek GS
> > > > > >
> > > > > > Dear Arnaud,
> > > > > >
> > > > > > Regarding the problem with "bgcorrect.rma()":
> > > > > > Currently function "bgcorrect.rma()" works only with expression
> > > arrays,
> > > > > > I will update it in the next version.
> > > > > > At the moment you need to use the general function 
> "bgcorrect()"
> > > with
> > > > > > the correct settings.
> > > > > >
> > > > > > Thus if you want to compute RMA stepwise you need to do:
> > > > > > ## 1.step: background - rma
> > > > > > data.bg.rma <- bgcorrect(data.exon, "ExonRMABgrd", 
> filedir=datdir,
> > > > > > method="rma", select="antigenomic", 
> option="pmonly:epanechnikov",
> > > > > > params=c(16384), exonlevel="core")
> > > > > >
> > > > > > ## 2.step: normalization - quantile
> > > > > > data.qu.rma <- normalize.quantiles(data.bg.rma, "ExonRMANorm",
> > > > > > filedir=datdir , exonlevel="core")
> > > > > >
> > > > > > ## 3.step: summarization - medpol
> > > > > > data.mp.rma <- summarize.rma(data.qu.rma, "ExonRMASum",
> > > filedir=datdir,
> > > > > > exonlevel="core")
> > > > > >
> > > > > >
> > > > > > This will give the same expression levels as using function 
> "rma()"
> > > > > > directly:
> > > > > > ## compute rma:
> > > > > > data.rma <- rma(data.exon, "ExonRMAcore", filedir=datdir,
> > > > > > background="antigenomic",
> > > > > > normalize=T, option="transcript", exonlevel="core")
> > > > > >
> > > > > >
> > > > > > Alternatively you can use function "express()" to compute RMA:
> > > > > > a, stepwise:
> > > > > > ## 1.step: background - rma
> > > > > > expr.bg.rma <- express(data.exon, "ExonExprsBgrd", 
> filedir=datdir,
> > > > > > tmpdir="",
> > > > > > bgcorrect.method="rma", bgcorrect.select="antigenomic",
> > > > > > bgcorrect.option="pmonly:epanechnikov", 
> bgcorrect.params=c(16384),
> > > > > > exonlevel="core")
> > > > > >
> > > > > > ## 2.step: normalization - quantile
> > > > > > expr.qu.rma <- express(expr.bg.rma, "ExonExprsNorm", 
> filedir=datdir,
> > > > > > tmpdir="",
> > > > > > normalize.method="quantile", normalize.select="pmonly",
> > > > > > normalize.option="transcript:together:none", 
> normalize.logbase="0",
> > > > > > normalize.params=c(0.0), exonlevel="core")
> > > > > >
> > > > > > ## 3.step: summarization - medpol
> > > > > > expr.mp.rma <- express(expr.qu.rma, "ExonExprsSum", 
> filedir=datdir,
> > > > > > tmpdir="",
> > > > > > summarize.method="medianpolish", summarize.select="pmonly",
> > > > > > summarize.option="transcript", summarize.logbase="log2",
> > > > > > summarize.params=c(10, 0.01, 1.0), exonlevel="core")
> > > > > >
> > > > > >
> > > > > > b, with a single call to express()
> > > > > > expr.rma <- express(data.exon, "ExonExprs", filedir=datdir,
> > > tmpdir="",
> > > > > > bgcorrect.method="rma", bgcorrect.select="antigenomic",
> > > > > > bgcorrect.option="pmonly:epanechnikov", 
> bgcorrect.params=c(16384),
> > > > > > normalize.method="quantile", normalize.select="pmonly",
> > > > > > normalize.option="transcript:together:none", 
> normalize.logbase="0",
> > > > > > normalize.params=c(0.0), summarize.method="medianpolish",
> > > > > > summarize.select="pmonly", summarize.option="transcript",
> > > > > > summarize.logbase="log2", summarize.params=c(10, 0.01, 1.0),
> > > > > > exonlevel="core")
> > > > > >
> > > > > >
> > > > > > I hope that these examples help you to use functions 
> bgcorrect(),
> > > > > > normalize.quantiles(), summarize.rma() and express().
> > > > > >
> > > > > > Best regards
> > > > > > Christian
> > > > > >
> > > > > >
> > > > > > arnaud Le Cavorzin wrote:
> > > > > > > Hi all.
> > > > > > >
> > > > > > > I'm a new user of the xps package and I have some 
> questions about
> > > > > it and some problems.
> > > > > > >
> > > > > > > I use xps package for analysing exon arrays (using Affymetrix
> > > > > Human Exon 1.0 ST Arrays), and I try to compare the results 
> with the
> > > > > results obtained with Partek GS.
> > > > > > >
> > > > > > > So for that in R I import .CEL files and perform a RMA (using
> > > > > function rma with xps). I have no problem with this step, it 
> works
> > > but
> > > > > I don't obtain the same results with Partek.
> > > > > > > I have tried different options for rma (xps package) and for
> > > > > Partek (changing option=transcript or probeset, exonlevel=core or
> > > > > metacore in xps for example, and do the same thing in Partek) 
> but the
> > > > > results are always differents.
> > > > > > >
> > > > > > > When I import the data from the .CEL files, all is ok, I 
> have the
> > > > > same results with xps and Partek. But whenever I try a 
> normalization
> > > > > (RMA) the results are different from the two softwares.
> > > > > > > I have done for example :
> > > > > > >
> > > > > > >
> > > > > > >>
> > > > >
> > > 
> data.probesetnoback.rma=rma(data.huextest,"tmpdt_HuextestprobesetnobackRMA",background="none",
> > > > > > >>
> > > > > > > + 
> normalize=TRUE,option="probeset",exonlevel="core",verbose=FALSE)
> > > > > > >
> > > > > > >>
> > > > >
> > > 
> data.rma=rma(data.huextest,"tmpdt_HuextestRMA",background="antigenomic",
> > > > > > >>
> > > > > > > + 
> normalize=TRUE,option="probeset",exonlevel="core",verbose=FALSE)
> > > > > > >
> > > > > > >>
> > > > >
> > > 
> data.metacore.rma=rma(data.huextest,"tmpdt_HuextestprobesetnobackRMA",background="antigenomic",
> > > > > > >>
> > > > > > > +
> > > normalize=TRUE,option="probeset",exonlevel="metacore",verbose=FALSE)
> > > > > > >
> > > > > > >
> > > > > > > I have also tried with the xps package to perform a background
> > > > > correction first, after a quantile normalization and finally a
> > > > > summarization for compare step by step with Partek but it doesn't
> > > work.
> > > > > > >
> > > > > > > I can't perform bgcorrect without error, like for example :
> > > > > > >
> > > > > > >
> > > > > > >>
> > > > >
> > > 
> data.qu.rma=bgcorrect.rma(data.huextest,"tmpdt_HuextestbgqumpRMA",filedir=getwd(),
> > > > > > >>
> > > > > > > + tmpdir="",exonlevel="core",verbose=FALSE)
> > > > > > > Erreur dans .local(object, ...) : error in function 
> ‘BgCorrect’
> > > > > > >
> > > > > > >> traceback()
> > > > > > >>
> > > > > > > 6: stop(paste("error in function", sQuote("BgCorrect")))
> > > > > > > 5: .local(object, ...)
> > > > > > > 4: xpsBgCorrect(xps.data, filename = filename, filedir = 
> filedir,
> > > > > > > tmpdir = tmpdir, update = update, select = select, method =
> > > method,
> > > > > > > option = option, exonlevel = exonlevel, params = params,
> > > > > > > verbose = verbose)
> > > > > > > 3: xpsBgCorrect(xps.data, filename = filename, filedir = 
> filedir,
> > > > > > > tmpdir = tmpdir, update = update, select = select, method =
> > > method,
> > > > > > > option = option, exonlevel = exonlevel, params = params,
> > > > > > > verbose = verbose)
> > > > > > > 2: bgcorrect(xps.data, filename = filename, filedir = filedir,
> > > > > tmpdir = tmpdir,
> > > > > > > update = update, select = "none", method = "rma", option =
> > > > > "pmonly:epanechnikov",
> > > > > > > exonlevel = exonlevel, params = c(16384), verbose = verbose)
> > > > > > > 1: bgcorrect.rma(data.huextest, "tmpdt_HuextestbgqumpRMA",
> > > filedir
> > > > > = getwd(),
> > > > > > > tmpdir = "", exonlevel = "core", verbose = FALSE)
> > > > > > >
> > > > > > >> 
> data.bg.rma=bgcorrect(data.huextest,"tmpdt_HuextestbgqumpRMA",
> > > > > filedir = getwd(), tmpdir = "",
> > > > > select="none",method="rma",option="none",exonlevel = "core",
> > > verbose =
> > > > > FALSE)
> > > > > > >>
> > > > > > > Erreur dans .local(object, ...) : empty parameter list 
> ‘params’
> > > > > > > De plus : Warning message:
> > > > > > > In .local(object, ...) :
> > > > > > > ‘option’ is different from <pmonly:epanechnikov> for rma
> > > > > > >
> > > > > > >
> > > > > > > If I perform a normalization.quantiles without performing a
> > > > > bgcorrect it doesn't work, I obtain 0 for all of the values.
> > > > > > > And summarization give the same kind of error than bgcorrect.
> > > > > > >
> > > > > > > Therefore my questions :
> > > > > > >
> > > > > > > Why xps pakage and R don't give the same results using the 
> same
> > > > > setup options?
> > > > > > > What does exactly xps when performing a RMA? A bgcorrect? A
> > > > > normalization?
> > > > > > >
> > > > > > > Thanks for your answer
> > > > > > > Best regards
> > > > > > >
> > > > > > > Arnaud
> > > > > > >
> > > > > > >
> > > > > > > 
> _________________________________________________________________
> > > > > > >
> > > > > > > ? Lancez-vous !
> > > > > > >
> > > > > > > [[alternative HTML version deleted]]
> > > > > > >
> > > > > > >
> > > > > > >
> > > > >
> > > 
> ------------------------------------------------------------------------
> > > > > > >
> > > > > > > _______________________________________________
> > > > > > > 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
> > > > > >
> > > > >
> > > > >
> > > 
> ------------------------------------------------------------------------
> > > > > Tous vos amis discutent sur Messenger, et vous ? Téléchargez
> > > > > Messenger, c'est gratuit ! 
> <http://get.live.com/messenger/overview>
> > > >
> > >
> > > 
> ------------------------------------------------------------------------
> > > Vous voulez savoir ce que vous pouvez faire avec le nouveau Windows
> > > Live ? Lancez-vous !
> > > <http://www.microsoft.com/windows/windowslive/default.aspx>
> >
>
> ------------------------------------------------------------------------
> Téléchargez le nouveau Windows Live Messenger ! Téléchargez Messenger, 
> c'est gratuit ! <http://get.live.com/messenger/overview>



More information about the Bioconductor mailing list