[BioC] Limma: normalizeWithinArrays: Subscript out of bounds

Gordon Smyth smyth at wehi.edu.au
Fri Dec 19 00:09:10 MET 2003

Dear Edo,

Normalization assumes complete arrays. (This is true of any function in 
limma or marrayX which requires print layout information.) Therefore you 
should downweight your cy3 and cy5 landmarks by giving them weight zero 
rather than by subsetting them out of the data object. You should never 
subset your data object before normalization.

Do you have weights already set in your RGList object? If you do, you could use

RG$weights <- RG$weights * ( RG$genes [, "Status"] !="Cy-3 landmark" )
RG$weights <- RG$weights * ( RG$genes [, "Status"] !="Cy-5 landmark" )

and then straight into normalizeWithinArrays(RG)


At 01:20 AM 19/12/2003, Edo Plantinga wrote:
>Dear all,
>In our lab we use cy3 and cy5 landmarks to be able to distinguish between 
>subgrids when performing the image analysis. Because these values will 
>influence a Lowess normalization, I filter out these spots before 
>performing the normalization. The problem is that after I do that and try 
>to normalize with the data that is left, I get an an error that the 
>subscript is out of bounds:
> > types
>                      SpotType                     Gene ID        col cex
>1                        Gene                           *     grey10 0.2
>2                 Buffer only                 Buffer only      brown 0.2
>3                         Cot                        Cot*     yellow 0.2
>4                       Alien                      alien*       pink 0.2
>5               Cy-3 landmark               Cy-3 landmark      green 0.2
>6               Cy-5 landmark               Cy-5 landmark        red 0.2
>7                       Empty                       Empty       blue 0.2
>8                   poly d(A)                   poly d(A)   darkblue 0.2
>9 Randomized negative control Randomized negative control chocolate1 0.2
> > MANoLandmarks <- RG[RG$genes [, "Status"] !="Cy-3 landmark",]
> > MANoLandmarks <- MANoLandmarks[MANoLandmarks$genes [, "Status"] !="Cy-5 
> landmark",]
> > # Attributes for printing of control spots are not copied.
> > # I am not sure why this happens, but this seems to solve the problem:
> > MANoLandmarks$genes$Status <- controlStatus(types,MANoLandmarks)
>Matching patterns for: Gene ID
>Found 25056 Gene
>Found 223 Buffer only
>Found 96 Cot
>Found 1920 Alien
>Found 0 Cy-3 landmark
>Found 0 Cy-5 landmark
>Found 336 Empty
>Found 0 poly d(A)
>Found 384 Randomized negative control
>Setting attributes: values col cex
> > MANormalized <- normalizeWithinArrays(MANoLandmarks, 
> method="printtiploess")
>Error: subscript out of bounds
>Any suggestions?
>Kind regards,
>Edo Plantinga

More information about the Bioconductor mailing list