Learn R Programming

BOIN (version 2.0)

get.oc: Generate operating characteristics for single agent trials

Description

Obtain the operating characteristics of the BOIN design for single agent trials by simulating trials.

Usage

get.oc(target, p.true, ncohort, cohortsize, n.earlystop=100, startdose=1, 
p.saf="default", p.tox="default", cutoff.eli=0.95, 
extrasafe=FALSE, offset=0.05, ntrial=1000)

Arguments

target
target toxicity rate
p.true
a vector containing the true toxicity probabilities of the investigational dose levels.
ncohort
the total number of cohorts
cohortsize
the cohort size
n.earlystop
Early stopping parameter. If the number of patients treated at the current dose reaches n.earlystop, stop the trial and select the MTD based on the observed data. The default value n.earlystop=100 essentially turns off this type
startdose
the starting dose level for the trial
p.saf
the highest toxicity probability that is deemed subtherapeutic (i.e. below the MTD) such that dose escalation should be undertaken. The default value is p.saf=0.6 x target.
p.tox
the lowest toxicity probability that is deemed overly toxic such that deescalation is required. The default value is p.tox=1.4 x target.
cutoff.eli
the cutoff to eliminate an overly toxic dose for safety. We recommend the default value of (cutoff.eli=0.95) for general use
extrasafe
set extrasafe=TRUE to impose a more stringent stopping rule
offset
a small positive number (between 0 and 0.5) to control how strict the stopping rule is when extrasafe=TRUE. A larger value leads to a more strict stopping rule. The default value offset=0.05 generally works well.
ntrial
the total number of trials to be simulated.

Value

  • get.oc() returns the operating characteristics of the BOIN design as a data frame, including (1) function arguments (1) selection percentage at each dose level (selpercent), (2) the number of patients treated at each dose level (nptsdose), (3) the number of toxicities observed at each dose level (ntoxdose), (4) the average number of toxicities (totaltox), (5) the average number of patients (totaln), and (6) the percentage of early stopping without selecting the MTD (pctearlystop).

Details

The operating characteristics of the BOIN design are generated by simulating trials under the prespecified true toxicity probabilities of the investigational doses. The BOIN design has two built-in stopping rules: (1) stop the trial if the lowest dose is eliminated due to toxicity, and no dose should be selected as the MTD; and (2) stop the trial and select the MTD if the number of patients treated at the current dose reaches n.earlystop. The first stopping rule is a safety rule to protect patients from the case in which all doses are overly toxic. The rationale for the second stopping rule is that when there is a large number (i.e., n.earlystop) of patients assigned to a dose, it means that the dose-finding algorithm has approximately converged. Thus, we can stop the trial early and select the MTD to save sample size and reduce the trial duration.

For some applications, investigators may prefer a more strict safety stopping rule than rule (1) for extra safety when the lowest dose is overly toxic. This can be achieved by setting extrasafe=TRUE, which imposes the following more strict safety stopping rule: stop the trial if (i) the number of patients treated at the lowest dose >=3, and (ii) Pr(toxicity rate of the lowest dose > target | data) > cutoff.eli-offset. As a tradeoff, the strong stopping rule will decrease the MTD selection percentage when the lowest dose actually is the MTD.

References

Liu S. and Yuan, Y. (2015). Bayesian Optimal Interval Designs for Phase I Clinical Trials, Journal of the Royal Statistical Society: Series C, 64, 507-523.

See Also

Tutorial: http://odin.mdacc.tmc.edu/~yyuan/Software/BOIN/BOIN2.0_tutorial.pdf

Paper: http://odin.mdacc.tmc.edu/~yyuan/Software/BOIN/paper.pdf

Examples

Run this code
## Consider a phase I trial aiming to find the MTD with a target toxicity rate of 0.3 
## the maximum sample size is 25 patients in cohort size of 1
## assume the true toxicity rates of 5 doses are (0.05, 0.15, 0.3, 0.45, 0.6)
## run 1,000 simulated trials
ptox = c(0.05, 0.15, 0.3, 0.45, 0.6)
get.oc(target=0.3, p.true=ptox, ncohort=25, cohortsize=1, ntrial=1000)

Run the code above in your browser using DataLab