Type: | Package |
Title: | Phase I/II Adaptive Dose-Finding Design for Combination Studies |
Version: | 3.1-4 |
Date: | 2024-09-30 |
Copyright: | src/arms.c and src/arms.h are copyright Wally Gilks. All other files are copyright Sanofi-Aventis R&D, Institut de Recherches Internationales Servier and Institut national de la sante et de la recherche medicale. |
Description: | Phase I/II adaptive dose-finding design for combination studies where toxicity rates are supposed to increase with both agents. |
License: | GPL-3 |
Depends: | R (≥ 3.2.3) |
LinkingTo: | BH (≥ 1.55), Rcpp, RcppProgress (≥ 0.2.1) |
NeedsCompilation: | yes |
Packaged: | 2024-09-30 15:13:53 UTC; jjourdan |
Author: | Marie-Karelle Riviere [aut], Jacques-Henri Jourdan [aut, cre] |
Maintainer: | Jacques-Henri Jourdan <jacques-henri.jourdan@cnrs.fr> |
Repository: | CRAN |
Date/Publication: | 2024-09-30 15:50:04 UTC |
Phase I/II Adaptive Dose-Finding Design for Combination Studies
Description
Phase I/II adaptive dose-finding design for combination studies where toxicity rates are supposed to increase with both agents.
Details
The DESCRIPTION file:
Package: | dfcomb |
Type: | Package |
Title: | Phase I/II Adaptive Dose-Finding Design for Combination Studies |
Version: | 3.1-4 |
Date: | 2024-09-30 |
Authors@R: | c(person(given = "Marie-Karelle", family = "Riviere", role = "aut"), person(given = "Jacques-Henri", family = "Jourdan", role = c("aut", "cre"), email = "jacques-henri.jourdan@cnrs.fr")) |
Copyright: | src/arms.c and src/arms.h are copyright Wally Gilks. All other files are copyright Sanofi-Aventis R&D, Institut de Recherches Internationales Servier and Institut national de la sante et de la recherche medicale. |
Description: | Phase I/II adaptive dose-finding design for combination studies where toxicity rates are supposed to increase with both agents. |
License: | GPL-3 |
Depends: | R (>= 3.2.3) |
LinkingTo: | BH (>= 1.55), Rcpp, RcppProgress (>= 0.2.1) |
NeedsCompilation: | yes |
Author: | Marie-Karelle Riviere [aut], Jacques-Henri Jourdan [aut, cre] |
Maintainer: | Jacques-Henri Jourdan <jacques-henri.jourdan@cnrs.fr> |
Index of help topics:
CombIncrease_next Combination determination with logistic model CombIncrease_sim Combination design Simulator using Logistic model dfcomb-package Phase I/II Adaptive Dose-Finding Design for Combination Studies
Author(s)
Marie-Karelle Riviere [aut], Jacques-Henri Jourdan [aut, cre]
Maintainer: Jacques-Henri Jourdan <jacques-henri.jourdan@cnrs.fr>
References
Riviere MK, Yuan Y, Dubois F, Zohar S (2014). A Bayesian dose-finding design for drug combination clinical trials based on the logistic model. Pharm Stat, 13, 4:247-57.
Combination determination with logistic model
Description
CombIncrease_next
is used to determine the next or recommended combination in a phase I combination clinical trial using the design proposed by Riviere et al. entitled "A Bayesian dose-finding design for drug combination clinical trials based on the logistic model".
Usage
CombIncrease_next(ndose_a1, ndose_a2, target, target_min, target_max,
prior_tox_a1, prior_tox_a2, cohort, final, pat_incl, dose_adm1,
dose_adm2, tite=FALSE, toxicity, time_full=0, time_tox=0,
time_follow=0, c_e=0.85, c_d=0.45, c_stop=0.95, c_t=0.5, c_over=0.25,
cmin_overunder=2, cmin_mtd=3, cmin_recom=1, early_stop=1, alloc_rule=1,
nburn=2000, niter=5000)
Arguments
ndose_a1 |
Number of dose levels for agent 1. |
ndose_a2 |
Number of dose levels for agent 2. |
target |
Toxicity (probability) target. |
target_min |
Minimum of the targeted toxicity interval. |
target_max |
Maximum of the targeted toxicity interval. |
prior_tox_a1 |
A vector of initial guesses of toxicity probabilities associated with the doses of agent 1. Must be of length |
prior_tox_a2 |
A vector of initial guesses of toxicity probabilities associated with the doses of agent 2. Must be of length |
cohort |
Cohort size. |
final |
A boolean with value TRUE if the trial is finished and the recommended combination for further phases should be given, or FALSE (default value) if the combination determination is performed for the next cohort of patients. |
pat_incl |
Current number of patients included. |
dose_adm1 |
A vector indicating the dose levels of agents 1 administered to each patient included in the trial. Must be of length |
dose_adm2 |
A vector indicating the dose levels of agents 2 administered to each patient included in the trial. Must be of length |
tite |
A boolean indicating if the toxicity is considered as a time-to-event outcome (TRUE), or as a binary outcome (default value FALSE). |
toxicity |
A vector of observed toxicities (DLTs) for each patient included in the trial. Must be of length |
time_full |
Full follow-up time window. This argument is used only if tite=TRUE. |
time_tox |
A vector of times-to-toxicity for each patient included in the trial. If no toxicity was observed for a patient, must be filled with +Inf. Must be of length |
time_follow |
A vector of follow-up times for each patient included in the trial. Must be of length |
c_e |
Probability threshold for dose-escalation. The default value is set at 0.85. |
c_d |
Probability threshold for dose-deescalation. The default value is set at 0.45. |
c_stop |
Probability threshold for early trial termination. The default value is set at 0.95. |
c_t |
Probability threshold for early trial termination for finding the MTD (see details). The default value is set at 0.5. |
c_over |
Probability threshold to control over-dosing (see details). |
cmin_overunder |
Minimum number of cohorts to be included at the lowest/highest combination before possible early trial termination for over-toxicity or under-toxicity (see details). The default value is set at 2. |
cmin_mtd |
Minimum number of cohorts to be included at the recommended combination before possible early trial termination for finding the MTD (see details). The default value is set at 3. |
cmin_recom |
Minimum number of cohorts to be included at the recommended combination at the end of the trial. The default value is set at 1. |
alloc_rule |
Interger (1, 2, or 3) indicating which allocation rule is used (see details). The default value is set at 1. |
early_stop |
Interger (1, 2, or 3) indicating which early stopping rule is used (see details). The default value is set at 1. |
nburn |
Number of burn-in for HMC. The default value is set at 2000. |
niter |
Number of iterations for HMC. The default value is set at 5000. |
Details
Allocation rule:
-
alloc_rule=1
(Riviere et al 2014): If P(toxicity probability at combination (i,j) <target
) >c_e
: among combinations in the neighborhood (-1, +1), (0, +1), (+1, 0), (+1, -1), choose the combination with a higher estimated toxicity probability than the current combination and with the estimated toxicity probability closest totarget
. If P(toxicity probability at combination (i,j) >target
) > 1-c_d
: among neighborhood (-1, +1), (-1, 0), (0, -1), (+1, -1), choose the combination with a lower estimated toxicity probability than the current combination and with the estimated toxicity probability closest totarget
. Otherwise, remain on the same combination. -
alloc_rule=2
: Among combinations already tested and combinations in the neighborhood (-1, 0), (-1, +1), (0, +1), (+1, 0), (+1, -1), (0, -1), (-1, -1) of a combination tested, choose the combination with the highest posterior probability to be in the targeted interval [target_min
,target_max
] while controling overdosing i.e. P(toxicity probability at combination (i,j) >target_max
) <c_over
. -
alloc_rule=3
: Among combinations in the neighborhood (-1, 0), (-1, +1), (0, +1), (+1, 0), (+1, -1), (0, -1), (-1, -1) of the current combination, choose the combination with the highest posterior probability to be in the targeted interval [target_min
,target_max
] while controling overdosing i.e. P(toxicity probability at combination (i,j) >target_max
) <c_over
.
Early stopping for over-dosing:
If the current combination is the lowest (1, 1) and at least cmin_overunder
cohorts have been included at that combination and P(toxicity probability at combination (i,j) > target
) >= c_stop
then stop the trial and do not recommend any combination.
Early stopping for under-dosing:
If the current combination is the highest and at least cmin_overunder
cohorts have been included at that combination and P(toxicity probability at combination (i,j) < target
) >= c_stop
then stop the trial and do not recommend any combination.
Early stopping for identifying the MTD:
-
early_stop=1
(Riviere et al 2014): No stopping rule, include patients until maximum sample size is reached. -
early_stop=2
: If the next recommended combination has been tested on at leastcmin_mtd
cohorts and has a posterior probability to be in the targeted interval [target_min
,target_max
] that is >=c_t
and also control overdosing i.e. P(toxicity probability at current combination >target_max
) <c_over
then stop the trial and recommend this combination. -
early_stop=3
: If at leastcmin_mtd
cohorts have been included at the next recommended combination then stop the trial and recommend this combination.
Stopping at the maximum sample size:
If the maximum sample size is reached and no stopping rule is met, then the recommended combination is the one that was tested on at least cmin_recom
cohorts and with the highest posterior probability to be in the targeted interval [target_min
, target_max
].
Value
An object of class "CombIncrease_next" is returned, consisting of determination of the next combination and estimations. Objects generated by CombIncrease_next
contain at least the following components:
n_pat_comb |
Number of patients per combination. |
n_tox_comb |
Number of observed toxicities per combination. |
pi |
Estimated toxicity probabilities (if the start-up ended). |
ptox_inf |
Estimated probabilities that the toxicity probability is inferior to |
ptox_inf_targ |
Estimated probabilities of underdosing, i.e. to be inferior to |
ptox_targ |
Estimated probabilities to be in the targeted interval [ |
ptox_sup_targ |
Estimated probabilities of overdosing, i.e. to be superior to |
(cdose1 , cdose2) |
NEXT RECOMMENDED COMBINATION. |
inconc |
Boolean indicating if trial must stop for under/over dosing. |
early_conc |
Boolean indicating if trial can be stopped earlier for finding the MTD. |
Author(s)
Jacques-Henri Jourdan and Marie-Karelle Riviere-Jourdan eldamjh@gmail.com
References
Riviere, M-K., Yuan, Y., Dubois, F., and Zohar, S. (2014). A Bayesian dose-finding design for drug combination clinical trials based on the logistic model. Pharmaceutical Statistics.
See Also
Examples
prior_a1 = c(0.12, 0.2, 0.3, 0.4, 0.5)
prior_a2 = c(0.2, 0.3, 0.4)
toxicity1 = c(0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1)
dose1 = c(1,1,1,2,2,2,3,3,3,3,3,3,3,3,3,4,4,4)
dose2 = c(1,1,1,2,2,2,3,3,3,2,2,2,1,1,1,1,1,1)
t_tox = c(rep(+Inf,8),2.9,+Inf,4.6,+Inf,+Inf,+Inf,+Inf,+Inf,+Inf,5.2)
follow = c(rep(6,15), 4.9, 3.1, 1.3)
next1 = CombIncrease_next(ndose_a1=5, ndose_a2=3, target=0.3,
target_min=0.2, target_max=0.4, prior_tox_a1=prior_a1,
prior_tox_a2=prior_a2, cohort=3, final=FALSE, pat_incl=18,
dose_adm1=dose1, dose_adm2=dose2, toxicity=toxicity1, c_over=1,
cmin_overunder=3, cmin_recom=1, early_stop=1, alloc_rule=1)
next1
next2 = CombIncrease_next(ndose_a1=5, ndose_a2=3, target=0.3,
target_min=0.2, target_max=0.4, prior_tox_a1=prior_a1, prior_tox_a2=prior_a2,
cohort=3, final=FALSE, pat_incl=18, dose_adm1=dose1,
dose_adm2=dose2, tite=TRUE, time_full=6, time_tox=t_tox,
time_follow=follow, c_over=1, cmin_overunder=3, cmin_recom=1,
early_stop=1, alloc_rule=1)
next2
Combination design Simulator using Logistic model
Description
CombIncrease_sim
is used to generate simulation replicates of phase I clinical trial for combination studies where the toxicity and efficacy of both agents is assumed to increase with the dose using the design proposed by Riviere et al. entitled "A Bayesian dose-finding design for drug combination clinical trials based on the logistic model".
Usage
CombIncrease_sim(ndose_a1, ndose_a2, p_tox, target, target_min, target_max,
prior_tox_a1, prior_tox_a2, n_cohort, cohort, tite=FALSE, time_full=0,
poisson_rate=0, nsim, c_e=0.85, c_d=0.45, c_stop=0.95, c_t=0.5, c_over=0.25,
cmin_overunder=2, cmin_mtd=3, cmin_recom=1, startup=1, alloc_rule=1,
early_stop=1, init_dose_1=1, init_dose_2=1, nburn=2000, niter=5000, seed=14061991)
Arguments
ndose_a1 |
Number of dose levels for agent 1. |
ndose_a2 |
Number of dose levels for agent 2. |
p_tox |
A matrix of the true toxicity probabilities associated with the combinations. True toxicity probabilities should be entered with agent 1 in row and agent 2 in column, with increasing toxicity probabilities with both row and column numbers (see examples). |
target |
Toxicity (probability) target. |
target_min |
Minimum of the targeted toxicity interval. |
target_max |
Maximum of the targeted toxicity interval. |
prior_tox_a1 |
A vector of initial guesses of toxicity probabilities associated with the doses of agent 1. Must be of length |
prior_tox_a2 |
A vector of initial guesses of toxicity probabilities associated with the doses of agent 2. Must be of length |
n_cohort |
Total number of cohorts to include in the trial. |
cohort |
Cohort size. |
tite |
A boolean indicating if the toxicity is considered as a time-to-event outcome (TRUE), or as a binary outcome (default value FALSE). |
time_full |
Full follow-up time window. This argument is used only if tite=TRUE. |
poisson_rate |
A value indicating the rate for the Poisson process used to simulate patient arrival, i.e. expected number of arrivals per observation window. This argument is used only if tite=TRUE. |
nsim |
Number of simulations. |
c_e |
Probability threshold for dose-escalation. The default value is set at 0.85. |
c_d |
Probability threshold for dose-deescalation. The default value is set at 0.45. |
c_stop |
Probability threshold for early trial termination due to over-toxicity or under-toxicity (see details). The default value is set at 0.95. |
c_t |
Probability threshold for early trial termination for finding the MTD (see details). The default value is set at 0.5. |
c_over |
Probability threshold to control over-dosing (see details). |
cmin_overunder |
Minimum number of cohorts to be included at the lowest/highest combination before possible early trial termination for over-toxicity or under-toxicity (see details). The default value is set at 2. |
cmin_mtd |
Minimum number of cohorts to be included at the recommended combination before possible early trial termination for finding the MTD (see details). The default value is set at 3. |
cmin_recom |
Minimum number of cohorts to be included at the recommended combination at the end of the trial. The default value is set at 1. |
startup |
Interger (0, 1, 2, or 3) indicating which start-up phase is used (see details). The default value is set at 1. |
alloc_rule |
Interger (1, 2, or 3) indicating which allocation rule is used (see details). The default value is set at 1. |
early_stop |
Interger (1, 2, or 3) indicating which early stopping rule is used (see details). The default value is set at 1. |
init_dose_1 |
Initial dose for agent 1. The default is 1. |
init_dose_2 |
Initial dose for agent 2. The default is 1. |
nburn |
Number of burn-in for HMC. The default value is set at 2000. |
niter |
Number of iterations for HMC. The default value is set at 5000. |
seed |
Seed of the random number generator. Default value is set at 14061991. |
Details
Start-up phase:
-
startup=0
: No startup phase: the first tested combination is forced to be the initial combination. The following ones use the normal allocation rule.. -
startup=1
(Riviere et al 2014): Begin at the initial combination and increase both agent (+1, +1) until the first toxicity is observed or maximum combination is reached. -
startup=2
: Begin at the initial combination and increase agent 1 (+1, 0) until a toxicity is observed or maximum dose is reached. Then begin at (init_dose1,init_dose2+1) and increase agent 2 (0, +1) until a toxicity is observed or maximum dose is reached. -
startup=3
: Begin at the initial combination and increase alternatively each agent (+1, 0) then (0, +1) until the first toxicity is observed or maximum combination is reached.
Allocation rule:
-
alloc_rule=1
(Riviere et al 2014): If P(toxicity probability at combination (i,j) <target
) >c_e
: among combinations in the neighborhood (-1, +1), (0, +1), (+1, 0), (+1, -1), choose the combination with a higher estimated toxicity probability than the current combination and with the estimated toxicity probability closest totarget
. If P(toxicity probability at combination (i,j) >target
) > 1-c_d
: among neighborhood (-1, +1), (-1, 0), (0, -1), (+1, -1), choose the combination with a lower estimated toxicity probability than the current combination and with the estimated toxicity probability closest totarget
. Otherwise, remain on the same combination. -
alloc_rule=2
: Among combinations already tested and combinations in the neighborhood (-1, 0), (-1, +1), (0, +1), (+1, 0), (+1, -1), (0, -1), (-1, -1) of a combination tested, choose the combination with the highest posterior probability to be in the targeted interval [target_min
,target_max
] while controling overdosing i.e. P(toxicity probability at combination (i,j) >target_max
) <c_over
. -
alloc_rule=3
: Among combinations in the neighborhood (-1, 0), (-1, +1), (0, +1), (+1, 0), (+1, -1), (0, -1), (-1, -1) of the current combination, choose the combination with the highest posterior probability to be in the targeted interval [target_min
,target_max
] while controling overdosing i.e. P(toxicity probability at combination (i,j) >target_max
) <c_over
.
Early stopping for over-dosing:
If the current combination is the lowest (1, 1) and at least cmin_overunder
cohorts have been included at that combination and P(toxicity probability at combination (i,j) > target
) >= c_stop
then stop the trial and do not recommend any combination.
Early stopping for under-dosing:
If the current combination is the highest and at least cmin_overunder
cohorts have been included at that combination and P(toxicity probability at combination (i,j) < target
) >= c_stop
then stop the trial and do not recommend any combination.
Early stopping for identifying the MTD:
-
early_stop=1
(Riviere et al 2014): No stopping rule, include patients until maximum sample size is reached. -
early_stop=2
: If the next recommended combination has been tested on at leastcmin_mtd
cohorts and has a posterior probability to be in the targeted interval [target_min
,target_max
] that is >=c_t
and also control overdosing i.e. P(toxicity probability at current combination >target_max
) <c_over
then stop the trial and recommend this combination. -
early_stop=3
: If at leastcmin_mtd
cohorts have been included at the next recommended combination then stop the trial and recommend this combination.
Stopping at the maximum sample size:
If the maximum sample size is reached and no stopping rule is met, then the recommended combination is the one that was tested on at least cmin_recom
cohorts and with the highest posterior probability to be in the targeted interval [target_min
, target_max
].
Value
An object of class "CombIncrease_sim" is returned, consisting of the operating characteristics of the design specified. Objects generated by CombIncrease_sim
contain at least the following components:
rec_dose |
Percentage of combination selection. |
n_pat_dose |
Mean number of patients at each combination. |
n_tox_dose |
Mean number of toxicities at each combination. |
inconc |
Percentage of inclusive trials. |
early_conc |
Percentage of trials stopping with criterion for finding MTD. |
nsim |
Number of simulations (if function stopped while executed, return the current number of simulations performed with associated other outputs). |
pat_tot |
Total mean number of patients accrued. |
tab_pat |
Vector with the number of patients included for each simulation. |
Author(s)
Jacques-Henri Jourdan and Marie-Karelle Riviere-Jourdan eldamjh@gmail.com
References
Riviere, M-K., Yuan, Y., Dubois, F., and Zohar, S. (2014). A Bayesian dose-finding design for drug combination clinical trials based on the logistic model. Pharmaceutical Statistics.
See Also
Examples
p_tox_sc1 = matrix(c(0.05,0.10,0.15,0.30,0.45,
0.10,0.15,0.30,0.45,0.55,
0.15,0.30,0.45,0.50,0.60),nrow=5,ncol=3)
prior_a1 = c(0.12, 0.2, 0.3, 0.4, 0.5)
prior_a2 = c(0.2, 0.3, 0.4)
sim1 = CombIncrease_sim(ndose_a1=5, ndose_a2=3, p_tox=p_tox_sc1, target=0.30,
target_min=0.20, target_max=0.40, prior_tox_a1=prior_a1,
prior_tox_a2=prior_a2, n_cohort=20, cohort=3, tite=FALSE, nsim=2000,
c_over=1, cmin_overunder=3, cmin_recom=1, startup=1, alloc_rule=1,
early_stop=1, seed=14061991)
sim1
# Dummy example, running quickly
useless = CombIncrease_sim(ndose_a1=3, ndose_a2=2,
p_tox=matrix(c(0.05,0.15,0.30,0.15,0.30,0.45),nrow=3), target=0.30,
target_min=0.20, target_max=0.40, prior_tox_a1=c(0.2,0.3,0.4),
prior_tox_a2=c(0.2,0.3), n_cohort=2, cohort=2, nsim=1)