[BioC] limma's implementation of VSN

Wolfgang Huber whuber at embl.de
Wed Sep 2 22:08:50 CEST 2009

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

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
>>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 Huber

More information about the Bioconductor mailing list