[BioC] limma - rror in switch(method, loess = { : printer layout information does not match M row dimension
Gordon Smyth
smyth at wehi.edu.au
Tue Jan 24 06:23:00 CET 2006
Dear Sri,
The function normalizeWithinArrays() does not make any use of the gal
file information, so changing the gal file cannot help you.
The problem most likely is that your data set is too short. Try
nrow(mdata)
and you will probably find that the result is somewhat shorter than
the length implied by the layout parameters, which is
nspots <- prod(unlist(layout))
It is only a guess, but the likely cause is that the probes marked
EMPTY in the gal file have been removed from the raw data files.
limma assumes full arrays with no deletions.
As a work-around, you could instead use global loess normalization,
i.e., method="loess", which doesn't need the print-tip group information.
Alternatively you could try making your data of the right length. Try
gal <- readGAL( name of your gal file )
nrow(gal)
Does this agree with nspots? If so, then try
isempty <- gal$ID=="EMPTY"
Does sum(isempty)+nrow(mdata) agree with nspots? If so, try
augmenting your mdata object to the right length:
i <- rep.int(0, nspots)
i[isempty] <- NA
i[!isempyt] <- 1:nrow(mdata)
mdata2 <- mdata[i, ]
ma <- normalizeWithinArrays(mdata2, layout, bc.method="none")
Best wishes
Gordon
>[BioC] limma - rror in switch(method, loess = { : printer layout
>information does not match M row dimension
>Srinivas Iyyer srini_iyyer_bio at yahoo.com
>Tue Jan 24 01:08:32 CET 2006
>
>Dear Group,
> I have been experiencing problems when I try to
>process SMD derived .xls files (Raw data). These are
>not exactly .XLS files but simply tab delim files.
>
>I am using Limma to normalize the bunch of files.
>
>here are the steps:
> >mfiles = list.files(pattern='.xls')
> >mdata = read.maimages(mfiles,source='smd')
> >mgal = 'my_gal_file'
> >layout = getLayout2(mgal)
> > layout
>$ngrid.r
>[1] 12
>
>$ngrid.c
>[1] 4
>
>$nspot.r
>[1] 30
>
>$nspot.c
>[1] 30
>
>attr(,"class")
>[1] "PrintLayout"
>
> > ma
>=normalizeWithinArrays(mdata,layout,,method='printtiploess',bc.method='none')
>
>Error in switch(method, loess = { : printer layout
>information does not match M row dimension
>
>Here, I am normalizing without background correction
>and thus I am taking mdata object directly to
>'normalizeWithinArrays' function.
>
>I looked into the GAL file obtained from SMD.
>
>There are some rows, that are completly empty:
>5 27 30 EMPTY EMPTY
>5 28 30 EMPTY EMPTY
>5 29 30 EMPTY EMPTY
>5 30 30 EMPTY EMPTY
>
>Because of these errors, normalizeWithinArrays is
>unable to match the spot dimensions and layout file.
>
>
>I tried to remove these EMPTY EMPTY spots from GAL
>file. However, the header information does not match
>with adjusted rows after removing EMPTY files:
>ATF 1.0
>53 5
>"Type=GenePix ArrayList V1.0"
>"BlockCount=48"
>"BlockType=0"
>"URL=http://source.stanford.edu/cgi-bin/source/sourceSearch"
>"Block1= 400, 400, 100, 30, 146, 30, 146"
>"Block2= 4896, 400, 100, 30, 146, 30, 146"
>"Block3= 9392, 400, 100, 30, 146, 30, 146"
>"Block4= 13888, 400, 100, 30, 146, 30, 146"
>"Block5= 400, 4896, 100, 30, 146, 30, 146"
>.....
>"Block48=................................"
>
>Thus, although the number of spot information in GAL
>file is correct it does not match the header and thus
>leads to this error: This is what my guess is.
>
>Also this is what 'Gordon Smith'(See Ref) wrote to
>another user some time back for same error.
>
>My question to Limma developers or to any other users
>who could overcome this problem is:
>
>1. How can I correct the header BLOCK information of
>GAL file for adjusted rows where I find there is no
>spot information. simply, how can I make some
>adjustments to GAL file and then try to rectify the
>situation. Is this possible at all. If not what are
>the alternatives.
>2. In a nut-shell, how to escape this ':printer layout
>information does not match M row...'.
>
>Ref:
>https://stat.ethz.ch/pipermail/bioconductor/2005-October/010482.html
>
>Thank you very much in advance.
>
>regards
>Sri
More information about the Bioconductor
mailing list