From 1f78526098b87868c84abafbef8ce17ba5d4abde Mon Sep 17 00:00:00 2001 From: jtimonen Date: Fri, 5 Dec 2025 23:20:26 +0200 Subject: [PATCH 1/6] Increment version number to 0.3.1.9000 --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index bfc79d7..9329dbf 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: bmstate Type: Package Title: Bayesian multistate modeling -Version: 0.3.1 +Version: 0.3.1.9000 Authors@R: c(person(given = "Juho", family = "Timonen", From c777d9e0e7974ec7ce03f5205dfc56ed9d6dbdda Mon Sep 17 00:00:00 2001 From: jtimonen Date: Sat, 6 Dec 2025 00:43:34 +0200 Subject: [PATCH 2/6] fix ss xpsr --- R/MultistateModelFit.R | 2 +- R/PKModel.R | 4 +--- R/stan.R | 3 +-- inst/stan/msm.stan | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/R/MultistateModelFit.R b/R/MultistateModelFit.R index 6a8f654..c16d01c 100644 --- a/R/MultistateModelFit.R +++ b/R/MultistateModelFit.R @@ -414,7 +414,7 @@ msmfit_exposure <- function(fit, oos = FALSE, data = NULL) { out <- list() for (s in seq_len(S)) { if (sd$do_pk == 1) { - x_xpsr <- log_ss_area_under_conc(sd$dose_ss, log_pkpar[[s]]) # log D/(CL*V2) + x_xpsr <- log_ss_area_under_conc(sd$dose_ss, log_pkpar[[s]]) # log D/CL } else { x_xpsr <- NULL } diff --git a/R/PKModel.R b/R/PKModel.R index 96bec24..dac6723 100644 --- a/R/PKModel.R +++ b/R/PKModel.R @@ -110,11 +110,9 @@ PKModel <- R6::R6Class("PKModel", #' @return A numeric value compute_xpsr = function(theta, dose) { CL <- theta[2] - V2 <- theta[3] checkmate::assert_number(CL, lower = 0) - checkmate::assert_number(V2, lower = 0) checkmate::assert_number(dose, lower = 0) - log(dose) - log(CL) - log(V2) + log(dose) - log(CL) }, #' @description Simulate data with many subjects diff --git a/R/stan.R b/R/stan.R index 00cb5b6..0403066 100644 --- a/R/stan.R +++ b/R/stan.R @@ -102,8 +102,7 @@ fit_stan <- function(model, data, model$set_normalizers(data) if (!is.null(data$dosing)) { log_mu_CL <- -2 # should match msm.stan - log_mu_V2 <- -2 # should match msm.stan - aaa <- log(data$dosing$dose_ss) - log_mu_CL - log_mu_V2 + aaa <- log(data$dosing$dose_ss) - log_mu_CL loc <- mean(aaa) sca <- stats::sd(aaa) model$set_xpsr_normalizers(loc, sca) diff --git a/inst/stan/msm.stan b/inst/stan/msm.stan index 2ae604b..c28d8f3 100644 --- a/inst/stan/msm.stan +++ b/inst/stan/msm.stan @@ -2,7 +2,7 @@ functions { // log SS AUC vector log_ss_area_under_conc(vector dose_ss, matrix log_theta_pk){ - return(log(dose_ss) - log_theta_pk[:,2] - log_theta_pk[:,3]) ; // log D/(CL*V2) + return(log(dose_ss) - log_theta_pk[:,2]) ; // log D/CL } // log of hazard multiplier From 4e4069808958f292ac68e88ef161ff7e61561ccc Mon Sep 17 00:00:00 2001 From: jtimonen Date: Sat, 6 Dec 2025 01:08:01 +0200 Subject: [PATCH 3/6] set default norm --- R/MultistateModel.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/MultistateModel.R b/R/MultistateModel.R index 3a357a9..020b4e1 100644 --- a/R/MultistateModel.R +++ b/R/MultistateModel.R @@ -47,7 +47,7 @@ MultistateModel <- R6::R6Class("MultistateModel", categorical = NULL, normalizer_locations = NULL, normalizer_scales = NULL, - xpsr_normalizer_loc = 7.5, + xpsr_normalizer_loc = 5.5, # corresponds to about dose=30 xpsr_normalizer_scale = 0.5, n_grid = NULL, simulate_log_hazard_multipliers = function(df_subjects, beta) { From 124c529b28c185045729ebc219a1982fced7a660 Mon Sep 17 00:00:00 2001 From: jtimonen Date: Sat, 6 Dec 2025 01:32:08 +0200 Subject: [PATCH 4/6] Increment version number to 0.3.2 --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 9329dbf..5846bfb 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: bmstate Type: Package Title: Bayesian multistate modeling -Version: 0.3.1.9000 +Version: 0.3.2 Authors@R: c(person(given = "Juho", family = "Timonen", From 2a0727b468b198ae5234f3e2f07c23391b6b2d20 Mon Sep 17 00:00:00 2001 From: jtimonen Date: Sat, 6 Dec 2025 01:32:39 +0200 Subject: [PATCH 5/6] safety edit --- inst/stan/msm.stan | 2 +- vignettes/analysis.Rmd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/inst/stan/msm.stan b/inst/stan/msm.stan index c28d8f3..389dd88 100644 --- a/inst/stan/msm.stan +++ b/inst/stan/msm.stan @@ -448,7 +448,7 @@ model { if(do_haz == 1){ if(nc_haz > 0){ for(k in 1:nc_haz){ - beta_oth[1, k] ~ normal(0, 2); + beta_oth[1, k] ~ normal(0, 1); } } if(I_xpsr==1){ diff --git a/vignettes/analysis.Rmd b/vignettes/analysis.Rmd index 7c49921..eb683fb 100644 --- a/vignettes/analysis.Rmd +++ b/vignettes/analysis.Rmd @@ -142,7 +142,7 @@ mod$get_knots() We fit the model by optimizing. ```{r} -fit <- fit_stan(mod, data = pd, method = "optimize") +fit <- fit_stan(mod, data = pd, method = "optimize", init = 0.1) ``` ## Inferred baseline hazards From 67c8755ae07c806e1e3ff16b69e467faf80ff076 Mon Sep 17 00:00:00 2001 From: jtimonen Date: Sat, 6 Dec 2025 01:33:00 +0200 Subject: [PATCH 6/6] Increment version number to 0.3.3 --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 5846bfb..ba02323 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: bmstate Type: Package Title: Bayesian multistate modeling -Version: 0.3.2 +Version: 0.3.3 Authors@R: c(person(given = "Juho", family = "Timonen",