Using R package to implement Bayesian phase I/II dose-finding design for three outcomes

Ran20

New Member
#1
Dear all,

I am trying to implement the work done by Suyu Liu, “A Bayesian Phase I/II Trial Design for Immunotherapy”, using R, since the code attached with that work takes a lot of time (more than 20 hours, and the code not complete). So that I tried to use trialr package since it used rstan, but this package allowed me to use two outcomes ( toxicity, efficacy ) and the work of Liu used three outcomes (immune response, toxicity, and efficacy).
I tried to use the R package trialr for two outcomes using the utility for sensitivity analysis written in R code below (table 1 below), I want to see if I used the correct utility and to see how to add a third outcome ( immune response ) to the model? (Question 1)
I attached to you the code and the output for 50 iterations and 60 patients ( I cannot do more, it took around 12 hours),

if you know how he produced the results, (Question 2)
I hope you can feed me back.
and thanks in advance.

1623095869884.png
`````
### My code###
rm(list = ls())
library(trialr)

#Utility
Uti <- array(0,c(2,3,2)) # order: tox, eff, immuno
Uti[,,1] <- matrix(c(0,0,50,10,80,35),nrow=2)
Uti[,,2] <- matrix(c(5,0,70,20,100,45),nrow=2)
N.max= 60 # patients
outcomes <- '1NNN 2NNT 3NNT 4NNN 5NTN'
doses = c(.1,.3,.5,.7,.9)

fit <- stan_efftox(outcomes,
real_doses =doses,
efficacy_hurdle = 0.5, toxicity_hurdle = 0.3,
p_e = 0.1, p_t = 0.1,
eff0 = 0.5, tox1 = 0.65,
eff_star = 0.7, tox_star = 0.25,
alpha_mean = -7.9593, alpha_sd = 3.5487,
beta_mean = 1.5482, beta_sd = 3.5018,
gamma_mean = 0.7367, gamma_sd = 2.5423,
zeta_mean = 3.4181, zeta_sd = 2.4406,
eta_mean = 0, eta_sd = 0.2,
psi_mean = 0, psi_sd = 1,
seed = 123)

ndoses <- length(fit$prob_tox)
plot(1:ndoses, fit$prob_tox, type="b", pch=19, xlab="Dose level", ylab="Probability of toxicity", ylim=c(0,max(fit$prob_tox) + 0.15), col="green")
points(1:ndoses,fit$prob_eff, type="b", pch=18, col="blue")
abline(h=0.3, lwd=2, lty=4, col = "red")
legend(1, 0.4, legend=c("Toxicity", "Effecacy"),
col=c("green", "blue"), lty=1:2, cex=0.8)

````
 

Attachments

#2
Bayesian phase I/II dose-finding study strategy that accounts for toxicity and efficacy at the same time. The toxicity and efficacy of exploratory doses were assessed using a flexible Bayesian dynamic model that borrowed information from previous doses rather than imposing strict parametric assumptions on the shape of the dose–toxicity and dose–efficacy curves.
The dose assignment and selection are guided by an intuitive utility function that depicts the desired trade-offs between efficacy and toxicity. We also go through how to extend this strategy to deal with delayed toxicity and efficacy. We conduct thorough simulation tests to examine the suggested method's operational properties in various real-world circumstances. The results reveal that the proposed design has good operating properties and is resistant to dose–toxicity and efficacy curves of various shapes.
 
#3
Thanks for your comment,
but the code attached is not helpful, do you have some tools that can perform this thing, and if you can share it, please.