select.obd.kb {Keyboard}R Documentation

Select the Optimal Biological Dose (OBD) for Single-agent Phase I/II Trials

Description

This function selects the optimal biological dose (OBD) at the end of a single-agent phase I/II trial.

Usage

select.obd.kb(
  target.toxicity,
  target.efficacy,
  npts,
  ntox,
  neff,
  p1 = 0.15,
  p2 = 0.4,
  q1 = 0.3,
  q2 = 0.6,
  cutoff.eli.toxicity = 0.95,
  cutoff.eli.efficacy = 0.3,
  w1.toxicity = 0.33,
  w2.toxicity = 1.09,
  indicator = target.toxicity
)

Arguments

target.toxicity

The target dose-limiting toxicity (DLT) rate.

target.efficacy

The target efficacy rate.

npts

The vector containing the total number of patients treated at each dose level.

ntox

The vector containing the number of subjects who experienced toxicities at each dose level.

neff

The vector containing the number of subjects who experienced efficacies at each dose level.

p1

The cutoff lower limit for safety utility function 1, described in the Details section.

p2

The cutoff upper limit for safety utility function 1, described in the Details section.

q1

The cutoff lower limit for efficacy utility function 1, described in the Details section.

q2

The cutoff upper limit for efficacy utility function 1, described in the Details section.

cutoff.eli.toxicity

The cutoff value to eliminate a dose with unacceptable high toxicity for safety. The default value is 0.95.

cutoff.eli.efficacy

The cutoff value for futility rule, the acceptable lowest efficacy. The default value is 0.3.

w1.toxicity

The weight for toxicity utility function 2 and 3, described in the Details section.

w2.toxicity

The weight for toxicity utility function 3, described in the Details section.

indicator

The indicator cutoff value for utility function 3, described in the Details section.

Details

select.obd.kb() selects the OBD that is the most desirable based on benefit-risk tradeoff considering both toxicity and efficacy outcomes. A utility score is used to quantify the desirability of all admissible doses. Calculation of utility scores requires the posterior probabilities for toxicity p_i and efficacy q_i, which can be computed by using beta(\alpha_p + x_i,\beta_p + n_i - x_i) and beta(\alpha_q + y_i,\beta_q + n_i - y_i) assuming that the prior for both p_i and q_i follows independent beta distributions beta(\alpha_p,\beta_p) and beta(\alpha_q,\beta_q). Three criteria are used to calculate the desirability in this function.

The first criterion relies on a utility function for toxicity f_1(p), where p denotes the toxicity rate, and on a utility function for efficacy f_2(q), where q denotes the efficacy rate. f_1(p) is 1 if p \in [0, p1); f_1(p) is 0 if p \in [p2, 1]; f_1(p) is 1- (p-p1)/(p2-p1) if p \in [p1, p2). f_2(p) is 1 if p \in (0, p1). Here, p1 is the cutoff lower limit and p2 is the cutoff upper limit for safety utility function 1f_1(p).

Similarly, f_2(q) is 1 if p \in [0, q1); f_2(q) is 0 if p \in [q2, 1]; f_2(q) is 1- (p-q1)/(q2-q1) if p \in [q1, q2). f_2(p) is 1 if p \in (0, q1). Here, q1 is the cutoff lower limit and q2 is the cutoff upper limit for safety utility function f_2(q).

The utility score that quantifies benefit-risk tradeoff at the current dose i is calculated as follows:

U(p_i, q_i) =f_1(p) * f_2(q)

The second criterion depends on a marginal toxicity probability \pi_{T,i} = beta(\alpha_p + x_i,\beta_p + n_i - x_i) and a marginal efficacy probability \pi_{E,i} = beta(\alpha_q + y_i,\beta_q + n_i - y_i) . Then the utility score is calculated as follows:

U_i= \pi_{E,i} - w_1*\pi_{T,i}

The third criterion also depends on a marginal toxicity probability \pi_{T,i} = beta(\alpha_p + x_i,\beta_p + n_i - x_i) and a marginal efficacy probability \pi_{E,i} = beta(\alpha_q + y_i,\beta_q + n_i - y_i) , but it has an additional penalty when the posterior toxicity probability is high by using an indicator function. Then utility score using this function is calculated as follows:

U_j= \pi_{E,i} - w_1*\pi_{T,i}-w_2*\pi_{T,i}*I(\pi_{T,i}>\rho)

Here, the recommended \rho is the target toxicity rate.

Once the utility score is computed for all the doses, the optimal biological dose is calculated as follows:

d = argmax_i[ U(p_i, q_i) | D]

Value

select.obd.kb() returns the selected dose:

  1. Selected OBD level using utility function 1 ($obd1), as described in the Details section.

  2. Selected OBD level using utility function 2 ($obd2), as described in the Details section.

  3. Selected OBD level using utility function 3 ($obd3), as described in the Details section.

Author(s)

Xiaomeng Yuan, Chen Li, Hongying Sun, Li Tang and Haitao Pan

References

Li DH, Whitmore JB, Guo W, Ji Y. Toxicity and efficacy probability interval design for phase I adoptive cell therapy dose-finding clinical trials. Clinical Cancer Research. 2017; 23:13-20. https://clincancerres.aacrjournals.org/content/23/1/13.long

Liu S, Johnson VE. A robust Bayesian dose-finding design for phase I/II clinical trials. Biostatistics. 2016; 17(2):249-63. https://academic.oup.com/biostatistics/article/17/2/249/1744018

Zhou Y, Lee JJ, Yuan Y. A utility-based Bayesian optimal interval (U-BOIN) phase I/II design to identify the optimal biological dose for targeted and immune therapies. Statistics in Medicine. 2019; 38:S5299-5316. https://onlinelibrary.wiley.com/doi/epdf/10.1002/sim.8361

See Also

Other single-agent phase I/II functions: get.decision.obd.kb(), get.decision.obd2.kb(), get.oc.obd.kb(), get.oc.obd2.kb()

Examples


target.toxicity<-0.3
target.efficacy<-0.4
npts <- c(3,6,12,3,3)
ntox <-  c(1,2,4,2,3)
neff <-  c(0,0,5,1,1)
obd <- select.obd.kb (target.toxicity=target.toxicity,
       target.efficacy= target.efficacy, npts = npts,
       ntox = ntox, neff =  neff)
print(obd)



[Package Keyboard version 0.1.3 Index]