[BioC] Complex Limma design: technical replication, biological replication and repeated experiment

Gordon K Smyth smyth at wehi.EDU.AU
Wed Aug 28 01:24:54 CEST 2013


Dear Jana,

Unless there is a strong batch effect between the two replicates of the 
entire experiment, there is no need to account for this level explicitly.

So you can use duplicateCorrelation() and the blocking argument to handle 
the technical replicates.

If there is a marked batch effect between the replicates (because the 
replicates were conducted at different times perhaps), then you could 
consider adding replicate as a additive effect to the design matrix. 
This would have the effect of correcting for batch.  You would still use 
duplicateCorrelation() for the technical replicates.  If you want to do 
this, post again and I will advise you how to contruct the design matrix.

BTW, I recommend including an effect for probe-specific dye effects in the 
design matrix.  See page 57 of the limma User's Guide (section on dye 
swaps).

Best wishes
Gordon

> Date: Mon, 26 Aug 2013 04:43:20 -0700 (PDT)
> From: "Jana [guest]" <guest at bioconductor.org>
> To: bioconductor at r-project.org, jana.asselman at ugent.be
> Subject: [BioC] Complex Limma design: technical replication,
> 	biological replication and repeated experiment
> Message-ID: <20130826114320.7C973132324 at mamba.fhcrc.org>
>
>
> Dear limma-users,
>
> I'm currently trying to create the correct design matrix for a limma analysis of my NimbleGen two-color microarray data.
> Basically, I have a control treatment (Ctr) and 5 Cy treatments (Cy). For each comparison Cy-Ctr, I have 2 biological replicates per treatment that are dye swapped on the array. These biological reps are also in duplicate (so each sample is on two arrays). For each comparison, I have also repeated the exposure experiment twice (i.e. the actual experiment was replicated, not the array, so new biological samples). So I actually have three "levels of replication":
> 1. technical replicates
> 2. biological replicates within a single experiment
> 3. replication of the entire experiment.
> I want to compare
> all my controls to each individual Cy treatment without the need to know differences between replicates. (i.e.I want to know the genes that are differentially expressed in all my samples of Cy treatment 1 for example versus all controls).
>
> I am now struggling how to make the correct design matrix with these levels of replication as I have several blocking factors. This is how my targets file looks like right now:
> SlideNumber	SampleCy3	SampleCy5	Cy3	Cy5	TechnicalReps	BiolocialReps
> 1	1.1	1.3	Ctr	Cy1	1	1
> 2	1.1	1.3	Ctr	Cy1	1	1
> 3	1.4	1.2	Cy1	Ctr	2	-1
> 4	1.4	1.2	Cy1	Ctr	2	-1
> 5	2.1	2.3	Ctr	Cy1	3	2
> 6	2.1	2.3	Ctr	Cy1	3	2
> 7	2.4	2.2	Cy1	Ctr	4	-2
> 10	2.4	2.2	Cy1	Ctr	4	-2
> 11	3.1	3.3	Ctr	Cy2	5	3
> 12	3.1	3.3	Ctr	Cy2	5	3
> 13	3.4	3.2	Cy2	Ctr	6	-3
> 14	3.4	3.2	Cy2	Ctr	6	-3
> 15	4.1	4.3	Ctr	Cy2	7	4
> 16	4.1	4.3	Ctr	Cy2	7	4
> 17	4.4	4.2	Cy2	Ctr	8	-4
> 18	4.4	4.2	Cy2	Ctr	8	-4
> 19	5.1	5.3	Ctr	Cy3	9	5
> 20	5.1	5.3	Ctr	Cy3	9	5
> 21	5.4	5.2	Cy3	Ctr	10	-5
> 22	5.4	5.2	Cy3	Ctr	10	-5
> 23	6.1	6.3	Ctr	Cy3	11	6
> 24	6.1	6.3	Ctr	Cy3	11	6
> 25	6.4	6.2	Cy3	Ctr	12	-6
> 26	6.4	6.2	Cy3	Ctr	12	-6
> 27	7.1	7.3	Ctr	Cy4	13	7
> 28	7.1	7.3	Ctr	Cy4	13	7
> 29	7.4	7.2	Cy4	Ctr	14	-7
> 30	7.4	7.2	Cy4	Ctr	14	-7
> 31	8.1	8.3	Ctr	Cy4	15	8
> 32	8.1	8.3	Ctr	Cy4	15	8
> 33	8.4	8.2	Cy4	Ctr	16	-8
> 34	8.4	8.2	Cy4	Ctr	16	-8
> 35	9.1	9.3	Ctr	Cy5	17	9
> 36	9.1	9.3	Ctr	Cy5	17	9
> 37	9.4	9.2	Cy5	Ctr	18	-9
> 38	9.4	9.2	Cy5	Ctr	18	-9
> 39	10.1	10.3	Ctr	Cy5	19	10
> 40	10.1	10.3	Ctr	Cy5	19	10
> 41	10.4	10.2	Cy5	Ctr	20	-10
> 42	10.4	10.2	Cy5	Ctr	20	-10
>
>
> What would be the correct formula in limma to analysis this experiment?
> right now i'm just doing
> design <- modelMatrix(targets,ref="Ctr")
> fit <- lmFit(MAprobes.n,design)
> cont.matrix<-makeContrasts(Cy_1=Cy1,
>                           Cy_2=Cy2,
>                           Cy_3=Cy3,
>                           Cy_4=Cy4,
>                           Cy_5=Cy5,
>                           Cy_6=Cy6,levels=design)
> c.fit<-contrasts.fit(fit, contrasts=cont.matrix)
>
> but this does not take the technical replication into account nor the 
> fact that the biological replicates are not on the "same level" (same 
> experiment vs replicated experiment). I know the use of blocking factor 
> and how to estimate correlation, but I really don't know how to 
> integrate these three levels all together.
>
> Thanks for the help.
>
> -- output of sessionInfo():
>
> no output

______________________________________________________________________
The information in this email is confidential and intend...{{dropped:4}}



More information about the Bioconductor mailing list