###Run mixture model analyses
#Create sample data
set.seed(123)
yvar<-rlnorm(200)
these<-sample(1:100,20)
yvar[these]<-NA
logyvar<-log(yvar)
y2var<-rlnorm(200)
those<-sample(1:200,25)
y2var[those]<-NA
logy2var<-log(y2var)
pred1<-sample(0:1,200,replace=TRUE)
pred2<-sample(1:10,200,replace=TRUE)
pred3<-sample(0:1,200,replace=TRUE)
pred3miss<-sample(1:200,50)
pred3[pred3miss]<-NA
testdata<-data.frame(cbind(yvar,y2var,logyvar,logy2var,pred1,pred2,pred3))
#Get the names of the response variables
ynames<-names(testdata)[3:4]
#Run a full mixture model on each response variable
fullMod<-~pred1+pred2+pred3|pred1+pred2+pred3
fullModRes<-mxtrmod(ynames=ynames,mxtrModel=fullMod,data=testdata)
fullModRes
#Run a reduced mixture model on each response variable
redMod<-~pred2|pred2
redModRes<-mxtrmod(ynames=ynames,mxtrModel=redMod,data=testdata,fullModel=fullMod)
redModRes
#Compare models using likelihood ratio test
mxtrmodLRT(fullModRes,redModRes)
###Perform mixture model normalization
#load control data set
data(euMetabCData)
#load experimental data
data(euMetabData)
#specify target metabolites
ynames <- c("betahydroxybutyrate","pyruvic_acid","malonic_acid","aspartic_acid")
#run mixture model normalization
euMetabNorm <- mixnorm(ynames,
batch="batch",
mxtrModel=~pheno+batch|pheno+batch,
batchTvals=c(10.76,11.51,11.36,10.31,11.90),
cData=euMetabCData,
data=euMetabData)
Run the code above in your browser using DataLab