pkpop: Dose finding method PKPOP.

Description Usage Arguments Value Author(s) References See Also Examples

View source: R/pkpop.R

Description

The PKPOP model is a variation of the PKLOGIT model which replaced AUCs (z_j) with AUC of the population (z_{k,pop}), where z_{k,pop} is the mean value of the logarithm of AUC at dose k, predicted by the hierarchical model:

z_{i} \vert \boldsymbol{β}, ν \sim N ≤ft( β_0 + β_1 \log d_{i}, ν^{2} \right)

where \boldsymbol{β} = (β_0,β_1) are the regression parameters and ν is the standard deviation. and the logistic regression model:

\mbox{logit}(p_T(z_{k,pop}, \boldsymbol{β})) = -β_3 + β_4 z_{k,pop}

with a bivariate Uniform distribution as prior distribution for the parameters \boldsymbol{β} = (β_3, β_4).

The default choices of the priors are:

\boldsymbol{β} \vert ν \sim N(m, ν*beta0),

ν \sim Beta(1,1),

m = (-log(CL_{pop}), 1),

where Cl_{pop} is the population clearance.

β_3 \sim U(0, beta3mean),

β_4 \sim U(0, beta4mean)

where default choices are Cl_{pop} = 10, beta0 = 10000, beta3mean = 10 and beta4mean = 5. Therefore, the default choices for model's priors are given by

betapriors = c(Cl_{pop} = 10, beta0 = 10000, beta3mean = 10, beta4mean = 5)

Finally, the PKPOP model has the following stopping rule in toxicity: if

P(p_T(dose) > theta) > prob

then, no dose is suggested and the trial is stopped.

Usage

1
2
3
pkpop(y, auc, doses, x, theta, prob = 0.9, options = list(nchains = 4, niter = 4000, 
      nadapt = 0.8), betapriors = c(10, 10000, 10, 5), thetaL = NULL, p0=NULL, 
      L=NULL, deltaAUC=NULL, CI = TRUE)

Arguments

y

A binary vector of patient's toxicity outcomes; TRUE indicates a toxicity, FALSE otherwise.

doses

A vector with the doses panel.

x

A vector with the dose level assigned to the patients.

theta

The toxicity target.

prob

The threshold of the posterior probability of toxicity for the stopping rule; defaults to 0.9.

betapriors

A vector with the value for the prior distribution of the regression parameters in the model; defaults to betapriors = c(Cl_{pop}, beta0, beta3mean, beta4mean), where Cl_{pop} = 10, beta0 = 10000, beta3mean = 10 and beta4mean = 5.

options

A list with the Stan model's options; the number of chains, how many iterations for each chain and the number of warmup iterations; defaults to options = list(nchains = 4, niter = 4000, nadapt = 0.8).

auc

A vector with the computed AUC values of each patient for pktox, pkcrm, pklogit and pkpop; defaults to NULL.

deltaAUC

The difference between computed individual AUC and the AUC of the population at the same dose level (defined as an average); argument for pkcov; defaults to NULL.

p0

The skeleton of CRM for pkcrm; defaults to NULL (must be defined only in the PKCRM model).

L

The AUC threshold to be set before starting the trial for pklogit, pkcrm and pktox; defaults to NULL (must be defined only in the PKCRM model).

thetaL

A second threshold of AUC; must be defined only in the PKCRM model.

CI

A logical constant indicating the estimated 95% credible interval; defaults to TRUE.

Value

A list is returned, consisting of determination of the next recommended dose and estimations of the model. Objects generated by pkpop contain at least the following components:

newDose

The next maximum tolerated dose (MTD); equals to "NA" if the trial has stopped before the end, according to the stopping rules.

pstim

The mean values of estimated probabilities of toxicity.

p_sum

The summary of the estimated probabilities of toxicity if CI = TRUE, otherwise is NULL.

parameters

The estimated model's parameters.

Author(s)

Artemis Toumazi artemis.toumazi@gmail.com, Moreno Ursino moreno.ursino@inserm.fr, Sarah Zohar sarah.zohar@inserm.fr

References

Ursino, M., et al, (2017) Dose-finding methods for Phase I clinical trials using pharmacokinetics in small populations, Biometrical Journal, <doi:10.1002/bimj.201600084>.

Toumazi, A., et al, (2018) dfpk: An R-package for Bayesian dose-finding designs using pharmacokinetics (PK) for phase I clinical trials, Computer Methods and Programs in Biomedicine, <doi:10.1016/j.cmpb.2018.01.023>.

Patterson, S., Francis, S., Ireson, M., Webber, D., and Whitehead, J. (1999) A novel bayesian decision procedure for early-phase dose-finding studies. Journal of Biopharmaceutical Statistics, 9 (4), 583-597.

Whitehead, J., Patterson, S., Webber, D., Francis, S., and Zhou, Y. (2001) Easy-to-implement bayesian methods for dose-escalation studies in healthy volunteers. Biostatistics, 2 (1), 47-61.

Whitehead, J., Zhou, Y., Hampson, L., Ledent, E., and Pereira, A. (2007) A bayesian approach for dose-escalation in a phase i clinical trial incorporating pharmacodynamic endpoints. Journal of Biopharmaceutical Statistics, 17 (6), 1117-1129.

See Also

pklogit, sim.data, nsim, nextDose

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
    ## Not run: 
        doses <- c(12.59972,34.65492,44.69007,60.80685,83.68946,100.37111)
        theta <- 0.2      # choice
        options <- list(nchains = 2, niter = 4000, nadapt = 0.8)
        AUCs <-  c(0.43, 1.4, 5.98, 7.98, 11.90, 3.45)
        x <- c(1,2,3,4,5,6)
        y <- c(FALSE,FALSE,FALSE,FALSE,TRUE,FALSE)

        res <- pkpop(y, AUCs, doses, x, theta, options = options)
    
