Package 'phase1RMD'

Title: Repeated Measurement Design for Phase I Clinical Trial
Description: Implements our Bayesian phase I repeated measurement design that accounts for multidimensional toxicity endpoints from multiple treatment cycles. The package also provides a novel design to account for both multidimensional toxicity endpoints and early-stage efficacy endpoints in the phase I design. For both designs, functions are provided to recommend the next dosage selection based on the data collected in the available patient cohorts and to simulate trial characteristics given design parameters. Yin, Jun, et al. (2017) <doi:10.1002/sim.7134>.
Authors: Jun Yin, Yu Du, Sumithra Mandrekar
Maintainer: Jun Yin <[email protected]>
License: GPL (>= 2)
Version: 1.0.9
Built: 2024-10-29 03:00:56 UTC
Source: https://github.com/vivienjyin/phase1rmd

Help Index


Patient efficacy data

Description

This data set provides the efficacy data from 22 patients.

Usage

eff_dat

Format

A matrix containing 22 observations.

Source

Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.

References

Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.


Toxicity Probability Matrices Generation for Trial Simulation

Description

A function to generate toxicity probability matrices employing proportional odds model, used as input for trial simulation. The generated matrices are a four-dimension array containing the probabilities of the occurrences of certain grades for certain types of toxicities, at each dose level and cycle under consideration. Dimension 1 refers to doses; dimension 2 corresponds to cycles of the treatment; dimension 3 regards the types of toxicities while dimenion 4 relates to grades.

Usage

GenToxProb(toxtype = c("Neurological", "Renal", "Hematological"), 
           intercept.alpha = c(2, 3, 4.2, 5.7), 
           coef.beta = c(-0.2, -0.4, -0.7), 
           cycle.gamma = 0, MaxCycle = 6, Numdose = 6)

Arguments

toxtype

A character vector, specifying toxicity types considered in the trial.

intercept.alpha

A four element numeric vector specifying the intercepts for the cumulative probabilities of the occurrences of grades 0-4 of toxicities in proportional odds model. See Details below.

coef.beta

A nn numeric vector specifying the slope for dose in proportional odds model for nn types of toxicities. See Details below.

cycle.gamma

A scalar controlling the cycle effect in simulation in proportional odds model. See Details below.

MaxCycle

Maximum of number of cycles of the treatment.

Numdose

The number of doses under investigation.

Details

The probability matrices of the occurrences of certain grades for certain types of toxicities, at each dose level and cycle are simulated from a proportional odds model that takes toxtype, intercept.alpha, coef.beta and cycle.gamma as the inputs. The model is as follows:

logit(cj)=αj+βdose+γcycle,j=0,1,2,3logit(c_j) = \alpha_j + \beta * dose + \gamma * cycle, j=0,1,2,3

where given a dose and cycle, cjc_j is the cumulative probabilities of occurrences of toxicities grades up to jj; α0,α1,α2,α3\alpha_0, \alpha_1, \alpha_2, \alpha_3 are the intercepts, making up intercept.alpha; coef.beta stores β\beta for different types of toxicities while cycle.gamma acts as γ\gamma, controlling the cycle effect. The probability for the occurrence of a certain grade of a certain toxicity type at a given dose and cycle is obtained from taking the corresponding differences between cumulative probabilities.

Value

A four-dimension array where dimension 1 refers to doses; dimension 2 corresponds to cycles of the treatment; dimension 3 regards the types of toxicities while dimenion 4 relates to grades.

Examples

#tox.matrix <- GenToxProb()

Create prior for the phase 1 dose-finding model

Description

parm creates an S3 object of class parm that contains all necessary prior information to estimate the phase I repeated measures model.

Usage

parm(prior = c("gamma", "invgamma", "normal"), 
   mean=0, var=100, shape=0.001, scale=0.001)

Arguments

prior

a symbolic description of the prior distribution (gamma, invgamma, normal).

mean

the prior parameters that are dependent on the distribution that is used. Specifications are gamma(shape, rate), invgamma(shape, scale) and normal(mean,var).

var

the prior parameters that are dependent on the distribution that is used. Specifications are gamma(shape, rate), invgamma(shape, scale) and normal(mean,var).

shape

