Skip to contents

Fit data from one or more monotherapy or combination therapy trials to a hierarchical BLRM and extract estimates of the resulting meta-analytic predictive prior for a new monotherapy or combination therapy trial.

The function get_MAP_mono() supports only monotherapy data (from one or more trials) as input and will produce the MAP prior for a two-parameter monotherapy BLRM.
For the function get_MAP(), data from one or more monotherapy and/or combination therapy trials can be given, which is then used to derive the MAP prior for a five-parameter combination therapy BLRM. Note that this also contains the parameter for the implicit model for the monotherapy DLT rates, so that one can use get_MAP() in principle also to derive MAP priors for monotherapy from both monotherapy and combination therapy data.

Usage

get_MAP(
  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),
  ...
)

get_MAP_mono(
   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),
   ...
)

Arguments

dose1

Numerical vector of non-negative entries that provide the administered dose level of compound 1 for each cohort. To include monotherapy dose levels in the data given to get_MAP(), one can use 0 or NA to indicate that compound 1 was not administered to a cohort. Note that cohorts for which both dose1 and dose2 are either 0 or NA will be removed from the data.

dose2

Numerical vector of non-negative entries that provide the administered dose level of compound 2 for each cohort. To include monotherapy dose levels in the data given to get_MAP(), one can use 0 or NA to indicate that compound 2 was not administered to a cohort. Note that cohorts for which both dose1 and dose2 are either 0 or NA will be removed from the data.

dose.ref1

Positive number, reference dose for compound 1.

dose.ref2

Positive number, reference dose for compound 2.

n.pat

Numerical vector that lists the number of patients for each cohort.

n.dlt

Numerical vector that lists the number of DLTs for each cohort.

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.

...

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

Numerical vector that lists the dose levels of a monotherapy compound applied to each patient. The length must be equal to the number of cohorts in the data.

dose.ref

Positive number, reference dose for the monotherapy compound.

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)\).

Value

A table containing prior summaries of the MAP priors for either the parameters \(log(\alpha)\) and \(log(\beta)\) (function get_MAP_mono()) or of the parameters \(log(\alpha_1)\), \(log(\beta_1)\), \(log(\alpha_2)\), \(log(\beta_2)\), and \(\eta\) (function get_MAP()). If return.samples is TRUE, the output is instead a list with entries ...$summary and ...$samples, where the first entry contains the prior summary and the second entry a table with the drawn samples for each parameter.

Details

The model for computing meta-analytic predictive prior is specified according to Neuenschwander et al. (2014, 2016). A model description of the hierarchical BLRM used by the function to obtain the predictive distribution can be found in the documentation of scenario_jointBLRM().

The underlying model for monotherapy MAP priors is the two-parameter monotherapy variant of the more general hierarchical model that is described in the documentation of scenario_jointBLRM(). As the function get_MAP_mono() only considers monotherapy, only the parameters \(log(\alpha)\) and \(log(\beta)\) are needed to model the DLT rate of each dose level. Besides this, the same hierarchical model structure as described in scenario_jointBLRM() is used.

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) {
MAPprior_combi <- get_MAP(
  dose1 = c(1, 2, 3, 4,   0, 0,   2, 2),
  dose2 = c(0, 0, 0, 0,   5, 8,   5, 8),
  n.pat = c(3, 3, 3, 6,   3, 9,   3, 6),
  n.dlt = c(0, 0, 0, 1,   0, 0,   0, 0),
  trial = c(1, 1, 1, 1,   2, 2,   3, 3),
  dose.ref1 = 5,
  dose.ref2 = 8,
  return.samples = TRUE
)

MAPprior_combi$summary
MAPprior_combi$samples[, 1:8]
}
if (FALSE) {
MAPprior <- get_MAP_mono(
   dose =  c(1, 2, 3, 4),
   n.pat = c(3, 3, 3, 6),
   n.dlt = c(0, 0, 0, 1),
   trial = c(1, 2, 1, 2),
   dose.ref = 5,
   return.samples = TRUE
)

MAPprior$summary
MAPprior$samples[, 1:8]
}