## End(Not run)

Example output

Loading required package: Rcpp
Loading required package: rstan
Loading required package: ggplot2
Loading required package: StanHeaders
rstan (Version 2.17.3, GitRev: 2e1f913d3ca3)
For execution on a local, multicore CPU with excess RAM we recommend calling
options(mc.cores = parallel::detectCores()).
To avoid recompilation of unchanged Stan programs, we recommend calling
rstan_options(auto_write = TRUE)

SAMPLING FOR MODEL 'reg_auc' NOW (CHAIN 1).

Gradient evaluation took 1.4e-05 seconds
1000 transitions using 10 leapfrog steps per transition would take 0.14 seconds.
Adjust your expectations accordingly!


Iteration:    1 / 4000 [  0%]  (Warmup)
Iteration:  400 / 4000 [ 10%]  (Warmup)
Iteration:  800 / 4000 [ 20%]  (Warmup)
Iteration: 1200 / 4000 [ 30%]  (Warmup)
Iteration: 1600 / 4000 [ 40%]  (Warmup)
Iteration: 2000 / 4000 [ 50%]  (Warmup)
Iteration: 2001 / 4000 [ 50%]  (Sampling)
Iteration: 2400 / 4000 [ 60%]  (Sampling)
Iteration: 2800 / 4000 [ 70%]  (Sampling)
Iteration: 3200 / 4000 [ 80%]  (Sampling)
Iteration: 3600 / 4000 [ 90%]  (Sampling)
Iteration: 4000 / 4000 [100%]  (Sampling)

 Elapsed Time: 0.111548 seconds (Warm-up)
               0.111584 seconds (Sampling)
               0.223132 seconds (Total)


SAMPLING FOR MODEL 'reg_auc' NOW (CHAIN 2).

Gradient evaluation took 6e-06 seconds
1000 transitions using 10 leapfrog steps per transition would take 0.06 seconds.
Adjust your expectations accordingly!


Iteration:    1 / 4000 [  0%]  (Warmup)
Iteration:  400 / 4000 [ 10%]  (Warmup)
Iteration:  800 / 4000 [ 20%]  (Warmup)
Iteration: 1200 / 4000 [ 30%]  (Warmup)
Iteration: 1600 / 4000 [ 40%]  (Warmup)
Iteration: 2000 / 4000 [ 50%]  (Warmup)
Iteration: 2001 / 4000 [ 50%]  (Sampling)
Iteration: 2400 / 4000 [ 60%]  (Sampling)
Iteration: 2800 / 4000 [ 70%]  (Sampling)
Iteration: 3200 / 4000 [ 80%]  (Sampling)
Iteration: 3600 / 4000 [ 90%]  (Sampling)
Iteration: 4000 / 4000 [100%]  (Sampling)

 Elapsed Time: 0.102555 seconds (Warm-up)
               0.108869 seconds (Sampling)
               0.211424 seconds (Total)


SAMPLING FOR MODEL 'logit_reg_pkpop' NOW (CHAIN 1).

Gradient evaluation took 1.1e-05 seconds
1000 transitions using 10 leapfrog steps per transition would take 0.11 seconds.
Adjust your expectations accordingly!


Iteration:    1 / 4000 [  0%]  (Warmup)
Iteration:  400 / 4000 [ 10%]  (Warmup)
Iteration:  800 / 4000 [ 20%]  (Warmup)
Iteration: 1200 / 4000 [ 30%]  (Warmup)
Iteration: 1600 / 4000 [ 40%]  (Warmup)
Iteration: 2000 / 4000 [ 50%]  (Warmup)
Iteration: 2001 / 4000 [ 50%]  (Sampling)
Iteration: 2400 / 4000 [ 60%]  (Sampling)
Iteration: 2800 / 4000 [ 70%]  (Sampling)
Iteration: 3200 / 4000 [ 80%]  (Sampling)
Iteration: 3600 / 4000 [ 90%]  (Sampling)
Iteration: 4000 / 4000 [100%]  (Sampling)

 Elapsed Time: 0.053982 seconds (Warm-up)
               0.05208 seconds (Sampling)
               0.106062 seconds (Total)


SAMPLING FOR MODEL 'logit_reg_pkpop' NOW (CHAIN 2).

Gradient evaluation took 5e-06 seconds
1000 transitions using 10 leapfrog steps per transition would take 0.05 seconds.
Adjust your expectations accordingly!


Iteration:    1 / 4000 [  0%]  (Warmup)
Iteration:  400 / 4000 [ 10%]  (Warmup)
Iteration:  800 / 4000 [ 20%]  (Warmup)
Iteration: 1200 / 4000 [ 30%]  (Warmup)
Iteration: 1600 / 4000 [ 40%]  (Warmup)
Iteration: 2000 / 4000 [ 50%]  (Warmup)
Iteration: 2001 / 4000 [ 50%]  (Sampling)
Iteration: 2400 / 4000 [ 60%]  (Sampling)
Iteration: 2800 / 4000 [ 70%]  (Sampling)
Iteration: 3200 / 4000 [ 80%]  (Sampling)
Iteration: 3600 / 4000 [ 90%]  (Sampling)
Iteration: 4000 / 4000 [100%]  (Sampling)

 Elapsed Time: 0.053934 seconds (Warm-up)
               0.051617 seconds (Sampling)
               0.105551 seconds (Total)

dfpk documentation built on May 2, 2019, 8:31 a.m.