[BioC] suggestion about a split-plot factorial design with limma
Naomi Altman
naomi at stat.psu.edu
Mon Mar 26 16:53:28 CEST 2007
Dear Valeria,
You should always at least cc emails like this to the Bioconductor list.
I do not have time to go through your code in detail.
I agree that you have a split plot design. My understanding of limma
is that it handles 1 random effect. In the split plot design you
describe, you should test disease status against subject(disease) and
growth and disease x growth against the error, so that actually you
have 2 random effects.
All of the contrasts you are doing are for individual treatments and
so will be tested against the "pure error". So, I think that you
should be able to do this. However, you will need to add "subject"
to the design matrix for the 3 healthy subjects.
--Naomi
At 08:23 AM 3/26/2007, you wrote:
>Dear Dr. Altman
>I saw you are a very active member of the Biocond mailinglist,
>especially for questions on the use of limma for any kind of
>experimental designs.
>I apologize I'm writing to you directly but I posted a question two
>months ago and I didn't receive any feedback from the list.
> From an extensive analysis of all the previous emails, I realized
>you could be the right person for my question and that's why I'm
>writing to you.
>If you could help me out of this, it would really be great!
>I'm analyzing an experiment using 10 Affymetrix chips.
>I have 5 subjects: 3 of them are different healthy persons, 2 have
>two different illnesses, TTD or CS.
>Each subject is considered twice, at different levels of growth, P or
>D, of his cells.
>Pairs are A and G, B and H and so on:
>
> >targets
>
> GROWTHLEVEL ILLNESS
>A P H
>B P H
>C P H
>D P TTD
>F P CS
>G D H
>H D H
>I D H
>L D TTD
>N D CS
>
>I adopted a factorial design with a blocking variable, blocco, for
>identifying the five subjects.
>The code is the following:
>
>SS<-paste(targets$GROWTHLEVEL, targets$ILLNESS, sep=".")
>SS<-factor(SS, levels=c("P.H","P.TTD","P.CS","D.H","D.TTD","D.CS"))
>design.ch<-model.matrix(~0+SS)
>colnames(design.ch)<-levels(SS)
>rownames(design.ch)<-rownames(targets)
>blocco<-c(1,2,3,4,5,1,2,3,4,5)
>corfit<-duplicateCorrelation(MA, design=design.ch,block=blocco)
>fit<-lmFit(MA, design.ch, block=blocco, cor=corfit$consensus)
>
>The biologists I'm working with are interested in the following
>contrasts:
>
>contrast.matrix<-makeContrasts(H.PvsD=P.H-D.H, TTD.PvsD=P.TTD-D.TTD,
>CS.PvsD=P.CS-D.CS, P.TTDvsH=P.TTD-P.H, P.CSvsH=P.CS-P.H,
>D.TTDvsH=D.TTD-D.H, D.CSvsH=D.CS-D.H,levels=design.ch)
>
>fit2<-contrasts.fit(fit, contrast.matrix)
>fit3<-eBayes(fit2)
>
>Could a two treatment split-plot factorial design be slightly better
>for my case?
>I see a whole plot variable completely counfounded with factor
>"illness":
>level 1: Healthy
>level2: TTD
>level3: CS
>Is it a good idea?
>
>Is there a way to perform such an analysis with limma?
>If not, can I still stick to my current solution?
>I know I can use lme() or aov(), but I should modify them to moderate
>the random effects across genes.
>
>Thank you very much for your help.
>Best wishes
>Valeria
Naomi S. Altman 814-865-3791 (voice)
Associate Professor
Dept. of Statistics 814-863-7114 (fax)
Penn State University 814-865-1348 (Statistics)
University Park, PA 16802-2111
More information about the Bioconductor
mailing list