the prior parameters that are dependent on the distribution that is used. Specifications are gamma(shape, rate), invgamma(shape, scale) and normal(mean,var).

scale

the prior parameters that are dependent on the distribution that is used. Specifications are gamma(shape, rate), invgamma(shape, scale) and normal(mean,var).

Details

The function parm builds three types of priors: gamma, invgamma and normal.

Gamma parameters:

  • shape : shape parameter for Gamma prior for sigma

  • rate : rate parameter for Gamma prior for sigma

Inverse gamma parameters:

  • shape : shape parameter for the inverse gamma prior on sigma.

  • scale : scale parameter for the inverse gamma prior on sigma.

Normal parameters:

  • mean : mean parameter for the normal prior.)

  • var : variance parameter for the normal prior.)

Value

An object of class parm, containing information for the prior.

Author(s)

Jun Yin

Examples

# Setup the prior distributions for the phase I dose-finding model:
control <- list(
 beta.dose = parm("normal", mean = 0, var = 1000),
 beta.other = parm("normal", mean = 0, var = 1000 ),
 gamma = parm("normal", mean = 0, var = 100 ),
 s2.gamma = parm("invgamma", shape = 0.001, scale = 0.001),
 s2.epsilon = parm("invgamma", shape = 0.001, scale = 0.001)
 )

Patient toxicity data

Description

This data set provides the toxicity data from multiple treatment cycles. The toxicity data is defined by nTTP toxicity score.

Usage

patdata

Format

A data frame containing 9 observations.

Source

Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.

References

Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.


plot nTTP Toxicity-based in cycle 1 for all doses.

Description

plot.RunRMDVal plot the dose-nTTP estimation in cycle based on the RunRMD estimation.

Usage

## S3 method for class 'RunRMDVal'
plot(x, ...)

Arguments

x

The output of RunRMD. An S3 object of 'RunRMDVal' class.

...

Other plot parameters.

Details

The plot.RunRMDVal function uses the patient data structure patdata to fit the linear mixed model as specified by formula based on the prior distributions as specified by control. The parameters of the MCMC simulation are specified by iter: the number of iterations, burnin: burn-ins, thin: thinning parameter and chains: number of chains in the MCMC simulation. The target nTTP score is defined by tox.target, default = 0.28.

Value

This function plots the dose-nTTP estimation in cycle based on the RunRMD estimation.

Examples

# Setup the prior distributions for the phase I dose-finding model:
control <- list(
 beta.dose = parm("normal", mean = 0, var = 1000),
 beta.other = parm("normal", mean = 0, var = 1000 ),
 gamma = parm("normal", mean = 0, var = 100 ),
 s2.gamma = parm("invgamma", shape = 0.001, scale = 0.001),
 s2.epsilon = parm("invgamma", shape = 0.001, scale = 0.001)
 )
 
# Load the example patient toxicity data:
#data(patdata)

# Estimate the dose-recommendation of the next patient cohort based on the toxicity data:
#res <- RunRMD(data=patdata, control=control, tox.target=0.28, 
#  iter=2000, burnin=500, thin=1, chains=1)

#plot(res);

The probability matrix of toxicity events

Description

This data set provides the toxicity matrix of 3 types of toxicity events over 6 doses and 5 treatment cycles.

Usage

probaT

Format

A list containing 3 matrices for the probability for 3 type of toxicity events, each matrix with 6 rows for 6 doses and 5 columns for 5 treatment cycles.

Source

Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.

References

Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.


Toxicity-based Dose estimation for the next patient cohort.

Description

RunRMD estimate the dosage for the next patient cohort using TTP measured multidimensional toxicity data collected from multiple treatemnt cycles of the existing patients.

Usage

RunRMD(data, control, trlSize = 36, tox.target = 0.28, 
  sdose = 1:6, strDose = 1, iter=10000, burnin=4000, thin=1, chains=1)

Arguments

data

Toxicty data collected from the multiple treatment cycles of existing patient cohorts.

control

Prior distributions as specified by parm function.

trlSize

Total number of patients in the trial.

tox.target

Target toxicity score (default = 0.28).

sdose

Total number of patients in the trial.

strDose

Start dose.

iter

Total number of MCMC simulations (default = 4000).

burnin

Number of burn-ins in the MCMC simulation (default = 1000).

thin

