lateonset.simu: Conduct one simulation using the calibration-free odds type...

View source: R/lateonset.simu.R

lateonset.simuR Documentation

Conduct one simulation using the calibration-free odds type (CFO-type) design with late-onset toxicity for phase I trials.

Description

Based on the toxicity outcomes of the enrolled cohorts, the function is used to conduct one single simulation and find the maximum tolerated dose (MTD) for the CFO-type designs with late-onset toxicities for phase I trials, specifically, including time-to-event CFO (TITE-CFO) design, fractional CFO (fCFO) design, benchmark CFO design, time-to-event accumulative CFO (TITE-aCFO) design, fractional aCFO (f-aCFO) design, and benchmark aCFO design.

Usage

lateonset.simu(design, target, p.true, init.level = 1, ncohort, cohortsize,
       assess.window, tte.para, accrual.rate, accrual.dist,  
       prior.para = list(alp.prior = target, bet.prior = 1 - target), 
       cutoff.eli = 0.95, early.stop = 0.95, seed = NULL)

Arguments

design

option for selecting different designs, which can be set as 'TITE-CFO', 'TITE-aCFO', 'fCFO', 'f-aCFO', 'bCFO', and 'b-aCFO'. Specifically, 'bCFO' refers to the benchmark CFO design and 'b-aCFO' denotes the benchmark aCFO design.

target

the target DLT rate.

p.true

the true DLT rates under the different dose levels.

init.level

the dose level assigned to the first cohort. The default value init.level is 1.

ncohort

the total number of cohorts.

cohortsize

the number of patients of each cohort.

assess.window

the maximal assessment window size.

tte.para

the parameter related with the distribution of the time to DLT events. The time to DLT is sampled from a Weibull distribution, with tte.para representing the proportion of DLTs occurring within the first half of the assessment window.

accrual.rate

the accrual.rate rate, i.e., the number of patients accrued per unit time.

accrual.dist

the distribution of the arrival times of patients. When accrual.dist = 'fix', it corresponds to all patients in each cohort arriving simultaneously at a given accrual rate. When accrual.dist = 'unif', it corresponds to a uniform distribution, and when accrual.dist = 'exp', it corresponds to an exponential distribution.

prior.para

the prior parameters for a beta distribution, where set as list(alp.prior = target, bet.prior = 1 - target) by default, alp.prior and bet.prior represent the parameters of the prior distribution for the true DLT rate at any dose level. This prior distribution is specified as Beta(alpha.prior, beta.prior).

cutoff.eli

the cutoff to eliminate overly toxic doses for safety. We recommend the default value of cutoff.eli = 0.95 for general use.

early.stop

the threshold value for early stopping. The default value early.stop = 0.95 generally works well.

seed

an integer to set as the seed of the random number generator for reproducible results. The default value is set to NULL.

Value

The lateonset.simu() function returns a list object comprising the following components:

  • target: the target DLT rate.

  • MTD: the selected MTD. MTD = 99 indicates that this trial is terminated due to early stopping.

  • correct: a binary indicator of whether the recommended dose level matches the correct MTD (1 for yes). The correct MTD is the dose level at which the true DLT rate is closest to the target DLT rate.

  • npatients: the total number of patients allocated to all dose levels

  • ntox: the total number of DLTs observed for all dose levels.

  • over.doses: a vector indicating whether each dose is overdosed or not (1 for yes).

  • cohortdose: a vector including the dose level assigned to each cohort.

  • ptoxic: the percentage of subjects assigned to dose levels with a DLT rate greater than the target.

  • patientDLT: a vector including the DLT outcome observed for each patient.

  • sumDLT: the total number of DLT observed.

  • earlystop: a binary indicator of whether the trial is early stopped (1 for yes).

  • p_est: the isotonic estimate of the DLT probablity at each dose and associated 95\% credible interval. p_est = NA if all tested doses are overly toxic.

  • p_overdose: p_overdose: the probability of overdosing defined as Pr(toxicity > \code{target}|data). p_overdose = NA if all tested doses are overly toxic.

  • totaltime: the duration of the trial.

  • entertimes: the time that each participant enters the trial.

  • DLT.times: the time to DLT for each subject in the trial. If no DLT occurs for a certain subject, DLT.times is 0.

Note

The early stopping and dose elimination rules are incorporated into the design to ensure patient safety and benefit.

Author(s)

Jialu Fang, Ninghao Zhang, Wenliang Wang, and Guosheng Yin

References

Jin H, Yin G (2022). CFO: Calibration-free odds design for phase I/II clinical trials. Statistical Methods in Medical Research, 31(6), 1051-1066.
Jin H, Yin G (2023). Time‐to‐event calibration‐free odds design: A robust efficient design for phase I trials with late‐onset outcomes. Pharmaceutical Statistics. 22(5), 773–783.
Yin G, Zheng S, Xu J (2013). Fractional dose-finding methods with late-onset toxicity in phase I clinical trials. Journal of Biopharmaceutical Statistics, 23(4), 856-870.
Fang J, Yin G (2024). Fractional accumulative calibration‐free odds (f‐aCFO) design for delayed toxicity in phase I clinical trials. Statistics in Medicine.

Examples

target <- 0.2; ncohort <- 12; cohortsize <- 3; init.level <- 1
p.true <- c(0.01, 0.07, 0.20, 0.35, 0.50, 0.65, 0.80)
assess.window <- 3; accrual.rate <- 2; tte.para <- 0.5; accrual.dist <- 'unif'
## find the MTD for a single TITE-CFO simulation
TITECFOtrial <- lateonset.simu (design = 'TITE-CFO', target, p.true, init.level,  
                ncohort, cohortsize, assess.window, tte.para, accrual.rate, accrual.dist, seed = 1)
summary(TITECFOtrial)
plot(TITECFOtrial)
## find the MTD for a single TITE-aCFO simulation
TITEaCFOtrial <- lateonset.simu (design = 'TITE-aCFO', target, p.true, init.level,  
                ncohort, cohortsize, assess.window, tte.para, accrual.rate, accrual.dist, seed = 1)
summary(TITEaCFOtrial)
plot(TITEaCFOtrial)
## find the MTD for a single fCFO simulation
fCFOtrial <- lateonset.simu (design = 'fCFO', target, p.true, init.level,  
                ncohort, cohortsize, assess.window, tte.para, accrual.rate, accrual.dist, seed = 1)
summary(fCFOtrial)
plot(fCFOtrial)
## find the MTD for a single f-aCFO simulation
faCFOtrial <- lateonset.simu (design = 'f-aCFO', target, p.true, init.level,  
                ncohort, cohortsize, assess.window, tte.para, accrual.rate, accrual.dist, seed = 1)
summary(faCFOtrial)
plot(faCFOtrial)

CFO documentation built on April 4, 2025, 2:34 a.m.

Related to lateonset.simu in CFO...