Missing Values after cyclic loess in limma
3
0
Entering edit mode
Guest User ★ 13k
@guest-user-4897
Last seen 9.6 years ago
Hello, I am just working on my first ever single channel Agilent array data set. Because I do expect large changes in differential expression I wanted to use the cyclic loess normalisation within limma rather than quantile normalisation. I used the default settings i.e. y<-normalizeBetweenArrays(x,method="cyclicloess") where x is the ELlistRaw object. As expected this took a while but to my surprise produced hundreds of missing values for each array as indicated by the message Warning message: In log2(Recall(object$E, method = method, ...)) : NaNs produced I checked the raw values which are all well above 0 and include no NAs. I also did not use any background correction, so I don't quite understand why logging should produce any missing values. I had assumed that the method would first log and then apply the cyclic loess algorithm, which in itself shouldn't produce any NAs either. Have I misunderstood something basic here? Thanks, Claus -- output of sessionInfo(): R version 2.13.0 (2011-04-13) Platform: i386-pc-mingw32/i386 (32-bit) other attached packages: [1] limma_3.8.2 -- Sent via the guest posting facility at bioconductor.org.
limma limma • 2.1k views
ADD COMMENT
0
Entering edit mode
@wolfgang-huber-3550
Last seen 3 months ago
EMBL European Molecular Biology Laborat…
Hi Claus if there is a chance that affine functions might already do a good enough job for you, compared to loess' local polynomials, then "vsn" might be an option for you, which is intended to be more numerically robust. Best wishes Wolfgang Il giorno Nov 2, 2012, alle ore 6:45 PM, "Claus Mayer [guest]" <guest at="" bioconductor.org=""> ha scritto: > > Hello, > > I am just working on my first ever single channel Agilent array data set. Because I do expect large changes in differential expression I wanted to use the cyclic loess normalisation within limma rather than quantile normalisation. I used the default settings i.e. > > y<-normalizeBetweenArrays(x,method="cyclicloess") > > where x is the ELlistRaw object. As expected this took a while but to my surprise produced hundreds of missing values for each array as indicated by the message > > Warning message: > In log2(Recall(object$E, method = method, ...)) : NaNs produced > > I checked the raw values which are all well above 0 and include no NAs. I also did not use any background correction, so I don't quite understand why logging should produce any missing values. I had assumed that the method would first log and then apply the cyclic loess algorithm, which in itself shouldn't produce any NAs either. Have I misunderstood something basic here? > > Thanks, > > Claus > > > > -- output of sessionInfo(): > > R version 2.13.0 (2011-04-13) > Platform: i386-pc-mingw32/i386 (32-bit) > > other attached packages: > [1] limma_3.8.2 > > -- > Sent via the guest posting facility at bioconductor.org. > > _______________________________________________ > Bioconductor mailing list > Bioconductor at r-project.org > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
ADD COMMENT
0
Entering edit mode
@gordon-smyth
Last seen 4 hours ago
WEHI, Melbourne, Australia
Dear Claus, You are using software that is three Bioconductor releases out of date. The bug you have run into was fixed on 5 August 2011. Please install the current versions of R and Bioconductor. See the posting guide: http://www.bioconductor.org/help/mailing-list/posting-guide/ Best wishes Gordon > Date: Fri, 2 Nov 2012 10:45:17 -0700 (PDT) > From: "Claus Mayer [guest]" <guest at="" bioconductor.org=""> > To: bioconductor at r-project.org, claus at bioss.ac.uk > Subject: [BioC] Missing Values after cyclic loess in limma > > > Hello, > > I am just working on my first ever single channel Agilent array data > set. Because I do expect large changes in differential expression I > wanted to use the cyclic loess normalisation within limma rather than > quantile normalisation. I used the default settings i.e. > > y<-normalizeBetweenArrays(x,method="cyclicloess") > > where x is the ELlistRaw object. As expected this took a while but to my > surprise produced hundreds of missing values for each array as indicated > by the message > > Warning message: > In log2(Recall(object$E, method = method, ...)) : NaNs produced > > I checked the raw values which are all well above 0 and include no NAs. > I also did not use any background correction, so I don't quite > understand why logging should produce any missing values. I had assumed > that the method would first log and then apply the cyclic loess > algorithm, which in itself shouldn't produce any NAs either. Have I > misunderstood something basic here? > > Thanks, > > Claus > > > > -- output of sessionInfo(): > > R version 2.13.0 (2011-04-13) > Platform: i386-pc-mingw32/i386 (32-bit) > > other attached packages: > [1] limma_3.8.2 > > -- ______________________________________________________________________ The information in this email is confidential and intend...{{dropped:4}}
ADD COMMENT
0
Entering edit mode
@gordon-smyth
Last seen 4 hours ago
WEHI, Melbourne, Australia
The problem had nothing to do with the loess function. I do not know of any objective grounds by which one could claim vsn to be more numerically robust than loess. The former requires iterative parameter estimation whereas loess is a closed-form calculation requiring nothing more complex than linear regression. The literature does indeed suggest that cyclic loess would an obvious choice in high DE situations, which is the context here. There is no literature than I know of supporting vsn in this context. Affine functions are linear transformations with an intercept. Vsn is not a linear transformation while, ironically, the local polynomials used by loess are. Gordon > Date: Fri, 2 Nov 2012 19:45:45 +0100 > From: Wolfgang Huber <whuber at="" embl.de=""> > To: "Claus Mayer [guest]" <guest at="" bioconductor.org=""> > Cc: bioconductor at r-project.org > Subject: Re: [BioC] Missing Values after cyclic loess in limma > > Hi Claus > > if there is a chance that affine functions might already do a good > enough job for you, compared to loess' local polynomials, then "vsn" > might be an option for you, which is intended to be more numerically > robust. > > Best wishes > Wolfgang > > Il giorno Nov 2, 2012, alle ore 6:45 PM, "Claus Mayer [guest]" <guest at="" bioconductor.org=""> ha scritto: > >> >> Hello, >> >> I am just working on my first ever single channel Agilent array data >> set. Because I do expect large changes in differential expression I >> wanted to use the cyclic loess normalisation within limma rather than >> quantile normalisation. I used the default settings i.e. >> >> y<-normalizeBetweenArrays(x,method="cyclicloess") >> >> where x is the ELlistRaw object. As expected this took a while but to >> my surprise produced hundreds of missing values for each array as >> indicated by the message >> >> Warning message: >> In log2(Recall(object$E, method = method, ...)) : NaNs produced >> >> I checked the raw values which are all well above 0 and include no NAs. >> I also did not use any background correction, so I don't quite >> understand why logging should produce any missing values. I had assumed >> that the method would first log and then apply the cyclic loess >> algorithm, which in itself shouldn't produce any NAs either. Have I >> misunderstood something basic here? >> >> Thanks, >> >> Claus >> >> >> >> -- output of sessionInfo(): >> >> R version 2.13.0 (2011-04-13) >> Platform: i386-pc-mingw32/i386 (32-bit) >> >> other attached packages: >> [1] limma_3.8.2 >> >> -- ______________________________________________________________________ The information in this email is confidential and intend...{{dropped:4}}
ADD COMMENT
0
Entering edit mode
Hi Gordon thanks for the many good points. Literature: I don't have an overview over uses or citations of vsn, and benchmarking normalisation methods is as we know a complex topic, but below I paste some recent references where vsn was used for multiple (dozens - hundred) single colour arrays. Affine linear: vsn transforms each array's data x with the transformation glog(a*x+b) with array specific parameters a and b, and an overall (same for all arrays) function glog(y)=log2( (y+sqrt(y^2+1) /2). The array specific part is affine linear. Cyclic loess is an iterative algorithm (as is vsn), and its implementation in limma by default stops after 3 iterations regardless of whether convergence was reached. While I concur that this is numerically robust, isn't the lack of data-dependent convergence diagnostic a reason to worry? I also have a question to you: there is nothing intrinsically bivariate (1D regressor, 1D response) about local regression, multivariate approaches have been proposed (e.g. Keppler, Crosby, Morgan in Genome Biology 2002), and good implementations exist in R (e.g. locfit package), why is it so popular to do this pair-wise (with the obvious drawback of n^2 complexity)? Best wishes Wolfgang Zhenyu Xu*, Wu Wei*, Julien Gagneur, Fabiana Perocchi, Sandra Clauder- Muenster, Jurgi Camblong, Elisa Guffanti, Francoise Stutz, Wolfgang Huber, and Lars M. Steinmetz. Bidirectional promoters generate pervasive transcription in yeast. Nature, 457(7232):1033-1037, 2009. Zhenyu Xu*, Wu Wei*, Julien Gagneur*, Sandra Clauder-M?nster, Miosz Smolik, Wolfgang Huber, and Lars M. Steinmetz. Antisense expression increases gene expression variability and locus interdependency. Molecular Systems Biology, 7, 2011. E. Benito, L. M. Valor, M. Jimenez-Minchan, W. Huber, and A. Barco. cAMP response element-binding protein is a primary hub of activity- driven neuronal gene expression. Journal of Neuroscience, 31:18237-18250, 2011. Ramona Schmid, Patrick Baum, Carina Ittrich, Katrin Fundel-Clemens, Wolfgang Huber, Benedikt Brors, Roland Eils, Andreas Weith, Detlev Mennerich, and Karsten Quast. Comparison of normalization methods for Illumina BeadChip(R) HumanHT-12 v3. BMC Genomics, 11:349, 2010. Il giorno Nov 4, 2012, alle ore 1:05 AM, Gordon K Smyth <smyth at="" wehi.edu.au=""> ha scritto: > The problem had nothing to do with the loess function. > > I do not know of any objective grounds by which one could claim vsn to be more numerically robust than loess. The former requires iterative parameter estimation whereas loess is a closed-form calculation requiring nothing more complex than linear regression. > > The literature does indeed suggest that cyclic loess would an obvious choice in high DE situations, which is the context here. There is no literature than I know of supporting vsn in this context. > > Affine functions are linear transformations with an intercept. Vsn is not a linear transformation while, ironically, the local polynomials used by loess are. > > Gordon > >> Date: Fri, 2 Nov 2012 19:45:45 +0100 >> From: Wolfgang Huber <whuber at="" embl.de=""> >> To: "Claus Mayer [guest]" <guest at="" bioconductor.org=""> >> Cc: bioconductor at r-project.org >> Subject: Re: [BioC] Missing Values after cyclic loess in limma >> >> Hi Claus >> >> if there is a chance that affine functions might already do a good enough job for you, compared to loess' local polynomials, then "vsn" might be an option for you, which is intended to be more numerically robust. >> >> Best wishes >> Wolfgang >> >> Il giorno Nov 2, 2012, alle ore 6:45 PM, "Claus Mayer [guest]" <guest at="" bioconductor.org=""> ha scritto: >> >>> >>> Hello, >>> >>> I am just working on my first ever single channel Agilent array data set. Because I do expect large changes in differential expression I wanted to use the cyclic loess normalisation within limma rather than quantile normalisation. I used the default settings i.e. >>> >>> y<-normalizeBetweenArrays(x,method="cyclicloess") >>> >>> where x is the ELlistRaw object. As expected this took a while but to my surprise produced hundreds of missing values for each array as indicated by the message >>> >>> Warning message: >>> In log2(Recall(object$E, method = method, ...)) : NaNs produced >>> >>> I checked the raw values which are all well above 0 and include no NAs. I also did not use any background correction, so I don't quite understand why logging should produce any missing values. I had assumed that the method would first log and then apply the cyclic loess algorithm, which in itself shouldn't produce any NAs either. Have I misunderstood something basic here? >>> >>> Thanks, >>> >>> Claus >>> >>> >>> >>> -- output of sessionInfo(): >>> >>> R version 2.13.0 (2011-04-13) >>> Platform: i386-pc-mingw32/i386 (32-bit) >>> >>> other attached packages: >>> [1] limma_3.8.2 >>> >>> -- > > ______________________________________________________________________ > The information in this email is confidential and inte...{{dropped:6}}
ADD REPLY

Login before adding your answer.

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