## -----------------------------------------------------------------------------
library(CoRpower)
computeN(Nrand = 4100,          # participants randomized to vaccine arm
         tau = 3.5,             # biomarker sampling timepoint
         taumax = 24,           # end of follow-up
         VEtauToTaumax = 0.75,  # VE between 'tau' and 'taumax'
         VE0toTau = 0.75/2,     # VE between 0 and 'tau'
         risk0 = 0.034,         # placebo-group endpoint risk between 'tau' and 'taumax'
         dropoutRisk = 0.1,     # dropout risk between 0 and 'taumax'
         propCasesWithS = 1)    # proportion of observed cases with measured S(1)

## ----eval=FALSE---------------------------------------------------------------
# pwr <- computePower(nCasesTx = 32,
#                     nControlsTx = 3654,
#                     nCasesTxWithS = 32,
#                     controlCaseRatio = c(5, 3, 1), # n^S_controls : n^S_cases ratio
#                     VEoverall = 0.75,             # overall VE
#                     risk0 = 0.034,                # placebo-group endpoint risk from tau - taumax
#                     VElat0 = seq(0, VEoverall, len=100), # grid of VE (V/P) among lower protected
#                     VElat1 = rep(VEoverall, 100), # grid of VE (V/P) among medium protected
#                     Plat0 = 0.2,                  # prevalence of lower protected
#                     Plat2 = 0.6,                  # prevalence of higher protected
#                     P0 = 0.2,                     # probability of low biomarker response
#                     P2 = 0.6,                     # probability of high biomarker response
#                     sens = 0.8, spec = 0.8, FP0 = 0, FN2 = 0,
#                     M = 1000,                     # number of simulated clinical trials
#                     alpha = 0.05,                 # two-sided Wald test Type 1 error rate
#                     biomType = "trichotomous")    # "continuous" by default

## ----eval=FALSE---------------------------------------------------------------
# plotPowerTri(outComputePower = pwr,  # 'computePower' output list of lists
#              legendText = paste0("Control:Case = ", c("5:1", "3:1", "1:1")))

## ----eval=FALSE---------------------------------------------------------------
# computePower(..., saveDir = "myDir", saveFile = c("myFile1.RData", "myFile2.RData", "myFile3.RData"))
# plotPowerTri(outComputePower = c("myFile1.RData", "myFile2.RData", "myFile3.RData"), # 'computePower' output files
#              outDir = rep("~/myDir", 3),                           # path to each myFilex.RData
#              legendText = paste0("Control:Case = ", c("5:1", "3:1", "1:1")))

## ----eval=FALSE---------------------------------------------------------------
# pwr <- computePower(nCasesTx = 32,
#                     nControlsTx = 3654,
#                     nCasesTxWithS = 32,
#                     controlCaseRatio = 5,         # n^S_controls : n^S_cases ratio
#                     VEoverall = 0.75,             # overall VE
#                     risk0 = 0.034,                # placebo-group endpoint risk from tau - taumax
#                     VElat0 = seq(0, VEoverall, len=100), # grid of VE (V/P) among lower protected
#                     VElat1 = rep(VEoverall, 100), # grid of VE (V/P) among medium protected
#                     Plat0 = 0.2,                  # prevalence of lower protected
#                     Plat2 = 0.6,                  # prevalence of higher protected
#                     P0 = 0.2,                     # probability of low biomarker response
#                     P2 = 0.6,                     # probability of high biomarker response
#                     sens = c(1, 0.9, 0.8, 0.7), spec = c(1, 0.9, 0.8, 0.7),
#                     FP0 = c(0, 0, 0, 0), FN2 = c(0, 0, 0, 0),
#                     M = 1000,                     # number of simulated clinical trials
#                     alpha = 0.05,                 # two-sided Wald test Type 1 error rate
#                     biomType = "trichotomous")    # "continuous" by default

## ----eval=FALSE---------------------------------------------------------------
# plotPowerTri(outComputePower = pwr,
#              legendText = paste0("Sens = Spec = ", c(1, 0.9, 0.8, 0.7)))

