Type: Package
Title: Bayesian Continual Reassessment Method for Phase I Dose-Escalation Trials
Version: 0.5.4
Date: 2019-07-29
Maintainer: Graham Wheeler <graham.wheeler@ucl.ac.uk>
Description: Implements a wide variety of one- and two-parameter Bayesian CRM designs. The program can run interactively, allowing the user to enter outcomes after each cohort has been recruited, or via simulation to assess operating characteristics. See Sweeting et al. (2013): <doi:10.18637/jss.v054.i13>.
License: GPL-2 | GPL-3 [expanded from: GPL (≥ 2)]
LazyLoad: yes
Imports: graphics, stats, mvtnorm, rlang, ggplot2 (≥ 1.0.1), grid, knitr
Suggests: BRugs, R2WinBUGS, rjags
RoxygenNote: 6.1.1
URL: https://github.com/mikesweeting/bcrm
BugReports: https://github.com/mikesweeting/bcrm/issues
Encoding: UTF-8
NeedsCompilation: no
Packaged: 2019-08-19 09:43:22 UTC; wheel
Author: Michael Sweeting [aut], Graham Wheeler [aut, cre]
Repository: CRAN
Date/Publication: 2019-08-23 13:00:11 UTC

Bayesian Continual Reassessment Method for Phase I Dose-Escalation Trials

Description

Implements a wide variety of Bayesian CRM designs. The program can run interactively, allowing the user to enter outcomes after each cohort has been recruited, or via simulation to assess operating characteristics.

Details

Package: bcrm
Type: Package
Version: 0.5.1
Date: 2019-04-03
License: GPL (>= 2)
LazyLoad: yes

Author(s)

Michael Sweeting michael.sweeting@leicester.ac.uk

Graham Wheeler graham.wheeler@ucl.ac.uk

Maintainer: Graham Wheeler graham.wheeler@ucl.ac.uk

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13


Returns samples from the posterior distributions of each model parameter using OpenBUGS.

Description

If ff = "logit2" (i.e. a two-parameter logistic model is used), a matrix of dimensions production.itr-by-2 is returned (the first and second columns containing the posterior samples for the intercept and slope parameters respectively). Otherwise, a vector of length production.itr is returned.

Usage

Posterior.BRugs(tox, notox, sdose, ff, prior.alpha, burnin.itr,
  production.itr)

Arguments

tox

A vector of length k showing the number of patient who had toxicities at each dose level

notox

A vector of length k showing the number of patients who did not have toxicities at each dose level

sdose

A vector of length k listing the standardised doses to be used in the CRM model.

ff

A string indicating the functional form of the dose-response curve. Options are

ht

1-parameter hyperbolic tangent

logit1

1-parameter logistic

power

1-parameter power

logit2

2-parameter logistic

prior.alpha

A list of length 3 containing the distributional information for the prior. The first element is a number from 1-4 specifying the type of distribution. Options are

  1. Gamma(a, b), where a=shape, b=scale: mean=a*b, variance=a*b*b

  2. Uniform(a, b), where a=min, b=max

  3. Lognormal(a, b), where a=mean on the log scale, b=variance on the log scale

  4. Bivariate Lognormal(a, b), where a=mean vector on the log scale, b=Variance-covariance matrix on the log scale. This prior should be used only in conjunction with a two-parameter logistic model.

The second and third elements of the list are the parameters a and b, respectively.

burnin.itr

Number of burn-in iterations (default 2000).

production.itr

Number of production iterations (default 2000).

Author(s)

Michael Sweeting mjs212@medschl.cam.ac.uk (University of Cambridge, UK), drawing on code originally developed by J. Jack Lee and Nan Chen, Department of Biostatistics, the University of Texas M. D. Anderson Cancer Center

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

See Also

bcrm, find.x

Examples


## Dose-escalation cancer trial example as described in Neuenschwander et al 2008.
## Pre-defined doses
dose <- c(1, 2.5, 5, 10, 15, 20, 25, 30, 40, 50, 75, 100, 150, 200, 250)
## Pre-specified probabilities of toxicity
## [dose levels 11-15 not specified in the paper,  and are for illustration only]
p.tox0 <- c(0.010, 0.015, 0.020, 0.025, 0.030, 0.040, 0.050,
  0.100, 0.170, 0.300, 0.400, 0.500, 0.650, 0.800, 0.900)
