Introduction
AUC-based dosage adjustment for a patient treated with vancomycin for methicillin-resistant Staphylococcus aureus blood stream infection, using the population pharmacokinetic (ppk) model of Goti et al. 2018, using the data from therapeutic drug monitoring (TDM).
mod_vancomycin_Goti2018 <- function() {
ini({
THETA_Cl <- 4.5
THETA_Vc <- 58.4
THETA_Vp <- 38.4
THETA_Q <- 6.5
ETA_Cl ~ 0.147
ETA_Vc ~ 0.510
ETA_Vp ~ 0.282
add.sd <- 3.4
prop.sd <- 0.227
})
model({
TVCl = THETA_Cl*(CLCREAT/120)^0.8*(0.7^DIAL);
TVVc = THETA_Vc*(WT/70) *(0.5^DIAL);
TVVp = THETA_Vp;
TVQ = THETA_Q;
Cl = TVCl*exp(ETA_Cl);
Vc = TVVc*exp(ETA_Vc);
Vp = TVVp*exp(ETA_Vp);
Q = TVQ;
ke = Cl/Vc;
k12 = Q/Vc;
k21 = Q/Vp;
Cc = centr/Vc;
d/dt(centr) = - ke*centr - k12*centr + k21*periph;
d/dt(periph) = + k12*centr - k21*periph;
d/dt(AUC) <- Cc
Cc ~ add(add.sd) + prop(prop.sd) + combined1()
})
}
Discontinuous intravenous infusion
Patient record with TDM data
The dosage selection can be informed using the results of TDM. See
vignette("patient_data_input")
for more details regarding
the patient records.
df_patientB <- data.frame(ID=1,TIME=c(0.0,13.0,24.2,48),
DV=c(NA,12,NA,9.5),
AMT=c(2000,0,1000,0),
DUR=c(2,NA,2,NA),
EVID=c(1,0,1,0),
CLCREAT=65,WT=70,DIAL=0)
df_patientB
#> ID TIME DV AMT DUR EVID CLCREAT WT DIAL
#> 1 1 0.0 NA 2000 2 1 65 70 0
#> 2 1 13.0 12.0 0 NA 0 65 70 0
#> 3 1 24.2 NA 1000 2 1 65 70 0
#> 4 1 48.0 9.5 0 NA 0 65 70 0
Estimate the MAP individual parameters
patB_map <- poso_estim_map(dat=df_patientB,
prior_model=mod_vancomycin_Goti2018)
#> using C compiler: ‘gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0’
Plot the individual pharmacokinetic profile
The individual pharmacokinetic profile can be plotted using the
rxode2
model provided by the poso_estim_map()
function.
plot(patB_map$model,Cc)
Using ggplot2
the observed data points can be added to
the plot
#Get the observations from the patient record
indiv_obs <- df_patientB[,c("DV","TIME")]
names(indiv_obs) <- c("value","time")
#Overlay the MAP profile and the observations
plot(patB_map$model,Cc) +
ggplot2::ylab("Central concentration") +
ggplot2::geom_point(data=indiv_obs, size= 3, na.rm=TRUE)
The MAP profile matches the observations.
Get the AUC24 from the MAP model
Considering a MIC of 1 mg/L, the target AUC over 24 hours (AUC24) is
400 mg.h/L. The AUC can be retrieved from the rxode2
model
using the usual R data.frame
syntax.
#AUC 0_24
AUC_map_first_dose <- patB_map$model$AUC[which(patB_map$model$time == 24)]
AUC_map_first_dose
#> [1] 337.8965
#AUC 24_48
AUC_map_second_dose <- patB_map$model$AUC[which(patB_map$model$time == 48)] - AUC_map_first_dose
AUC_map_second_dose
#> [1] 325.3072
The current dosage does not meet the target AUC.
Optimal dose selection a posteriori
The next dose needed to achieve an AUC24 of 400 mg.h/L can be estimated using TDM data.
poso_dose_auc(dat=df_patientB,
prior_model=mod_vancomycin_Goti2018,
tdm=TRUE,
time_auc=24, #AUC24
time_dose = 48, #48 h: immediately following the last observation
duration=2, #infused over 2 h
target_auc=400)
#> using C compiler: ‘gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0’
#> $dose
#> [1] 1411.593
#>
#> $type_of_estimate
#> [1] "point estimate"
#>
#> $auc_estimate
#> [1] 400
#>
#> $indiv_param
#> THETA_Cl THETA_Vc THETA_Vp THETA_Q add.sd prop.sd ETA_Cl ETA_Vc
#> 4 4.5 58.4 38.4 6.5 3.4 0.227 0.08208203 0.06122374
#> ETA_Vp CLCREAT DIAL WT
#> 4 0.06285943 65 0 70
The optimal dose estimated for the next infusion is 1411 mg.
Optimal maintenance dose selection a posteriori
The maintenance dose needed to reliably achieve an AUC24 of 400
mg.h/L can be estimated by simulating a multiple dose regimen over
enough administrations (e.g. 11 consecutive administrations, with
add_dose=10
) to approximate the steady-state.
poso_dose_auc(dat=df_patientB,
prior_model=mod_vancomycin_Goti2018,
time_auc=24,
starting_time=24*9,
interdose_interval=24,
add_dose=10,
duration=2,
target_auc=400)
#> $dose
#> [1] 1198.266
#>
#> $type_of_estimate
#> [1] "point estimate"
#>
#> $auc_estimate
#> [1] 400
#>
#> $indiv_param
#> THETA_Cl THETA_Vc THETA_Vp THETA_Q add.sd prop.sd ETA_Cl ETA_Vc
#> 1 4.5 58.4 38.4 6.5 3.4 0.227 0.08208199 0.06122337
#> ETA_Vp CLCREAT DIAL WT
#> 1 0.0628591 65 0 70
The optimal maintenance dose is 1200 mg.
Continuous intravenous infusion
The maintenance dose for a continuous intravenous infusion can be
easily determined by setting the duration
of the infusion
equal to the interdose_interval
.
poso_dose_auc(dat=df_patientB,
prior_model=mod_vancomycin_Goti2018,
time_auc=24,
starting_time=24*9,
interdose_interval=24,
add_dose=10,
duration=24,
target_auc=400)
#> $dose
#> [1] 1198.923
#>
#> $type_of_estimate
#> [1] "point estimate"
#>
#> $auc_estimate
#> [1] 400
#>
#> $indiv_param
#> THETA_Cl THETA_Vc THETA_Vp THETA_Q add.sd prop.sd ETA_Cl ETA_Vc
#> 1 4.5 58.4 38.4 6.5 3.4 0.227 0.08208202 0.06122453
#> ETA_Vp CLCREAT DIAL WT
#> 1 0.06285936 65 0 70
The optimal maintenance dose is also 1200 mg / 24 h for a continuous intravenous infusion.