Package 'pocrm'

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

Help Index


Obtain the working models for use in the partial order continual reassessment method (PO-CRM)

Description

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

Usage

getwm(orders, skeleton)

Arguments

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.

Details

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

Value

alpha

A matrix of skeleton values corresponding to the possible orderings of the toxicity probabilities specified by orders.

References

Wages, Conaway and O'Quigley (2011). Dose-finding design for multi-drug combinations. Clinical Trials 8(4): 380-389.

Examples

#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)

Executing the PO-CRM

Description

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

Usage

pocrm.imp(alpha, prior.o, theta, y, combos)

Arguments

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.

Details

The method bases toxicity probability estimates on the power model (2) of Wages, Conaway and O'Quigley (2011).

Value

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.

References

Wages, Conaway and O'Quigley (2011). Dose-finding design for multi-drug combinations. Clinical Trials 8(4): 380-389.

Examples

#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

Simulating the PO-CRM

Description

pocrm.sim is used to simulate Phase I trials of combined drugs according to the partial order continual reassessment method (PO-CRM).

Usage

pocrm.sim(r, alpha, prior.o, x0, stop, n, theta, nsim, tox.range)

Arguments

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.

Details

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.

Value

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.

References

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.

Examples

#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