Type: | Package |
Title: | Escalation with Overdose Control using 2 Drug Combinations |
Version: | 1.0 |
Date: | 2024-07-01 |
Maintainer: | Yujie Cui <yujie.cui@cshs.org> |
Description: | Implements Escalation With Overdose Control trial designs using two drug combinations described by this paper <doi:10.1002/sim.6961>(Tighiouart et al., 2016). It calculates the recommended dose for next cohorts and perform simulations to obtain operating characteristics. |
License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
Depends: | rjags |
Imports: | MASS |
NeedsCompilation: | no |
Packaged: | 2024-07-16 16:22:02 UTC; CuiY |
Repository: | CRAN |
Date/Publication: | 2024-07-18 23:30:02 UTC |
SystemRequirements: | JAGS (>= 4.0.0). For installation instructions, see http://mcmc-jags.sourceforge.net/ |
Author: | Yujie Cui [aut, cre], Quanlin Li [aut], Mourad Tighiouart [aut] |
Escalation with Overdose Control using 2 Drug Combinations
Description
Implements Escalation With Overdose Control trial designs using two drug combinations described by this paper <doi:10.1002/sim.6961>(Tighiouart et al., 2016). It calculates the recommended dose for next cohorts and perform simulations to obtain operating characteristics.
Author(s)
Yujie Cui [aut, cre], Quanlin Li [aut], Mourad Tighiouart [aut]
Maintainer: Yujie Cui <yujie.cui@cshs.org>
References
Tighiouart M, Li Q and Rogatko A. A Bayesian adaptive design for estimating the maximuym tolerated dose curve using drug combinations in cancer phase I clinical trials. Statistics in Medicine. 2017, 36: 280-290.
Internal functions for EWOC2
Description
Internal functions for EWOC2
Details
These are not to be called by the user.
Value
No return value, not intended to be called by user.
Escalation With Overdose Control for two drugs combination
Description
Finding the doses of next cohort for a phase I clinical trial based on Escalation with Overdose Control (EWOC) design considering the classic parametrization for binary response and two agents.
Usage
ewoc2(dose.a, dose.b, resp, theta, alpha, Min.Dose.A, Max.Dose.A, Min.Dose.B, Max.Dose.B,
a01, b01, a10, b10, a00, b00, a, b, delta1x, delta1y, burn, mm, delta1)
## Default S3 method:
ewoc2(dose.a, dose.b, resp, theta, alpha, Min.Dose.A, Max.Dose.A, Min.Dose.B, Max.Dose.B,
a01, b01, a10, b10, a00, b00, a, b, delta1x, delta1y, burn=4000, mm=2000, delta1=0.05)
Arguments
dose.a |
a numeric vector of allowable doses for drug A |
dose.b |
a numeric vector of allowable doses for drug B |
resp |
a numeric vector of allowable responses, 0 or 1 |
theta |
a numeric value defining the proportion of expectd patients to experience a medically unacceptable, dose-limiting toxicity (DLT) if administered the MTD. |
alpha |
a numerical value defining the probability that dose selected by EWOC is higher than the MTD. |
Min.Dose.A |
a numeric value defining the lower bound of the support of the MTD for drug A |
Max.Dose.A |
a numeric value defining the upper bound of the support of the MTD for drug A |
Min.Dose.B |
a numeric value defining the lower bound of the support of the MTD for drug B |
Max.Dose.B |
a numeric value defining the upper bound of the support of the MTD for drug B |
a01 |
a numeric value for beta prior distribution associated with parameter rho01 |
b01 |
a numeric value for beta prior distribution associated with parameter rho01 |
a10 |
a numeric value for beta prior distribution associated with parameter rho10 |
b10 |
a numeric value for beta prior distribution associated with parameter rho10 |
a00 |
a numeric value for beta prior distribution associated with parameter rho00 |
b00 |
a numeric value for beta prior distribution associated with parameter rho00 |
a |
a numeric value for gamma prior distribution associated with parameter eta |
b |
a numeric value for the gamma prior distribution associated with the parameter eta |
delta1x |
Maximum dose escalation at each step for drug A, the default is 0.2*(Max.Dose.A-Min.Dose.A if not assigned) |
delta1y |
Maximum dose escalation at each step for drug B, the default is 0.2*(Max.Dose.B-Min.Dose.B if not assigned) |
burn |
Number of iterations for adaption, see n.adapt in jags.model for detail |
mm |
Number of iterations to monitor, see n.iter in code.samples for detail |
delta1 |
Threshold for toxicity |
Value
data |
a data frame containing the current doses and responses set |
parameters |
list of input parameters |
priors |
list of prior parameters |
nextdose.x |
the next recommended doses for drug A |
nextdose.y |
the next recommended doses for drug B |
References
Tighiouart M, Li Q and Rogatko A. A Bayesian adaptive design for estimating the maximuym tolerated dose curve using drug combinations in cancer phase I clinical trials. Statistics in Medicine. 2017, 36: 280-290.
Examples
test = ewoc2(dose.a=c(0,0),dose.b=c(0,0),resp=c(0,0),theta=0.33,alpha=0.25,
Min.Dose.A=0, Max.Dose.A=1, Min.Dose.B=0, Max.Dose.B=1,a01=1,b01=1,a10=1,b10=1,
a00=1,b00=1,a=0.8,b=0.0384)
print(test)
Generic EWOC2 simulation
Description
Generic function for simulating EWOC trials for 2 drugs combination
Usage
ewoc2simu(ntrials, nsamples, type, trho00, trho01, trho10, teta, nx, ny, tp,
Min.Dose.A, Max.Dose.A, Min.Dose.B, Max.Dose.B, alpha, theta, vai, a01,
b01, a10, b10, a00, b00, a, b, delta1x, delta1y, burn, mm, delta1, seed)
## Default S3 method:
ewoc2simu(ntrials, nsamples, type, trho00, trho01, trho10, teta, nx, ny, tp,
Min.Dose.A, Max.Dose.A, Min.Dose.B, Max.Dose.B, alpha, theta, vai, a01,
b01, a10, b10, a00, b00, a, b, delta1x, delta1y, burn=4000, mm=2000, delta1=0.05, seed)
Arguments
ntrials |
a number indicating the number of trials to be simulated |
nsamples |
a number indicating the number of patients enrolled for each clinical trial |
type |
a character indicating the type of design, could be 'continous' or 'discrete' or their initials |
trho00 |
a numeric value indicating the true value of the parameter rho00, the probability of DLT when the levels of drugs A and B are both 0 |
trho01 |
a numeric value indicating the true value of the parameter rho01, the probability of DLT when the levels of drugs A and B are 0 and 1, respectively |
trho10 |
a numeric value indicating the true value of the parameter rho10, the probability of DLT when the levels of drugs A and B are 1 and 0, respectively |
teta |
a numeric value indicating the true value of the eta, the interaction parameter |
nx |
a numeric value indicating the number of dose levels for drug A. It's only necessary if type = 'discrete' |
ny |
a numeric value indicating the number of dose levels for drug B. It's only necessary if type = 'discrete' |
tp |
a numerical vector indicating the true probabilities of DLT at each dose combinations, the order is by Drug B first, only necessary if type = 'discrete' |
Min.Dose.A |
a numeric value defining the lower bound of the support of the MTD for drug A |
Max.Dose.A |
a numeric value defining the upper bound of the support of the MTD for drug A |
Min.Dose.B |
a numeric value defining the lower bound of the support of the MTD for drug B |
Max.Dose.B |
a numeric value defining the upper bound of the support of the MTD for drug B |
alpha |
a numerical value defining the probability that dose selected by EWOC is higher than the MTD. |
theta |
a numeric value defining the proportion of expectd patients to experience a medically unacceptable, dose-limiting toxicity (DLT) if administered the MTD. |
vai |
a numeric value indicating variable alpha increment for each new cohort |
a01 |
a numeric value for beta prior distribution associated with parameter rho01 |
b01 |
a numeric value for beta prior distribution associated with parameter rho01 |
a10 |
a numeric value for beta prior distribution associated with parameter rho10 |
b10 |
a numeric value for beta prior distribution associated with parameter rho10 |
a00 |
a numeric value for beta prior distribution associated with parameter rho00 |
b00 |
a numeric value for beta prior distribution associated with parameter rho00 |
a |
a numeric value for gamma prior distribution associated with parameter eta |
b |
a numeric value for gamma prior distribution associated with parameter eta |
delta1x |
Maximum dose escalation at each step for drug A, the default is 0.2*(Max.Dose.A-Min.Dose.A if not assigned) |
delta1y |
Maximum dose escalation at each step for drug B, the default is 0.2*(Max.Dose.B-Min.Dose.B if not assigned) |
burn |
Number of iterations for adaption, see n.adapt in jags.model for detail |
mm |
Number of iterations to monitor, see n.iter in code.samples for detail |
delta1 |
Threshold for toxicity |
seed |
a numeric value used in random number generation |
Value
type |
same as input parameter type |
parameters |
list of input parameters |
priors |
list of prior parameters |
Dose.A |
a matrix ntrials x nsamples containing the doses of drug A assigned for each patient in a trial and each trial in the simulation |
Dose.B |
a matrix ntrials x nsamples containing the doses of drug B assigned for each patient in a trial and each trial in the simulation |
Resp |
a matrix ntrials x nsamples containing ones and zeros indicating the occurance of DLT (1) and the absence of DLT (0) for each patient in the trial and each trial in the simulation |
rho00 |
a numeric vector ntrials x 1 containing the estimated rho00 parameter for each trial in the simulation |
rho01 |
a numeric vector ntrials x 1 containing the estimated rho01 parameter for each trial in the simulation |
rho10 |
a numeric vector ntrials x 1 containing the estimated rho10 parameter for each trial in the simulation |
eta |
a numeric vector ntrials x 1 containing the estimated eta parameter for each trial in the simulation |
postlow |
a matrix ntrials x nsamples/2 containing posterior probability of DLT at lower doses (both 0 for durg A and B) at each step in a trial and each trial in the simulation |
postdlts |
a matrix (nx x ny x ntrials) x 4 containing posterior probability of DLT at each dose combination sets in each trial in the simulation. This is used to test whether or not a discrete set of MTDs was selected from a continous MTD curve is kept or dropped. It's avaiable only when type = 'discrete' |
References
Tighiouart M, Li Q and Rogatko A. A Bayesian adaptive design for estimating the maximuym tolerated dose curve using drug combinations in cancer phase I clinical trials. Statistics in Medicine. 2017, 36: 280-290.
Examples
# continous
test1 = ewoc2simu(ntrials=10, nsamples=40, type="c", trho00=0.01,trho01=0.2, trho10=0.9,teta=20,
Min.Dose.A=0, Max.Dose.A=1, Min.Dose.B=0, Max.Dose.B=1, alpha=0.25, theta=0.20, a01=1,b01=1,
a10=1,b10=1, a00=1,b00=1,a=0.8,b=0.0384)
print(test1)
plot(test1, type="MTD")
plot(test1, type="bias")
plot(test1, type="percent")
# discrete
tp = c(0.03,0.05,0.08,0.05,0.08,0.13,0.08,0.13,0.2,0.13,0.2,0.29,0.2,0.29,0.4,0.29,0.4,0.53)
test2 = ewoc2simu(ntrials=10, nsamples=40, type="d", nx=6, ny=3, tp=tp,
Min.Dose.A=0, Max.Dose.A=1, Min.Dose.B=0, Max.Dose.B=1, alpha=0.25, theta=0.20,
a01=1,b01=1,a10=1,b10=1,a00=1,b00=1,a=0.8,b=0.0384)
print(test2)
plot(test2, type="MTD")
plot(test2, type="percent")
Generating MTD curve based on logistic model for two drugs
Description
Generating MTD curve based on logistic model for two drugs
Usage
mtdcurve(rho00, rho01, rho10, eta, theta)
Arguments
rho00 |
a numeric value indicating the true value of the parameter rho00, the probability of DLT when the levels of drugs A and B are both 0 |
rho01 |
a numeric value indicating the true value of the parameter rho01, the probability of DLT when the levels of drugs A and B are 0 and 1, respectively |
rho10 |
a numeric value indicating the true value of the parameter rho10, the probability of DLT when the levels of drugs A and B are 1 and 0, respectively |
eta |
a numeric value indicating the true value of the eta, the interaction parameter |
theta |
a numerical value defining the proportion of expected patients to experience a medically unacceptable, dose-limiting toxicity (DLT) if administered the MTD |
Value
a plot showing the MTD curve based on the logistic model
Examples
mtdcurve(rho00=0.01, rho01=0.2, rho10=0.9, eta=20, theta=0.2)
Generating probability of DLT based on the EWOC2 model
Description
Generating probabiity of DLT based on the EWOC 2 drugs combination model
Usage
pdlt(rho00, rho01, rho10, eta, theta, x, y)
Arguments
rho00 |
a numeric value indicating the true value of the parameter rho00, the probability of DLT when the levels of drugs A and B are both 0 |
rho01 |
a numeric value indicating the true value of the parameter rho01, the probability of DLT when the levels of drugs A and B are 0 and 1, respectively |
rho10 |
a numeric value indicating the true value of the parameter rho10, the probability of DLT when the levels of drugs A and B are 1 and 0, respectively |
eta |
a numeric value indicating the true value of the eta, the interaction parameter |
theta |
a numerical value defining the proportion of expected patients to experience a medically unacceptable, dose-limiting toxicity (DLT) if administered the MTD |
x |
a numeric value of dose level for drug A |
y |
a numeric value of dose level for drug B |
Value
a numeric value indicating the probability of DLT with doses from input based on the logistic model
Examples
pdlt(rho00=0.01, rho01=0.2, rho10=0.9, eta=20, theta=0.2, x=0.2, y=0.3)
EWOC for 2 drugs combination trial design characteristics
Description
Function to plot the trial design characteristics from EWOC 2 drugs combination simulation results
Usage
## S3 method for class 'ewoc2simu'
plot(x, type = "MTD", conf.reg=0.9, plot.figure="Y",...)
Arguments
x |
an object of class "ewoc2simu", usually a result of a call to ewoc2simu |
type |
a character indicating the type of plots a user requests, could be "MTD", "bias", or "percent". For discrete simulations, "bias" is not available |
conf.reg |
confidence level that controls the region of the doses from the last trial in the MTD plot |
plot.figure |
a character indicating whether user wants the plot, 'Y' would be yes, otherwise would be no. It's mainly for internal uses |
... |
arguments passed to or from methods |
Value
No return value, called for side effects.
References
Tighiouart M, Li Q and Rogatko A. A Bayesian adaptive design for estimating the maximuym tolerated dose curve using drug combinations in cancer phase I clinical trials. Statistics in Medicine. 2017, 36: 280-290.
Examples
# continous
test1 = ewoc2simu(ntrials=10, nsamples=40, type="c", trho00=0.01,trho01=0.2, trho10=0.9,teta=20,
Min.Dose.A=0, Max.Dose.A=1, Min.Dose.B=0, Max.Dose.B=1, alpha=0.25, theta=0.20, a01=1,b01=1,
a10=1,b10=1, a00=1,b00=1,a=0.8,b=0.0384)
print(test1)
plot(test1, type="MTD")
plot(test1, type="bias")
plot(test1, type="percent")
# discrete
tp = c(0.03,0.05,0.08,0.05,0.08,0.13,0.08,0.13,0.2,0.13,0.2,0.29,0.2,0.29,0.4,0.29,0.4,0.53)
test2 = ewoc2simu(ntrials=10, nsamples=40, type="d", nx=6, ny=3, tp=tp,
Min.Dose.A=0, Max.Dose.A=1, Min.Dose.B=0, Max.Dose.B=1, alpha=0.25, theta=0.20,
a01=1,b01=1,a10=1,b10=1,a00=1,b00=1,a=0.8,b=0.0384)
print(test2)
plot(test2, type="MTD")
plot(test2, type="percent")
Summarizing EWOC2 next doses results
Description
Summarizing EWOC2 next doses result
Usage
## S3 method for class 'ewoc2'
print(x, ...)
Arguments
x |
an object of class "ewoc2", usually, a result of a call to ewoc2 |
... |
arguments passed to or from methods |
Value
a data.frame of 2 x 4 with columns for cohort, patients, recommended dose of drug A and recommended dose of drug B for next cohort or 2 patients
References
Tighiouart M, Li Q and Rogatko A. A Bayesian adaptive design for estimating the maximuym tolerated dose curve using drug combinations in cancer phase I clinical trials. Statistics in Medicine. 2017, 36: 280-290.
Examples
test = ewoc2(dose.a=c(0,0),dose.b=c(0,0),resp=c(0,0),theta=0.33,alpha=0.25, Min.Dose.A=0,
Max.Dose.A=1, Min.Dose.B=0, Max.Dose.B=1,a01=1,b01=1,a10=1,b10=1,a00=1,b00=1,a=0.8,b=0.0384)
print(test)
Summarizing EWOC2 simulation results
Description
Summarizing EWOC2 simulation results
Usage
## S3 method for class 'ewoc2simu'
print(x, ...)
Arguments
x |
an object of class "ewoc2simu", usually, a result of a call to ewoc2simu |
... |
arguments passed to or from methods |
Value
a data.frame of 7 x 1 with row represent Accuracy square discrepancy (sq), Accuracy absolute discrepancy (abs), Accuracy overdose (od), percent Selection, Average percent DLT, percent Trials with DLT rate > theta+0.05, percent Trials with LDT rate > theta+0.1
References
Tighiouart M, Li Q and Rogatko A. A Bayesian adaptive design for estimating the maximuym tolerated dose curve using drug combinations in cancer phase I clinical trials. Statistics in Medicine. 2017, 36: 280-290.
Examples
# continous
test1 = ewoc2simu(ntrials=10, nsamples=40, type="c", trho00=0.01,trho01=0.2, trho10=0.9,teta=20,
Min.Dose.A=0, Max.Dose.A=1, Min.Dose.B=0, Max.Dose.B=1, alpha=0.25, theta=0.20, a01=1,b01=1,
a10=1,b10=1, a00=1,b00=1,a=0.8,b=0.0384)
print(test1)
plot(test1, type="MTD")
plot(test1, type="bias")
plot(test1, type="percent")
# discrete
tp = c(0.03,0.05,0.08,0.05,0.08,0.13,0.08,0.13,0.2,0.13,0.2,0.29,0.2,0.29,0.4,0.29,0.4,0.53)
test2 = ewoc2simu(ntrials=10, nsamples=40, type="d", nx=6, ny=3, tp=tp,
Min.Dose.A=0, Max.Dose.A=1, Min.Dose.B=0, Max.Dose.B=1, alpha=0.25, theta=0.20,
a01=1,b01=1,a10=1,b10=1,a00=1,b00=1,a=0.8,b=0.0384)
print(test2)
plot(test2, type="MTD")
plot(test2, type="percent")