Thinning parameter (default = 1).

chains

Number of chains in the MCMC simulation (default = 1).

Details

The RunRMD function uses the patient data structure patdata to fit the linear mixed model as specified by formula based on the prior distributions as specified by control. The parameters of the MCMC simulation are specified by iter: the number of iterations, burnin: burn-ins, thin: thinning parameter and chains: number of chains in the MCMC simulation. The target nTTP score is defined by tox.target, default = 0.28.

Value

A list containing the following elements:

nxtdose

Recommended dose for the next patient cohort.

tox.est

Mean, SD, median estimates and 2.5%, 25%, 50%, 75%, 97.5% quantile estimates of the toxicity score at each dose level.

Examples

# Setup the prior distributions for the phase I dose-finding model:
control <- list(
 beta.dose = parm("normal", mean = 0, var = 1000),
 beta.other = parm("normal", mean = 0, var = 1000 ),
 gamma = parm("normal", mean = 0, var = 100 ),
 s2.gamma = parm("invgamma", shape = 0.001, scale = 0.001),
 s2.epsilon = parm("invgamma", shape = 0.001, scale = 0.001)
 )
 
# Load the example patient toxicity data:
# data(patdata)

# Estimate the dose-recommendation of the next patient cohort based on the toxicity data:
# fit <- RunRMD(data = patdata, control = control, trlSize = 36, tox.target = 0.28, 
#  sdose = 1:6, strDose = 1, iter = 2000, burnin = 500, thin = 1, chains = 1)

Interactive Implementation for an Adaptive, Multi-Stage Phase I Dose-Finding Design

Description

A function to interactively implement an adaptive, multi-stage phase 1 dose-finding design incorporating continuous efficacy and toxicity data from multiple treatment cycles, proposed by Du et al(2017)

Usage

RunRMDEFF(efficacy.dat = NULL, toxicity.dat, trialSize = 36,
          seed = 624, chSize = 3, MaxCycle = 6, doses = 1:6, 
          tox.target = 0.28, p1 = 0.2, p2 = 0.2, ps1 = 0.2, 
          thrd1 = 0.28, thrd2 = 0.28, proxy.thrd = 0.1, 
          dose_flag = 0, param.ctrl = list())

Arguments

efficacy.dat

A data frame specifying the efficacy data, which must be of the following form. The first column is the subject ID (character), named "subID", where "subID" consists of a cohort number and a subject number. For example, "cohort2subject3" denotes the third subject in the second cohort; the second column is dose allocated (integer), named "dose" and the third column is the continuous efficacy (numeric), named "Efficacy". This data frame is sorted by "subID". This argument is set to NULL if none of the subjects efficacy measurement is available.

toxicity.dat

A data frame specifying the toxicity data from multiple treatment cycles, which must be of the following form. The first column is the subject ID (character), named "subID", where "subID" consists of a cohort number and a subject number. For example, "cohort2subject3" denotes the third subject in the second cohort; the second column is dose allocated (integer), named "dose"; the third column, "cycle", denotes the cycle information (integer); "nTTP", the fourth column shows the corresponding nTTP score and the fifth column is binary DLT event indicator (integer), named "DLT". This data frame is sorted first by cohort number, second by "cycle" and then by subject number.

trialSize

The maximum sample size for the trial under investigation. Default is 36. Must be the multiple of cohort size, represented by chSize.

seed

A number to make simulation results reproducible.

chSize

The cohort size of patients recruited. Default is 3.

MaxCycle

The maximum number of cycles for the treatment, Default is 6.

doses

A vector of doses that users are going to explore. Default is 1:6, where dose 1 through dose 6 are being tested.

tox.target

The target toxicity at cycle 1 of the treatment. Default is 0.28.

p1

The probability cutoff for cycle 1 toxicity. Default is 0.2. See Details below.

p2

The probability cutoff for late cycles toxicity beyond cycle 1. Default is 0.2. See Details below.

ps1

The probability cutoff for defining allowable (safe) doses in stage 1. Default is 0.2. See Details below.

thrd1

An upper bound of toxicity for cycle 1 of the treatment. Default is 0.28. See Details below.

thrd2

An upper bound of toxicity for late cycles of the treatment, beyond cycle 1. Default is 0.28. See Details below.

proxy.thrd