## Data from the first 5 cohorts of 18 patients
tox <- c(0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0)
notox <- c(3, 4, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
## Target toxicity level
target.tox <- 0.30

## Prior distribution for the MTD given a lognormal(0, 1.34^2) distribution for alpha
## and a power model functional form
prior.alpha <- list(3, 0, 1.34^2)
ff <- "power"
samples.alpha <- getprior(prior.alpha, 2000)
mtd <- find.x(ff, target.tox, alpha=samples.alpha)
hist(mtd)

## Standardised doses
sdose <- find.x(ff, p.tox0, alpha=1)

## Posterior distribution of the MTD (on standardised dose scale) using data 
## from the cancer trial described in Neuenschwander et al 2008.
## Using BRugs
## Not run: 
posterior.samples <- Posterior.BRugs(tox, notox, sdose, ff, prior.alpha
  , burnin.itr=2000, production.itr=2000)
  
## End(Not run)


Returns samples from the posterior distributions of each model parameter using WinBUGS

Description

If ff = "logit2" (i.e. a two-parameter logistic model is used), a matrix of dimensions production.itr-by-2 is returned (the first and second columns containing the posterior samples for the intercept and slope parameters respectively). Otherwise, a vector of length production.itr is returned.

Usage

Posterior.R2WinBUGS(tox, notox, sdose, ff, prior.alpha, burnin.itr,
  production.itr, bugs.directory)

Arguments

tox

A vector of length k showing the number of patient who had toxicities at each dose level

notox

A vector of length k showing the number of patients who did not have toxicities at each dose level

sdose

A vector of length k listing the standardised doses to be used in the CRM model.

ff

A string indicating the functional form of the dose-response curve. Options are

ht

1-parameter hyperbolic tangent

logit1

1-parameter logistic

power

1-parameter power

logit2

2-parameter logistic

prior.alpha

A list of length 3 containing the distributional information for the prior. The first element is a number from 1-4 specifying the type of distribution. Options are

  1. Gamma(a, b), where a=shape, b=scale: mean=a*b, variance=a*b*b

  2. Uniform(a, b), where a=min, b=max

  3. Lognormal(a, b), where a=mean on the log scale, b=variance on the log scale

  4. Bivariate Lognormal(a, b), where a=mean vector on the log scale, b=Variance-covariance matrix on the log scale. This prior should be used only in conjunction with a two-parameter logistic model.

The second and third elements of the list are the parameters a and b, respectively.

burnin.itr

Number of burn-in iterations (default 2000).

production.itr

Number of production iterations (default 2000).

bugs.directory

directory that contains the WinBUGS executable, defaults to C:/Program Files/WinBUGS14/

Author(s)

Michael Sweeting mjs212@medschl.cam.ac.uk (University of Cambridge, UK), drawing on code originally developed by J. Jack Lee and Nan Chen, Department of Biostatistics, the University of Texas M. D. Anderson Cancer Center

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

See Also

bcrm, find.x

Examples


## Dose-escalation cancer trial example as described in Neuenschwander et al 2008.
## Pre-defined doses
dose <- c(1, 2.5, 5, 10, 15, 20, 25, 30, 40, 50, 75, 100, 150, 200, 250)
## Pre-specified probabilities of toxicity
## [dose levels 11-15 not specified in the paper,  and are for illustration only]
p.tox0 <- c(0.010, 0.015, 0.020, 0.025, 0.030, 0.040, 0.050,
  0.100, 0.170, 0.300, 0.400, 0.500, 0.650, 0.800, 0.900)
## Data from the first 5 cohorts of 18 patients
tox <- c(0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0)
notox <- c(3, 4, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
## Target toxicity level
target.tox <- 0.30

## Prior distribution for the MTD given a lognormal(0, 1.34^2) distribution for alpha
## and a power model functional form
prior.alpha <- list(3, 0, 1.34^2)
ff <- "power"
samples.alpha <- getprior(prior.alpha, 2000)
mtd <- find.x(ff, target.tox, alpha=samples.alpha)
hist(mtd)

## Standardised doses
sdose <- find.x(ff, p.tox0, alpha=1)

## Posterior distribution of the MTD (on standardised dose scale) using data 
## from the cancer trial described in Neuenschwander et al 2008.
## Using R2WinBUGS
## Not run: 
posterior.samples <- Posterior.R2WinBUGS(tox, notox, sdose, ff, prior.alpha
  , burnin.itr=2000, production.itr=2000, bugs.directory = "C:/Program Files/WinBUGS14/")
  
## End(Not run)


Returns posterior mean parameter value and summaries of distributions for probability of DLT at each dose level

Description

Returns posterior mean parameter value and summaries of distributions for probability of DLT at each dose level

Usage

Posterior.exact(tox, notox, sdose, ff, prior.alpha)

Arguments

tox

A vector of length k showing the number of patient who had toxicities at each dose level

notox

A vector of length k showing the number of patients who did not have toxicities at each dose level

sdose

A vector of length k listing the standardised doses to be used in the CRM model.

ff

A string indicating the functional form of the dose-response curve. Options are

ht

1-parameter hyperbolic tangent

logit1

1-parameter logistic

power

1-parameter power

logit2

2-parameter logistic

prior.alpha

A list of length 3 containing the distributional information for the prior. The first element is a number from 1-4 specifying the type of distribution. Options are

  1. Gamma(a, b), where a=shape, b=scale: mean=a*b, variance=a*b*b

  2. Uniform(a, b), where a=min, b=max

  3. Lognormal(a, b), where a=mean on the log scale, b=variance on the log scale

  4. Bivariate Lognormal(a, b), where a=mean vector on the log scale, b=Variance-covariance matrix on the log scale. This prior should be used only in conjunction with a two-parameter logistic model.

The second and third elements of the list are the parameters a and b, respectively.

Author(s)

Michael Sweeting mjs212@medschl.cam.ac.uk (University of Cambridge, UK), drawing on code originally developed by J. Jack Lee and Nan Chen, Department of Biostatistics, the University of Texas M. D. Anderson Cancer Center

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

See Also

bcrm, find.x

Examples


## Dose-escalation cancer trial example as described in Neuenschwander et al 2008.
## Pre-defined doses
dose <- c(1, 2.5, 5, 10, 15, 20, 25, 30, 40, 50, 75, 100, 150, 200, 250)
## Pre-specified probabilities of toxicity
## [dose levels 11-15 not specified in the paper,  and are for illustration only]
p.tox0 <- c(0.010, 0.015, 0.020, 0.025, 0.030, 0.040, 0.050,
  0.100, 0.170, 0.300, 0.400, 0.500, 0.650, 0.800, 0.900)
## Data from the first 5 cohorts of 18 patients
tox <- c(0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0)
notox <- c(3, 4, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
## Target toxicity level
target.tox <- 0.30

## Prior distribution for the MTD given a lognormal(0, 1.34^2) distribution for alpha
## and a power model functional form
prior.alpha <- list(3, 0, 1.34^2)
ff <- "power"
samples.alpha <- getprior(prior.alpha, 2000)
mtd <- find.x(ff, target.tox, alpha=samples.alpha)
hist(mtd)

## Standardised doses
sdose <- find.x(ff, p.tox0, alpha=1)

## Posterior distribution of the MTD (on standardised dose scale) using data 
## from the cancer trial described in Neuenschwander et al 2008.
posterior.samples <- Posterior.exact(tox, notox, sdose, ff, prior.alpha)


Returns posterior mean parameter value and summaries of distributions for probability of DLT at each dose level

Description

Returns posterior mean parameter value and summaries of distributions for probability of DLT at each dose level

Usage

Posterior.exact.sim(tox, notox, sdose, ff, prior.alpha, pointest)

Arguments

tox

A vector of length k showing the number of patient who had toxicities at each dose level

notox

A vector of length k showing the number of patients who did not have toxicities at each dose level

sdose

A vector of length k listing the standardised doses to be used in the CRM model.

ff

A string indicating the functional form of the dose-response curve. Options are

ht

1-parameter hyperbolic tangent

logit1

1-parameter logistic

power

1-parameter power

logit2

2-parameter logistic

prior.alpha

A list of length 3 containing the distributional information for the prior. The first element is a number from 1-4 specifying the type of distribution. Options are

  1. Gamma(a, b), where a=shape, b=scale: mean=a*b, variance=a*b*b

  2. Uniform(a, b), where a=min, b=max

  3. Lognormal(a, b), where a=mean on the log scale, b=variance on the log scale

  4. Bivariate Lognormal(a, b), where a=mean vector on the log scale, b=Variance-covariance matrix on the log scale. This prior should be used only in conjunction with a two-parameter logistic model.

The second and third elements of the list are the parameters a and b, respectively.

pointest

Which summary estimate of the posterior distribution should be used to choose the next dose. Options are "plugin" (default) where the posterior mean of the model parameter(s) is plugged into the function form to obtain estimates of toxicity, or "mean" where the posterior mean probabilities of toxicity are directly used. Alternatively, a number between 0 and 1 can be specified representing the quantile of the maximum tolerated dose (MTD) posterior distribution (e.g. 0.5 specifies the posterior median). This produces an Escalation With Overdose Control (EWOC) design if the quantile is less than 0.5 (see details). Currently, EWOC designs must be fit using MCMC methods.

Author(s)

Michael Sweeting mjs212@medschl.cam.ac.uk (University of Cambridge, UK), drawing on code originally developed by J. Jack Lee and Nan Chen, Department of Biostatistics, the University of Texas M. D. Anderson Cancer Center

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

See Also

bcrm, find.x

Examples


## Dose-escalation cancer trial example as described in Neuenschwander et al 2008.
## Pre-defined doses
dose <- c(1, 2.5, 5, 10, 15, 20, 25, 30, 40, 50, 75, 100, 150, 200, 250)
## Pre-specified probabilities of toxicity
## [dose levels 11-15 not specified in the paper,  and are for illustration only]
p.tox0 <- c(0.010, 0.015, 0.020, 0.025, 0.030, 0.040, 0.050,
  0.100, 0.170, 0.300, 0.400, 0.500, 0.650, 0.800, 0.900)
## Data from the first 5 cohorts of 18 patients
tox <- c(0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0)
notox <- c(3, 4, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
## Target toxicity level
target.tox <- 0.30

## Prior distribution for the MTD given a lognormal(0, 1.34^2) distribution for alpha
## and a power model functional form
prior.alpha <- list(3, 0, 1.34^2)
ff <- "power"
samples.alpha <- getprior(prior.alpha, 2000)
mtd <- find.x(ff, target.tox, alpha=samples.alpha)
hist(mtd)

## Standardised doses
sdose <- find.x(ff, p.tox0, alpha=1)
point.est <- "plugin"
## Posterior distribution of the MTD (on standardised dose scale) using data 
## from the cancer trial described in Neuenschwander et al 2008.
posterior.samples <- Posterior.exact.sim(tox, notox, sdose, ff, prior.alpha, point.est)


Returns samples from the posterior distributions of each model parameter using JAGS.

Description

If ff = "logit2" (i.e. a two-parameter logistic model is used), a matrix of dimensions production.itr-by-2 is returned (the first and second columns containing the posterior samples for the intercept and slope parameters respectively). Otherwise, a vector of length production.itr is returned.

Usage

Posterior.rjags(tox, notox, sdose, ff, prior.alpha, burnin.itr,
  production.itr)

Arguments

tox

A vector of length k showing the number of patient who had toxicities at each dose level

notox

A vector of length k showing the number of patients who did not have toxicities at each dose level

sdose

A vector of length k listing the standardised doses to be used in the CRM model.

ff

A string indicating the functional form of the dose-response curve. Options are

ht

1-parameter hyperbolic tangent

logit1

1-parameter logistic

power

1-parameter power

logit2

2-parameter logistic

prior.alpha

A list of length 3 containing the distributional information for the prior. The first element is a number from 1-4 specifying the type of distribution. Options are

  1. Gamma(a, b), where a=shape, b=scale: mean=a*b, variance=a*b*b

  2. Uniform(a, b), where a=min, b=max

  3. Lognormal(a, b), where a=mean on the log scale, b=variance on the log scale

  4. Bivariate Lognormal(a, b), where a=mean vector on the log scale, b=Variance-covariance matrix on the log scale. This prior should be used only in conjunction with a two-parameter logistic model.

The second and third elements of the list are the parameters a and b, respectively.

burnin.itr

Number of burn-in iterations (default 2000).

production.itr

Number of production iterations (default 2000).

Author(s)

Michael Sweeting mjs212@medschl.cam.ac.uk (University of Cambridge, UK), drawing on code originally developed by J. Jack Lee and Nan Chen, Department of Biostatistics, the University of Texas M. D. Anderson Cancer Center

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

See Also

bcrm, find.x

Examples


## Dose-escalation cancer trial example as described in Neuenschwander et al 2008.
## Pre-defined doses
dose <- c(1, 2.5, 5, 10, 15, 20, 25, 30, 40, 50, 75, 100, 150, 200, 250)
## Pre-specified probabilities of toxicity
## [dose levels 11-15 not specified in the paper,  and are for illustration only]
p.tox0 <- c(0.010, 0.015, 0.020, 0.025, 0.030, 0.040, 0.050,
  0.100, 0.170, 0.300, 0.400, 0.500, 0.650, 0.800, 0.900)
## Data from the first 5 cohorts of 18 patients
tox <- c(0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0)
notox <- c(3, 4, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
## Target toxicity level
target.tox <- 0.30

## Prior distribution for the MTD given a lognormal(0, 1.34^2) distribution for alpha
## and a power model functional form
prior.alpha <- list(3, 0, 1.34^2)
ff <- "power"
samples.alpha <- getprior(prior.alpha, 2000)
mtd <- find.x(ff, target.tox, alpha=samples.alpha)
hist(mtd)

## Standardised doses
sdose <- find.x(ff, p.tox0, alpha=1)

## Posterior distribution of the MTD (on standardised dose scale) using data 
## from the cancer trial described in Neuenschwander et al 2008.
## Using rjags
## Not run: 
posterior.samples <- Posterior.rjags(tox, notox, sdose, ff, prior.alpha
  , burnin.itr=2000, production.itr=2000)
  
## End(Not run)


Bayesian Continual Reassessment Method for Phase I Dose-Escalation Trials

Description

Implements a wide variety of Bayesian CRM designs, including 1-parameter, 2-parameter and Escalation With Overdose Control (EWOC) designs. The program can run interactively, allowing the user to enter outcomes after each cohort has been recruited, or via simulation to assess operating characteristics.

Usage

bcrm(stop = list(nmax = NULL, nmtd = NULL, precision = NULL, nmin = NULL,
  safety = NULL), data = NULL, p.tox0 = NULL, sdose = NULL,
  dose = NULL, ff, prior.alpha, cohort = 3, target.tox,
  constrain = TRUE, only.below = FALSE, sdose.calculate = "mean",
  pointest = "plugin", tox.cutpoints = NULL, loss = NULL,
  start = NULL, simulate = FALSE, nsims = 1, truep = NULL,
  threep3 = FALSE, threep3.start = 1, threep3.esc.only = FALSE,
  method = "exact", burnin.itr = 2000, production.itr = 2000,
  bugs.directory = "c:/Program Files/WinBUGS14/", plot = FALSE,
  seed = NULL, quietly = 10, file = NULL, N, tox, notox)

Arguments

stop

A list of stopping rules for the trial. One or more of the following options should be specified

list("nmax")

The maximum sample size of the trial

list("safety")

Stops the trial if the posterior probability of the lowest dose being above the target toxicity level is greater than this number

list("nmtd")

The maximum number to be treated at final maximum tolerated dose (MTD) estimate, i.e. if the next recommended dose has already been administered to nmtd patients then the trial will stop

list("precision")

A vector of the lower and upper percentage points that the MTD 95% credible intervals for the risk of toxicity should lie within

list("nmin")

The minimum sample size of the trial. To be used in conjunction with nmtd or precision

data

A named data frame giving information about dose and toxicity from previously recruited patients. If missing, then it is assumed that no data have thus far been collected. Contains the following variables:

list("patient")

Recruited patient numbers, 1, ..., n

list("dose")

Dose levels of recruited patients, ranging from 1, ..., k

list("tox")

An indicator variable for each patient (1=toxicity, 0=no toxicity)

p.tox0

A vector of length k listing the prior probabilities of experiencing the outcome at each dose level 1, ...k (CRM "skeleton"). The standardised dose levels are formed from these probabilities using the inverse of the functional form, with a plug-in estimate for the prior mean or median of alpha, as specified in ff, prior.alpha and sdose.calculate. Alternatively standardised dose levels can be given directly using sdose.

sdose

A vector of length k listing the standardised doses to be used in the CRM model. Only required if p.tox0 is missing.

dose

Optional vector of length k of actual doses for plotting purposes

ff

A string indicating the functional form of the dose-response curve. Options are

ht

1-parameter hyperbolic tangent

logit1

1-parameter logistic

power

1-parameter power

logit2

2-parameter logistic

prior.alpha

A list of length 3 containing the distributional information for the prior. The first element is a number from 1-4 specifying the type of distribution. Options are

  1. Gamma(a, b), where a=shape, b=scale: mean=a*b, variance=a*b*b

  2. Uniform(a, b), where a=min, b=max

  3. Lognormal(a, b), where a=mean on the log scale, b=variance on the log scale

  4. Bivariate Lognormal(a, b), where a=mean vector on the log scale, b=Variance-covariance matrix on the log scale. This prior should be used only in conjunction with a two-parameter logistic model.

The second and third elements of the list are the parameters a and b, respectively.

cohort

The size of each cohort of patients that are sequentially recruited to the trial. Defaults to 3

target.tox

The target toxicity probability. Defaults to 1/3.

constrain

Should a dose-skipping constraint be placed on the escalation procedure, as imposed by a modified CRM? Defaults to TRUE.

only.below

Should the dose chosen for the next patient be that with the largest risk of DLT that is not greater than the target (TRUE), or the dose that is closest to the target (FALSE); defaults to FALSE. If TRUE, and no dose has risk of DLT below or equal to target, the dose chosen will be the lowest dose level UNLESS one of the pre-defined stopping criteria is satisfied. NOTE: only.below applies when loss = NULL.

sdose.calculate

What plug-in estimate of the prior alpha should be used to calculate the standardised doses? Options are "mean" (default) or "median". Only required if sdose is missing.

pointest

Which summary estimate of the posterior distribution should be used to choose the next dose. Options are "plugin" (default) where the posterior mean of the model parameter(s) is plugged into the function form to obtain estimates of toxicity, or "mean" where the posterior mean probabilities of toxicity are directly used. Alternatively, a number between 0 and 1 can be specified representing the quantile of the maximum tolerated dose (MTD) posterior distribution (e.g. 0.5 specifies the posterior median). This produces an Escalation With Overdose Control (EWOC) design if the quantile is less than 0.5 (see details). Currently, EWOC designs must be fit using MCMC methods.

tox.cutpoints

A vector of cutpoints for toxicity intervals if these are to be used to choose next dose. Defaults to NULL. For example Underdosing [0, 0.2], Target dosing (0.2, 0.35], Excessive toxicity (0.35, 0.60], Unacceptable toxicity (0.60, 1.00] set tox.cutpoints=c(0.2, 0.35, 0.60).

loss

A vector of length length(tox.cutpoints)+1 specifying the losses associated with each toxicity interval, e.g. Underdosing = 1, Target dosing = 0, Excessive toxicity = 1, Unacceptable toxicity = 2.

start

Dose level to be used at the beginning of the trial. Required if constrain=TRUE.

simulate

Should a simulation be conducted to assess operating characteristics? Defaults to TRUE. If FALSE, a single CRM trial is run interactively, allowing the user to input outcomes after each cohort is recruited.

nsims

Number of simulations to perform if simulate==TRUE (defaults to 1).

truep

A vector of length k giving the true probabilities of the outcome (toxicity) at each dose level 1, ..., k in order to simulate data. Only required if simulate=TRUE

threep3

Should operating characteristics of a standard 3+3 rule-based design be calculated, for comparison with bcrm design? Defaults to FALSE. Only used in a simulation study, i.e. when simulate=TRUE.

threep3.start

Starting dose level for when threep3 = TRUE. Defaults to 1, i.e. the lowest dose level

threep3.esc.only

Whether to forbid de-escalation of doses when threep3 = TRUE. Defaults to FALSE

method

Optimisation method: options are "exact" (the default), "rjags", "BRugs", or "R2WinBUGS".

burnin.itr

Number of burn-in iterations (default 2000).

production.itr

Number of production iterations (default 2000).

bugs.directory

Directory that contains the WinBUGS executable if method="R2WinBUGS". Defaults to "C:/Program Files/WinBUGS14/".

plot

Should the dose-response curve be plotted after each cohort has been entered? Defaults to FALSE.

seed

Integer defining the state of the random number generator to allow reproducible results. The default is to not specify a seed.

quietly

How often to send a message back indicating how many simulated trials have been performed. Defaults to quietly = 10 and the function reports back after every 10th simulation.

file

File name where the dose-response plots are stored, in a pdf format. The program will amend the current sample size to the end of the file name.

N

Final sample size (deprecated). To be replaced with stop in future versions.

tox

(Deprecated). A vector of length k listing the number of patients who have experienced the outcome (toxicity) at each dose level 1, ..., k.

notox

(Deprecated). A vector of length k listing the number of patients who have not experienced the outcome (toxicity) at each dose level 1, ..., k.

Details

bcrm implements a Bayesian continual reassessment method (CRM) (O'Quigley et al., 1990); an adaptive design in which cohorts of patients are sequentially recruited into a Phase I trial. A binary toxicity outcome is assumed (e.g. Dose Limiting Toxicity / No Dose Limiting Toxicity). The current cohort are given a dose "closest" to the specified target toxicity level, as estimated from the posterior distributions of toxicity at each dose level from the patients thus far recruited. If pointest="mean" then the posterior mean probability of toxicity is used to choose the next dose. If pointest="plugin", however, the posterior mean of the model parameter(s) is plugged-into the functional form of the dose-toxicity model. To implement an EWOC design (Babb et al., 1998), pointest should be a quantile, q, between 0 and 0.5. The posterior distribution of the MTD (the dose in which the probability of toxicity is equal to the target toxicity) is then calculated and the next patient is given dose closest to the qth quantile of the MTD distribution.

Alternatively, escalation can be based on intervals of toxicity from the posterior distribution using a loss function, see Neuenschwander et al., 2008. To implement this approach, the user should specify the cutpoints of the toxicity intervals using tox.cutpoints and the associated losses using loss.

The possible choice of dose-toxicity model can be specified using ff, and includes the 1-parameter hyperbolic tangent, logistic or power "working models", and the 2-parameter logistic model as follows:

Hyperbolic Tangent

p(Tox|d^*)=\left[(tanh(d^*)+1)/2\right]^\alpha

Logistic (1-parameter)

p(Tox|d^*)=\frac{\exp(3+\alpha d^*)}{1+\exp(3+\alpha d^*)}

Power

p(Tox|d^*)={d^*}^\alpha

Logistic (2-parameter)

p(Tox|d^*)=\frac{\exp(\log(\alpha_1)+\alpha_2 d^*)}{1+\exp(\log(\alpha_1)+\alpha_2 d^*)}

where \alpha>0 is the single positive-valued parameter for the 1-parameter models, and \log(\alpha_1) and \alpha_2>0 are the intercept and slope parameters of the 2-parameter model.

The standardised doses, d^*, are specified by the user using sdose, or alternatively the prior probability of toxicity at each dose level is specified using p.tox0. If the latter is used, then the standardised doses are calculated using the inverse of the functional form and a plug-in estimate of the prior mean or median, as specified in sdose.calculate, as follows

d^* = f^{-1}(\code{p.tox0}, \alpha= a)

where f^{-1} is the the inverse of the chosen functional form, and the parameter(s) of the model are set equal to a, either the prior mean or median of \alpha.

Data that have already been accrued can be entered using the data argument. A constrained CRM design can be implemented using constrain=TRUE, in which case dose-skipping is prohibited (i.e. the next cohort can only be dosed up to one dose level above the current cohort). If a constrained model is used then the starting dose must be specified using start. Alternatively, if data have already been accrued, then the dose level of the last recruited patient determines the constraint for the next patient.

The prior is set using prior.alpha. For example prior.alpha=list(1, 1, 1) specifies a Gamma prior with shape and scale parameters both equal to one (i.e. an Exponential(1) distribution), whilst prior.alpha=list(2, 0, 10) specifies a Uniform(0, 10) prior.

To specify a fixed maximum sample size of size m use stop=list(nmax=m). Alternatively, the trial can stop after m2 patients have been treated at the current MTD estimate, by setting stop=list(nmtd=m2).

To implement a safety constraint as specified in Zohar and Chevret (2001) specify stop=list(safety=p), where the trial is stopped if the posterior probability that the lowest dose is greater than the target toxicity probability is greater than p.

To stop the trial when the MTD estimate is within a certain level of precision, use stop=list(precision=c(l, u)), where l and u are the lower and upper percentage points that the MTD 95% credible intervals for the risk of toxicity should lie within. Finally, to prevent the trial stopping too early using these rules, the argument stop=list(nmin=m3) can be used to ensure the sample size is greater than or equal to m3. Stopping rules can be used on their own or in combination.

The trial can be run interactively using simulate=FALSE, where the user enters the outcomes for each new cohort, or as a simulation study when simulate=TRUE.

The default calculations use exact methods (method="exact") to calculate the mean and quantiles for the posterior distributions. There are three choices for MCMC calculations: method="rjags", method="BRugs" or method="R2WinBUGS". The first uses the JAGS software, the second uses OpenBUGS, whilst the latter uses WinBUGS. To implement these methods, users require one or more of these packages to be installed on their system.

A simulated bcrm design can be compared with the standard 3+3 rule-based method, see threep3 for more details.

Value

bcrm returns an object of class "bcrm" or "bcrm.sim"; the latter occurring when a simulation has been conducted (simulate=TRUE). The function print (i.e. print.bcrm or print.bcrm.sim) can be used to obtain summary information about the design used, the data observed, current posterior estimates of toxicity, and the next recommended dose level.

An object of class "bcrm" is a list with the following components:

dose

Range of doses

sdose

Standardised doses

tox

A vector of length k listing the number of patients who have experienced the outcome (toxicity) at each dose level 1, ..., k

notox

A vector of length k listing the number of patients who have not experienced the outcome (toxicity) at each dose level 1, ..., k

ndose

A list of lists containing for each cohort the components ndose, the dose level recommended for the next patient, est, the estimated probabilities of toxicity using the chosen metric (e.g. plugin, mean, quantile), mean, the posterior mean probability of toxicity at each dose, sd, the posterior standard deviation for probability of toxicity at each dose, quantiles, the posterior quantiles for probability of toxicity at each dose. This information is only provided for cohorts recruited subsequent to any data given using tox and notox. The first component relates to the prior information.

constrain

Whether a constrained CRM design was used

start

The starting dose for the latest run of the model if constrain=TRUE

target.tox

The target toxicity level

ff

The functional form of the dose-toxicity model; "ht" = Hyperbolic tangent, "logit1" = 1-parameter logistic, "power" = Power, "logit2" = 2-parameter logistic

method

The calculation method used

pointest

The summary estimate used to choose the next dose, see pointest

prior.alpha

Information about the prior used for alpha, see prior.alpha

data

A data frame with variables ‘patient’, ‘dose’ and ‘tox’ listing the dose levels and outcomes of all patients in the trial

An object of class "bcrm.sim" is a list of length nsims. Each component is itself a list with components similar to those obtained from a "bcrm" object. The print function, print.bcrm.sim should be used to obtain operating characteristics from the simulation.

Note

Currently, the re-parameterisation of the two-parameter model proposed by (Babb et al., 1998) is not implemented. Therefore, users wishing to implement an EWOC design should check whether their choice of prior for the model parameter(s) translates to a sensible prior for the MTD distribution before they implement the design. For example

prior.alpha <- list(1, 1, 1); ff <- "ht"; target.tox <- 0.2
samples.alpha <- getprior(prior.alpha, 2000)
mtd <- find.x(ff, target.tox, alpha=samples.alpha) hist(mtd) 

One-parameter models are designed as working models only, and should not be used with an escalation strategy based on intervals of the posterior probabilities of toxicity.

Author(s)

Michael Sweeting (University of Leicester, UK; michael.sweeting@leicester.ac.uk) and Graham Wheeler (University College London, UK; graham.wheeler@ucl.ac.uk), drawing on code originally developed by J. Jack Lee and Nan Chen, Department of Biostatistics, University of Texas M.D. Anderson Cancer Center.

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

O'Quigley J., Pepe M., Fisher L. Continual reassessment method: a practical design for phase I clinical trials in cancer. Biometrics (1990) 46: 33–48.

Babb J., Rogatko A., Zacks S. Cancer phase I clinical trials: efficient dose escalation with overdose control. Statistics in Medicine (1998) 17: 1103–1120.

Neuenschwander B., Branson M., Gsponer T. Critical aspects of the Bayesian approach to phase I cancer trials. Statistics in Medicine (2008) 27: 2420–2439.

Zohar S., Chevret S. The continual reassessment method: comparison of Bayesian stopping rules for dose-ranging studies. Statistics in Medicine (2001) 20: 2827–2843.

See Also

print.bcrm, print.bcrm.sim, plot.bcrm, plot.bcrm.sim, threep3

Examples


## Dose-escalation cancer trial example as described in Neuenschwander et al 2008.
## Pre-defined doses
dose <- c(1, 2.5, 5, 10, 15, 20, 25, 30, 40, 50, 75, 100, 150, 200, 250)
## Pre-specified probabilities of toxicity
## [dose levels 11-15 not specified in the paper,  and are for illustration only]
p.tox0 <- c(0.010, 0.015, 0.020, 0.025, 0.030, 0.040, 0.050,
  0.100, 0.170, 0.300, 0.400, 0.500, 0.650, 0.800, 0.900)
## Data from the first 5 cohorts of 18 patients
data <- data.frame(patient=1:18, dose=rep(c(1:4, 7), c(3, 4, 5, 4, 2)), tox=rep(0:1, c(16, 2)))
## Target toxicity level
target.tox <- 0.30

## A 1-parameter power model is used,  with standardised doses calculated using 
## the plug-in prior median
## Prior for alpha is lognormal with mean 0 (on log scale) 
## and standard deviation 1.34 (on log scale)
## The recommended dose for the next cohort if posterior mean is used
## Not run: 
Power.LN.bcrm <- bcrm(stop=list(nmax=18), data=data, p.tox0=p.tox0, dose=dose
  , ff="power", prior.alpha=list(3, 0, 1.34^2), target.tox=target.tox, constrain=FALSE
  , sdose.calculate="median", pointest="mean")
print(Power.LN.bcrm)
plot(Power.LN.bcrm)

## End(Not run)

## Simulate 10 replicate trials of size 36 (cohort size 3) using this design 
## with constraint (i.e. no dose-skipping) and starting at lowest dose
## True probabilities of toxicity are set to pre-specified probabilities (p.tox0) 
## Not run: 
Power.LN.bcrm.sim <- bcrm(stop=list(nmax=36), p.tox0=p.tox0, dose=dose, ff="power"
  , prior.alpha=list(3, 0, 1.34^2), target.tox=target.tox, constrain=TRUE
  , sdose.calculate="median", pointest="mean", start=1, simulate=TRUE, nsims=10, truep=p.tox0)
print(Power.LN.bcrm.sim)
plot(Power.LN.bcrm.sim)

## End(Not run)

## Comparing this CRM design with the standard 3+3 design 
## (only considering the first 12 dose levels)
## Not run: 
Power.LN.bcrm.compare.sim <- bcrm(stop=list(nmax=36), p.tox0=p.tox0[1:12], dose=dose[1:12]
  , ff="power", prior.alpha=list(3, 0, 1.34^2), target.tox=target.tox, constrain=TRUE
  , sdose.calculate="median", pointest="mean", start=1, simulate=TRUE, nsims=50
  , truep=p.tox0[1:12], threep3=TRUE)
print(Power.LN.bcrm.compare.sim, threep3=TRUE)
plot(Power.LN.bcrm.compare.sim, threep3=TRUE)

## End(Not run)

## A 2-parameter model,  using priors as specified in Neuenschwander et al 2008.
## Posterior mean used to choose the next dose
## Standardised doses using reference dose,  250mg
sdose <- log(dose/250)
## Bivariate lognormal prior for two parameters
mu <- c(2.15, 0.52)
Sigma <- rbind(c(0.84^2, 0.134), c(0.134, 0.80^2))
## Using rjags (requires JAGS to be installed)
## Not run: 
TwoPLogistic.mean.bcrm <- bcrm(stop=list(nmax=18), data=data, sdose=sdose
  , dose=dose, ff="logit2", prior.alpha=list(4, mu, Sigma), target.tox=target.tox
  , constrain=FALSE, pointest="mean", method="rjags")
print(TwoPLogistic.mean.bcrm)
plot(TwoPLogistic.mean.bcrm)

## End(Not run)

## A 2-parameter model,  using an EWOC design with feasibility bound (MTD quantile) 
## of 0.25 to choose the next dose
## Using rjags (requires JAGS to be installed)
## Not run: 
TwoPLogistic.EWOC0.25.bcrm <- bcrm(stop=list(nmax=18), data=data, sdose=sdose, dose=dose
    , ff="logit2", prior.alpha=list(4, mu, Sigma), target.tox=target.tox, constrain=FALSE
    , pointest=0.25, method="rjags")
print(TwoPLogistic.EWOC0.25.bcrm)
plot(TwoPLogistic.EWOC0.25.bcrm)

## End(Not run)

## A 2-parameter model,  using a loss function based on intervals of toxicity to choose
## the next dose
## Using rjags (requires JAGS to be installed)
## Not run: 
## Toxicity cut-points
tox.cutpoints <- c(0.2, 0.35, 0.6)
## Losses associated with toxicity intervals 
## [0, 0.2]=1,  (0.2, 0.35]=0,  (0.35, 0.6]=1,  (0.6, 1]=2
loss <- c(1, 0, 1, 2)
TwoPLogistic.tox.intervals.bcrm <- bcrm(stop=list(nmax=18), data=data, sdose=sdose
  , dose=dose, ff="logit2", prior.alpha=list(4, mu, Sigma), target.tox=target.tox
  , constrain=FALSE, tox.cutpoints=tox.cutpoints, loss=loss, method="rjags")
print(TwoPLogistic.tox.intervals.bcrm)
plot(TwoPLogistic.tox.intervals.bcrm)
## Greater loss associated with overdosing and unacceptable toxicity
## [0, 0.2]=1,  (0.2, 0.35]=0,  (0.35, 0.6]=2,  (0.6, 1]=4
loss2 <- c(1, 0, 2, 4)
TwoPLogistic.tox.intervals.2.bcrm <- bcrm(stop=list(nmax=18), data=data, sdose=sdose
  , dose=dose, ff="logit2", prior.alpha=list(4, mu, Sigma), target.tox=target.tox
  , constrain=FALSE, tox.cutpoints=tox.cutpoints, loss=loss2, method="rjags")
print(TwoPLogistic.tox.intervals.2.bcrm)
plot(TwoPLogistic.tox.intervals.2.bcrm)

## End(Not run)



Obtain samples from the maximum tolerated dose (MTD) distribution.

Description

Given a posterior (or prior) sample of the parameters, this function inverts the given functional form to obtain samples from the MTD distribution.

Usage

find.x(ff, ptox, alpha)

Arguments

ff

A string indicating the functional form of the dose-response curve. Options are

ht

1-parameter hyperbolic tangent

logit1

1-parameter logistic

power

1-parameter power

logit2

2-parameter logistic

ptox

The required probability of DLT. For example, if the MTD distribution is sought then set ptox to the target toxicity level.

alpha

A sample from the posterior (or prior) distribution of the parameter(s).

Details

Given a posterior (or prior) sample of the parameters, this function inverts the given functional form to obtain samples from the MTD distribution or any other targeted quantile.

Author(s)

Michael Sweeting mjs212@medschl.cam.ac.uk (University of Cambridge, UK), drawing on code originally developed by J. Jack Lee and Nan Chen, Department of Biostatistics, the University of Texas M. D. Anderson Cancer Center

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

See Also

bcrm, getprior, Posterior.exact, Posterior.BRugs, Posterior.R2WinBUGS

Examples


## Dose-escalation cancer trial example as described in Neuenschwander et al 2008.
## Pre-defined doses
dose <- c(1, 2.5, 5, 10, 15, 20, 25, 30, 40, 50, 75, 100, 150, 200, 250)
## Pre-specified probabilities of toxicity
## [dose levels 11-15 not specified in the paper,  and are for illustration only]
p.tox0 <- c(0.010, 0.015, 0.020, 0.025, 0.030, 0.040, 0.050,
  0.100, 0.170, 0.300, 0.400, 0.500, 0.650, 0.800, 0.900)
## Data from the first 5 cohorts of 18 patients
tox <- c(0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0)
notox <- c(3, 4, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
## Target toxicity level
target.tox <- 0.30

## Prior distribution for the MTD given a lognormal(0, 1.34^2) distribution for alpha
## and a power model functional form
prior.alpha <- list(3, 0, 1.34^2)
ff <- "power"
samples.alpha <- getprior(prior.alpha, 2000)
mtd <- find.x(ff, target.tox, alpha=samples.alpha)
hist(mtd)

## Standardised doses
sdose <- find.x(ff, p.tox0, alpha=1)

## Posterior distribution of the MTD (on standardised dose scale) using data 
## from the cancer trial described in Neuenschwander et al 2008.
## Using rjags
## Not run: 
posterior.samples <- Posterior.rjags(tox, notox, sdose, ff, prior.alpha
  , burnin.itr=2000, production.itr=2000)
posterior.mtd <- find.x(ff, target.tox, alpha=posterior.samples)
hist(posterior.mtd)

## End(Not run)



Samples from the specified prior distribution.

Description

A sample of specified size is obtained from the prior distribution.

Usage

getprior(prior.alpha, n)

Arguments

prior.alpha

A list of length 3 containing the distributional information for the prior. The first element is a number from 1-4 specifying the type of distribution. Options are

  1. Gamma(a, b), where a=shape, b=scale: mean=a*b, variance=a*b*b

  2. Uniform(a, b), where a=min, b=max

  3. Lognormal(a, b), where a=mean on the log scale, b=variance on the log scale

  4. Bivariate Lognormal(a, b), where a=mean vector on the log scale, b=Variance-covariance matrix on the log scale. This prior should be used only in conjunction with a two-parameter logistic model.

The second and third elements of the list are the parameters a and b, respectively.

n

The number of samples.

Details

A vector of size n is returned from the specified prior distribution.

Author(s)

Michael Sweeting mjs212@medschl.cam.ac.uk (University of Cambridge, UK), drawing on code originally developed by J. Jack Lee and Nan Chen, Department of Biostatistics, the University of Texas M. D. Anderson Cancer Center

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

See Also

bcrm, find.x

Examples


prior.alpha <- list(1, 1, 1)
samples.alpha <- getprior(prior.alpha, 2000)
hist(samples.alpha)


Plot the estimated dose-toxicity curve

Description

The estimated dose-toxicity curve using the Bayesian continuous reassessment method is plotted for the patients thus far recruited into the trial

Usage

## S3 method for class 'bcrm'
plot(x, file = NULL, each = FALSE, trajectory = FALSE,
  ...)

Arguments

x

An object of class "bcrm", as returned by bcrm

file

File name where the dose-response plots are stored, in a pdf format. The program will amend the current sample size to the end of the file name.

each

Should posterior summaries be plotted after each recruited cohort? Defaults to FALSE.

trajectory

Should the sequential dose trajectory of the recruited patients be plotted, along with the observed toxicities? Defaults to FALSE.

...

Further arguments passed to or from other methods

Details

The estimated 2.5%, 25%, 50%, 75%, 97.5% quantiles of the probability of toxicity are plotted for each dose. Additionally, a histogram of the number of toxicities and non-toxicities is plotted at each experimented dose.

If trajectory = TRUE then the sequential dose trajectory and observed toxicities are plotted.

Author(s)

Michael Sweeting mjs212@medschl.cam.ac.uk (University of Cambridge, UK)

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

See Also

bcrm


Plot the operating characteristics from the simulated trials

Description

Plots of the operating characteristics obtained from a CRM simulation.

Usage

## S3 method for class 'bcrm.sim'
plot(x, trajectories = FALSE, file = NULL,
  threep3 = FALSE, ...)

Arguments

x

An object of class "bcrm.sim", as returned by bcrm when conducting a simulation.

trajectories

Should a summary plot of the trajectories of administered dose levels be plotted? Defaults to FALSE.

file

File name where the operating characteristic plot is stored, in a pdf format.

threep3

Should operating characteristics of a standard 3+3 rule-based design be plotted alongside the bcrm design? Defaults to FALSE.

...

Further arguments passed to or from other methods

Details

This function plots the sample size distribution (if variable), the experimentation distribution, the recommended dose distribution and the percentage of subjects who experience the toxicity outcome (dose-limiting toxicity). If trajectories = TRUE then summary statistics of administered dose levels for each patient are plotted instead. If threep3 = TRUE then the operating characteristics of the standard 3+3 design are plotted alongside those of the bcrm design (see threep3 for more details).

Author(s)

Michael Sweeting mjs212@medschl.cam.ac.uk (University of Cambridge, UK)

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

See Also

print.bcrm.sim, bcrm, threep3


Plot the operating characteristics from a standard 3+3 trial

Description

Plots of the operating characteristics obtained from a standard 3+3 trial, using threep3

Usage

## S3 method for class 'threep3'
plot(x, file = NULL, ...)

Arguments

x

An object of class "threep3", as returned by threep3.

file

File name where the operating characteristic plot is stored, in a pdf format.

...

Further arguments passed to or from other methods

Details

This function plots the sample size distribution, the experimentation distribution, the recommended dose distribution and the percentage of subjects who experience the toxicity outcome (dose-limiting toxicity) for the standard 3+3 trial.

Author(s)

Michael Sweeting mjs212@medschl.cam.ac.uk (University of Cambridge, UK)

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

See Also

threep3


Print information regarding a trial conducted using the Bayesian continuous reassessment method

Description

Print method for a trial or series of trials conducted using a bcrm model.

Usage

## S3 method for class 'bcrm'
print(x, tox.cutpoints = NULL, trajectories = FALSE,
  threep3 = FALSE, ...)

Arguments

x

An object of class "bcrm" or "bcrm.sim" as returned by bcrm

tox.cutpoints

An optional argument passed to print.bcrm.sim specifying the cutpoints of toxicity for which the operating characteristics are to be categorised. Defaults to seq(from=0, to=1, by=0.2)

trajectories

Should the individual simulation dose and outcome trajectories be returned? Defaults to FALSE.

threep3

Should operating characteristics of a standard 3+3 rule-based design be displayed alongside those from the bcrm design? Defaults to FALSE.

...

Further arguments passed to or from other methods

Details

If a single trial is conducted, then the print function currently produces summary information about the design used, the data observed, current posterior estimates of toxicity, and the next recommended dose level. If a simulation study is conducted, then the following operating characteristics are printed:

Experimentation proportion

Proportion of patients recruited to each dose, and to each true region of toxicity, across the simulated trials

Recommendation proportion

Proportion of trials that recommend each of the dose levels as the final maximum tolerated dose (i.e. with toxicity "closest" to the target toxicity level), and the associated regions of true toxicity for the recommended MTDs

If trajectories = TRUE then the dose level administered and outcome observed are returned as matrices for every patient (column) in every simulation (row). If threep3 = TRUE then the operating characteristics of the standard 3+3 design are displayed alongside those of the bcrm design (see threep3 for more details).

Value

The following two components are returned from print.bcrm.sim:

exp

A matrix with number of rows equal to the number of doses, and number of columns equal to the number of simulations. Gives the experimentation proportions for each dose within each simulation.

rec

A vector with length equal to the number of simulations, giving the recommended MTD for each simulation.

Author(s)

Michael Sweeting mjs212@medschl.cam.ac.uk (University of Cambridge, UK)

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

See Also

bcrm, threep3


Print information regarding the operating characteristics of a standard 3+3 design

Description

Print method for a 3+3 design specified using a threep3.

Usage

## S3 method for class 'threep3'
print(x, tox.cutpoints = NULL, dose = NULL, ...)

Arguments

x

An object of class "threep3" as returned by threep3

tox.cutpoints

An optional argument passed to print.threep3 specifying the cutpoints of toxicity for which the operating characteristics are to be categorised. Defaults to seq(from=0, to=1, by=0.2)

dose

Optional vector of length k of actual doses for presentation purposes

...

Further arguments passed to or from other methods

Details

The following operating characteristics are printed for the standard 3+3 design:

Sample size

Mean, minimum and maximum sample size of the design

Experimentation proportion

Proportion of patients recruited to each dose, and to each true region of toxicity, on average

Recommendation proportion

Proportion of 3+3 trials that would recommend each of the dose levels as the final maximum tolerated dose (see threep3 for definition of the MTD), and the associated regions of true toxicity for the recommended MTDs

Average number of patients

The average number of patients dosed at each level

Average number of DLTs

The average number of DLTs seen at each level

Author(s)

Michael Sweeting mjs212@medschl.cam.ac.uk (University of Cambridge, UK)

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

See Also

threep3


Calculate all possible trial pathways for the standard 3+3 design, together with their probability of occurring

Description

All possible pathways of a standard 3+3 design (may be escalation-only (see Storer 1989, Reiner et al. 1999) or permit dose de-escalation (see Chang et al. (2006))) are calculated and assigned a probability of occurring. This facilitates the calculation of operating characteristics, using print.threep3 and plot.threep3.

Usage

threep3(truep, threep3.start = 1, threep3.esc.only = FALSE,
  dose = NULL, quietly = FALSE)

Arguments

truep

A vector of length k (the number of doses being considered in the trial), with values equal to the true probabilities of toxicity at the dose levels.

threep3.start

Starting dose level. Defaults to 1, i.e. the lowest dose level

threep3.esc.only

Whether to forbid de-escalation of doses. Defaults to FALSE

dose

Optional vector of length k of actual doses for presentation purposes

quietly

Whether to report progress. Defaults to quietly = FALSE.

Details

The first cohort of three patients are administered the starting dose (usually the lowest dose). The trial then proceeds as follows:

Escalation / de-escalation rules to the next dose level for subsequent cohorts proceed as follows:

If none of the rules above are satisfied then the trial stops. If the current dose level has at most one DLT observed then this is claimed to be the MTD, otherwise the dose level below is deemed to be the MTD.

If dose-escalation extends to doses outside of that defined by dose, the MTD is determined to be the largest dose in dose.

Value

threep3 returns an object of class "threep3". The function print (i.e. print.threep3) can be used to obtain operating characteristics of the design used.

An object of class "threep3" is a list with the following components:

prob

A vector with the probabilities of each design occurring. As all possible designs are calculated, this vector sums to one

ssize

A vector with the sample size of each design

mtd

A vector of dose levels giving the recommended maximum tolerated dose (MTD) at the end of the trial

exp

A vector of length k giving the average trial experimentation proportions at each dose level

dlt.no

A vector with the number of toxicities (DLTs) that occur in each trial

truep

The true probabilities of toxicity at each dose level, specified by the user

dose

The actual doses as supplied in the function arguments

n.average

The average number of patients dosed at each level

dlt.average

The average number of DLTs experienced at each dose level

all.designs

A matrix containing all possible 3+3 designs, with each row representing a different design. Columns labelled "d k" and "tox k" represent the dose level and number of toxicities for the kth cohort, respectively.

Author(s)

Graham Wheeler graham.wheeler@ucl.ac.uk (University College London, UK) and

Michael Sweeting michael.sweeting@leicester.ac.uk (University of Leicester, UK)

References

Sweeting M., Mander A., Sabin T. bcrm: Bayesian Continual Reassessment Method Designs for Phase I Dose-Finding Trials. Journal of Statistical Software (2013) 54: 1–26. http://www.jstatsoft.org/article/view/v054i13

Chang A., Ganz P., Hayes D., Kinsella T., Pass H., Schiller J., Stone R., Strecher V. Oncology: An Evidence-Based Approach. Springer (2006).

Storer B. Design and Analysis of Phase I Clinical Trials. Biometrics (1989) 45: 925–937.

Reiner E., Paoletti X., O'Quigley J. Operating characteristics of the standard phase I clinical trial design. Computational Statistics & Data Analysis (1999) 30: 303–315.

Neuenschwander B., Branson M., Gsponer T. Critical aspects of the Bayesian approach to phase I cancer trials. Statistics in Medicine (2008) 27: 2420–2439.

See Also

threep3

Examples


## What are the operating characteristics of a standard 3+3 design if we conside only the first 
## 12 doses of the dose-escalation cancer trial example as described in Neuenschwander et al 2008.
## Pre-defined doses
dose <- c(1, 2.5, 5, 10, 15, 20, 25, 30, 40, 50, 75, 100)
## Pre-specified probabilities of toxicity
p.tox0 <- c(0.010, 0.015, 0.020, 0.025, 0.030, 0.040, 0.050, 0.100, 0.170, 0.300, 0.400, 0.500)

## Not run: 
design.threep3 <- threep3(truep=p.tox0, threep3.start=1, threep3.esc.only=TRUE, dose=dose)
print(design.threep3)
plot(design.threep3)

## End(Not run)