##Creating a design file of 20 patients (10 in conditionA/10 in conditionB
# with 5 timepoints)
# In addition, we also create a dummy continous covariate that is partially confounded
# with condition. Condition B will have a higher mean for the covariate than condition A.
des<-data.frame(SampleID=paste("Sample",1:100,sep=""),
Condition=rep(c("A","B"),each=50),
Donor=rep(letters[1:20],each=5),
Time=rep(paste("D",0:4,sep=""),20))
##Create example data - a set of 500 genes normally dstributed across 20 patients
##with 5 timepoints
eset = matrix(rnorm(500*100),500,100, dimnames=list(1:500,1:100))
colnames(eset)= paste("Sample",1:100,sep="")
##create a number of gene sets with varying levels of differential expression between
##conditions and between timepoints
geneSets = list()
for(i in 0:10){
genes = ((30*i)+1):(30*(i+1))
eset[genes,des$Condition=="B"] = eset[genes,des$Condition=="B"] + rnorm(1)
eset[genes,des$Time=="D1"]=eset[genes,des$Time=="D1"]+rnorm(1)
geneSets[[paste("Set",i)]] = genes
}
##Adding additional subject specific variability to generate repeated measures correlations
for(i in 1:500){
eset[i,]<-eset[i,]+rep(rnorm(20,0,4),each=5)
}
##Running a linear mixed model to test for D1 vs D0 for Condition B, with a subject
## specific random effect
qs.result<-qgen(eset,des,geneSets=geneSets,
fixed= ~Condition+Time+Time*Condition,random=~1|Donor,
contrast.factor=~Condition*Time,contrast="BD1-BD0",
design.sampleid="SampleID")
plot(qs.result)
Run the code above in your browser using DataLab