## ----eval=FALSE---------------------------------------------------------------
# pwr <- computePower(nCasesTx = 32,
#                     nControlsTx = 3654,
#                     nCasesTxWithS = 32,
#                     controlCaseRatio = 5,         # n^S_controls : n^S_cases ratio
#                     VEoverall = 0.75,             # overall VE
#                     risk0 = 0.034,                # placebo-group endpoint risk from tau - taumax
#                     VElat0 = seq(0, VEoverall, len=100), # grid of VE (V/P) among lower protected
#                     VElat1 = rep(VEoverall, 100), # grid of VE (V/P) among medium protected
#                     Plat0 = c(0.05, 0.1, 0.15, 0.2),
#                     Plat2 = c(0.15, 0.3, 0.45, 0.6),
#                     P0 = c(0.05, 0.1, 0.15, 0.2),
#                     P2 = c(0.15, 0.3, 0.45, 0.6),
#                     sens = 0.8, spec = 0.8, FP0 = 0, FN2 = 0,
#                     M = 1000,                     # number of simulated clinical trials
#                     alpha = 0.05,                 # two-sided Wald test Type 1 error rate
#                     biomType = "trichotomous")    # "continuous" by default

## ----eval=FALSE---------------------------------------------------------------
# plotPowerTri(outComputePower = pwr,
#              legendText = c("Plat0=0.05, Plat2=0.15",
#                             "Plat0=0.1, Plat2=0.3",
#                             "Plat0=0.15, Plat2=0.45",
#                             "Plat0=0.2, Plat2=0.6"))

## ----eval=FALSE---------------------------------------------------------------
# pwr <- computePower(nCasesTx = 32,
#                     nControlsTx = 3654,
#                     nCasesTxWithS = 32,
#                     controlCaseRatio = 5,         # n^S_controls : n^S_cases ratio
#                     VEoverall = 0.75,             # overall VE
#                     risk0 = 0.034,                # placebo-group endpoint risk from tau - taumax
#                     VElat0 = seq(0, VEoverall, len=100), # grid of VE (V/P) among lower protected
#                     VElat1 = rep(VEoverall, 100), # grid of VE (V/P) among medium protected
#                     Plat0 = 0.2,                  # prevalence of lower protected
#                     Plat2 = 0.6,                  # prevalence of higher protected
#                     P0 = 0.2,                     # probability of low biomarker response
#                     P2 = 0.6,                     # probability of high biomarker response
#                     sigma2obs = 1,                # variance of observed biomarker S(1)
#                     rho = c(1, 0.9, 0.7, 0.5),    # protection-relevant fraction of variance of S(1)
#                     M = 1000,                     # number of simulated clinical trials
#                     alpha = 0.05,                 # two-sided Wald test Type 1 error rate
#                     biomType = "trichotomous")    # "continuous" by default

## ----eval=FALSE---------------------------------------------------------------
# plotPowerTri(outComputePower = pwr,
#              legendText = paste0("rho = ", c(1, 0.9, 0.7, 0.5)))

## ----eval=FALSE---------------------------------------------------------------
# plotRRgradVE(outComputePower = pwr,  # 'computePower' output list of lists
#              legendText = paste0("rho = ", c(1, 0.9, 0.7, 0.5)))

## ----eval=FALSE---------------------------------------------------------------
# computePower(..., saveDir = "myDir", saveFile = "myFile.RData")
# plotRRgradVE(outComputePower = paste0("myFile_rho_", c(1, 0.9, 0.7, 0.5), ".RData"),    # files with 'computePower' output
#              outDir = "~/myDir",            # path to myFile.RData
#              legendText = paste0("rho = ", c(1, 0.9, 0.7, 0.5)))

## ----eval=FALSE---------------------------------------------------------------
# plotROCcurveTri(Plat0 = 0.2,
#                 Plat2 = c(0.2, 0.3, 0.4, 0.5),
#                 P0 = seq(0.90, 0.10, len=25),
#                 P2 = seq(0.10, 0.90, len=25),
#                 rho = c(1, 0.9, 0.7, 0.5))

## ----eval=FALSE---------------------------------------------------------------
# pwr <- computePower(nCasesTx = 32,
#                     nControlsTx = 3654,
#                     nCasesTxWithS = 32,
#                     controlCaseRatio = 5,         # n^S_controls : n^S_cases ratio
#                     VEoverall = 0.75,             # overall VE
#                     risk0 = 0.034,                # placebo-group endpoint risk from tau - taumax
#                     VElat0 = seq(0, VEoverall, len=100), # grid of VE (V/P) among lower protected
#                     VElat1 = rep(VEoverall, 100), # grid of VE (V/P) among medium protected
#                     Plat0 = c(0.05, 0.1, 0.15, 0.2),
#                     Plat2 = c(0.15, 0.3, 0.45, 0.6),
#                     P0 = c(0.05, 0.1, 0.15, 0.2),
#                     P2 = c(0.15, 0.3, 0.45, 0.6),
#                     sigma2obs = 1,                # variance of observed biomarker S(1)
#                     rho = 0.9,                    # protection-relevant fraction of variance of S(1)
#                     M = 1000,                     # number of simulated clinical trials
#                     alpha = 0.05,                 # two-sided Wald test Type 1 error rate
#                     biomType = "trichotomous")    # "continuous" by default

