CFO2d.next: Determinate the dose level for the next cohort in the...

View source: R/CFO2d.next.R

CFO2d.nextR Documentation

Determinate the dose level for the next cohort in the two-dimensional calibration-free odds (2dCFO) design for phase I trials.

Description

In the 2dCFO design for phase I trials, the function is used to determine the dose movement based on the toxicity outcomes of the enrolled cohorts.

Usage

CFO2d.next(target, cys, cns, currdose, 
       prior.para = list(alp.prior = target, bet.prior = 1 - target), 
       cutoff.eli = 0.95, early.stop = 0.95, seed = NULL)

Arguments

target

the target DLT rate.

cys

a matrix of the number of DLTs observed for each dose combination.

cns

a matrix of the number of patients allocated to each dose combination.

currdose

a vector of the current dose indices in the horizontal and vertical direction.

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 be set as the seed of the random number generator for reproducible results. The default value is set to NULL.

Details

In the 2dCFO design, decision-making within the two-dimensional toxicity probability space is conducted by performing two independent one-dimensional CFO analyses along both the horizontal and vertical axes (Wang et al. 2023).

Value

The CFO2d.next() function returns a list with the following components:

  • target: the target DLT rate.

  • cys: a 3 by 3 matrix of the number of DLT observed for each dose combination at and around the current dose.

  • cns: a 3 by 3 matrix of the number of patients allocated to each dose combination at and around the current dose.

  • decision: a vector of length 2 representing the recommended decisions for vertical and horizontal directions, and stop indicates stopping the experiment.

  • currdose: the current dose combination.

  • nextdose: the recommended dose combination for the next cohort. nextdose = (99, 99) indicates that the trial is terminated due to early stopping.

  • overtox: the situation regarding which positions experience over-toxicity. The dose level indicated by overtox and all the dose levels above experience over-toxicity. overtox = NA signifies that the occurrence of over-toxicity did not happen.

Note

When the current dose level is the lowest or highest (i.e., at the boundary), the parts in cys and cns where there is no data are filled with NA.
The dose level indicated by overtox and all the dose levels above experience over-toxicity, and these dose levels will be eliminated.

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.
Wang W, Jin H, Zhang Y, Yin G (2023). Two-dimensional calibration-free odds (2dCFO) design for phase I drug-combination trials. Frontiers in Oncology, 13, 1294258.

Examples

cns <- matrix(c(3, 3, 0,
                0, 6, 0,
                0, 0, 0), 
              nrow = 3, ncol = 3, byrow = TRUE)

cys <- matrix(c(0, 1, 0,
                0, 2, 0,
                0, 0, 0), 
              nrow = 3, ncol = 3, byrow = TRUE)
currdose <- c(2,3)
decision <- CFO2d.next(target = 0.3, cys, cns, currdose = currdose, seed = 1)
summary(decision)

cns <- matrix(c(NA, NA, NA,
                NA, 6, 0,
                NA, 0, 0), 
              nrow = 3, ncol = 3, byrow = TRUE)

cys <- matrix(c(NA, NA, NA,
               NA, 6, 0,
               NA, 0, 0), 
             nrow = 3, ncol = 3, byrow = TRUE)
currdose <- c(1,1)
decision <- CFO2d.next(target = 0.3, cys, cns, currdose = currdose, seed = 1)
summary(decision)


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

Related to CFO2d.next in CFO...