Title: | Dose Finding in Drug Combination Phase I Trials Using PO-CRM |
---|---|
Description: | Provides functions to implement and simulate the partial order continual reassessment method (PO-CRM) of Wages, Conaway and O'Quigley (2011) <doi:10.1177/1740774511408748> for use in Phase I trials of combinations of agents. Provides a function for generating a set of initial guesses (skeleton) for the toxicity probabilities at each combination that correspond to the set of possible orderings of the toxicity probabilities specified by the user. |
Authors: | Nolan A. Wages |
Maintainer: | "Brewer, Ben (arb5mt)" <[email protected]> |
License: | GPL-2 |
Version: | 0.13 |
Built: | 2024-12-23 06:19:45 UTC |
Source: | CRAN |
getwm returns a matrix of skeleton values corresponding to the possible orderings of the toxicity probabilities in a Phase I trial of combined drugs for use in the partial order continual reassessment method (PO-CRM).
getwm(orders, skeleton)
getwm(orders, skeleton)
orders |
A matrix specifying the possible orderings of the combinations with regards to their toxicity probabilities. |
skeleton |
A vector of values for the initial guesses of toxicity probabilities. The location of these values will be adjusted to correspond to the orderings specified by orders. |
Based on the matrix of possible orderings, the skeleton values are adjusted to correspond to the possible orderings of the toxicity probabilities. See Table 4 of Wages, Conaway and O'Quigley (2011).
alpha |
A matrix of skeleton values corresponding to the possible orderings of the toxicity probabilities specified by orders. |
Wages, Conaway and O'Quigley (2011). Dose-finding design for multi-drug combinations. Clinical Trials 8(4): 380-389.
#All specifications refer to example in Wages, Conaway and O'Quigley (2011). #Specify the possible orderings from Table 2 orders<-matrix(nrow=8,ncol=8) orders[1,]<-c(1,2,3,4,5,6,7,8) orders[2,]<-c(1,3,2,4,5,6,7,8) orders[3,]<-c(1,2,3,5,4,6,7,8) orders[4,]<-c(1,2,3,4,5,7,6,8) orders[5,]<-c(1,3,2,5,4,6,7,8) orders[6,]<-c(1,3,2,4,5,7,6,8) orders[7,]<-c(1,2,3,5,4,7,6,8) orders[8,]<-c(1,3,2,5,4,7,6,8) #Specify the skeleton values provided in Table 4. skeleton<-c(0.01,0.03,0.10,0.20,0.33,0.47,0.60,0.70) getwm(orders,skeleton)
#All specifications refer to example in Wages, Conaway and O'Quigley (2011). #Specify the possible orderings from Table 2 orders<-matrix(nrow=8,ncol=8) orders[1,]<-c(1,2,3,4,5,6,7,8) orders[2,]<-c(1,3,2,4,5,6,7,8) orders[3,]<-c(1,2,3,5,4,6,7,8) orders[4,]<-c(1,2,3,4,5,7,6,8) orders[5,]<-c(1,3,2,5,4,6,7,8) orders[6,]<-c(1,3,2,4,5,7,6,8) orders[7,]<-c(1,2,3,5,4,7,6,8) orders[8,]<-c(1,3,2,5,4,7,6,8) #Specify the skeleton values provided in Table 4. skeleton<-c(0.01,0.03,0.10,0.20,0.33,0.47,0.60,0.70) getwm(orders,skeleton)
pocrm.imp is used to compute a combination recommendation for the next patient in a Phase I trial of combined drugs according to the partial order continual reassessment method (PO-CRM).
pocrm.imp(alpha, prior.o, theta, y, combos)
pocrm.imp(alpha, prior.o, theta, y, combos)
alpha |
A matrix of skeleton values corresponding to the possible orderings of the toxicity probabilities generated by getwm. |
prior.o |
A vector of prior probabilities on the orderings. |
theta |
The target DLT rate. |
y |
A vector of patient outcomes; 1 indicates toxicity, 0 otherwise. |
combos |
A vector of dose levels assigned to patients. The length of combos must be equal to y. |
The method bases toxicity probability estimates on the power model (2) of Wages, Conaway and O'Quigley (2011).
ord.prob |
Updated estimates of the ordering probabilities. |
order.est |
Updated estimate of the ordering of toxicity probabilities. |
a.est |
The estimate of the model parameter. |
ptox.est |
Updated estimates of the toxicity probabilities. |
dose.rec |
The combination recommended for the next patient cohort. |
Wages, Conaway and O'Quigley (2011). Dose-finding design for multi-drug combinations. Clinical Trials 8(4): 380-389.
#All specifications refer to example in Wages, Conaway and O'Quigley (2011). #Specify the possible orderings from Table 2 orders<-matrix(nrow=8,ncol=8) orders[1,]<-c(1,2,3,4,5,6,7,8) orders[2,]<-c(1,3,2,4,5,6,7,8) orders[3,]<-c(1,2,3,5,4,6,7,8) orders[4,]<-c(1,2,3,4,5,7,6,8) orders[5,]<-c(1,3,2,5,4,6,7,8) orders[6,]<-c(1,3,2,4,5,7,6,8) orders[7,]<-c(1,2,3,5,4,7,6,8) orders[8,]<-c(1,3,2,5,4,7,6,8) #Specify the skeleton values provided in Table 4. skeleton<-c(0.01,0.03,0.10,0.20,0.33,0.47,0.60,0.70) #Initial guesses of toxicity probabilities for each ordering. alpha<-getwm(orders,skeleton) #We consider all orders to be equally likely prior to the study. prior.o<-rep(1/8,8) #The target toxicity rate theta<-0.20 #Combinations tried on the first 11 patients in Table 5. combos<-c(2,3,5,4,7,5,4,3,2,2,3) #Toxicity outcomes on the first 11 patients in Table 5. y<-c(0,0,0,0,1,1,1,0,0,1,1) fit<-pocrm.imp(alpha,prior.o,theta,y,combos) fit
#All specifications refer to example in Wages, Conaway and O'Quigley (2011). #Specify the possible orderings from Table 2 orders<-matrix(nrow=8,ncol=8) orders[1,]<-c(1,2,3,4,5,6,7,8) orders[2,]<-c(1,3,2,4,5,6,7,8) orders[3,]<-c(1,2,3,5,4,6,7,8) orders[4,]<-c(1,2,3,4,5,7,6,8) orders[5,]<-c(1,3,2,5,4,6,7,8) orders[6,]<-c(1,3,2,4,5,7,6,8) orders[7,]<-c(1,2,3,5,4,7,6,8) orders[8,]<-c(1,3,2,5,4,7,6,8) #Specify the skeleton values provided in Table 4. skeleton<-c(0.01,0.03,0.10,0.20,0.33,0.47,0.60,0.70) #Initial guesses of toxicity probabilities for each ordering. alpha<-getwm(orders,skeleton) #We consider all orders to be equally likely prior to the study. prior.o<-rep(1/8,8) #The target toxicity rate theta<-0.20 #Combinations tried on the first 11 patients in Table 5. combos<-c(2,3,5,4,7,5,4,3,2,2,3) #Toxicity outcomes on the first 11 patients in Table 5. y<-c(0,0,0,0,1,1,1,0,0,1,1) fit<-pocrm.imp(alpha,prior.o,theta,y,combos) fit
pocrm.sim is used to simulate Phase I trials of combined drugs according to the partial order continual reassessment method (PO-CRM).
pocrm.sim(r, alpha, prior.o, x0, stop, n, theta, nsim, tox.range)
pocrm.sim(r, alpha, prior.o, x0, stop, n, theta, nsim, tox.range)
r |
A vector of true toxicity probabilities. |
alpha |
A matrix of skeleton values corresponding to the possible orderings of the toxicity probabilities generated by getwm. |
prior.o |
A vector of prior probabilities on the orderings. |
x0 |
A vector specifying an initial escalation scheme. It should be a sequence of combinations to which the trial would proceed prior to the observance of the first DLT. The length of x0 cannot exceed n. |
stop |
The total number of patients treated on any combination required to stop the trial. See details. |
n |
The maximum sample size. If stop>n, then the trial will exhaust a pre-determined, fixed sample size of n patients. |
theta |
The target DLT rate. |
nsim |
The number of simulations. |
tox.range |
A single numeric value used to define a range of "acceptable" DLT rates. The simulation results will report the percentage of simulated trials that recommended a combination within +/- tox.range of the target rate. |
The method bases toxicity probability estimates on the power model (5) of Wages, Conaway and O'Quigley (2011a).
The initial escalation scheme, x0, is a vector specifying the order in which combinations should be tried and the size of the cohort at each combination in Stage 1. For instance, proceeding through the zones in Table 3 of Wages, Conaway and O'Quigley (2011) in cohorts of 2 would x0=c(rep(1,2),rep(2,2),rep(3,2),rep(4,2),rep(5,2),rep(6,2),rep(7,2),rep(8,2)). This scheme will only be relied upon until the first DLT is observed, when the design switches to Stage 2. In Stage 1, if a DLT is observed on the first patient, the method will continue to enroll patients on the lowest combination until a non-DLT is observed.
The design will stop at the end of Stage 1 if escalation proceeds to the highest dose combination and stop patients are treated with no DLTs. In this case, the study is stopped and the highest dose combination is declared the MTD combination. In the Stage 2, if the recommendation is to assign the next patient to a combination that already has stop patients treated on the combination, the study is stopped and the recommended combination is declared the MTD combination.
trial |
Data frame containing output of a single simulated trial. Output includes the combination on which each patient was treated, toxicity information for each patient, the estimated value of the model parameter and the estimated ordering of toxicity probabilities. Only output if nsim=1. |
true.prob |
True toxicity probabilities. |
MTD.selection |
The distribution of MTD estimates. If nsim=1, this is a single numeric value of the recommended MTD combination of a single simulated trial. |
patient.allocation |
The distribution of patient allocation at each combination. |
percent.DLT |
Average percentage of DLTs across all simulated trials. |
mean.n |
Average number of patients treated in the trial. |
acceptable |
Percentage selection of combinations within +/- tox.range of the target rate. |
Wages, Conaway and O'Quigley (2011). Dose-finding design for multi-drug combinations. Clinical Trials 8(4): 380-389.
Wages, Conaway and O'Quigley (2011a). Continual reassessment method for partial ordering. Biometrics 67(4): 15551563.
#All specifications refer to example in Wages, Conaway and O'Quigley (2011a). #True toxicity rates of Scenario 1 in Table 4. r<-c(0.06,0.08,0.10,0.15,0.10,0.12,0.30,0.45,0.15,0.30,0.50,0.60,0.50,0.55,0.60,0.70) #Specifiy the possible orderings from Section 3.3. orders<-matrix(nrow=3,ncol=16) orders[1,]<-c(1,2,5,3,6,9,4,7,10,13,8,11,14,12,15,16) orders[2,]<-c(1,5,2,3,6,9,13,10,7,4,8,11,14,15,12,16) orders[3,]<-c(1,5,2,9,6,3,13,10,7,4,14,11,8,15,12,16) #Specify the skeleton values. skeleton<-getprior(0.05,0.30,8,16) #Initial guesses of toxicity probabilities for each ordering. alpha<-getwm(orders,skeleton) #We consider all orders to be equally likely prior to the study. prior.o<-rep(1/3,3) #Initial escalation in Stage 1 proceeds according to the zones in Figure 1. #Single patient cohorts are used. x0<-c(rep(1,1),rep(2,1),rep(5,1),rep(3,1),rep(6,1),rep(9,1),rep(4,1),rep(7,1),rep(10,1),rep(13,1), rep(8,1),rep(11,1),rep(14,1),rep(12,1),rep(15,1),rep(16,1)) #Number of patients used to define stopping rule stop<-61 #Maximum sample size. n<-60 #The target toxicity rate theta<-0.30 #Number of simulations nsim<-2 #Definition of acceptable DLT rates tox.range<-0.05 fit<-pocrm.sim(r,alpha,prior.o,x0,stop,n,theta,nsim,tox.range) fit
#All specifications refer to example in Wages, Conaway and O'Quigley (2011a). #True toxicity rates of Scenario 1 in Table 4. r<-c(0.06,0.08,0.10,0.15,0.10,0.12,0.30,0.45,0.15,0.30,0.50,0.60,0.50,0.55,0.60,0.70) #Specifiy the possible orderings from Section 3.3. orders<-matrix(nrow=3,ncol=16) orders[1,]<-c(1,2,5,3,6,9,4,7,10,13,8,11,14,12,15,16) orders[2,]<-c(1,5,2,3,6,9,13,10,7,4,8,11,14,15,12,16) orders[3,]<-c(1,5,2,9,6,3,13,10,7,4,14,11,8,15,12,16) #Specify the skeleton values. skeleton<-getprior(0.05,0.30,8,16) #Initial guesses of toxicity probabilities for each ordering. alpha<-getwm(orders,skeleton) #We consider all orders to be equally likely prior to the study. prior.o<-rep(1/3,3) #Initial escalation in Stage 1 proceeds according to the zones in Figure 1. #Single patient cohorts are used. x0<-c(rep(1,1),rep(2,1),rep(5,1),rep(3,1),rep(6,1),rep(9,1),rep(4,1),rep(7,1),rep(10,1),rep(13,1), rep(8,1),rep(11,1),rep(14,1),rep(12,1),rep(15,1),rep(16,1)) #Number of patients used to define stopping rule stop<-61 #Maximum sample size. n<-60 #The target toxicity rate theta<-0.30 #Number of simulations nsim<-2 #Definition of acceptable DLT rates tox.range<-0.05 fit<-pocrm.sim(r,alpha,prior.o,x0,stop,n,theta,nsim,tox.range) fit