## ----eval=FALSE---------------------------------------------------------------
# plotPowerTri(outComputePower = pwr,
#              legendText = c("Plat0=0.05, Plat2=0.15",
#                             "Plat0=0.1, Plat2=0.3",
#                             "Plat0=0.15, Plat2=0.45",
#                             "Plat0=0.2, Plat2=0.6"))

## ----eval=FALSE---------------------------------------------------------------
# pwr <- computePower(nCasesTx = c(25, 32, 35, 40),
#                     nControlsTx = c(3661, 3654, 3651, 3646),
#                     nCasesTxWithS = c(25, 32, 35, 40),
#                     controlCaseRatio = 5,         # n^S_controls : n^S_cases ratio
#                     VEoverall = 0.75,             # overall VE
#                     risk0 = 0.034,                # placebo-group endpoint risk fom tau - taumax
#                     VElat0 = seq(0, VEoverall, len=100), # grid of VE (V/P) among lower protected
#                     VElat1 = rep(VEoverall, 100), # grid of VE (V/P) among medium protected
#                     Plat0 = 0.2,                  # prevalence of lower protected
#                     Plat2 = 0.6,                  # prevalence of higher protected
#                     P0 = 0.2,                     # probability of low biomarker response
#                     P2 = 0.6,                     # probability of high biomarker response
#                     sigma2obs = 1,                # variance of observed biomarker S(1)
#                     rho = 0.9,                    # protection-relevant fraction of variance of S(1)
#                     M = 1000,                     # number of simulated clinical trials
#                     alpha = 0.05,                 # two-sided Wald test Type 1 error rate
#                     biomType = "trichotomous")    # "continuous" by default

## ----eval=FALSE---------------------------------------------------------------
# plotPowerTri(outComputePower = pwr,
#              legendText = paste0("nCasesTx = ", c(25, 32, 35, 40)))

## ----eval=FALSE---------------------------------------------------------------
# pwr <- computePower(nCasesTx = c(25, 32, 35, 40),
#                     nControlsTx = c(3661, 3654, 3651, 3646),
#                     nCasesTxWithS = c(25, 32, 35, 40),
#                     controlCaseRatio = 5,         # n^S_controls : n^S_cases ratio
#                     VEoverall = 0.75,             # overall VE
#                     risk0 = 0.034,                # placebo-group endpoint risk from tau - taumax
#                     VElat0 = seq(0, VEoverall, len=100), # grid of VE (V/P) among lower protected
#                     VElat1 = rep(VEoverall, 100), # grid of VE (V/P) among medium protected
#                     Plat0 = 0.2,                  # prevalence of lower protected
#                     Plat2 = 0.8,                  # prevalence of higher protected
#                     P0 = 0.2,                     # probability of low biomarker response
#                     P2 = 0.8,                     # probability of high biomarker response
#                     sigma2obs = 1,                # variance of observed biomarker S(1)
#                     rho = 0.9,                    # protection-relevant fraction of variance of S(1)
#                     M = 1000,                     # number of simulated clinical trials
#                     alpha = 0.05,                 # two-sided Wald test Type 1 error rate
#                     biomType = "binary")          # "continuous" by default

## ----eval=FALSE---------------------------------------------------------------
# plotPowerTri(outComputePower = pwr,
#              legendText = paste0("nCasesTx = ", c(25, 32, 35, 40)))

## ----eval=FALSE---------------------------------------------------------------
# pwr <- computePower(nCasesTx = 32,
#                     nControlsTx = 3654,
#                     nCasesTxWithS = 32,
#                     controlCaseRatio = 5,        # n^S_controls : n^S_cases ratio
#                     VEoverall = 0.75,            # overall VE
#                     risk0 = 0.034,               # placebo-group endpoint risk from tau - taumax
#                     PlatVElowest = 0.2,          # prevalence of VE_lowest
#                     VElowest = seq(0, VEoverall, len=100), # lowest VE for true biomarker X*<=nu
#                     sigma2obs = 1,               # variance of observed biomarker S
#                     rho = c(1, 0.9, 0.7, 0.5)    # protection-relevant fraction of variance of S
#                     M = 1000,                    # number of simulated clinical trials
#                     alpha = 0.05,                # two-sided Wald test Type 1 error rate
#                     biomType = "continuous")     # "continuous" by default

## ----eval=FALSE---------------------------------------------------------------
# plotPowerCont(outComputePower = pwr,          # output list of lists from 'computePower'
#               legendText = paste0("rho = ", c(1, 0.9, 0.7, 0.5)))