A distance parameter used to define efficacious doses. Any dose whose predicted efficacy is within proxy.thrd away from the largest one among the safe doses will be declared an efficacious dose.

dose_flag

A binary indicator. Value 1 indicates that dose has not escalated to dose 2 since the first enrolled cohort while value 0 shows otherwise. Note that for the first enrolled cohort, it is set at 0. The first cohort of patients is treated at the starting dose, dose 1.

param.ctrl

A list specifying the prior distribution for the parameters. p1_beta_intercept, the prior mean of intercept of toxicity model assuming a normal prior; p2_beta_intercept, the precision (inverse of variance) of intercept of toxicity model assuming a normal prior; p1_beta_cycle, the prior mean of cycle effect of toxicity model assuming a normal prior; p2_beta_cycle, the precision (inverse of variance) of cycle effect of toxicity model assuming a normal prior; p1_beta_dose, the prior minimum of dose effect of toxicity model assuming a uniform prior; p2_beta_dose, the prior maximum of dose effect of toxicity model assuming a uniform prior; p1_alpha, the prior mean vector of the parameters from efficacy model assuming a multivariate normal prior; p2_alpha, the prior precision matrix (inverse of covariance matrix) of the parameters from efficacy model assuming a multivariate normal prior; p1_gamma0, the prior mean of association parameter γ\gamma (See Du et al(2017)) of two submodels of the joint model assuming a normal prior; p2_gamma0, the prior precision (inverse of variance) of association parameter γ\gamma of two submodels of the joint model assuming a normal prior. Default is non-informative priors.

Details

p1,p2,thrd1 and thrd2 are used to define allowable (safe) doses through the two probability conditions:

P(tox1<thrd1)>p1P(tox1 < thrd1) > p1

P(tox2<thrd2)>p2P(tox2 < thrd2) > p2

, where tox1 and tox2 denote the estimated toxicity at cycle 1 of the treament and late cycles, respectively. In stage 1, ps1 acts as p1 and p2.

Note that our design allows patients dropout due to DLT events, so the data frames efficacy.dat and toxicity.dat only include the information for the available patients and available cycles.

Value

The function prints information regarding the posterior toxicity/efficacy profile for each dose under exploration, the recommended dose for the next cohort of patients, and return a list with the following components:

nxtdose

The next recommended dose. For dose recommendation at the end of the trial, see opt.dose.

tox.pf

A data frame demonstrating the toxicity profile for each dose under exploration, for cycle 1 of the treatment (row 1) and the other late cycles beyond cycle 1 as an averaged measure (row 2).

eff.pf

A data frame demonstrating the efficacy profile for each dose under exploration, reported after stage 2 of the design begins.

allow.doses

A vector of allowable (safe) doses, defined through the two probability conditions, specified in Details.

dose_flag

A binary indicator. Value 1 indicates that dose has not escalated to dose 2 since the first enrolled cohort while value 0 shows otherwise. Used as input for the next cohort of patients.

opt.dose

The dose that is recommended at the end of the trial. We recommend the lowest (safest) dose that is efficacious. The physicians, however, may make their own desicions by reviewing the efficacy and toxicitiy profile, returned by eff.pf and tox.pf, respectively.

p_nTTP1

Boxplots showing posterior nTTP for cycle 1 of the treatment across dose levels under investigation.

p_nTTP2

Boxplots showing posterior nTTP for late cycles of the treatment across dose levels under investigation.

p_EFF

Boxplots showing posterior efficacy of the treatment across dose levels under investigation, reported after stage 2 of the design begins.

Examples

#load the patient efficacy data
#data(eff_dat)
#head(eff_dat)
#----------------------#
#load the patient toxicity data
#data(tox_dat)
#head(tox_dat)

#RunRMDEFF(efficacy.dat = eff_dat, toxicity.dat = tox_dat)

Simulate trial characters of the phase I dose-finding design.

Description

SimRMD uses the design parameters to simulate the trial characters of phase I dose-finding design.

Usage

