limma's implementation of VSN
1
0
Entering edit mode
Guido Hooiveld ★ 4.1k
@guido-hooiveld-2020
Last seen 3 days ago
Wageningen University, Wageningen, the …
Dear list, I am analyzing my first 2-color array experiment (Agilent arrays). After reading the manual of LIMMA and the book BioC case studies, I decided to use LIMMA applying VSN normalization. However, to me it is not completely clear which arguments are passed to VSN when executed from LIMMA. >From ?normalizeBetweenArrays i learn: "method="vsn" uses the vsn function from the vsn package. For this option the input object should contain raw intensities, i.e., prior to background correction, log-transformation or any normalization. Note that the normalized intensities are on the log-2 scale, not the log-e scale output by the vsn function in the vsn package." The code I ran: targets <- readTargets("targets.txt", row.names="Name") RG <- read.maimages(targets$FileName, source="agilent") MA.vsn <- normalizeBetweenArrays(RG, method="vsn") Questions: - in the 3rd line code above, is VSN run with the argument 'backgroundsubstract=TRUE'? I am asking because by default VSN does NOT background subtraction, and when I explicitly state to subtract background an error occurs: > MA.vsn <- normalizeBetweenArrays(RG, method="vsn", backgroundsubstract=TRUE) Error in vsnMatrix(x = y, ...) : unused argument(s) (backgroundsubstract = TRUE) Error in exprs(vsnMatrix(x = y, ...)) : error in evaluating the argument 'object' in selecting a method for function 'exprs' > - Regarding this statement from ?normalizeBetweenArrays ("Note that the normalized intensities are on the log-2 scale, not the log-e scale output by the vsn function in the vsn package"): does this mean that the raw array data is processed fully as per VSN methodology, and that only in the end it is converted into log2 scale? Thus that the raw intensities present in RG are glog-transformed, which are then used for background correction (?; see above) and variance stabilization normalization, and finally the VSN intensities are converted from glog to log2 scale? Or does this mean the VSN methodology is used on log2, and NOT glog transformed data? I assume the former, but plz correct me if I am wrong. TIA, Guido ------------------------------------------------ Guido Hooiveld, PhD Nutrition, Metabolism & Genomics Group Division of Human Nutrition Wageningen University Biotechnion, Bomenweg 2 NL-6703 HD Wageningen the Netherlands tel: (+)31 317 485788 fax: (+)31 317 483342 internet: http://nutrigene.4t.com <http: nutrigene.4t.com=""/> email: guido.hooiveld@wur.nl [[alternative HTML version deleted]]
Normalization vsn limma Normalization vsn limma • 1.7k views
ADD COMMENT
0
Entering edit mode
@wolfgang-huber-3550
Last seen 3 months ago
EMBL European Molecular Biology Laborat…
Dear Guido You raise several interesting points. * 'subtract' is spelled without an s between the b and the t in the arguments to vsn2. * the 'normalizeBetweenArrays' function calls the 'vsnMatrix' function directly, which does not have the 'backgroundsubtract' argument. That argument only exists for the 'NChannelSet' method of 'vsn2'. A workaround for you would be something like: RG <- read.maimages(targets$FileName, source="agilent") RG$R = RG$R-RG$Rb; RG$G = RG$G-RG$Gb; MA.vsn <- normalizeBetweenArrays(RG, method="vsn") * the statement in the normalizeBetweenArrays man page regarding the base used for the log function (2 or e) is outdated. In vsn2 (which is now used here), the base is 2. I'll ask Gordon to fix this. Although e is a much cooler number than 2, this fact never seems have to caught on with non-mathematicians, and I bowed in. Best wishes Wolfgang Hooiveld, Guido wrote: > Dear list, > > I am analyzing my first 2-color array experiment (Agilent arrays). After > reading the manual of LIMMA and the book BioC case studies, I decided to > use LIMMA applying VSN normalization. However, to me it is not > completely clear which arguments are passed to VSN when executed from > LIMMA. > >>From ?normalizeBetweenArrays i learn: > "method="vsn" uses the vsn function from the vsn package. For this > option the input object should contain raw intensities, i.e., prior to > background correction, log-transformation or any normalization. Note > that the normalized intensities are on the log-2 scale, not the log-e > scale output by the vsn function in the vsn package." > > The code I ran: > targets <- readTargets("targets.txt", row.names="Name") > RG <- read.maimages(targets$FileName, source="agilent") > MA.vsn <- normalizeBetweenArrays(RG, method="vsn") > > > Questions: > - in the 3rd line code above, is VSN run with the argument > 'backgroundsubstract=TRUE'? I am asking because by default VSN does NOT > background subtraction, and when I explicitly state to subtract > background an error occurs: >> MA.vsn <- normalizeBetweenArrays(RG, method="vsn", > backgroundsubstract=TRUE) > Error in vsnMatrix(x = y, ...) : > unused argument(s) (backgroundsubstract = TRUE) > Error in exprs(vsnMatrix(x = y, ...)) : > error in evaluating the argument 'object' in selecting a method for > function 'exprs' > > - Regarding this statement from ?normalizeBetweenArrays ("Note that the > normalized intensities are on the log-2 scale, not the log-e scale > output by the vsn function in the vsn package"): does this mean that the > raw array data is processed fully as per VSN methodology, and that only > in the end it is converted into log2 scale? Thus that the raw > intensities present in RG are glog-transformed, which are then used for > background correction (?; see above) and variance stabilization > normalization, and finally the VSN intensities are converted from glog > to log2 scale? Or does this mean the VSN methodology is used on log2, > and NOT glog transformed data? I assume the former, but plz correct me > if I am wrong. > > TIA, > Guido > > > ------------------------------------------------ > Guido Hooiveld, PhD > Nutrition, Metabolism & Genomics Group > Division of Human Nutrition > Wageningen University > Biotechnion, Bomenweg 2 > NL-6703 HD Wageningen > the Netherlands > tel: (+)31 317 485788 > fax: (+)31 317 483342 > internet: http://nutrigene.4t.com <http: nutrigene.4t.com=""/> > email: guido.hooiveld at wur.nl > > > [[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 -- Best wishes Wolfgang ------------------------------------------------------- Wolfgang Huber EMBL http://www.embl.de/research/units/genome_biology/huber
ADD COMMENT
0
Entering edit mode
Thanks Wolfgang for your prompt reply and clarifications! Still one question, though, for you or Gordon: with respect to the base of vsn2 and limma: To be sure, since I cannot deduce myselves from limma's code; is it only the statement that needs to be updated, or do you mean that the values returned by vsn2 are still converted by limma (while there is no reason to do so anymore)? Thanks, Guido > -----Original Message----- > From: bioconductor-bounces at stat.math.ethz.ch > [mailto:bioconductor-bounces at stat.math.ethz.ch] On Behalf Of > Wolfgang Huber > Sent: 02 September 2009 22:09 > To: Hooiveld, Guido > Cc: Bioconductor > Subject: Re: [BioC] limma's implementation of VSN > > > Dear Guido > > You raise several interesting points. > > * 'subtract' is spelled without an s between the b and the t > in the arguments to vsn2. > > * the 'normalizeBetweenArrays' function calls the 'vsnMatrix' > function directly, which does not have the > 'backgroundsubtract' argument. That argument only exists for > the 'NChannelSet' method of 'vsn2'. A workaround for you > would be something like: > > RG <- read.maimages(targets$FileName, source="agilent") > RG$R = RG$R-RG$Rb; RG$G = RG$G-RG$Gb; > MA.vsn <- normalizeBetweenArrays(RG, method="vsn") > > * the statement in the normalizeBetweenArrays man page > regarding the base used for the log function (2 or e) is > outdated. In vsn2 (which is now used here), the base is 2. > I'll ask Gordon to fix this. Although e is a much cooler > number than 2, this fact never seems have to caught on with > non-mathematicians, and I bowed in. > > Best wishes > Wolfgang > > > > Hooiveld, Guido wrote: > > Dear list, > > > > I am analyzing my first 2-color array experiment (Agilent arrays). > > After reading the manual of LIMMA and the book BioC case studies, I > > decided to use LIMMA applying VSN normalization. However, > to me it is > > not completely clear which arguments are passed to VSN when > executed > > from LIMMA. > > > >>From ?normalizeBetweenArrays i learn: > > "method="vsn" uses the vsn function from the vsn package. For this > > option the input object should contain raw intensities, > i.e., prior to > > background correction, log-transformation or any > normalization. Note > > that the normalized intensities are on the log-2 scale, not > the log-e > > scale output by the vsn function in the vsn package." > > > > The code I ran: > > targets <- readTargets("targets.txt", row.names="Name") RG <- > > read.maimages(targets$FileName, source="agilent") MA.vsn <- > > normalizeBetweenArrays(RG, method="vsn") > > > > > > Questions: > > - in the 3rd line code above, is VSN run with the argument > > 'backgroundsubstract=TRUE'? I am asking because by default VSN does > > NOT background subtraction, and when I explicitly state to subtract > > background an error occurs: > >> MA.vsn <- normalizeBetweenArrays(RG, method="vsn", > > backgroundsubstract=TRUE) > > Error in vsnMatrix(x = y, ...) : > > unused argument(s) (backgroundsubstract = TRUE) Error in > > exprs(vsnMatrix(x = y, ...)) : > > error in evaluating the argument 'object' in selecting a > method for > > function 'exprs' > > > > - Regarding this statement from ?normalizeBetweenArrays ("Note that > > the normalized intensities are on the log-2 scale, not the > log-e scale > > output by the vsn function in the vsn package"): does this > mean that > > the raw array data is processed fully as per VSN > methodology, and that > > only in the end it is converted into log2 scale? Thus that the raw > > intensities present in RG are glog-transformed, which are then used > > for background correction (?; see above) and variance stabilization > > normalization, and finally the VSN intensities are > converted from glog > > to log2 scale? Or does this mean the VSN methodology is > used on log2, > > and NOT glog transformed data? I assume the former, but plz > correct me > > if I am wrong. > > > > TIA, > > Guido > > > > > > ------------------------------------------------ > > Guido Hooiveld, PhD > > Nutrition, Metabolism & Genomics Group Division of Human Nutrition > > Wageningen University Biotechnion, Bomenweg 2 > > NL-6703 HD Wageningen > > the Netherlands > > tel: (+)31 317 485788 > > fax: (+)31 317 483342 > > internet: http://nutrigene.4t.com <http: nutrigene.4t.com=""/> > > email: guido.hooiveld at wur.nl > > > > > > [[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 > > -- > > Best wishes > Wolfgang > > ------------------------------------------------------- > Wolfgang Huber > EMBL > http://www.embl.de/research/units/genome_biology/huber > > _______________________________________________ > 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
0
Entering edit mode
> Thanks Wolfgang for your prompt reply and clarifications! > > Still one question, though, for you or Gordon: with respect to the base > of vsn2 and limma: > To be sure, since I cannot deduce myselves from limma's code; is it only > the statement that needs to be updated, or do you mean that the values > returned by vsn2 are still converted by limma (while there is no reason > to do so anymore)? > Dear Guido Only the man page needs to be updated. The code is correct. Best wishes Wolfgang > Thanks, > Guido > >> -----Original Message----- >> From: bioconductor-bounces at stat.math.ethz.ch >> [mailto:bioconductor-bounces at stat.math.ethz.ch] On Behalf Of >> Wolfgang Huber >> Sent: 02 September 2009 22:09 >> To: Hooiveld, Guido >> Cc: Bioconductor >> Subject: Re: [BioC] limma's implementation of VSN >> >> >> Dear Guido >> >> You raise several interesting points. >> >> * 'subtract' is spelled without an s between the b and the t >> in the arguments to vsn2. >> >> * the 'normalizeBetweenArrays' function calls the 'vsnMatrix' >> function directly, which does not have the >> 'backgroundsubtract' argument. That argument only exists for >> the 'NChannelSet' method of 'vsn2'. A workaround for you >> would be something like: >> >> RG <- read.maimages(targets$FileName, source="agilent") >> RG$R = RG$R-RG$Rb; RG$G = RG$G-RG$Gb; >> MA.vsn <- normalizeBetweenArrays(RG, method="vsn") >> >> * the statement in the normalizeBetweenArrays man page >> regarding the base used for the log function (2 or e) is >> outdated. In vsn2 (which is now used here), the base is 2. >> I'll ask Gordon to fix this. Although e is a much cooler >> number than 2, this fact never seems have to caught on with >> non-mathematicians, and I bowed in. >> >> Best wishes >> Wolfgang >> >> >> >> Hooiveld, Guido wrote: >>> Dear list, >>> >>> I am analyzing my first 2-color array experiment (Agilent arrays). >>> After reading the manual of LIMMA and the book BioC case studies, I >>> decided to use LIMMA applying VSN normalization. However, >> to me it is >>> not completely clear which arguments are passed to VSN when >> executed >>> from LIMMA. >>> >>> >From ?normalizeBetweenArrays i learn: >>> "method="vsn" uses the vsn function from the vsn package. For this >>> option the input object should contain raw intensities, >> i.e., prior to >>> background correction, log-transformation or any >> normalization. Note >>> that the normalized intensities are on the log-2 scale, not >> the log-e >>> scale output by the vsn function in the vsn package." >>> >>> The code I ran: >>> targets <- readTargets("targets.txt", row.names="Name") RG <- >>> read.maimages(targets$FileName, source="agilent") MA.vsn <- >>> normalizeBetweenArrays(RG, method="vsn") >>> >>> >>> Questions: >>> - in the 3rd line code above, is VSN run with the argument >>> 'backgroundsubstract=TRUE'? I am asking because by default VSN does >>> NOT background subtraction, and when I explicitly state to subtract >>> background an error occurs: >>>> MA.vsn <- normalizeBetweenArrays(RG, method="vsn", >>> backgroundsubstract=TRUE) >>> Error in vsnMatrix(x = y, ...) : >>> unused argument(s) (backgroundsubstract = TRUE) Error in >>> exprs(vsnMatrix(x = y, ...)) : >>> error in evaluating the argument 'object' in selecting a >> method for >>> function 'exprs' >>> >>> - Regarding this statement from ?normalizeBetweenArrays ("Note that >>> the normalized intensities are on the log-2 scale, not the >> log-e scale >>> output by the vsn function in the vsn package"): does this >> mean that >>> the raw array data is processed fully as per VSN >> methodology, and that >>> only in the end it is converted into log2 scale? Thus that the raw >>> intensities present in RG are glog-transformed, which are then used >>> for background correction (?; see above) and variance stabilization >>> normalization, and finally the VSN intensities are >> converted from glog >>> to log2 scale? Or does this mean the VSN methodology is >> used on log2, >>> and NOT glog transformed data? I assume the former, but plz >> correct me >>> if I am wrong. >>> >>> TIA, >>> Guido >>> >>> >>> ------------------------------------------------ >>> Guido Hooiveld, PhD >>> Nutrition, Metabolism & Genomics Group Division of Human Nutrition >>> Wageningen University Biotechnion, Bomenweg 2 >>> NL-6703 HD Wageningen >>> the Netherlands >>> tel: (+)31 317 485788 >>> fax: (+)31 317 483342 >>> internet: http://nutrigene.4t.com <http: nutrigene.4t.com=""/> >>> email: guido.hooiveld at wur.nl >>> >>> >>> [[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 >> -- >> >> Best wishes >> Wolfgang >> >> ------------------------------------------------------- >> Wolfgang Huber >> EMBL >> http://www.embl.de/research/units/genome_biology/huber >>
ADD REPLY

Login before adding your answer.

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