Mercurial > repos > george-weingart > maaslin
view maaslin-4450aa4ecc84/maaslin-4450aa4ecc84/src/test-AnalysisModules/test-AnalysisModules.R @ 6:ca61989bc3b4
Uploaded
author | george-weingart |
---|---|
date | Sun, 08 Feb 2015 23:39:43 -0500 |
parents | |
children |
line wrap: on
line source
c_strDir <- file.path(getwd( ),"..") source(file.path(c_strDir,"lib","Constants.R")) source(file.path(c_strDir,"lib","Utility.R")) #Test Utilities context("Test funcGetLMResults") context("Test funcGetStepPredictors") context("Test funcMakeContrasts") 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 #Add in updating QC errors #Add in random covariates strFormula = "adCur ~ Covariate1" strRandomFormula = NULL lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate1" lsSig[[1]]$orig = "Covariate1" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = covY lsSig[[1]]$factors = "Covariate1" lsSig[[1]]$metadata = covX1 vdCoef = c(Covariate1=0.6) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(covX1) lsSig[[1]]$allCoefs = vdCoef ret1 = funcMakeContrasts(strFormula=strFormula, strRandomFormula=strRandomFormula, frmeTmp=frmeTmp, iTaxon=iTaxon, functionContrast=function(x,adCur,dfData) { retList = list() ret = cor.test(as.formula(paste("~",x,"+ adCur")), data=dfData, method="spearman", na.action=c_strNA_Action) #Returning rho for the coef in a named vector vdCoef = c() vdCoef[[x]]=ret$estimate retList[[1]]=list(p.value=ret$p.value,SD=sd(dfData[[x]]),name=x,coef=vdCoef) return(retList) }, lsQCCounts=list()) ret1$adP = round(ret1$adP,5) test_that("1. Test that the funcMakeContrasts works on a continuous variable.",{ expect_equal(ret1,list(adP=round(c(0.09679784),5),lsSig=lsSig,lsQCCounts=list()))}) strFormula = "adCur ~ Covariate1 + Covariate2" strRandomFormula = NULL lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate1" lsSig[[1]]$orig = "Covariate1" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = covY lsSig[[1]]$factors = "Covariate1" lsSig[[1]]$metadata = covX1 vdCoef = c(Covariate1=0.6) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(covX1) lsSig[[1]]$allCoefs = vdCoef lsSig[[2]] = list() lsSig[[2]]$name = "Covariate2" lsSig[[2]]$orig = "Covariate2" lsSig[[2]]$taxon = "adCur" lsSig[[2]]$data = covY lsSig[[2]]$factors = "Covariate2" lsSig[[2]]$metadata = covX2 vdCoef = c(Covariate2=0.46666667) lsSig[[2]]$value = vdCoef lsSig[[2]]$std = sd(covX2) lsSig[[2]]$allCoefs = vdCoef ret1 = funcMakeContrasts(strFormula=strFormula, strRandomFormula=strRandomFormula, frmeTmp=frmeTmp, iTaxon=iTaxon, functionContrast=function(x,adCur,dfData) { retList = list() ret = cor.test(as.formula(paste("~",x,"+ adCur")), data=dfData, method="spearman", na.action=c_strNA_Action) #Returning rho for the coef in a named vector vdCoef = c() vdCoef[[x]]=ret$estimate retList[[1]]=list(p.value=ret$p.value,SD=sd(dfData[[x]]),name=x,coef=vdCoef) return(retList) }, lsQCCounts=list()) ret1$adP = round(ret1$adP,5) test_that("Test that the funcMakeContrasts works on 2 continuous variables.",{ expect_equal(ret1,list(adP=round(c(0.09679784,0.21252205),5),lsSig=lsSig,lsQCCounts=list()))}) strFormula = "adCur ~ Covariate4" strRandomFormula = NULL lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate4" lsSig[[1]]$orig = "Covariate42" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = covY lsSig[[1]]$factors = "Covariate4" lsSig[[1]]$metadata = covX4 #update vdCoef = c(Covariate42=NA) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(covX4) #update lsSig[[1]]$allCoefs = vdCoef # Get return rets = funcMakeContrasts(strFormula=strFormula, strRandomFormula=strRandomFormula, frmeTmp=frmeTmp, iTaxon=iTaxon, functionContrast=function(x,adCur,dfData) { retList = list() lmodKW = kruskal(adCur,dfData[[x]],group=FALSE,p.adj="holm") asLevels = levels(dfData[[x]]) # The names of the generated comparisons, sometimes the control is first sometimes it is not so # We will just check which is in the names and use that asComparisons = row.names(lmodKW$comparisons) #Get the comparison with the control for(sLevel in asLevels[2:length(asLevels)]) { sComparison = intersect(c(paste(asLevels[1],sLevel,sep=" - "),paste(sLevel,asLevels[1],sep=" - ")),asComparisons) #Returning NA for the coef in a named vector vdCoef = c() vdCoef[[paste(x,sLevel,sep="")]]=NA retList[[length(retList)+1]]=list(p.value=lmodKW$comparisons[sComparison,"p.value"],SD=NA,name=paste(x,sLevel,sep=""),coef=vdCoef) } return(retList) }, lsQCCounts=list()) rets$adP=round(rets$adP,digits=5) test_that("Test that the funcMakeContrasts works on 1 factor covariate with 2 levels.",{ expect_equal(rets,list(adP=round(c(0.24434),5),lsSig=lsSig,lsQCCounts=list()))}) strFormula = "adCur ~ Covariate3" strRandomFormula = NULL lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate3" lsSig[[1]]$orig = "Covariate32" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = covY lsSig[[1]]$factors = "Covariate3" lsSig[[1]]$metadata = covX3 #update vdCoef = c(Covariate32=NA) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(covX3) #update lsSig[[1]]$allCoefs = vdCoef lsSig[[2]] = list() lsSig[[2]]$name = "Covariate3" lsSig[[2]]$orig = "Covariate33" lsSig[[2]]$taxon = "adCur" lsSig[[2]]$data = covY lsSig[[2]]$factors = "Covariate3" lsSig[[2]]$metadata = covX3 #update vdCoef = c(Covariate33=NA) lsSig[[2]]$value = vdCoef lsSig[[2]]$std = sd(covX3) #update lsSig[[2]]$allCoefs = vdCoef ret1 = funcMakeContrasts(strFormula=strFormula, strRandomFormula=strRandomFormula, frmeTmp=frmeTmp, iTaxon=iTaxon, functionContrast=function(x,adCur,dfData) { retList = list() lmodKW = kruskal(adCur,dfData[[x]],group=FALSE,p.adj="holm") asLevels = levels(dfData[[x]]) # The names of the generated comparisons, sometimes the control is first sometimes it is not so # We will just check which is in the names and use that asComparisons = row.names(lmodKW$comparisons) #Get the comparison with the control for(sLevel in asLevels[2:length(asLevels)]) { sComparison = intersect(c(paste(asLevels[1],sLevel,sep=" - "),paste(sLevel,asLevels[1],sep=" - ")),asComparisons) #Returning NA for the coef in a named vector vdCoef = c() vdCoef[[paste(x,sLevel,sep="")]]=NA retList[[length(retList)+1]]=list(p.value=lmodKW$comparisons[sComparison,"p.value"],SD=NA,name=paste(x,sLevel,sep=""),coef=vdCoef) } return(retList) }, lsQCCounts=list()) ret1$adP = round(ret1$adP,5) test_that("Test that the funcMakeContrasts works on 1 factor covariate with 3 levels.",{ expect_equal(ret1,list(adP=c(1.0,1.0),lsSig=lsSig,lsQCCounts=list()))}) strFormula = "adCur ~ Covariate4 + Covariate5" strRandomFormula = NULL lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate4" lsSig[[1]]$orig = "Covariate42" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = covY lsSig[[1]]$factors = "Covariate4" lsSig[[1]]$metadata = covX4 #update vdCoef = c(Covariate42=NA) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(covX4) #update lsSig[[1]]$allCoefs = vdCoef lsSig[[2]] = list() lsSig[[2]]$name = "Covariate5" lsSig[[2]]$orig = "Covariate52" lsSig[[2]]$taxon = "adCur" lsSig[[2]]$data = covY lsSig[[2]]$factors = "Covariate5" lsSig[[2]]$metadata = covX5 #update vdCoef = c(Covariate52=NA) lsSig[[2]]$value = vdCoef lsSig[[2]]$std = sd(covX5) #update lsSig[[2]]$allCoefs = vdCoef ret1 = funcMakeContrasts(strFormula=strFormula, strRandomFormula=strRandomFormula, frmeTmp=frmeTmp, iTaxon=iTaxon, functionContrast=function(x,adCur,dfData) { retList = list() lmodKW = kruskal(adCur,dfData[[x]],group=FALSE,p.adj="holm") asLevels = levels(dfData[[x]]) # The names of the generated comparisons, sometimes the control is first sometimes it is not so # We will just check which is in the names and use that asComparisons = row.names(lmodKW$comparisons) #Get the comparison with the control for(sLevel in asLevels[2:length(asLevels)]) { sComparison = intersect(c(paste(asLevels[1],sLevel,sep=" - "),paste(sLevel,asLevels[1],sep=" - ")),asComparisons) #Returning NA for the coef in a named vector vdCoef = c() vdCoef[[paste(x,sLevel,sep="")]]=NA retList[[length(retList)+1]]=list(p.value=lmodKW$comparisons[sComparison,"p.value"],SD=NA,name=paste(x,sLevel,sep=""),coef=vdCoef) } return(retList) }, lsQCCounts=list()) ret1$adP = round(ret1$adP,5) test_that("1. Test that the funcMakeContrasts works on 2 factor covariate with 2 levels.",{ expect_equal(ret1,list(adP=round(c(0.24434,0.655852),5),lsSig=lsSig,lsQCCounts=list()))}) #Test Model selection context("Test funcBoostModel") context("Test funcForwardModel") context("Test funcBackwardsModel") #Test Univariates context("Test funcSpearman") strFormula = "adCur ~ Covariate1" adCur = c(.26, .31, .25, .50, .36, .40, .52, .28, .38) x = c(44.4, 45.9, 41.9, 53.3, 44.7, 44.1, 50.7, 45.2, 60.1) frmeTmp = data.frame(Covariate1=x, adCur=adCur) iTaxon = 2 lsQCCounts = list() lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate1" lsSig[[1]]$orig = "Covariate1" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = adCur lsSig[[1]]$factors = "Covariate1" lsSig[[1]]$metadata = x vdCoef = c(Covariate1=0.6) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(x) lsSig[[1]]$allCoefs = vdCoef ret1 = funcSpearman(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsQCCounts=lsQCCounts,strRandomFormula=NULL) ret1$adP = round(ret1$adP,5) test_that("Test that the spearman test has the correct results for 1 covariate.",{ expect_equal(ret1,list(adP=round(c(0.09679784),5),lsSig=lsSig,lsQCCounts=list())) }) strFormula = "adCur ~ Covariate1 + Covariate2" frmeTmp = data.frame(Covariate1=x, Covariate2=x, adCur=adCur) iTaxon = 3 lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate1" lsSig[[1]]$orig = "Covariate1" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = adCur lsSig[[1]]$factors = "Covariate1" lsSig[[1]]$metadata = x vdCoef = c(Covariate1=0.6) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(x) lsSig[[1]]$allCoefs = vdCoef lsSig[[2]] = list() lsSig[[2]]$name = "Covariate2" lsSig[[2]]$orig = "Covariate2" lsSig[[2]]$taxon = "adCur" lsSig[[2]]$data = adCur lsSig[[2]]$factors = "Covariate2" lsSig[[2]]$metadata = x vdCoef = c(Covariate2=0.6) lsSig[[2]]$value = vdCoef lsSig[[2]]$std = sd(x) lsSig[[2]]$allCoefs = vdCoef lsQCCounts = list() ret1 = funcSpearman(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsQCCounts=lsQCCounts,strRandomFormula=NULL) ret1$adP = round(ret1$adP,5) test_that("Test that the spearman test has the correct results for 2 covariates.",{ expect_equal(ret1,list(adP=round(c(0.09679784,0.09679784),5),lsSig=lsSig,lsQCCounts=list())) }) context("Test funcWilcoxon") strFormula = "adCur ~ Covariate1" x = c(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE) frmeTmp = data.frame(Covariate1=x, adCur=adCur) iTaxon = 2 lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate1" lsSig[[1]]$orig = "Covariate1" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = adCur lsSig[[1]]$factors = "Covariate1" lsSig[[1]]$metadata = x vdCoef = c(Covariate1=13) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(x) lsSig[[1]]$allCoefs = vdCoef lsQCCounts = list() ret1 = funcWilcoxon(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsQCCounts=lsQCCounts,strRandomFormula=NULL) ret1$adP = round(ret1$adP,5) test_that("Test that the wilcoxon test has the correct results for 1 covariate.",{ expect_equal(ret1,list(adP=round(c(0.55555556),5),lsSig=lsSig,lsQCCounts=list())) }) context("Test funcKruskalWallis") strFormula = "adCur ~ Covariate1" x = as.factor(c("one","two","three","one","one","three","two","three","two")) frmeTmp = data.frame(Covariate1=x, adCur=adCur) iTaxon = 2 lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate1" lsSig[[1]]$orig = "Covariate1three" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = adCur lsSig[[1]]$factors = "Covariate1" lsSig[[1]]$metadata = x vdCoef = c(Covariate1three=NA) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(x) lsSig[[1]]$allCoefs = vdCoef lsSig[[2]] = list() lsSig[[2]]$name = "Covariate1" lsSig[[2]]$orig = "Covariate1two" lsSig[[2]]$taxon = "adCur" lsSig[[2]]$data = adCur lsSig[[2]]$factors = "Covariate1" lsSig[[2]]$metadata = x vdCoef = c(Covariate1two=NA) lsSig[[2]]$value = vdCoef lsSig[[2]]$std = sd(x) lsSig[[2]]$allCoefs = vdCoef lsQCCounts = list() ret1 = funcKruskalWallis(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsQCCounts=lsQCCounts,strRandomFormula=NULL) ret1$adP = round(ret1$adP,5) test_that("Test that the Kruskal Wallis (Nonparameteric anova) has the correct results for 1 covariate.",{ expect_equal(ret1,list(adP=c(1.0,1.0),lsSig=lsSig,lsQCCounts=list())) }) context("test funcDoUnivariate") 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)) covX6 = as.factor(c("one","two","three","one","one","three","two","three","two")) covY = c(.26, .31, .25, .50, .36, .40, .52, .28, .38) frmeTmp = data.frame(Covariate1=covX1, Covariate2=covX2, Covariate3=covX3, Covariate4=covX4, Covariate5=covX5, Covariate6=covX6, adCur= covY) iTaxon = 7 # 1 cont answer lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate1" lsSig[[1]]$orig = "Covariate1" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = adCur lsSig[[1]]$factors = "Covariate1" lsSig[[1]]$metadata = frmeTmp[["Covariate1"]] vdCoef = c(Covariate1=0.6) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(frmeTmp[["Covariate1"]]) lsSig[[1]]$allCoefs = vdCoef lsHistory = list(adP=c(), lsSig=c(),lsQCCounts=list()) ret1 = funcDoUnivariate(strFormula="adCur ~ Covariate1",frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula=NULL) ret2 = funcDoUnivariate(strFormula=NULL,frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula="adCur ~ 1|Covariate1") ret1$adP = round(ret1$adP,5) ret2$adP = round(ret2$adP,5) print("ret1") print(ret1) print("list(adP=round(c(0.09679784),5),lsSig=lsSig,lsQCCounts=list())") print(list(adP=round(c(0.09679784),5),lsSig=lsSig,lsQCCounts=list())) test_that("2. Test that the funcMakeContrasts works on a continuous variable.",{ expect_equal(ret1,list(adP=round(c(0.09679784),5),lsSig=lsSig,lsQCCounts=list())) expect_equal(ret2,list(adP=round(c(0.09679784),5),lsSig=lsSig,lsQCCounts=list())) }) lsSig[[2]] = list() lsSig[[2]]$name = "Covariate2" lsSig[[2]]$orig = "Covariate2" lsSig[[2]]$taxon = "adCur" lsSig[[2]]$data = adCur lsSig[[2]]$factors = "Covariate2" lsSig[[2]]$metadata = frmeTmp[["Covariate2"]] vdCoef = c(Covariate2=0.46666667) lsSig[[2]]$value = vdCoef lsSig[[2]]$std = sd(frmeTmp[["Covariate2"]]) lsSig[[2]]$allCoefs = vdCoef ret1 = funcDoUnivariate(strFormula="adCur ~ Covariate1 + Covariate2",frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory,strRandomFormula=NULL) ret2 = funcDoUnivariate(strFormula=NULL,frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula="adCur ~ 1|Covariate1 + 1|Covariate2") ret1$adP = round(ret1$adP,5) ret2$adP = round(ret2$adP,5) test_that("Test that the funcMakeContrasts works on 2 continuous variables.",{ expect_equal(ret1,list(adP=round(c(0.09679784,0.21252205),5),lsSig=lsSig,lsQCCounts=list())) expect_equal(ret2,list(adP=round(c(0.09679784,0.21252205),5),lsSig=lsSig,lsQCCounts=list())) }) lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate4" lsSig[[1]]$orig = "Covariate4" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = adCur lsSig[[1]]$factors = "Covariate4" lsSig[[1]]$metadata = frmeTmp[["Covariate4"]] vdCoef = c(Covariate4=5) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(frmeTmp[["Covariate4"]]) lsSig[[1]]$allCoefs = vdCoef ret1 = funcDoUnivariate(strFormula="adCur ~ Covariate4",frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory,strRandomFormula=NULL) ret2 = funcDoUnivariate(strFormula=NULL,frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula="adCur ~ 1|Covariate4") ret1$adP = round(ret1$adP,5) ret2$adP = round(ret2$adP,5) test_that("Test that the funcMakeContrasts works on 1 factor covariate with 2 levels.",{ expect_equal(ret1,list(adP=round(c(0.2857143),5),lsSig=lsSig,lsQCCounts=list())) expect_equal(ret2,list(adP=round(c(0.2857143),5),lsSig=lsSig,lsQCCounts=list())) }) lsSig[[2]] = list() lsSig[[2]]$name = "Covariate5" lsSig[[2]]$orig = "Covariate5" lsSig[[2]]$taxon = "adCur" lsSig[[2]]$data = adCur lsSig[[2]]$factors = "Covariate5" lsSig[[2]]$metadata = frmeTmp[["Covariate5"]] vdCoef = c(Covariate5=8) lsSig[[2]]$value = vdCoef lsSig[[2]]$std = sd(frmeTmp[["Covariate5"]]) lsSig[[2]]$allCoefs = vdCoef ret1 = funcDoUnivariate(strFormula="adCur ~ Covariate4 + Covariate5",frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula=NULL) ret2 = funcDoUnivariate(strFormula=NULL,frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula="adCur ~ 1|Covariate4 + 1|Covariate5") ret3 = funcDoUnivariate(strFormula="adCur ~ Covariate4",frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula="adCur ~ 1|Covariate5") ret1$adP = round(ret1$adP,5) ret2$adP = round(ret2$adP,5) ret3$adP = round(ret3$adP,5) test_that("2. Test that the funcMakeContrasts works on 2 factor covariate with 2 levels.",{ expect_equal(ret1,list(adP=round(c(0.2857143,0.73016),5),lsSig=lsSig,lsQCCounts=list())) expect_equal(ret2,list(adP=round(c(0.2857143,0.73016),5),lsSig=lsSig,lsQCCounts=list())) expect_equal(ret3,list(adP=round(c(0.2857143,0.73016),5),lsSig=lsSig,lsQCCounts=list())) }) lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate4" lsSig[[1]]$orig = "Covariate4" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = adCur lsSig[[1]]$factors = "Covariate4" lsSig[[1]]$metadata = frmeTmp[["Covariate4"]] vdCoef = c(Covariate4=5) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(frmeTmp[["Covariate4"]]) lsSig[[1]]$allCoefs = vdCoef lsSig[[2]] = list() lsSig[[2]]$name = "Covariate1" lsSig[[2]]$orig = "Covariate1" lsSig[[2]]$taxon = "adCur" lsSig[[2]]$data = adCur lsSig[[2]]$factors = "Covariate1" lsSig[[2]]$metadata = frmeTmp[["Covariate1"]] vdCoef = c(Covariate1=0.6) lsSig[[2]]$value = vdCoef lsSig[[2]]$std = sd(frmeTmp[["Covariate1"]]) lsSig[[2]]$allCoefs = vdCoef ret1 = funcDoUnivariate(strFormula="adCur ~ Covariate4 + Covariate1",frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula=NULL) ret2 = funcDoUnivariate(strFormula=NULL,frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula="adCur ~ 1|Covariate4 + 1|Covariate1") ret3 = funcDoUnivariate(strFormula="adCur ~ Covariate4",frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula="adCur ~ 1|Covariate1") ret1$adP = round(ret1$adP,5) ret2$adP = round(ret2$adP,5) ret3$adP = round(ret3$adP,5) test_that("Test that the funcMakeContrasts works on 1 factor covariate with 2 levels and a continuous variable.",{ expect_equal(ret1,list(adP=round(c(0.2857143,0.09679784),5),lsSig=lsSig,lsQCCounts=list())) expect_equal(ret2,list(adP=round(c(0.2857143,0.09679784),5),lsSig=lsSig,lsQCCounts=list())) expect_equal(ret3,list(adP=round(c(0.2857143,0.09679784),5),lsSig=lsSig,lsQCCounts=list())) }) lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate3" lsSig[[1]]$orig = "Covariate32" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = adCur lsSig[[1]]$factors = "Covariate3" lsSig[[1]]$metadata = frmeTmp[["Covariate3"]] vdCoef = c(Covariate32=NA) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(frmeTmp[["Covariate3"]]) lsSig[[1]]$allCoefs = vdCoef lsSig[[2]] = list() lsSig[[2]]$name = "Covariate3" lsSig[[2]]$orig = "Covariate33" lsSig[[2]]$taxon = "adCur" lsSig[[2]]$data = adCur lsSig[[2]]$factors = "Covariate3" lsSig[[2]]$metadata = frmeTmp[["Covariate3"]] vdCoef = c(Covariate33=NA) lsSig[[2]]$value = vdCoef lsSig[[2]]$std = sd(frmeTmp[["Covariate3"]]) lsSig[[2]]$allCoefs = vdCoef lsSig[[3]] = list() lsSig[[3]]$name = "Covariate1" lsSig[[3]]$orig = "Covariate1" lsSig[[3]]$taxon = "adCur" lsSig[[3]]$data = adCur lsSig[[3]]$factors = "Covariate1" lsSig[[3]]$metadata = frmeTmp[["Covariate1"]] vdCoef = c(Covariate1=0.6) lsSig[[3]]$value = vdCoef lsSig[[3]]$std = sd(frmeTmp[["Covariate1"]]) lsSig[[3]]$allCoefs = vdCoef lsSig[[4]] = list() lsSig[[4]]$name = "Covariate2" lsSig[[4]]$orig = "Covariate2" lsSig[[4]]$taxon = "adCur" lsSig[[4]]$data = adCur lsSig[[4]]$factors = "Covariate2" lsSig[[4]]$metadata = frmeTmp[["Covariate2"]] vdCoef = c(Covariate2=0.46666667) lsSig[[4]]$value = vdCoef lsSig[[4]]$std = sd(frmeTmp[["Covariate2"]]) lsSig[[4]]$allCoefs = vdCoef ret1 = funcDoUnivariate(strFormula="adCur ~ Covariate3 + Covariate1 + Covariate2",frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula=NULL) ret2 = funcDoUnivariate(strFormula=NULL,frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula="adCur ~ 1|Covariate3 + 1|Covariate1 + 1|Covariate2") ret3 = funcDoUnivariate(strFormula="adCur ~ Covariate3 + Covariate1",frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula="adCur ~ 1|Covariate2") ret1$adP = round(ret1$adP,5) ret2$adP = round(ret2$adP,5) ret3$adP = round(ret3$adP,5) test_that("Test that the funcMakeContrasts works on 1 factor covariate with 3 levels and 2 continuous variables.",{ expect_equal(ret1,list(adP=round(c(1.0,1.0,0.09679784,0.21252205),5),lsSig=lsSig,lsQCCounts=list())) expect_equal(ret2,list(adP=round(c(1.0,1.0,0.09679784,0.21252205),5),lsSig=lsSig,lsQCCounts=list())) expect_equal(ret3,list(adP=round(c(1.0,1.0,0.09679784,0.21252205),5),lsSig=lsSig,lsQCCounts=list())) }) lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate4" lsSig[[1]]$orig = "Covariate4" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = adCur lsSig[[1]]$factors = "Covariate4" lsSig[[1]]$metadata = frmeTmp[["Covariate4"]] vdCoef = c(Covariate4=5) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(frmeTmp[["Covariate4"]]) lsSig[[1]]$allCoefs = vdCoef lsSig[[2]] = list() lsSig[[2]]$name = "Covariate2" lsSig[[2]]$orig = "Covariate2" lsSig[[2]]$taxon = "adCur" lsSig[[2]]$data = adCur lsSig[[2]]$factors = "Covariate2" lsSig[[2]]$metadata = frmeTmp[["Covariate2"]] vdCoef = c(Covariate2=0.46666667) lsSig[[2]]$value = vdCoef lsSig[[2]]$std = sd(frmeTmp[["Covariate2"]]) lsSig[[2]]$allCoefs = vdCoef ret1 = funcDoUnivariate(strFormula="adCur ~ Covariate4 + Covariate2",frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula=NULL) ret2 = funcDoUnivariate(strFormula=NULL,frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula="adCur ~ 1|Covariate4 + 1|Covariate2") ret3 = funcDoUnivariate(strFormula= "adCur ~ Covariate4",frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula="adCur ~ 1|Covariate2") ret1$adP = round(ret1$adP,5) ret2$adP = round(ret2$adP,5) ret3$adP = round(ret3$adP,5) test_that("3. Test that the funcMakeContrasts works on 2 factor covariate with 2 levels and a continuous variable.",{ expect_equal(ret1,list(adP=round(c(0.2857143,0.21252205),5),lsSig=lsSig,lsQCCounts=list())) expect_equal(ret2,list(adP=round(c(0.2857143,0.21252205),5),lsSig=lsSig,lsQCCounts=list())) expect_equal(ret3,list(adP=round(c(0.2857143,0.21252205),5),lsSig=lsSig,lsQCCounts=list())) }) lsSig = list() lsSig[[1]] = list() lsSig[[1]]$name = "Covariate4" lsSig[[1]]$orig = "Covariate4" lsSig[[1]]$taxon = "adCur" lsSig[[1]]$data = adCur lsSig[[1]]$factors = "Covariate4" lsSig[[1]]$metadata = frmeTmp[["Covariate4"]] vdCoef = c(Covariate4=5) lsSig[[1]]$value = vdCoef lsSig[[1]]$std = sd(frmeTmp[["Covariate4"]]) lsSig[[1]]$allCoefs = vdCoef lsSig[[2]] = list() lsSig[[2]]$name = "Covariate3" lsSig[[2]]$orig = "Covariate32" lsSig[[2]]$taxon = "adCur" lsSig[[2]]$data = adCur lsSig[[2]]$factors = "Covariate3" lsSig[[2]]$metadata = frmeTmp[["Covariate3"]] vdCoef = c(Covariate32=NA) lsSig[[2]]$value = vdCoef lsSig[[2]]$std = sd(frmeTmp[["Covariate3"]]) lsSig[[2]]$allCoefs = vdCoef lsSig[[3]] = list() lsSig[[3]]$name = "Covariate3" lsSig[[3]]$orig = "Covariate33" lsSig[[3]]$taxon = "adCur" lsSig[[3]]$data = adCur lsSig[[3]]$factors = "Covariate3" lsSig[[3]]$metadata = frmeTmp[["Covariate3"]] vdCoef = c(Covariate33=NA) lsSig[[3]]$value = vdCoef lsSig[[3]]$std = sd(frmeTmp[["Covariate3"]]) lsSig[[3]]$allCoefs = vdCoef lsSig[[4]] = list() lsSig[[4]]$name = "Covariate2" lsSig[[4]]$orig = "Covariate2" lsSig[[4]]$taxon = "adCur" lsSig[[4]]$data = adCur lsSig[[4]]$factors = "Covariate2" lsSig[[4]]$metadata = frmeTmp[["Covariate2"]] vdCoef = c(Covariate2=0.46666667) lsSig[[4]]$value = vdCoef lsSig[[4]]$std = sd(frmeTmp[["Covariate2"]]) lsSig[[4]]$allCoefs = vdCoef ret1 = funcDoUnivariate(strFormula="adCur ~ Covariate4 + Covariate3 + Covariate2",frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula=NULL) ret2 = funcDoUnivariate(strFormula=NULL,frmeTmp=frmeTmp,iTaxon=iTaxon, lsHistory=lsHistory, strRandomFormula="adCur ~ 1|Covariate4 +1|Covariate3 + 1|Covariate2") ret1$adP = round(ret1$adP,5) ret2$adP = round(ret2$adP,5) test_that("Test that the funcMakeContrasts works on 1 factor covariate with 2 levels , 1 factor with 3 levels, and a continuous variable.",{ expect_equal(ret1,list(adP=round(c(0.2857143,1.0,1.0,0.21252205),5),lsSig=lsSig,lsQCCounts=list())) expect_equal(ret2,list(adP=round(c(0.2857143,1.0,1.0,0.21252205),5),lsSig=lsSig,lsQCCounts=list())) }) #Test multivariates context("Test funcLasso") context("Test funcLM") #This test just makes sure the statistical method is being called correctly for one covariate with the correct return strFormula = "adCur ~ Covariate1" strRandomFormula = NULL x = c(44.4, 45.9, 41.9, 53.3, 44.7, 44.1, 50.7, 45.2, 60.1) x2 = c(34.2, 32.5, 22.4, 43, 3.25, 6.4, 7, 87, 9) xf1 = c(1,1,2,2,1,2,1,1,2) xf2 = c(1,1,1,1,2,2,2,2,2) frmeTmp = data.frame(Covariate1=x, Covariate2=x2, FCovariate3=xf1, FCovariate4=xf2, adCur=adCur) iTaxon = 5 lmRet = lm(as.formula(strFormula), data=frmeTmp, na.action = c_strNA_Action) test_that("Test that the lm has the correct results for 1 covariate.",{ expect_equal(funcLM(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) }) #Test for correct call for 2 covariates strFormula = "adCur ~ Covariate1 + Covariate2" lmRet = lm(as.formula(strFormula), data=frmeTmp, na.action = c_strNA_Action) test_that("Test that the lm has the correct results for 2 covariates.",{ expect_equal(funcLM(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) }) ##Test for correct call with 1 random and one fixed covariate #strFormula = "adCur ~ Covariate1" #strRandomFormula = "~1|FCovariate3" #lmRet = glmmPQL(fixed=as.formula(strFormula), random=as.formula(strRandomFormula), family=gaussian(link="identity"), data=frmeTmp) #test_that("Test that the lm has the correct results for 1 random and one fixed covariate.",{ # expect_equal(funcLM(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) #}) ##Test for correct call with 1 random and 2 fixed covariates #strFormula = "adCur ~ Covariate1 + Covariate2" #strRandomFormula = "~1|FCovariate3" #lmRet = glmmPQL(fixed=as.formula(strFormula), random=as.formula(strRandomFormula), family=gaussian(link="identity"), data=frmeTmp) #test_that("Test that the lm has the correct results for 1 random and 2 fixed covariates.",{ # expect_equal(funcLM(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) #}) ##Test for correct call with 2 random and 1 fixed covariates #strFormula = "adCur ~ Covariate1" #strRandomFormula = "~1|FCovariate4+1|FCovariate3" #lmRet = glmmPQL(fixed=as.formula(strFormula), random=as.formula(strRandomFormula), family=gaussian(link="identity"), data=frmeTmp) #test_that("Test that the lm has the correct results for 2 random and 1 fixed covariates.",{ # expect_equal(funcLM(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) #}) context("Test funcBinomialMult") strFormula = "adCur ~ Covariate1" strRandomFormula = NULL x = c(44.4, 45.9, 41.9, 53.3, 44.7, 44.1, 50.7, 45.2, 60.1) x2 = c(34.2, 32.5, 22.4, 43, 3.25, 6.4, 7, 87, 9) xf1 = c(1,1,2,2,1,2,1,1,2) xf2 = c(1,1,1,1,2,2,2,2,2) frmeTmp = data.frame(Covariate1=x, Covariate2=x2, FCovariate3=xf1, FCovariate4=xf2, adCur=adCur) iTaxon = 5 lmRet = glm(as.formula(strFormula), family=binomial(link=logit), data=frmeTmp, na.action=c_strNA_Action) test_that("Test that the neg binomial regression has the correct results for 1 covariate.",{ expect_equal(funcBinomialMult(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) }) #Test for correct call for 2 covariates strFormula = "adCur ~ Covariate1 + Covariate2" iTaxon = 5 lmRet = glm(as.formula(strFormula), family=binomial(link=logit), data=frmeTmp, na.action=c_strNA_Action) test_that("Test that the neg binomial regression has the correct results for 2 covariates.",{ expect_equal(funcBinomialMult(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) }) ##Test for correct call with 1 random and one fixed covariate #strFormula = "adCur ~ Covariate1" #strRandomFormula = "~1|FCovariate3" #lmRet = glmmPQL(fixed=as.formula(strFormula), random=as.formula(strRandomFormula), family=binomial(link=logit), data=frmeTmp) #test_that("Test that the lm has the correct results for 1 random and one fixed covariate.",{ # expect_equal(funcBinomialMult(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) #}) ##Test for correct call with 1 random and 2 fixed covariates #strFormula = "adCur ~ Covariate1 + Covariate2" #strRandomFormula = "~1|FCovariate3" #lmRet = glmmPQL(fixed=as.formula(strFormula), random=as.formula(strRandomFormula), family=binomial(link=logit), data=frmeTmp) #test_that("Test that the lm has the correct results for 1 random and 2 fixed covariates.",{ # expect_equal(funcBinomialMult(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) #}) ##Test for correct call with 2 random and 1 fixed covariates #strFormula = "adCur ~ Covariate1" #strRandomFormula = "~1|FCovariate4+1|FCovariate3" #lmRet = glmmPQL(fixed=as.formula(strFormula), random=as.formula(strRandomFormula), family=binomial(link=logit), data=frmeTmp) #test_that("Test that the lm has the correct results for 2 random and 1 fixed covariates.",{ # expect_equal(funcBinomialMult(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) #}) context("Test funcQuasiMult") strFormula = "adCur ~ Covariate1" strRandomFormula = NULL x = c(44.4, 45.9, 41.9, 53.3, 44.7, 44.1, 50.7, 45.2, 60.1,44.4, 45.9, 41.9, 53.3, 44.7, 44.1, 50.7, 45.2, 60.1) x2 = c(34.2, 32.5, 22.4, 43, 3.25, 6.4, 7, 87, 9,34.2, 32.5, 22.4, 43, 3.25, 6.4, 7, 87, 9) xf1 = c(1,1,2,2,1,1,2,2,2,1,1,2,2,1,1,2,2,2) xf2 = c(1,1,1,1,2,2,2,2,2,1,1,1,1,2,2,2,2,2) frmeTmp = data.frame(Covariate1=x, Covariate2=x2, FCovariate3=xf1, FCovariate4=xf2, adCur=adCur) iTaxon = 5 lmRet = glm(as.formula(strFormula), family=quasipoisson, data=frmeTmp, na.action=c_strNA_Action) test_that("Test that the quasi poisson has the correct results for 1 covariate.",{ expect_equal(funcQuasiMult(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) }) #Test for correct call for 2 covariates strFormula = "adCur ~ Covariate1 + Covariate2" iTaxon = 5 lmRet = glm(as.formula(strFormula), family=quasipoisson, data=frmeTmp, na.action=c_strNA_Action) test_that("Test that the quasi poisson has the correct results for 2 covariates.",{ expect_equal(funcQuasiMult(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) }) ##Test for correct call with 1 random and one fixed covariate #strFormula = "adCur ~ Covariate1" #strRandomFormula = "~1|FCovariate3" #lmRet = glmmPQL(fixed=as.formula(strFormula), random=as.formula(strRandomFormula), family=quasipoisson, data=frmeTmp) #test_that("Test that the lm has the correct results for 1 random and one fixed covariate.",{ # expect_equal(funcQuasiMult(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) #}) ##Test for correct call with 1 random and 2 fixed covariates #strFormula = "adCur ~ Covariate1 + Covariate2" #strRandomFormula = "~1|FCovariate3" #lmRet = glmmPQL(fixed=as.formula(strFormula), random=as.formula(strRandomFormula), family=quasipoisson, data=frmeTmp) #test_that("Test that the lm has the correct results for 1 random and 2 fixed covariates.",{ # expect_equal(funcQuasiMult(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) #}) ##Test for correct call with 2 random and 1 fixed covariates #strFormula = "adCur ~ Covariate1" #strRandomFormula = "~1|FCovariate4+1|FCovariate3" #lmRet = glmmPQL(fixed=as.formula(strFormula), random=as.formula(strRandomFormula), family=quasipoisson, data=frmeTmp) #test_that("Test that the lm has the correct results for 2 random and 1 fixed covariates.",{ # expect_equal(funcQuasiMult(strFormula=strFormula,frmeTmp=frmeTmp,iTaxon=iTaxon,lsHistory=lsHistory,strRandomFormula=strRandomFormula),lmRet) #}) #Test transforms context("Test funcNoTransform") aTest1 = c(NA) aTest2 = c(NULL) aTest3 = c(0.5,1.4,2.4,3332.4,0.0,0.0000003) aTest4 = c(0.1) test_that("Test that no transform does not change the data.",{ expect_equal(funcNoTransform(aTest1), aTest1) expect_equal(funcNoTransform(aTest2), aTest2) expect_equal(funcNoTransform(aTest3), aTest3) expect_equal(funcNoTransform(aTest4), aTest4) }) context("Test funcArcsinSqrt") aTest1 = c(NA) aTest2 = c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0) aTest3 = c(0.000001) test_that("Test that funcArcsinSqrt performs the transform correctly.",{ expect_equal(funcArcsinSqrt(NA), as.numeric(NA)) expect_equal(funcArcsinSqrt(aTest1), asin(sqrt(aTest1))) expect_equal(funcArcsinSqrt(aTest2), asin(sqrt(aTest2))) expect_equal(funcArcsinSqrt(aTest3), asin(sqrt(aTest3))) })