[BioC] Help on factorial experiment analysis using limma

Gordon Smyth smyth at wehi.edu.au
Sat Sep 13 15:12:56 MEST 2003


At 10:15 AM 13/09/2003, Yuk Fai Leung wrote:
>Hi there,
>
>I have an experiment that looks like factorial experiment and I want to give
>it a try to use limma for its analysis. And I have a few questions
>
>The experimental scheme looks like this:
>
>0: not-treated with the respective factor
>a: treated by factor a
>b: treated by factor b
>ab: treated by both factor a & b
>
>00 -------> 0b
>|               |
>|               |
>|               |
>|               |
>v               v
>a0 -------> ab
>
>There are also two diagonal hybridizations which I can't easily draw here:
>
>00 ------> ab
>0b ------> a0
>
>The arrow points towards RNA sample labeled with Cy5 and I have two
>technical replications for each arrow. Therefore there are 6 experiments * 2
>replicates = 12 arrays

This is a saturated direct design for a two-way factorial experiment. Good.

>Here are my questions:
>
>1. Is my experimental design suitable for limma analysis?

Certainly.

>2. Should I combine the technical replicates before I calculate the liner
>model by lm.series, or just treat the 12 arrays like individual experiment
>and enter them to 12 different columns of the M matrix for lm.series? If I
>should combine them beforehand, how should I do that?

This is a good question. For the purposes of the limma analysis, I think I 
would treat the technical reps as ordinary reps, i.e., treat the experiment 
has having 12 independent arrays. This will have the consequence that the 
standard errors from the analysis will be slightly under-estimated, i.e., 
the significance results will be slightly over-stated, but the ranking of 
your genes in terms of evidence for differential expression will be close 
to optimal.

>3. Is the following design matrix correct for my experiment?

Yes, although of course it represents only one possible parametrization. 
You might investigate the functions makeContrasts() and contrasts.fit() if 
you want to make comparisons from the experiment other than the main 
effects and the interaction term represented by the columns of the design 
matrix.

>  If I can treat
>the technical replicates as individual experiment, should I duplicate the
>each row of the design matrix to reflect the replicated data in the M
>matrix?

Yes.

>                 b       a       ba
>00 -> a0        0       1       0
>0b -> ab        0       1       1
>00 -> 0b        1       0       0
>a0 -> ab        1       0       1
>00 -> ab        1       1       1
>0b -> a0        -1      1       0
>
>4. Could someone give me some pointers on using heatdiagram to interpret my
>data? For example, if I am interested in the physiological effect of factor
>a, but the factor b is a potential confounding factor, what would the
>expression level of those genes only being regulated by factor a look like
>in the diagram? Besides, how can I interpret the interaction effect of a &
>b? Or is there other method to do these?

More good questions. The design matrix that you've written above 
corresponds to a classical interaction parametrization. Here the column 
'ab' corresponds to extra effect that 'a' has in the presence of 'b'. The 
effect of 'a' by itself (a0-00) is represented by the coefficient 'a' and 
the effect of 'a' in the presence of 'b' (ab-0b) is represented by the sum 
of the coefficients for 'a' and 'ba'. If 'b' is a confounding factor, then 
you probably want to have the effects for 'a' with and without 'b' in your 
heatdiagram. You could do this by

fit <- lm.series(MA, design)
contrast.matrix <- makeContrasts(a,a+ba,levels=design)
fit2 <- contrasts.fit(fit, contrast.matrix)
eb2 <- ebayes(fit2)
heatdiagram(stat=eb2$t,coef=fit2$coef)

This would show whether genes which respond to factor 'a' still respond to 
'a' in the presence of 'b', and whether in the same direction. Note that 
makeContrasts() is available only in the development version of limma.

I am in the process of changing the syntax of heatdiagram to work with 
classifyTests() and vennDiagram(). See heatDiagram().

Regards
Gordon

>Thanks in advance!
>
>Best regards,
>Fai
>________
>Yuk Fai Leung
>Bauer Center for Genomics Research
>Harvard University
>7 Divinity Avenue
>Cambridge, MA 02138
>Tel: 617-496-7134
>Fax: 617-495-2196
>email: yfleung at cgr.harvard.edu; yfleung at genomicshome.com
>URL: http://genomicshome.com



More information about the Bioconductor mailing list