[BioC] Confusion over limma documentation and design/contrast matrices

michael watson (IAH-C) michael.watson at bbsrc.ac.uk
Thu Nov 11 13:11:34 CET 2004


The confusion comes from the examples given in usersguide.pdf.  Sections
7.3 and 8.2 both deal with two colour microarray data where a common
reference has been used.

Section 7.3 advocates the use of designMatrix() and makeContrasts(),
where lmFit() is first used with the design matrix, and then
contrasts.fit() is used with the contrasts matrix, and then eBayes()
applied to the resulting linear model fit.

Section 8.2 gives us the design matrix directly, and does not use a
contrasts matrix at all.

So my first question is this: with two colour cDNA microarrays which use
a common reference, do we need both a design matrix and a contrasts
matrix, or just a design matrix?  (I'm assuming it depends on how many
samples there are in addition to the reference, but I'm not sure).

Looking at section 8.2, the ApoAI data, we have three samples - control
mice, ApoAI mice and the reference sample.  8 control mice were compared
to the reference and 8 ApoAI mice were compared to the reference, and in
all cases the reference was Cy3.  Therefore, a targets file to describe
this experiment can reasonably be expected to look like this:

   SlideNumber     Cy5 Cy3
1           c1 Control Ref
2           c2 Control Ref
3           c3 Control Ref
4           c4 Control Ref
5           c5 Control Ref
6           c6 Control Ref
7           c7 Control Ref
8           c8 Control Ref
9           k1   ApoAI Ref
10          k2   ApoAI Ref
11          k3   ApoAI Ref
12          k4   ApoAI Ref
13          k5   ApoAI Ref
14          k6   ApoAI Ref
15          k7   ApoAI Ref
16          k8   ApoAI Ref

If we run modelMatrix() on this, we get this:

   ApoAI Control
1      0       1
2      0       1
3      0       1
4      0       1
5      0       1
6      0       1
7      0       1
8      0       1
9      1       0
10     1       0
11     1       0
12     1       0
13     1       0
14     1       0
15     1       0
16     1       0

If we then carry on the example in 7.3, and create a contrasts matrix,
then I assume we are interested in the comparison of ApoAI knockout mice
to Control mice, so I run:

> makeContrasts(ApoAI-Control, levels=apoai.design)

And get this

        ApoAI - Control
ApoAI                 1
Control              -1

So, just to take a breath here, I am using the documentation from
section 7.3 to run against the data in section 8.2.  I now have a design
matrix and a contrasts matrix for the ApoAI data.  The only problem is
that they look completely different to the example design matrix given
in section 8.2.  The design matrix there is:

   Control-Ref KO-Control
c1           1          0
c2           1          0
c3           1          0
c4           1          0
c5           1          0
c6           1          0
c7           1          0
c8           1          0
k1           1          1
k2           1          1
k3           1          1
k4           1          1
k5           1          1
k6           1          1
k7           1          1
k8           1          1

And there is no contrasts matrix.

So, my question 2: is the design matrix given in section 8.2 the
equivalent of using the design and contrasts matrices that I calculated

Question 3: does the fact that the ApoAI data only has one contrast of
interest mean that I don't need a contrasts matrix, I only need a design
matrix? (albeit a DIFFERENT design matrix to one that would be given by

Question 4: can anyone recommend a good book which I can go and read and
learn all about design and contrast matrices and their relation to
linear models?  Everything I have read so far just says something like
"... The design matrix is therefore this... and the contrast matrix is
therefore this..." and doesn't actually explain how exactly the
structure of the matrices was arrived at...

Thanks and sorry for the long mail!


More information about the Bioconductor mailing list