Package 'dfcomb'

Title: 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.
Authors: Marie-Karelle Riviere [aut], Jacques-Henri Jourdan [aut, cre]
Maintainer: Jacques-Henri Jourdan <[email protected]>
License: GPL-3
Version: 3.1-4
Built: 2024-11-04 06:04:40 UTC
Source: https://github.com/cran/dfcomb

Help Index


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 = "[email protected]"))
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 <[email protected]>
Date/Publication: 2024-09-30 15:50:04 UTC
Repository: https://jhjourdan.r-universe.dev
RemoteUrl: https://github.com/cran/dfcomb
RemoteRef: HEAD
RemoteSha: 5806455e0c5c7fdd9ae8bf617bdc6497f313b281

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 <[email protected]>

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 ndose_a1.

prior_tox_a2

A vector of initial guesses of toxicity probabilities associated with the doses of agent 2. Must be of length ndose_a2.

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 pat_incl.

dose_adm2

A vector indicating the dose levels of agents 2 administered to each patient included in the trial. Must be of length pat_incl.

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 pat_incl. This argument is used/required only if tite=FALSE.

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 pat_incl. This argument is used/required only if tite=TRUE.

time_follow

A vector of follow-up times for each patient included in the trial. Must be of length pat_incl. This argument is used/required only if tite=TRUE.

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 to target. 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 to target. 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 least cmin_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 least cmin_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 target (if the start-up ended).

ptox_inf_targ

Estimated probabilities of underdosing, i.e. to be inferior to target_min (if the start-up ended).

ptox_targ

Estimated probabilities to be in the targeted interval [target_min,target_max] (if the start-up ended).

ptox_sup_targ

Estimated probabilities of overdosing, i.e. to be superior to target_max (if the start-up ended).

(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 [email protected]

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

CombIncrease_sim.

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 ndose_a1.

prior_tox_a2

A vector of initial guesses of toxicity probabilities associated with the doses of agent 2. Must be of length ndose_a2.

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 to target. 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 to target. 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 least cmin_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 least cmin_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 [email protected]

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

CombIncrease_next.

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)