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 |
This data set provides the efficacy data from 22 patients.
eff_dat
eff_dat
A matrix containing 22 observations.
Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.
Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.
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.
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)
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)
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 |
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. |
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:
where given a dose and cycle, is the cumulative probabilities of occurrences of toxicities grades up to
;
are the intercepts, making up
intercept.alpha
; coef.beta
stores for different types of toxicities while
cycle.gamma
acts as , 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.
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.
#tox.matrix <- GenToxProb()
#tox.matrix <- GenToxProb()
parm
creates an S3 object of class parm
that contains all necessary prior information to estimate the phase I repeated measures model.
parm(prior = c("gamma", "invgamma", "normal"), mean=0, var=100, shape=0.001, scale=0.001)
parm(prior = c("gamma", "invgamma", "normal"), mean=0, var=100, shape=0.001, scale=0.001)
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). |
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.)
An object of class parm
, containing information for the prior.
Jun Yin
# 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) )
# 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) )
This data set provides the toxicity data from multiple treatment cycles. The toxicity data is defined by nTTP toxicity score.
patdata
patdata
A data frame containing 9 observations.
Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.
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.RunRMDVal
plot the dose-nTTP estimation in cycle based on the RunRMD estimation.
## S3 method for class 'RunRMDVal' plot(x, ...)
## S3 method for class 'RunRMDVal' plot(x, ...)
x |
The output of RunRMD. An S3 object of 'RunRMDVal' class. |
... |
Other plot parameters. |
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.
This function plots the dose-nTTP estimation in cycle based on the RunRMD estimation.
# 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);
# 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);
This data set provides the toxicity matrix of 3 types of toxicity events over 6 doses and 5 treatment cycles.
probaT
probaT
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.
Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.
Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.
RunRMD estimate the dosage for the next patient cohort using TTP measured multidimensional toxicity data collected from multiple treatemnt cycles of the existing patients.
RunRMD(data, control, trlSize = 36, tox.target = 0.28, sdose = 1:6, strDose = 1, iter=10000, burnin=4000, thin=1, chains=1)
RunRMD(data, control, trlSize = 36, tox.target = 0.28, sdose = 1:6, strDose = 1, iter=10000, burnin=4000, thin=1, chains=1)
data |
Toxicty data collected from the multiple treatment cycles of existing patient cohorts. |
control |
Prior distributions as specified by |
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). |
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.
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. |
# 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)
# 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)
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)
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())
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())
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 |
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 |
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 |
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
,p2
,thrd1
and thrd2
are used to define allowable (safe) doses through the two probability conditions:
, 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.
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 |
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 |
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. |
#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)
#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)
SimRMD uses the design parameters to simulate the trial characters of phase I dose-finding design.
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)
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)
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 |
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). |
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.
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. |
# 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)
# 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)
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)
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())
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())
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 |
doses |
A vector of doses that users are going to explore. Default is |
cycles |
A vector of cycles that the treatment plans to go through. Default is |
eff.structure |
A vector of the mean values of efficacy outcome for each dose level explored. Default is |
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 |
proxy.thrd |
A distance parameter to define efficacious doses. Any dose whose predicted efficacy is within |
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 |
intercept.alpha |
Only specified when |
coef.beta |
Only specified when |
cycle.gamma |
Only specified when |
param.ctrl |
A list specifying the prior distribution for the parameters. |
p1
,p2
,thrd1
and thrd2
are used to define allowable (safe) doses through the two probability conditions:
, 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:
where given a dose and cycle, is the cumulative probabilities of occurrences of toxicities grades up to
;
are the intercepts, making up
intercept.alpha
; coef.beta
stores for different types of toxicities while
cycle.gamma
acts as , 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.
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. |
#######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)
#######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)
This data set provides the toxicity data from 9 patients with multiple treatment cycles, matching with the efficacy data.
tox_dat
tox_dat
A data frame containing 183 observations.
Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.
Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.
This data set provides the toxicity data in three toxicity types from 33 patients with multiple treatment cycles, matching with the efficacy data.
tox_dat_bytype
tox_dat_bytype
A data frame containing 125 observations.
Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.
Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.
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.
tox.matrix
tox.matrix
A 4-dimension array.
Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.
Yin, Jun, et al. "A Bayesian dose finding design incorporating toxicity data from multiple treatment cycles." Statistics in Medicine 36.1 (2017): 67-80.
Tox2nTTP
use the design parameters to compute the nTTP score baed on the observed toxicity.
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)
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)
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). |
The Tox2nTTP
function calculates the nTTP values based on the weight matrix.
nTTP value.
#data(tox_matrix) # Simulate the operating characteristics of clinical trials: #Tox2nTTP(tox = c(1,2,0))
#data(tox_matrix) # Simulate the operating characteristics of clinical trials: #Tox2nTTP(tox = c(1,2,0))