SimRMD(seed=2014, strDose=1, chSize=3, trlSize=36,
   numTrials=1000, sdose=1:6, MaxCycle=6, tox.target=0.28,
   control, iter=10000, burnin=4000, thin=1, chains=1,    
   pathout='./', tox.matrix, wm = matrix(c(0, 0.5, 0.75, 1  , 1.5, 
                                        0, 0.5, 0.75, 1  , 1.5, 
                                        0, 0  , 0   , 0.5, 1  ), 
                                        byrow = T, ncol = 5), toxmax = 2.5)

Arguments

seed

Random seed of the simulation (default = 2014).

strDose

Start dose (default = 1).

chSize

Size of each patient cohort (default = 3).

trlSize

Total number of patients in the trial (default = 36).

numTrials

Number of simulated trials (default = 1000).

sdose

Dose range (default = 1:6).

MaxCycle

Maximum treatment cycle (default = 6).

tox.target

Target toxicity score (default = 0.28).

control

Prior distributions as specified by parm function.

iter

Total number of MCMC simulations (default = 4000).

burnin

Number of burn-ins in the MCMC simulation (default = 1000).

thin

Thinning parameter (default = 1).

chains

Number of chains in the MCMC simulation (default = 1).

pathout

The output directory of simulation results (default = './').

tox.matrix

Four-dimension array contains Dose, Cycle, Toxicity Type, Toxicity Grade.

wm

Clinical weight matrix, where toxicity types define the rows while the toxicity grades define the columns. Usually solicited from physicians.

toxmax

The normalization constant used in computing nTTP score. For details, see Ezzalfani et al(2013).

Details

The SimRMD function uses the patient data structure patdata to fit the linear mixed model as specified by formula based on the prior distributions as specified by control. The parameters of the MCMC simulation are specified by iter: the number of iterations, burnin: burn-ins, thin: thinning parameter and chains: number of chains in the MCMC simulation. The target nTTP score is defined by tox.target, default = 0.28.

Value

A list containing the following elements:

DOSE-RECOMMENDED

Recommended dose for the next patient cohort.

Estimate

Mean, SD, and median estimates of the toxicity score at each dose level.

Quantiles

2.5%, 25%, 50%, 75%, 97.5% quantile estimates of the toxicity score at each dose level.

Examples

# Setup the prior distributions for the phase I dose-finding model:
control <- list(
 beta.dose = parm("normal", mean = 0, var = 1000),
 beta.other = parm("normal", mean = 0, var = 1000 ),
 gamma = parm("normal", mean = 0, var = 100 ),
 s2.gamma = parm("invgamma", shape = 0.001, scale = 0.001),
 s2.epsilon = parm("invgamma", shape = 0.001, scale = 0.001)
 )


# Generate the toxicity matrix
# tox.matrix <- GenToxProb(
#    toxtype = c("Renal", "Neuro", "Heme"), 
#	intercept.alpha = c(2, 3, 4.2, 5.7), 
#	coef.beta = c(-0.2, -0.4, -0.7), 
#	cycle.gamma = 0)

# Simulate the dose-recommendation based on the toxicity matrix
# simu <- SimRMD(seed=2014, strDose=1, chSize=3, trlSize=12,
#    numTrials=1, sdose=1:6, MaxCycle=5, tox.target=0.28,
#    control=control, iter=10, burnin=2, thin=1, chains=1,    
#    pathout='./', tox.matrix=tox.matrix)

Simulation for an Adaptive, Multi-Stage Phase I Dose-Finding Design

Description

A function to implement simulation for an adaptive, multi-stage phase 1 dose-finding design incorporating a continuous efficacy outcome and toxicity data from multiple treatment cycles, proposed by Du et al(2017)

Usage

SimRMDEFF(numTrials = 100, trialSize = 36, doses = 1:6, cycles = 1:6,  
          eff.structure = c(0.1, 0.2, 0.3, 0.4, 0.7, 0.9), 
          eff.sd = 0.2, tox.target = 0.28, p1 = 0.2, p2 = 0.2, 
          ps1 = 0.2, StrDose = 1, chSize = 3, 
          tox.matrix = NULL, 
          proxy.thrd = 0.1, thrd1 = 0.28, thrd2 = 0.28, 
          wm = matrix(c(0, 0.5, 0.75, 1  , 1.5, 
                        0, 0.5, 0.75, 1 , 1.5, 
                        0, 0  , 0   , 0.5, 1  ), 
                        byrow = T, ncol = 5), 
          toxmax = 2.5, toxtype = NULL, intercept.alpha = NULL, 
          coef.beta = NULL, cycle.gamma = NULL, 
          param.ctrl = list())

