[BioC] nested design in limma? -- revisit
Gordon Smyth
smyth at wehi.EDU.AU
Thu Jan 18 01:57:32 CET 2007
Dear Tao,
Your experiment is much simpler than Jenny's was. There are lots of
ways to analyse it, but a straightforward and usually pretty
effective way in limma is (i) to average over the duplicate probes
using avedups() and then (ii) treat the animals (biological
replicates) as blocks using duplicateCorrelation(). To use this
approach you will need to renumber the animals from 1 to 6.
Just as an aside, in all the experiments I've seen so far, the
biological variation between animals is much smaller than the
technical variation between microarrays for most probes.
Best wishes
Gordon
At 11:24 AM 18/01/2007, Shi, Tao wrote:
>Dear Jenny, Gordon, and the list,
>
>
>This is a follow-up on the thread about handling nested design using
>LIMMA posted last year (please see
>https://stat.ethz.ch/pipermail/bioconductor/2006-February/012018.html
>).
>
>I have a data set which has very similar design like Jenny's. 6
>animals, 3 in the control group and 3 in the treated group. 2
>biological samples were taken from each animal and each was hybdized
>to 2 arrays. All arrays have duplicate sets of probes (so there are
>4 technical replicates for each biological samples).
>
>After reading the posts by Jenny, Gordon and others, I'm a bit
>confused with what should be the final approach for this kind of
>design. I do agree with Jenny that the different biological samples
>from the same animal (or in her case, different offsprings from the
>same dam) should not be treated as technical replicates, so I'm not
>quite sure about using duplicateCorrelation here. What I did is
>first, summarized all the technical replicates (they are usually
>highly correlated) to get one measurement for each biological
>samples, then fitted LIMMA with a nested design model matrix (see below).
>
>Is this OK and like to hear more comments. Thanks in advance.
>
>...Tao
>
>
>### after summarization of the technical replicates
> > trt
> [1] control control control control control control
> treat treat treat treat treat treat
>Levels: control treat
> > animal
> [1] 1 1 2 2 3 3 1 1 2 2 3 3
>Levels: 1 2 3
> >
> > design.matrix <- model.matrix( ~ -1 +trt/animal)
> > design.matrix
> trtcontrol trttreat trtcontrol:animal2 trttreat:animal2
> trtcontrol:animal3 trttreat:animal3
>1 1 0 0 0
> 0 0
>2 1 0 0 0
> 0 0
>3 1 0 1 0
> 0 0
>4 1 0 1 0
> 0 0
>5 1 0 0 0
> 1 0
>6 1 0 0 0
> 1 0
>7 0 1 0 0
> 0 0
>8 0 1 0 0
> 0 0
>9 0 1 0 1
> 0 0
>10 0 1 0 1
> 0 0
>11 0 1 0 0
> 0 1
>12 0 1 0 0
> 0 1
>attr(,"assign")
>[1] 1 1 2 2 2 2
>attr(,"contrasts")
>attr(,"contrasts")$trt
>[1] "contr.treatment"
>
>attr(,"contrasts")$animal
>[1] "contr.treatment"
>
> >
> > fit <- lmFit(dat.temp, design=design.matrix)
>....
>contrast,
>ebayes,
>toptable,
>.....
More information about the Bioconductor
mailing list