diff maaslin-4450aa4ecc84/src/test-BoostGLM/test-BoostGLM.R @ 1:a87d5a5f2776

Uploaded the version running on the prod server
author george-weingart
date Sun, 08 Feb 2015 23:08:38 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/maaslin-4450aa4ecc84/src/test-BoostGLM/test-BoostGLM.R	Sun Feb 08 23:08:38 2015 -0500
@@ -0,0 +1,307 @@
+c_strDir <- file.path(getwd( ),"..")
+
+source(file.path(c_strDir,"lib","Constants.R"))
+source(file.path(c_strDir,"lib","Utility.R"))
+source(file.path(c_strDir,"lib","AnalysisModules.R"))
+
+# General setup
+covX1 = c(44.4, 45.9, 41.9, 53.3, 44.7, 44.1, 50.7, 45.2, 60.1)
+covX2 = c(144.4, 245.9, 141.9, 253.3, 144.7, 244.1, 150.7, 245.2, 160.1)
+covX3 = as.factor(c(1,2,3,1,2,3,1,2,3))
+covX4 = as.factor(c(1,1,1,1,2,2,2,2,2))
+covX5 = as.factor(c(1,2,1,2,1,2,1,2,1))
+covY = c(.26,  .31,  .25,  .50,  .36,  .40,  .52,  .28,  .38)
+frmeTmp = data.frame(Covariate1=covX1, Covariate2=covX2, Covariate3=covX3, Covariate4=covX4, Covariate5=covX5, adCur= covY)
+iTaxon = 6
+
+lsCov1 = list()
+lsCov1$name = "Covariate1"
+lsCov1$orig = "Covariate1"
+lsCov1$taxon = "adCur"
+lsCov1$data = covY
+lsCov1$factors = "Covariate1"
+lsCov1$metadata = covX1
+vdCoef = c()
+vdCoef["(Intercept)"]=round(0.0345077486,5)
+vdCoef["Covariate1"]= round(0.0052097355,5)
+vdCoef["Covariate2"]= round(0.0005806568,5)
+vdCoef["Covariate32"]=round(-0.1333421874,5)
+vdCoef["Covariate33"]=round(-0.1072006419,5)
+vdCoef["Covariate42"]=round(0.0849198280,5)
+lsCov1$value = c(Covariate1=round(0.005209736,5))
+lsCov1$std = round(0.0063781728,5)
+lsCov1$allCoefs = vdCoef
+lsCov2 = list()
+lsCov2$name = "Covariate2"
+lsCov2$orig = "Covariate2"
+lsCov2$taxon = "adCur"
+lsCov2$data = covY
+lsCov2$factors = "Covariate2"
+lsCov2$metadata = covX2
+lsCov2$value = c(Covariate2=round(0.0005806568,5))
+lsCov2$std = round(0.0006598436,5)
+lsCov2$allCoefs = vdCoef
+lsCov3 = list()
+lsCov3$name = "Covariate3"
+lsCov3$orig = "Covariate32"
+lsCov3$taxon = "adCur"
+lsCov3$data = covY
+lsCov3$factors = "Covariate3"
+lsCov3$metadata = covX3
+lsCov3$value = c(Covariate32=round(-0.1333422,5))
+lsCov3$std = round(0.0895657826,5)
+lsCov3$allCoefs = vdCoef
+lsCov4 = list()
+lsCov4$name = "Covariate3"
+lsCov4$orig = "Covariate33"
+lsCov4$taxon = "adCur"
+lsCov4$data = covY
+lsCov4$factors = "Covariate3"
+lsCov4$metadata = covX3
+lsCov4$value = c(Covariate33=round(-0.1072006,5))
+lsCov4$std = round(0.0792209541,5)
+lsCov4$allCoefs = vdCoef
+lsCov5 = list()
+lsCov5$name = "Covariate4"
+lsCov5$orig = "Covariate42"
+lsCov5$taxon = "adCur"
+lsCov5$data = covY
+lsCov5$factors = "Covariate4"
+lsCov5$metadata = covX4
+lsCov5$value = c(Covariate42=round(0.08491983,5))
+lsCov5$std = round(0.0701018621,5)
+lsCov5$allCoefs = vdCoef
+
+context("Test funcClean")
+
+context("Test funcBugHybrid")
+# multiple covariates, one call lm
+aiMetadata = c(1:5)
+aiData = c(iTaxon)
+dFreq = 0.5 / length( aiMetadata )
+dSig = 0.25
+dMinSamp = 0.1
+adP = c()
+lsSig = list()
+funcReg = NA
+funcAnalysis = funcLM
+funcGetResult = funcGetLMResults
+lsData = list(frmeData=frmeTmp, aiMetadata=aiMetadata, aiData=aiData, lsQCCounts=list())
+lsData$astrMetadata = names(frmeTmp)[aiMetadata]
+
+adPExpected = round(c(0.4738687,0.4436566,0.4665972,0.5378693,0.3124672),5)
+QCExpected = list(iLms=numeric(0))
+lsSigExpected = list()
+lsSigExpected[[1]] = lsCov1
+lsSigExpected[[2]] = lsCov2 
+lsSigExpected[[3]] = lsCov3
+lsSigExpected[[4]] = lsCov4
+lsSigExpected[[5]] = lsCov5
+expectedReturn = list(adP=adPExpected,lsSig=lsSigExpected,lsQCCounts=QCExpected)
+receivedReturn = funcBugHybrid(iTaxon=iTaxon,frmeData=frmeTmp,lsData=lsData,aiMetadata=aiMetadata,dFreq=dFreq,dSig=dSig,dMinSamp=dMinSamp,adP=adP,lsSig=lsSig, strLog=NA,funcReg=funcReg,lsNonPenalizedPredictors=NULL,funcAnalysis=funcAnalysis,lsRandomCovariates=NULL,funcGetResult=funcGetResult)
+receivedReturn$adP = round(receivedReturn$adP,5)
+
+vCoefs=receivedReturn$lsSig[[1]]$allCoefs
+vCoefs[1]=round(vCoefs[1],5)
+vCoefs[2]=round(vCoefs[2],5)
+vCoefs[3]=round(vCoefs[3],5)
+vCoefs[4]=round(vCoefs[4],5)
+vCoefs[5]=round(vCoefs[5],5)
+vCoefs[6]=round(vCoefs[6],5)
+receivedReturn$lsSig[[1]]$allCoefs=vCoefs
+receivedReturn$lsSig[[2]]$allCoefs=vCoefs
+receivedReturn$lsSig[[3]]$allCoefs=vCoefs
+receivedReturn$lsSig[[4]]$allCoefs=vCoefs
+receivedReturn$lsSig[[5]]$allCoefs=vCoefs
+vValue=c()
+vValue[receivedReturn$lsSig[[1]]$orig]=round(receivedReturn$lsSig[[1]]$value[[1]],5)
+receivedReturn$lsSig[[1]]$value=vValue
+vValue=c()
+vValue[receivedReturn$lsSig[[2]]$orig]=round(receivedReturn$lsSig[[2]]$value[[1]],5)
+receivedReturn$lsSig[[2]]$value=vValue
+vValue=c()
+vValue[receivedReturn$lsSig[[3]]$orig]=round(receivedReturn$lsSig[[3]]$value[[1]],5)
+receivedReturn$lsSig[[3]]$value=vValue
+vValue=c()
+vValue[receivedReturn$lsSig[[4]]$orig]=round(receivedReturn$lsSig[[4]]$value[[1]],5)
+receivedReturn$lsSig[[4]]$value=vValue
+vValue=c()
+vValue[receivedReturn$lsSig[[5]]$orig]=round(receivedReturn$lsSig[[5]]$value[[1]],5)
+receivedReturn$lsSig[[5]]$value=vValue
+receivedReturn$lsSig[[1]]$std=round(receivedReturn$lsSig[[1]]$std,5)
+receivedReturn$lsSig[[2]]$std=round(receivedReturn$lsSig[[2]]$std,5)
+receivedReturn$lsSig[[3]]$std=round(receivedReturn$lsSig[[3]]$std,5)
+receivedReturn$lsSig[[4]]$std=round(receivedReturn$lsSig[[4]]$std,5)
+receivedReturn$lsSig[[5]]$std=round(receivedReturn$lsSig[[5]]$std,5)
+test_that("funcBugHybrid works with the lm option with multiple covariates.",{expect_equal(receivedReturn,expectedReturn)})
+
+
+# single covariate, single call lm
+aiMetadata = c(1)
+dFreq = 0.5 / length( aiMetadata )
+lsData$astrMetadata = names(frmeTmp)[aiMetadata]
+adPExpected = round(c(0.1081731),5)
+QCExpected = list(iLms=numeric(0))
+lsSigExpected = list()
+lsSigExpected[[1]] = lsCov1
+lsSigExpected[[1]]$std=round(0.005278468,5)
+vdCoef = c()
+vdCoef["(Intercept)"]=round(-0.102410716,5)
+vdCoef["Covariate1"]= round(0.009718095,5)
+lsSigExpected[[1]]$allCoefs= vdCoef
+lsSigExpected[[1]]$value = c(Covariate1=round(0.009718095,5))
+
+expectedReturn = list(adP=adPExpected,lsSig=lsSigExpected,lsQCCounts=QCExpected)
+receivedReturn = funcBugHybrid(iTaxon=iTaxon,frmeData=frmeTmp,lsData=lsData,aiMetadata=aiMetadata,dFreq=dFreq,dSig=dSig,dMinSamp=dMinSamp,adP=adP,lsSig=lsSig, strLog=NA,funcReg=funcReg,lsNonPenalizedPredictors=NULL,funcAnalysis=funcAnalysis,lsRandomCovariates=NULL,funcGetResult=funcGetResult)
+receivedReturn$adP = round(receivedReturn$adP,5)
+
+vCoefs=receivedReturn$lsSig[[1]]$allCoefs
+vCoefs[1]=round(vCoefs[1],5)
+vCoefs[2]=round(vCoefs[2],5)
+receivedReturn$lsSig[[1]]$allCoefs=vCoefs
+vValue=c()
+vValue[receivedReturn$lsSig[[1]]$orig]=round(receivedReturn$lsSig[[1]]$value[[1]],5)
+receivedReturn$lsSig[[1]]$value=vValue
+receivedReturn$lsSig[[1]]$std=round(0.005278468,5)
+test_that("funcBugHybrid works with the lm option with 1 covariates.",{expect_equal(receivedReturn,expectedReturn)})
+
+
+# multiple covariate, single call univariate
+funcReg = NA
+funcAnalysis = funcDoUnivariate
+funcGetResult = NA
+aiMetadata = c(3,1,2)
+dFreq = 0.5 / length( aiMetadata )
+lsData$astrMetadata = names(frmeTmp)[aiMetadata]
+adPExpected = round(c(1.0,1.0,0.09679784,0.21252205),5)
+QCExpected = list(iLms=numeric(0))
+lsSigExpected = list()
+lsCov1 = list()
+lsCov1$name = "Covariate3"
+lsCov1$orig = "Covariate32"
+lsCov1$taxon = "adCur"
+lsCov1$data = covY
+lsCov1$factors = "Covariate3"
+lsCov1$metadata = frmeTmp[["Covariate3"]]
+vdCoef = c(Covariate32=NA)
+lsCov1$value = vdCoef
+lsCov1$std = sd(frmeTmp[["Covariate3"]])
+lsCov1$allCoefs = vdCoef
+lsCov2 = list()
+lsCov2$name = "Covariate3"
+lsCov2$orig = "Covariate33"
+lsCov2$taxon = "adCur"
+lsCov2$data = covY
+lsCov2$factors = "Covariate3"
+lsCov2$metadata = frmeTmp[["Covariate3"]]
+vdCoef = c(Covariate33=NA)
+lsCov2$value = vdCoef
+lsCov2$std = sd(frmeTmp[["Covariate3"]])
+lsCov2$allCoefs = vdCoef
+lsCov3 = list()
+lsCov3$name = "Covariate1"
+lsCov3$orig = "Covariate1"
+lsCov3$taxon = "adCur"
+lsCov3$data = covY
+lsCov3$factors = "Covariate1"
+lsCov3$metadata = frmeTmp[["Covariate1"]]
+vdCoef = c(Covariate1=0.6)
+lsCov3$value = vdCoef
+lsCov3$std = sd(frmeTmp[["Covariate1"]])
+lsCov3$allCoefs = vdCoef
+lsCov4 = list()
+lsCov4$name = "Covariate2"
+lsCov4$orig = "Covariate2"
+lsCov4$taxon = "adCur"
+lsCov4$data = covY
+lsCov4$factors = "Covariate2"
+lsCov4$metadata = frmeTmp[["Covariate2"]]
+vdCoef = c(Covariate2=0.46666667)
+lsCov4$value = vdCoef
+lsCov4$std = sd(frmeTmp[["Covariate2"]])
+lsCov4$allCoefs = vdCoef
+
+lsSigExpected = list()
+lsSigExpected[[1]] = lsCov1
+lsSigExpected[[2]] = lsCov2
+lsSigExpected[[3]] = lsCov3
+lsSigExpected[[4]] = lsCov4
+
+expectedReturn = list(adP=adPExpected,lsSig=lsSigExpected,lsQCCounts=QCExpected)
+receivedReturn = funcBugHybrid(iTaxon=iTaxon,frmeData=frmeTmp,lsData=lsData,aiMetadata=aiMetadata,dFreq=dFreq,dSig=dSig,dMinSamp=dMinSamp,adP=adP,lsSig=lsSig, strLog=NA,funcReg=funcReg,lsNonPenalizedPredictors=NULL,funcAnalysis=funcAnalysis,lsRandomCovariates=NULL,funcGetResult=funcGetResult)
+receivedReturn$adP = round(receivedReturn$adP,5)
+test_that("funcBugHybrid works with the univariate option with 3 covariates.",{expect_equal(receivedReturn,expectedReturn)})
+
+
+# single covariate, single call univariate
+funcReg = NA
+funcAnalysis = funcDoUnivariate
+funcGetResult = NA
+aiMetadata = c(1)
+dFreq = 0.5 / length( aiMetadata )
+lsData$astrMetadata = names(frmeTmp)[aiMetadata]
+adPExpected = round(c(0.09679784),5)
+QCExpected = list(iLms=numeric(0))
+lsSigExpected = list()
+lsSigExpected[[1]] = lsCov3
+
+expectedReturn = list(adP=adPExpected,lsSig=lsSigExpected,lsQCCounts=QCExpected)
+receivedReturn = funcBugHybrid(iTaxon=iTaxon,frmeData=frmeTmp,lsData=lsData,aiMetadata=aiMetadata,dFreq=dFreq,dSig=dSig,dMinSamp=dMinSamp,adP=adP,lsSig=lsSig, strLog=NA,funcReg=funcReg,lsNonPenalizedPredictors=NULL,funcAnalysis=funcAnalysis,lsRandomCovariates=NULL,funcGetResult=funcGetResult)
+receivedReturn$adP = round(receivedReturn$adP,5)
+test_that("funcBugHybrid works with the univariate option with 1 covariates.",{expect_equal(receivedReturn,expectedReturn)})
+
+
+context("Test funcBugs")
+#One LM run
+frmeData=frmeTmp
+aiMetadata=c(1)
+aiData=c(iTaxon)
+strData=NA
+dFreq= 0.5 / length( aiMetadata )
+dSig=0.25
+dMinSamp=0.1
+strDirOut=NA
+funcReg=NA
+lsNonPenalizedPredictors=NULL
+lsRandomCovariates=NULL
+funcAnalysis=funcLM
+funcGetResults=funcGetLMResults
+fDoRPlot=FALSE
+lsData = list(frmeData=frmeData, aiMetadata=aiMetadata, aiData=aiData, lsQCCounts=list())
+lsData$astrMetadata = names(frmeTmp)[aiMetadata]
+QCExpected = list(iLms=numeric(0))
+
+expectedReturn = list(aiReturnBugs=aiData,lsQCCounts=QCExpected)
+receivedReturn = funcBugs(frmeData=frmeData, lsData=lsData, aiMetadata=aiMetadata, aiData=aiData, strData=strData, dFreq=dFreq, dSig=dSig, dMinSamp=dMinSamp,strDirOut=strDirOut, funcReg=funcReg,lsNonPenalizedPredictors=lsNonPenalizedPredictors,funcAnalysis=funcAnalysis,lsRandomCovariates=lsRandomCovariates,funcGetResults=funcGetResults,fDoRPlot=fDoRPlot)
+
+test_that("funcBugs works with the lm option with 1 covariate.",{expect_equal(receivedReturn,expectedReturn)})
+
+#multiple LM run
+frmeData=frmeTmp
+aiMetadata=c(1:5)
+aiData=c(iTaxon)
+strData=NA
+dFreq= 0.5 / length( aiMetadata )
+dSig=0.25
+dMinSamp=0.1
+strDirOut=NA
+funcReg=NA
+lsNonPenalizedPredictors=NULL
+lsRandomCovariates=NULL
+funcAnalysis=funcLM
+funcGetResults=funcGetLMResults
+fDoRPlot=FALSE
+lsData = list(frmeData=frmeData, aiMetadata=aiMetadata, aiData=aiData, lsQCCounts=list())
+lsData$astrMetadata = names(frmeTmp)[aiMetadata]
+QCExpected = list(iLms=numeric(0))
+
+expectedReturn = list(aiReturnBugs=aiData,lsQCCounts=QCExpected)
+receivedReturn = funcBugs(frmeData=frmeData, lsData=lsData, aiMetadata=aiMetadata, aiData=aiData, strData=strData, dFreq=dFreq, dSig=dSig, dMinSamp=dMinSamp,strDirOut=strDirOut, funcReg=funcReg,lsNonPenalizedPredictors=lsNonPenalizedPredictors,funcAnalysis=funcAnalysis,lsRandomCovariates=lsRandomCovariates,funcGetResults=funcGetResults,fDoRPlot=fDoRPlot)
+
+print("START START")
+print(expectedReturn)
+print("RECEIVED")
+print(receivedReturn)
+print("STOP STOP")
+
+test_that("funcBugs works with the lm option with multiple covariates.",{expect_equal(receivedReturn,expectedReturn)})
\ No newline at end of file