The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
First dose selection for a critical care patient treated with amikacin for suspected ventilator-associated pneumonia. Population pharmacokinetic (ppk) model form Burdet et al. 2015.
mod_amikacin_Burdet2015 <- function() {
ini({
THETA_Cl=4.3
THETA_Vc=15.9
THETA_Vp=21.4
THETA_Q=12.1
ETA_Cl + ETA_Vc + ETA_Vp + ETA_Q ~
c(0.1,
0.01 , 0.05 ,
0.01 , 0.02 , 0.2 ,
-0.06 , 0.004, 0.003, 0.08)
add_sd <- 0.2
prop_sd <- 0.1
})
model({
TVCl = THETA_Cl*(CLCREAT4H/82)^0.7
TVVc = THETA_Vc*(TBW/78)^0.9*(PoverF/169)^0.4
TVVp = THETA_Vp
TVQ = THETA_Q
Cl = TVCl*exp(ETA_Cl)
Vc = TVVc*exp(ETA_Vc)
Vp = TVVp*exp(ETA_Vp)
Q = TVQ *exp(ETA_Q)
ke = Cl/Vc
k12 = Q/Vc
k21 = Q/Vp
Cp = centr/Vc
d/dt(centr) = - ke*centr - k12*centr + k21*periph
d/dt(periph) = + k12*centr - k21*periph
Cp ~ add(add_sd) + prop(prop_sd) + combined1()
})
}
Before the first administration, no concentration information is available. The patient record contains only the information required to fill in the covariates of the model:
In the absence of measured concentrations, the optimal dose in mg to achieve a concentration of 80 mg/l one hour after the start of the 30-minute infusion is determined from the typical profile of the ppk model.
prior_dose <- poso_dose_conc(dat=df_patientA,
prior_model=mod_amikacin_Burdet2015,
time_c = 1, #30 min after a
duration = 0.5, #30 min infusion
target_conc = 80)
prior_dose
#> $dose
#> [1] 2087.669
#>
#> $type_of_estimate
#> [1] "point estimate"
#>
#> $conc_estimate
#> [1] 80
#>
#> $indiv_param
#> THETA_Cl THETA_Vc THETA_Vp THETA_Q add_sd prop_sd ETA_Cl ETA_Vc
#> 1 4.3 15.9 21.4 12.1 0.2 0.1 2.025724e-07 6.573817e-08
#> ETA_Vp ETA_Q CLCREAT4H TBW PoverF
#> 1 2.011353e-07 -1.163665e-07 50 62 169
Following this dose, the time in hours required to reach a target Cmin concentration of 2.5 mg/l can be estimated.
poso_time_cmin(dat=df_patientA,
prior_model=mod_amikacin_Burdet2015,
dose = prior_dose$dose,
duration = 0.5, #30 min infusion
target_cmin = 2.5)
#> $time
#> [1] 37.5
#>
#> $type_of_estimate
#> [1] "point estimate"
#>
#> $cmin_estimate
#> [1] 2.49637
#>
#> $indiv_param
#> THETA_Cl THETA_Vc THETA_Vp THETA_Q add_sd prop_sd ETA_Cl ETA_Vc
#> 1 4.3 15.9 21.4 12.1 0.2 0.1 -9.803026e-07 3.556777e-07
#> ETA_Vp ETA_Q CLCREAT4H TBW PoverF
#> 1 -3.567767e-07 9.847164e-07 50 62 169
The selected dose can be simulated and plotted. By setting
n_simul = 0
, the poso_simu_pop()
function
produces a compiled rxode2
model without inter-individual
variability, using typical population parameter values and individual
covariates from the patient record.
# generate a model using the individual covariates
simu_patA <- poso_simu_pop(dat=df_patientA,
prior_model=mod_amikacin_Burdet2015,
n_simul = 0)
Observations and a 30-minutes infusion of the optimal dose are added
to the rxode2
model by updating the rxode2
event table.
simu_patA$model$time <- seq(0,20,b=0.1)
simu_patA$model$add.dosing(dose=prior_dose$dose,rate=prior_dose$dose/0.5)
Plotting the simulated scenario.
The resulting plot can be further augmented with
ggplot2
. For example, by adding an horizontal ribbon
showing the 60-80 mg/l target interval of 1 h peak concentration, and a
vertical dashed line marking 1 hour.
plot(simu_patA$model,Cc) +
ggplot2::ylab("Central concentration") +
ggplot2::geom_vline(xintercept=1, linetype="dashed") +
ggplot2::geom_ribbon(ggplot2::aes(ymin=60, ymax=80),
fill="seagreen",show.legend = FALSE, alpha=0.15)
For a typical patient (i.e. with a PK profile typical of the model population), the selected dose meets the peak concentration target.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.