[BioC] Limma and limmaGUI with Imagene files, problems/bugs report

Gordon K Smyth smyth at wehi.EDU.AU
Thu Dec 2 13:22:58 CET 2004

> Date: Wed, 1 Dec 2004 13:22:53 +0100
> From: "Dr. Ir. B. van Breukelen" <b.vanbreukelen at bio.uu.nl>
> Subject: [BioC] Limma and limmaGUI with Imagene files, problems/bugs
> 	report
> To: <bioconductor at stat.math.ethz.ch>
> Message-ID: <SOLIS102NQptgFrYILo000000c9 at solis102.soliscom.uu.nl>
> Content-Type: text/plain;	charset="us-ascii"
> Dear limma users and developers,
> At our laboratory we analyze our MA data using limma. Currently we have
> created a dedicated array on which the same set of genes is spotted three
> times on one slide. Actually it is one design spotted three times. In
> Imagene you can now create a META gid for (in this case) the 4*4 grids. This
> grid you call grid A.. Then you can copy it several times (thereby creating
> metagrid B and C). You then end up after quantification with a large imagene
> file having the information of the three metagrids: (its like having three
> slides on one slide!)
> e.g.
> Field	GridRow	GridCol	SpotRow	SpotCol	ID
> A	1		1		1		1		Pp11
> A	1		1		1		2		Pp12
> ..............
> A	4		4		17		17		P..
> B	1		1		1		1		Pp11
> B	1		1		1		2		Pp12
> ..............
> B	4		4		17		17		P..
> C	1		1		1		1		Pp11
> C	1		1		1		2		Pp12
> ..............
> C	4		4		17		17		P..
> When loading these files in either limma and limmaGUI only the A Field is
> read. Not the values belonging to the B and C metagrid (which are the
> replicates).
> Is there a simple way to solve this problem ? Or do I have to cut these
> files into three parts ?

Yes, this is a known inadequacy of the limma read.imagenes() function -- it reads only data for
the first ImaGene field.  This problem has persisted partly because we haven't had time to fix it,
and partly because we are genuinely unsure how the multiple fields should be treated.  For
example, how should be multiple fields be treated in print-tip-loess normalisation, or in an
imageplot?  The multiple fields mean that the concept of PrinterLayout which is used for other
types of arrays is no longer adequate.  We are waiting for advise from ImaGene users as to how the
data should be treated.

In the meantime, the solution suggested by Steen is the most elegant.  Otherwise, you might have
to read in your data manually using read.table() or similar.

> Secondly, using limma and the targets <- readTargets function you cannot use
> the targets object directly in the read.imagene function. I solved this
> to create matrix with ncol=2 and nrow same as in the targets object. Then
> this can be used directly in read.imagene.

I'm not sure what you see as the problem here.  When I read ImaGene data, I include columns
FileNameCy3 and FileNameCy5 in the targets file, and I use read.maimages() with

  files = targets[, c("FileNameCy3","FileNameCy5")]

This seems neat enough.  Did you something else in mind as to how you thought limma should work?

> Next you would like to add color to your MA plots using controlTypes and
> Spottypes. This doesn't work either because when reading the imagene data
> files no columns RG$genes$Name and RG$genes$ID are created (actually onlu
> RG$genes[['Gene ID']] exists.. I solved this by : RG$genes$Name <-
> RG$genes[['Gene ID']] and same for ID. Then you will be able to use the
> conrol types and colors for the colored MA plots.

Actually this is not a limitation of limma.  You can already use arbitrary column names, including
"Gene ID", in your spot-types file to assign colors and other plotting attributes using
controlStatus().  There is no need to created new columns with the names "Name" and "ID".

> The same problem applies for limmaGUI. If you do not have a GAL file and
> load the imagene files directly into limmaGUI you cannot assign colors using
> spotTypes either. (Error messages appear already after loading the files).

Yes, limmaGUI is a bit behind limma in this respect.  (It is a whole lot more work to update a
menu-driven package than a command line.)


> I hope that the developers can implement these suggestions/workarounds for
> these problems ?
> Yours, Bas van Breukelen
> =================================
> Dr. Ir. B. van Breukelen
> PostDoc, Bioinformatics, Molecular genetics
> Dept. of Biology.
> Room N407: H.R. Kruytgebouw
> Padualaan 8
> 3574 CH Utrecht
> Tel:       +31(0)30 253 3355
> Mobile: +31(0)6 24 996046
> e-mail:  b.vanbreukelen at bio.uu.nl
> website: http://genomics.bio.uu.nl/
> ------------------------------
> Message: 3
> Date: Wed, 1 Dec 2004 13:54:46 +0100
> From: "STKH \(Steen Krogsgaard\)" <StKH at novozymes.com>
> Subject: RE: [BioC] Limma and limmaGUI with Imagene files,
> 	problems/bugs report
> To: <bioconductor at stat.math.ethz.ch>
> Message-ID:
> 	<934F95E71B6C9347A873C42AE3C196190213CBAF at NZT0004E.dknz.nzcorp.net>
> Content-Type: text/plain;	charset="us-ascii"
> Hi,
> we routinely analyze Imagene files with BioC, so perhaps I can answer
> some of your problems.
> First, you have to define one metagrid for all your spots, BioC won't
> understand fields. We have a 4x6 grid spotted twice on the slides, so we
> have defined a 4x12 metagrid. I guess you can modify your imagene output
> text files in e.g. excel to cope with the grid problem, but I find that
> tedious. So define your grid in Imagene once and for all.
> readTargets: I do it exactly the way you describe, first readTargets and
> the matrix. Is that a problem? It's just two lines of code...
> Spottypes: Be sure that the heading of your ID column in the spottypes
> file is "Gene ID" (exact spelling but without quotes), then
> controlStatus (which I assume you meant when you wrote controlTypes)
> will match to the right column in RG (RG at genes@Gene ID).
> Hope this helps
> Steen

More information about the Bioconductor mailing list