Skip to contents

The function get_pred_tox() can be used to derive predictive distributions of the DLT rates of a set of dose levels considered in a new dose finding trial based on historical data from one or more dose-finding trials based on a joint BLRM. The function supports both monotherapy and two-drug combination therapy and is essentially a wrapper for get_MAP() but additionally computes samples from the predictive DLT rates from the drawn samples from the MAP prior. Note that this is equivalent to the posterior distribution of the DLT rates of a trial that has not recorded data yet from a joint BLRM including the specified co-data from other trials.

The function get_pred_tox() can be used for both monotherapy and combination therapy. For the former, the arguments dose2 and dose.ref2 can be left out. The function get_pred_tox_mono() uses a slightly different syntax and output structure that is specifically designed for settings consisting purely of monotherapy trials.

Usage

get_pred_tox(
 doses.of.interest,
 dose1,
 dose2,
 dose.ref1,
 dose.ref2,
 n.pat,
 n.dlt,
 trial,
 prior.mu = list(mu_a1 =  c(logit(0.33), 2),
                 mu_b1 =  c(0,           1),
                 mu_a2 =  c(logit(0.33), 2),
                 mu_b2 =  c(0,           1),
                 mu_eta = c(0,           1.121)
                 ),
 prior.tau = list(tau_a1 =  c(log(0.25),  log(2)/1.96),
                  tau_b1 =  c(log(0.125), log(2)/1.96),
                  tau_a2 =  c(log(0.25),  log(2)/1.96),
                  tau_b2 =  c(log(0.125), log(2)/1.96),
                  tau_eta = c(log(0.125), log(2)/1.96)
                  ),
 saturating = FALSE,
 return.samples = FALSE,
 probs = c(0.025, 0.5, 0.975),
 dosing.intervals = c(0.16, 0.33),
 ...
)

get_pred_tox_mono(
 doses.of.interest,
 dose,
 dose.ref,
 n.pat,
 n.dlt,
 trial,
 prior.mu.mono = list(mu_a =  c(logit(0.33), 2),
                      mu_b =  c(0,          1)),
 prior.tau.mono = list(tau_a =  c(log(0.25),  log(2)/1.96),
                       tau_b =  c(log(0.125), log(2)/1.96)),
 return.samples = FALSE,
 probs = c(0.025, 0.5, 0.975),
 dosing.intervals = c(0.16, 0.33),
 ...
)

Arguments

doses.of.interest

Numerical that defines the set of dose levels for which the meta-analytic predictive DLT rate is to be computed. Its specification differs between get_pred_tox() and get_pred_tox_mono().

For get_pred_tox(): Can be either a vector of length 2 that describes a single dose combination (where one of the doses can be set to 0 for monotherapy doses), or a matrix with 2 rows in which each column defines a dose combination.

For get_pred_tox_mono(): Can be either a vector giving a set of monotherapy dose levels, or a matrix with exactly one row or exactly one column. In both cases, each number in the argument is interpreted as a single dose.

dose1

Numeric vector with non-negative entries. Describes the dose of compound 1 administed to the patients of a cohort in the data, where cohort i is assumed to have received dose1[i] of compound 1. Note that dose1[i] can be set to 0 to indicate that a cohort received monotherapy with compound 2.

dose2

Numeric vector with non-negative entries. Describes the dose of compound 2 administed to the patients of a cohort in the data, where cohort i is assumed to have received dose2[i] of compound 2. Note that dose2[i] can be set to 0 to indicate that a cohort received monotherapy with compound 1.

dose.ref1

Positive number, reference dose for compound 1.

dose.ref2

Positive number, reference dose for compound 2.

n.pat

Numeric vector with non-negative whole numbers as entries. n.pat[i] indicates the number of patients that were treated in cohort i.

n.dlt

Numeric vector with non-negative whole numbers as entries. n.dlt[i] indicates the number of patients that experienced DLT in cohort i.

trial

Numerical or character vector that indicates to which trial a cohort is assigned to. The entries can either be numericals or strings, where 1 and "1" would be interpreted as the same trial. Note that the given entries are internally converted to numbers from 1 to the number of different studies if not already given in this form.

prior.mu

Named list that specifies the distribution of the hypermeans of the parameters of the combination therapy BLRM. Same format, default, and requirements as documented for the function scenario_jointBLRM().

prior.tau

Named list that specifies the distribution of the between-trial heterogeneities of the parameters of the combination therapy BLRM. Same format, default, and requirements as documented for the function scenario_jointBLRM().

saturating

Optional logical, defaults to FALSE. If TRUE, the BLRM will be using a saturating interaction term as described in OncoBayes2::blrm_formula_saturating(). Also refer to the Details section in the documentation of scenario_jointBLRM().

return.samples

Optional logical, defaults to FALSE. If TRUE, the function will return a matrix with samples from the MAP prior additionally to a prior summary.

probs