## ----eval=FALSE---------------------------------------------------------------
# computePower(..., saveDir = "myDir", saveFile = "myFile.RData")
# plotPowerCont(outComputePower = paste0("myFile_rho_", c(1, 0.9, 0.7, 0.5), ".RData"),     # files with 'computePower' output
#               outDir = "~/myDir",             # path to myFile.RData
#               legendText = paste0("rho = ", c(1, 0.9, 0.7, 0.5)))

## ----eval=FALSE---------------------------------------------------------------
# plotVElatCont(outComputePower = pwr)

## ----eval=FALSE---------------------------------------------------------------
# computePower(..., saveDir = "myDir", saveFile = "myFile.RData")
# plotVElatCont(outComputePower = "myFile.RData",
#               outDir = "~/myDir")

## ----eval=FALSE---------------------------------------------------------------
# pwr <- computePower(nCasesTx = 32,
#                     nControlsTx = 3654,
#                     nCasesTxWithS = 32,
#                     controlCaseRatio = 5,        # n^S_controls : n^S_cases ratio
#                     VEoverall = 0.75,            # overall VE
#                     risk0 = 0.034,               # placebo-group endpoint risk from tau - taumax
#                     PlatVElowest = c(0.05, 0.1, 0.15, 0.2),
#                     VElowest = seq(0, VEoverall, len=100), # lowest VE for true biomarker X*<=nu
#                     sigma2obs = 1,               # variance of observed biomarker S(1)
#                     rho = 0.9                    # protection-relevant fraction of variance of S(1)
#                     M = 1000,                    # number of simulated clinical trials
#                     alpha = 0.05,                # two-sided Wald test Type 1 error rate
#                     biomType = "continuous")     # "continuous" by default

## ----eval=FALSE---------------------------------------------------------------
# plotPowerCont(outComputePower = pwr,          # output list of lists from 'computePower'
#               legendText = paste0("PlatVElowest = ", c(0.05, 0.1, 0.15, 0.2)))

## ----eval=FALSE---------------------------------------------------------------
# pwr <- computePower(nCasesTx = 32,
#                     nControlsTx = 3654,
#                     nCasesTxWithS = 32,
#                     cohort = TRUE,                # FALSE by default
#                     p = c(0.01, 0.02, 0.03, 0.05),
#                     VEoverall = 0.75,             # overall VE
#                     risk0 = 0.034,                # placebo-group endpoint risk from tau - taumax
#                     VElat0 = seq(0, VEoverall, len=100), # grid of VE (V/P) among lower protected
#                     VElat1 = rep(VEoverall, 100), # grid of VE (V/P) among medium protected
#                     Plat0 = 0.2,                  # prevalence of lower protected
#                     Plat2 = 0.6,                  # prevalence of higher protected
#                     P0 = 0.2,                     # probability of low biomarker response
#                     P2 = 0.6,                     # probability of high biomarker response
#                     sens = 0.8, spec = 0.8, FP0 = 0, FN2 = 0,
#                     M = 1000,                     # number of simulated clinical trials
#                     alpha = 0.05,                 # two-sided Wald test Type 1 error rate
#                     biomType = "trichotomous")    # "continuous" by default

## ----eval=FALSE---------------------------------------------------------------
# plotPowerTri(outComputePower = pwr,  # 'computePower' output
#              legendText = paste0("Cohort p = ", c(0.01, 0.02, 0.03, 0.05)))

## ----eval=FALSE---------------------------------------------------------------
# pwr <- computePower(nCasesTx = 32,
#                     nControlsTx = 3654,
#                     nCasesTxWithS = 32,
#                     cohort = TRUE,               # FALSE by default
#                     p = c(0.01, 0.02, 0.03, 0.05),
#                     VEoverall = 0.75,            # overall VE
#                     risk0 = 0.034,               # placebo-group endpoint risk from tau - taumax
#                     PlatVElowest = 0.2,          # prevalence of VE_lowest
#                     VElowest = seq(0, VEoverall, len=100), # lowest VE for true biomarker X*<=nu
#                     sigma2obs = 1,               # variance of observed biomarker S(1)
#                     rho = 0.9                    # protection-relevant fraction of variance of S(1)
#                     M = 1000,                    # number of simulated clinical trials
#                     alpha = 0.05,                # two-sided Wald test Type 1 error rate
#                     biomType = "continuous")     # "continuous" by default

## ----eval=FALSE---------------------------------------------------------------
# plotPowerCont(outComputePower = pwr,  # 'computePower' output
#               legendText = paste0("Cohort p = ", c(0.01, 0.02, 0.03, 0.05)))