Arguments

numTrials

An integer specifying the number of simulations.

trialSize

The maximum sample size for trial simulation. Default is 36. Must be the multiple of cohort size, represented by chSize.

doses

A vector of doses that users are going to explore. Default is 1:6, where dose 1 through dose 6 are being tested.

cycles

A vector of cycles that the treatment plans to go through. Default is 1:6, where patients will experience up to 6 cycles of the treatment.

eff.structure

A vector of the mean values of efficacy outcome for each dose level explored. Default is c(0.1, 0.2, 0.3, 0.4, 0.7, 0.9), corresponding to dose 1 through dose 6, where the efficacy increases with dose.

eff.sd

The standard deviation for generating the efficacy outcome for each patient. Default is 0.2, which already gives large skewness/variation.

tox.target

The target toxicity at cycle 1 of the treatment. Default is 0.28.

p1

The probability cutoff for cycle 1 toxicity. Default is 0.2. See Details below.

p2

The probability cutoff for later cycles toxicity beyond cycle 1. Default is 0.2. See Details below.

ps1

The probability cutoff for defining allowable (safe) doses in stage 1. Default is 0.2. See Details below.

StrDose

A number to specify the starting dose. Default is 1.

chSize

The cohort size of patients recruited. Default is 3.

tox.matrix

Optional. A four-dimension array specifying the probabilities of the occurrences of certain grades for certain types of toxicities, at each dose level and cycle under consideration. Dimension 1 refers to doses; dimension 2 corresponds to cycles of the treatment; dimension 3 regards the types of toxicities while dimenion 4 relates to grades. If null, which is default choice, the arguments toxtype, intercept.alpha, coef.beta, cycle.gamma must be provided to simulate this array.

proxy.thrd

A distance parameter to define efficacious doses. Any dose whose predicted efficacy is within proxy.thrd away from the largest one among the safe doses will be declared an efficacious dose.

thrd1

An upper bound of toxicity for cycle 1 of the treatment. Default is 0.28. See Details below.

thrd2

An upper bound of toxicity for late cycles of the treatment, beyond cycle 1. Default is 0.28. See Details below.

wm

Clinical weight matrix, where toxicity types define the rows while the toxicity grades define the columns. Usually solicited from physicians.

toxmax

The normalization constant used in computing nTTP score. For details, see Ezzalfani et al(2013).

toxtype

Only specified when tox.matrix is null. This argument, a character vector, specifies toxicity types considered in the trial.

intercept.alpha

Only specified when tox.matrix is null. A four element numeric vector specifying the intercepts for the cumulative probabilities of the occurrences of grades 0-4 of toxicities in proportional odds model. See Details below.

coef.beta

Only specified when tox.matrix is null. A nn numeric vector specifying the slope for dose in proportional odds model for nn types of toxicities. See Details below.

cycle.gamma

Only specified when tox.matrix is null. A scalar controlling the cycle effect in simulation in proportional odds model. See Details below.

param.ctrl

A list specifying the prior distribution for the parameters. p1_beta_intercept, the prior mean of intercept of toxicity model assuming a normal prior; p2_beta_intercept, the precision (inverse of variance) of intercept of toxicity model assuming a normal prior; p1_beta_cycle, the prior mean of cycle effect of toxicity model assuming a normal prior; p2_beta_cycle, the precision (inverse of variance) of cycle effect of toxicity model assuming a normal prior; p1_beta_dose, the prior minimum of dose effect of toxicity model assuming a uniform prior; p2_beta_dose, the prior maximum of dose effect of toxicity model assuming a uniform prior; p1_alpha, the prior mean vector of the parameters from efficacy model assuming a multivariate normal prior; p2_alpha, the prior precision matrix (inverse of covariance matrix) of the parameters from efficacy model assuming a multivariate normal prior; p1_gamma0, the prior mean of association parameter γ\gamma (See Du et al(2017)) of two submodels of the joint model assuming a normal prior; p2_gamma0, the prior precision (inverse of variance) of association parameter γ\gamma of two submodels of the joint model assuming a normal prior. Default is non-informative priors.

Details

