[BioC] normalizeWithinArrays "composite"

Gordon Smyth smyth at wehi.edu.au
Thu Aug 12 01:43:47 CEST 2004


At 09:27 AM 12/08/2004, M Inmaculada Barrasa wrote:
>Dear all,
>
>I am trying to normalize a test array. I would like to use
>normalizeWithinArrays "composite", but I tried the other options too.
>
>When I do:
>
>MAloessNoC <- normalizeWithinArrays(RG, method = "loess", weights=NULL)
>
>MAloess <- normalizeWithinArrays(RG, method = "loess", weights=NULL,
>controls = nonDE)
>
>  MAnone <- normalizeWithinArrays(RG,  method = "none")
>
>I don't get any errors
>
>But when I do:
>
>MAcomp <- normalizeWithinArrays(RG, layout, method = "composite",
>weights=NULL,  controls = nonDE)
>
>I get:
>
>Error in predLoess(object$y, object$x, newx, object$s, object$weights,  :
>         NA/NaN/Inf in foreign function call (arg 3)
>
>
>Is my problem in the layout? How can I find out exactly where?

You may be running into a problem with NAs with "composite" normalization 
which was fixed in limma 1.7.4. Please upgrade your version of limma from 
http://bioinf.wehi.edu.au/limma. The original implementation of composite 
normalization assumed that the control spots would not be missing which is 
apparently not so in your case.

>Also, Is there any way to do a composite loess normalization using
>nonDifferentiallyExpressed genes, but without using print-tip loess
>normalization. (I was using a grid with 1 column and 1 row in my layout).

Simply set your print layout information to have ngrid.c=1 and ngrid.r=1. 
However "composite" normalization will probably not make a lot of 
difference over ordinary loess normalization when you only have one grid. 
This is because the curves are based on so much data and are therefore very 
stable.

Alternatively, the idea behind "composite" normalization is I think 
actually better achieved using weights than using the original "composite" 
normalization method. Just use RG$weights to up-weight your nonDE control 
spots, e.g., to twice or more of the weights of the other spots. The 
modifyWeights() function can help. Then you can use any normalization 
method you choose.

Gordon

>Thanks a lot for your help
>
>Inma



More information about the Bioconductor mailing list