Optional numerical, defaults to c(0.025, 0.5, 0.975). Indicates which quantiles should be included in the posterior summaries.

dosing.intervals

Optional numeric ascending positive entries between 0 and 1. Defines the limits of the dosing intervals to be evaluated, similarly to scenario_jointBLRM(). The default value is c(0.16, 0.33).

...

Optional additional arguments that are passed to rstan::sampling(). These include the settings for MCMC and the random seed. Refer to the rstan-package for an overview. Note that the function will automatically use iter=10000 and a control argument containing adapt_delta=0.9 to ensure a relatively good fit if the arguments iter and control for rstan::sampling() are not provided manually in ....

dose

Numeric vector with non-negative entries that defines the monotherapy dose levels administered to each cohort.

dose.ref

Positive numerical, reference dose for monotherapy.

prior.mu.mono

Optional named list that specifies the prior. Must have the entries mu_a and mu_b, both of which must be vectors of length 2, where the second entry is a positive number.
The entries need to be:

  • ...$mu_a:
    Defaults to c(logit(0.33), 2), provides mean and SD of the normal distribution used as hypermean of \(log(\alpha)\).

  • ...$mu_b:
    Defaults to c(0, 1), provides mean and SD of the normal distribution used as hypermean of \(log(\beta)\).

prior.tau.mono

Optional named list that specifies the prior. Must have the entries tau_a and tau_b, both of which must be vectors of length 2, where the second entry is a positive number.
The entries need to be:

  • ...$tau_a:
    Defaults to c(log(0.25), log(2)/1.96), provides mean and SD (on log-scale) of the log-normal distribution used as between-trial heterogeneity of \(log(\alpha)\).

  • ...$tau_b:
    Defaults to c(log(0.125), log(2)/1.96), provides mean and SD (on log-scale) of the log-normal distribution used as between-trial heterogeneity of \(log(\beta)\).

Details

Refer to the documentation of scenario_jointBLRM() for a description of the underlying model used to compute predictive distributions of the DLT rates.

The function get_pred_tox() can optionally return the samples from the predictive distribution, which can in turn be used to perform single-dose analyses using e.g. a binomial-beta-mixture model.

References

Stan Development Team (2020). RStan: the R interface to Stan. R package version 2.21.2. https://mc-stan.org.

Neuenschwander, B., Branson, M., & Gsponer, T. (2008). Critical aspects of the Bayesian approach to phase I cancer trials. Statistics in medicine, 27(13), 2420-2439, doi:10.1002/sim.3230.

Schmidli, H., Gsteiger, S., Roychoudhury, S., O'Hagan, A., Spiegelhalter, D., & Neuenschwander B. (2014). Robust meta-analytic-predictive priors in clinical trials with historical control information.

Neuenschwander, B., Matano, A., Tang, Z., Roychoudhury, S., Wandel, S., & Bailey, S. (2014). A Bayesian Industry Approach to Phase I Combination Trials in Oncology. In: Zhao. W & Yang, H. (editors). Statistical methods in drug combination studies. Chapman and Hall/CRC, 95-135, doi:10.1201/b17965.

Neuenschwander, B., Roychoudhury, S., & Schmidli, H. (2016). On the use of co-data in clinical trials. Statistics in Biopharmaceutical Research, 8(3), 345-354, doi:10.1080/19466315.2016.1174149.

Examples

if (FALSE) {
#derive the predictive distribution of the DLT rate of the dose 10+24
#from historical data of three previous trials
pred <- get_pred_tox(
 doses.of.interest = c(10, 24),
 dose1 = c(2, 4, 8, 10, 14, 0,  0,  0,  4,  8,  10, 12),
 dose2 = c(0, 0, 0, 0,  0,  12, 24, 36, 24, 24, 24, 24),
 n.pat = c(3, 3, 3, 9,  6,  3,  12, 3,  3,  3,  9,  3),
 n.dlt = c(0, 0, 0, 0,  2,  0,  1,  0,  0,  0,  1,  1),
 trial = c(1, 1, 1, 1,  1,  2,  2,  2,  3,  3,  3,  3),
 dose.ref1 = 14,
 dose.ref2 = 24,
 return.samples = TRUE
)

#summary
pred$summary

#first eight samples from predictive DLT rate
pred$samples[, 1:8]

}
if (FALSE) {
#derive the predictive distribution of the DLT rates of the doses 8, 12, and
#14 (monotherapy) from historical data of two previous trials
pred_mono <- get_pred_tox_mono(
 doses.of.interest = c(8, 12, 14),
 dose  = c(2, 4, 8, 10, 14, 10, 14),
 n.pat = c(3, 3, 3, 9,  6,  6,  12),
 n.dlt = c(0, 0, 0, 0,  2,  0,  1),
 trial = c(1, 1, 1, 1,  1,  2,  2),
 dose.ref = 14,
 return.samples = TRUE
)

#summary
pred_mono$summary

#first eight samples from predictive DLT rates
pred_mono$samples[, 1:8]

}