p1,p2,thrd1 and thrd2 are used to define allowable (safe) doses through the two probability conditions:

P(tox1<thrd1)>p1P(tox1 < thrd1) > p1

P(tox2<thrd2)>p2P(tox2 < thrd2) > p2

, where tox1 and tox2 denote the toxicity at cycle 1 of the treament and later cycles, respectively. In stage 1, ps1 acts as p1 and p2.

The user can explore different dose-efficacy patterns using the argument eff.structure. For example, eff.structure = c(0.5, 0.5, 0.5, 0.5, 0.5, 0.5) corresponds to a flat relationship where the efficacy does not change with dose.

When tox.matrix is null, the probability matrices of the occurrences of certain grades for certain types of toxicities, at each dose level and cycle will be simulated from a proportional odds model that takes toxtype, intercept.alpha, coef.beta and cycle.gamma as the inputs. The model is as follows:

logit(cj)=αj+βdose+γcycle,j=0,1,2,3logit(c_j) = \alpha_j + \beta * dose + \gamma * cycle, j=0,1,2,3

where given a dose and cycle, cjc_j is the cumulative probabilities of occurrences of toxicities grades up to jj; α0,α1,α2,α3\alpha_0, \alpha_1, \alpha_2, \alpha_3 are the intercepts, making up intercept.alpha; coef.beta stores β\beta for different types of toxicities while cycle.gamma acts as γ\gamma, controlling the cycle effect. The probability for the occurrence of a certain grade of a certain toxicity type at a given dose and cycle is obtained from taking the corresponding differences between cumulative probabilities.

Value

A list with the following components:

op.table

A table reporting the operating characteristics of the trial simulation.

sc

The assumed true mean longitudinal toxicity and efficacy structure for each dose level under investigation, along with the probability of DLT event, for cycle 1 of the treatment.

Examples

#######Dose 5 target toxicity dose, flat cycle effect#####################

###############a flat dose-efficacy pattern###############################

# simul <- SimRMDEFF(toxtype = c("H", "L", "M"), 
                   # intercept.alpha = c(1.9, 2.3, 2.6, 3.1), 
                   # coef.beta = c(-0.3, -0.2, -0.25), 
                   # cycle.gamma = 0, tox.target = 0.23, 
                   # thrd1 = 0.23, thrd2 = 0.23,
                   # eff.structure = rep(0.5, 6),
                   # p1 = 0.1, p2 = 0.1, ps1 = 0.1, 
                   # numTrials = 1)

Patient toxicity data

Description

This data set provides the toxicity data from 9 patients with multiple treatment cycles, matching with the efficacy data.

Usage

tox_dat

Format

A data frame containing 183 observations.

Source

Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.

References

Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.


Patient toxicity data

Description

This data set provides the toxicity data in three toxicity types from 33 patients with multiple treatment cycles, matching with the efficacy data.

Usage

tox_dat_bytype

Format

A data frame containing 125 observations.

Source

Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.

References

Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.


Probability matrix for toxicity

Description

This data set is a four-dimension array (Dose, Cycle, Toxicity Type, Toxicity Grade) specifying the probabilities of the occurrences of certain grades for certain types of toxicities.

Usage

tox.matrix

Format

A 4-dimension array.

Source

Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.

References

Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.


Compute the nTTP score baed on the observed toxicity.

Description

Tox2nTTP use the design parameters to compute the nTTP score baed on the observed toxicity.

Usage

Tox2nTTP(tox = c(1,2,0),
 wm = matrix(c(0, 0.5, 0.75, 1 , 1.5,
 0, 0.5, 0.75, 1 , 1.5,
 0, 0 , 0 , 0.5, 1 ),
 byrow = T, ncol = 5),
 toxmax = 2.5)

Arguments

tox

Toxicity grades for the toxicity types.

wm

Clinical weight matrix, where toxicity types define the rows while the toxicity grades define the columns. Usually solicited from physicians.

toxmax

The normalization constant used in computing nTTP score. For details, see Ezzalfani et al(2013).

Details

The Tox2nTTP function calculates the nTTP values based on the weight matrix.

Value

nTTP value.

Examples

#data(tox_matrix)

# Simulate the operating characteristics of clinical trials:
#Tox2nTTP(tox = c(1,2,0))