Package 'EWOC.Comb'

Title: 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.
Authors: Yujie Cui [aut, cre], Quanlin Li [aut], Mourad Tighiouart [aut]
Maintainer: Yujie Cui <[email protected]>
License: GPL (>= 2)
Version: 1.0
Built: 2024-12-16 06:32:38 UTC
Source: CRAN

Help Index


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 <[email protected]>

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.


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")