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:
Selected OBD level using utility function 1 (
$obd1
), as described in the Details section.
Selected OBD level using utility function 2 (
$obd2
), as described in the Details section.
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)