Remimazolam (Zhou 2021)
Source:vignettes/articles/Zhou_2021_remimazolam.Rmd
Zhou_2021_remimazolam.RmdModel and source
- Citation: Zhou J, Curd L, Lohmer LL, Ossig J, Schippers F, Stoehr T, Schmith V. Population Pharmacokinetics of Remimazolam in Procedural Sedation With Nonhomogeneously Mixed Arterial and Venous Concentrations. Clin Transl Sci. 2021;14(1):326-334. doi:10.1111/cts.12875. PMC7877848.
- Description: Three-compartment population pharmacokinetic model for intravenous remimazolam pooled across 11 phase I-III studies (359 subjects: healthy volunteers, procedural-sedation patients and general-anaesthesia patients) with arterial and venous plasma sampling (Zhou 2021). Clearance and volumes scale allometrically on body weight (fixed exponents 0.75 and 1, reference 70 kg); clearance is 10% higher in women and 13% lower in African Americans, and all three volumes are 16% lower in African Americans. The central volume is fixed at 4.83 L/70 kg from a pilot fit to two infusion studies, and its inter-individual variability applies only to subjects from studies with early (< 2 min) sampling. Cc is the arterial concentration; venous samples are predicted as Cvenous = Cc times a venous:arterial ratio that rises as an Emax function of time since the start of an infusion and is a constant 1.28 after the infusion or bolus ends. One proportional residual error is shared by both sampling sites.
- Article: https://doi.org/10.1111/cts.12875 (open access, PMC7877848)
- Supplement: Table S1 (studies), Table S2 (pilot, base and final models), Table S3 (sensitivity analyses) and Figure S3 (final NONMEM control stream), published with the article.
Remimazolam is an ultra-short-acting ester benzodiazepine hydrolysed by hepatic carboxylesterase 1 to the inactive metabolite CNS7054. Earlier population analyses estimated a very variable central volume (87% IIV) because concentrations drawn in the first minutes after a bolus reflect incomplete intravascular mixing and differ between arterial and venous blood. Zhou 2021 addressed both problems: the central volume was estimated in a pilot fit to two infusion studies only and then fixed, and arterial and venous samples were combined by multiplying the venous prediction by an empirical venous:arterial (VtoA) ratio inside the residual-error model.
Population
The analysis pooled 3,642 plasma concentrations (2,168 arterial, 1,474 venous) from 359 subjects in 11 studies conducted in Japan, the United States and the European Union (Table S1): 126 healthy volunteers in five phase I studies, 193 procedural-sedation patients (colonoscopy and bronchoscopy, ASA class 1-4) in two phase II and three phase III studies, and 40 surgical patients in one general-anaesthesia study included to span the age range. Subjects were 63% men; 51.3% White, 22.8% African American and 25.3% Asian; mean age 46.1 years (SD 16.2) and mean weight 76.1 kg (SD 17.5) (Table 1). Procedural-sedation patients received 5-8 mg over 1 minute with 2-3 mg top-ups; healthy volunteers received single boluses of 0.01-0.5 mg/kg or infusions (1 mg/kg/h for 1 h, or a 5 / 3 / 1 mg/min stepped infusion totalling 85 mg).
The same information is available programmatically:
str(readModelDb("Zhou_2021_remimazolam")()$population)
#> List of 12
#> $ species : chr "human"
#> $ n_subjects : int 359
#> $ n_studies : int 11
#> $ n_observations: chr "3642 plasma concentrations (2168 arterial, 1474 venous)"
#> $ age_range : chr "mean 46.1 years (SD 16.2); study means 25.0-79.2 years"
#> $ weight_range : chr "mean 76.1 kg (SD 17.5); study means 56.1-91.0 kg"
#> $ sex_female_pct: num 37
#> $ race_ethnicity: Named num [1:4] 51.3 22.8 25.3 0.6
#> ..- attr(*, "names")= chr [1:4] "White" "Black" "Asian" "Other"
#> $ disease_state : chr "126 healthy volunteers, 193 procedural-sedation patients (colonoscopy, bronchoscopy; ASA class 1-4) and 40 surg"| __truncated__
#> $ dose_range : chr "Procedural sedation: 5-8 mg over 1 minute with 2, 2.5 or 3 mg top-ups. Healthy volunteers: single IV bolus 0.01"| __truncated__
#> $ regions : chr "Japan, United States, European Union"
#> $ notes : chr "Studies CNS7056-001, -002, -004, -006, -008, -015, -017 and ONO-2745-01, -02, -03, -IVU007 (Table S1). Two stud"| __truncated__Source trace
Every ini() value carries an in-file comment naming its
source. The final model’s structure is taken from the Figure S3 control
stream and its estimates from Table 2 (identical to the “Final Model”
column of Table S2).
| Equation / parameter | Value | Source location |
|---|---|---|
lcl |
log(1.18) L/min/70 kg | Table 2, CL; Figure S3 THETA(1) |
lvc |
fixed(log(4.83)) L/70 kg | Table 2, V1 “4.83 Fixed” (pilot estimate, Table S2) |
lq |
log(0.284) L/min/70 kg | Table 2, Q2 |
lvp |
log(18.7) L/70 kg | Table 2, V2 |
lq2 |
log(1.92) L/min/70 kg | Table 2, Q3 |
lvp2 |
log(18) L/70 kg | Table 2, V3 |
e_wt_cl_q |
fixed(0.75) | Methods Eq. 1; Figure S3 ASCL = (WT/70)**0.75
|
e_wt_vc_vp |
fixed(1) | Methods Eq. 1; Figure S3 ASV = (WT/70)**1
|
e_sexf_cl |
log(1.1) | Table 2, female:male ratio on CL; Figure S3
THETA(10)**SEX
|
e_race_black_cl |
log(0.87) | Table 2, African Americans vs. Asians and whites on CL |
e_race_black_vc_vp |
log(0.839) | Table 2, “effect on Vss”; Figure S3 applies COEFFV to
V1, V2 and V3 |
cfven_max |
fixed(1) | Table 2, Rmax; Methods Eq. 3 |
cfven_t50 |
fixed(1.63) min | Table 2, T50; Methods Eq. 3 |
cfven |
fixed(1.28) | Table 2, Ratio2; Methods Eq. 3 (after dose) |
etalcl, etalq2, etalvp2
block |
22.9%, 92.9%, 74.1%; r = 0.51, 0.55, 0.9 | Table 2; Figure S3 $OMEGA BLOCK(3) (CL, Q3, V3) |
etalvc |
61.7% | Table 2; only in studies with early sampling (Figure S3
IF (STDY...)) |
etalvp |
24.8% | Table 2 |
propSd |
0.207 | Table 2, residual error 20.7% |
| three-compartment ODE | n/a | Figure S3 $DES
|
Cc = central / vc * 1000 |
n/a | Figure S3 S1=V1/1000 ; dose in mg and DV in ng/mL
|
Cvenous = Cc * ratio_ven |
n/a | Methods Eqs. 3-4; Figure S3 $ERROR
Y = RATIO*(F + F*EPS(1))
|
Typical-value structure
A 70 kg reference subject has V1 = 4.83 L, i.e. 0.069 L/kg, which the Discussion describes as “similar to plasma volume” (0.07 L/kg). The steady-state volume is the sum of the three volumes, and the terminal half-life follows from the eigenvalues of the three-compartment rate matrix.
mod <- readModelDb("Zhou_2021_remimazolam")
mod_ui <- rxode2::rxode2(mod)
#> ℹ parameter labels from comments will be replaced by 'label()'
th <- mod_ui$theta
cl_ref <- exp(th[["lcl"]])
v1_ref <- exp(th[["lvc"]])
q2_ref <- exp(th[["lq"]])
v2_ref <- exp(th[["lvp"]])
q3_ref <- exp(th[["lq2"]])
v3_ref <- exp(th[["lvp2"]])
vss_ref <- v1_ref + v2_ref + v3_ref
rate_matrix <- matrix(c(
-(cl_ref + q2_ref + q3_ref) / v1_ref, q2_ref / v2_ref, q3_ref / v3_ref,
q2_ref / v1_ref, -q2_ref / v2_ref, 0,
q3_ref / v1_ref, 0, -q3_ref / v3_ref
), nrow = 3, byrow = TRUE)
lambda <- sort(-Re(eigen(rate_matrix)$values))
thalf_terminal <- log(2) / min(lambda)
stopifnot(
abs(v1_ref / 70 - 0.069) < 0.001,
abs(vss_ref - 41.53) < 1e-6
)
data.frame(
quantity = c("CL (L/min)", "V1 (L)", "V1 (L/kg)", "Vss (L)",
"half-lives (min)"),
value = c(
signif(cl_ref, 3), signif(v1_ref, 3), signif(v1_ref / 70, 2),
signif(vss_ref, 4),
paste(signif(log(2) / lambda, 3), collapse = " / ")
)
) |>
knitr::kable(caption = "Typical values for a 70 kg male, non-African-American subject.")| quantity | value |
|---|---|
| CL (L/min) | 1.18 |
| V1 (L) | 4.83 |
| V1 (L/kg) | 0.069 |
| Vss (L) | 41.53 |
| half-lives (min) | 60.2 / 15.5 / 0.905 |
Venous:arterial ratio (Figure 2)
The model predicts a venous sample as the arterial concentration
multiplied by a ratio that rises as
Rmax * TSLC / (TSLC + T50) during an infusion, where TSLC
is the time since the start of the infusion, and is a constant 1.28 once
the infusion or bolus has ended (Methods Eq. 3). The ratio does not
depend on any random effect, so it can be read directly from a
typical-value solve. The chunk below reproduces the model line
underlying Figure 2 for the ONO-2745-02 regimen (1 mg/kg/h for 1 h) and
for a bolus (entered as a 15-second infusion with TINF = 0,
i.e. never “during” an infusion).
fig2_times <- c(0.5, 1, 2, 5, 15, 35, 45, 59.5, 80, 120, 180, 240, 300)
make_fig2_events <- function(id, amt, dur_min, tinf_h, regimen) {
dose <- data.frame(
id = id, time = 0, amt = amt, rate = amt / dur_min, evid = 1,
cmt = "central", dvid = NA_integer_
)
obs <- data.frame(
id = id, time = fig2_times, amt = NA_real_, rate = NA_real_, evid = 0,
cmt = "central", dvid = 2L
)
dplyr::bind_rows(dose, obs) |>
dplyr::mutate(
WT = 70, SEXF = 0, RACE_BLACK = 0, STUDY_NOEARLYPK = 0,
TINF = tinf_h, regimen = regimen
)
}
fig2_events <- dplyr::bind_rows(
make_fig2_events(1L, 70, 60, 1, "1 mg/kg/h for 1 h"),
make_fig2_events(2L, 7, 0.25, 0, "bolus")
)
fig2 <- rxode2::rxSolve(
rxode2::zeroRe(mod), events = fig2_events, keep = "regimen",
returnType = "data.frame"
)
#> ℹ parameter labels from comments will be replaced by 'label()'
#> ℹ omega/sigma items treated as zero: 'etalcl', 'etalq2', 'etalvp2', 'etalvc', 'etalvp'
#> Warning: multi-subject simulation without without 'omega'
# Closed form of Eq. 3 for the infusion: Emax during 0-60 min, then 1.28.
expected_ratio <- ifelse(fig2_times < 60, fig2_times / (fig2_times + 1.63), 1.28)
infusion_ratio <- fig2$Cvenous[fig2$regimen == "1 mg/kg/h for 1 h"] /
fig2$Cc[fig2$regimen == "1 mg/kg/h for 1 h"]
bolus_ratio <- fig2$Cvenous[fig2$regimen == "bolus"] /
fig2$Cc[fig2$regimen == "bolus"]
stopifnot(
max(abs(infusion_ratio - expected_ratio)) < 1e-8,
max(abs(bolus_ratio - 1.28)) < 1e-8
)
fig2 |>
dplyr::mutate(ratio = Cvenous / Cc) |>
ggplot(aes(time, ratio, colour = regimen)) +
geom_hline(yintercept = 1, linetype = "dotted") +
geom_line() +
geom_point() +
labs(
x = "Time since start of dosing (min)",
y = "Venous:arterial concentration ratio",
colour = NULL,
caption = "Model line underlying Figure 2 of Zhou 2021 (observed ratios not reproduced)."
) +
theme_bw()
During the 1-hour infusion the ratio is below 1 for the first minutes (venous blood lags the arterial rise) and approaches 1 by the end of the infusion; after the infusion ends venous concentrations are predicted 28% above arterial. The paper notes this late excess has no clear biological explanation but describes the paired samples well; a single Emax model with no post-dose constant was tested as a sensitivity analysis and fitted worse (residual error 26.6% vs 20.7%, Table S3).
Covariate effects
Because remimazolam is an intravenous drug,
AUC = Dose / CL for every subject, so the covariate effects
on clearance translate directly into exposure: women have 1 / 1.1 = 0.91
times, and African Americans 1 / 0.87 = 1.15 times, the exposure of a
male non-African-American subject of the same weight. The paper judged
these differences not clinically relevant.
cov_grid <- tidyr::expand_grid(SEXF = c(0, 1), RACE_BLACK = c(0, 1)) |>
dplyr::mutate(
id = dplyr::row_number(),
group = paste0(ifelse(SEXF == 1, "female", "male"), ", ",
ifelse(RACE_BLACK == 1, "African American", "other race"))
)
nca_events <- cov_grid |>
dplyr::rowwise() |>
dplyr::reframe(
id = id, group = group, SEXF = SEXF, RACE_BLACK = RACE_BLACK,
time = c(0, 0, 1, 2, 5, 10, 20, 30, 45, 60, 62, 65, 70, 80, 90, 120, 150,
180, 240, 300, 360, 480, 600, 720, 900, 1080, 1440, 1800, 2160,
2880),
evid = c(1, rep(0, 29))
) |>
dplyr::mutate(
amt = ifelse(evid == 1, 70, NA_real_),
rate = ifelse(evid == 1, 70 / 60, NA_real_),
cmt = "central",
dvid = ifelse(evid == 1, NA_integer_, 1L),
WT = 70, STUDY_NOEARLYPK = 0, TINF = 1,
treatment = group
)
nca_sim <- rxode2::rxSolve(
rxode2::zeroRe(mod), events = nca_events,
keep = c("treatment"), rtol = 1e-10, atol = 1e-12,
returnType = "data.frame"
)
#> ℹ parameter labels from comments will be replaced by 'label()'
#> ℹ omega/sigma items treated as zero: 'etalcl', 'etalq2', 'etalvp2', 'etalvc', 'etalvp'
#> Warning: multi-subject simulation without without 'omega'PKNCA validation
The paper reports no non-compartmental results, so the NCA below validates the packaged model against its own typical values: a 70 mg, 1-hour infusion (ONO-2745-02 regimen for a 70 kg subject) in the four sex-by-race reference subjects. PKNCA’s observed clearance and steady-state volume should recover the model’s CL and V1 + V2 + V3 for each group.
stopifnot(all(nca_sim$Cc >= -1e-6 * max(nca_sim$Cc)))
conc_df <- nca_sim |>
dplyr::filter(!is.na(Cc)) |>
dplyr::mutate(Cc = pmax(Cc, 0)) |>
dplyr::select(id, time, Cc, treatment)
conc_df <- dplyr::bind_rows(
conc_df,
conc_df |> dplyr::distinct(id, treatment) |> dplyr::mutate(time = 0, Cc = 0)
) |>
dplyr::distinct(id, treatment, time, .keep_all = TRUE) |>
dplyr::arrange(treatment, id, time)
dose_df <- nca_events |>
dplyr::filter(evid == 1) |>
dplyr::mutate(dur = 60) |>
dplyr::select(id, time, amt, dur, treatment)
conc_obj <- PKNCA::PKNCAconc(conc_df, Cc ~ time | treatment + id,
concu = "ng/mL", timeu = "min")
dose_obj <- PKNCA::PKNCAdose(dose_df, amt ~ time | treatment + id,
route = "intravascular", duration = "dur",
doseu = "mg")
intervals <- data.frame(
start = 0, end = Inf,
cmax = TRUE, tmax = TRUE, aucinf.obs = TRUE, half.life = TRUE,
cl.obs = TRUE, vss.iv.obs = TRUE
)
nca_res <- PKNCA::pk.nca(PKNCA::PKNCAdata(conc_obj, dose_obj,
intervals = intervals))
nca_wide <- as.data.frame(nca_res) |>
dplyr::filter(PPTESTCD %in% c("cmax", "aucinf.obs", "half.life", "cl.obs",
"vss.iv.obs")) |>
dplyr::select(treatment, PPTESTCD, PPORRES) |>
tidyr::pivot_wider(names_from = PPTESTCD, values_from = PPORRES)
expected <- cov_grid |>
dplyr::mutate(
treatment = group,
cl_model = cl_ref * 1.1^SEXF * 0.87^RACE_BLACK,
vss_model = vss_ref * 0.839^RACE_BLACK
) |>
dplyr::select(treatment, cl_model, vss_model)
nca_check <- dplyr::inner_join(nca_wide, expected, by = "treatment") |>
dplyr::mutate(
# PKNCA reports CL in mg/(ng/mL)/min; 1 mg/(ng/mL) = 1000 L.
cl_nca = cl.obs * 1000,
vss_nca = vss.iv.obs * 1000,
cl_pct_diff = 100 * (cl_nca / cl_model - 1),
vss_pct_diff = 100 * (vss_nca / vss_model - 1)
)
# The profile is sampled to 48 h, far beyond 5 terminal half-lives, so the
# extrapolated area is negligible and the identities are limited only by
# trapezoidal error on the sampling grid.
ref_row <- nca_check$treatment == "male, other race"
stopifnot(
nrow(nca_check) == 4,
all(abs(nca_check$cl_pct_diff) < 2),
all(abs(nca_check$vss_pct_diff) < 5),
# Reference subject: the PKNCA terminal half-life recovers the slowest
# eigenvalue of the rate matrix (60.2 min).
abs(nca_check$half.life[ref_row] / thalf_terminal - 1) < 0.03
)
nca_check |>
dplyr::transmute(
treatment,
"Cmax (ng/mL)" = signif(cmax, 3),
"AUC0-inf (ng*min/mL)" = signif(aucinf.obs, 4),
"t1/2 (min)" = signif(half.life, 3),
"CL NCA (L/min)" = signif(cl_nca, 3),
"CL model (L/min)" = signif(cl_model, 3),
"Vss NCA (L)" = signif(vss_nca, 3),
"Vss model (L)" = signif(vss_model, 3)
) |>
dplyr::rename("Group" = treatment) |>
knitr::kable(caption = "PKNCA on typical-value arterial profiles (70 mg over 1 h, 70 kg).")| Group | Cmax (ng/mL) | AUC0-inf (ng*min/mL) | t1/2 (min) | CL NCA (L/min) | CL model (L/min) | Vss NCA (L) | Vss model (L) |
|---|---|---|---|---|---|---|---|
| female, African American | 874 | 61990 | 55.1 | 1.13 | 1.13 | 35.3 | 34.8 |
| female, other race | 758 | 53940 | 58.5 | 1.30 | 1.30 | 42.1 | 41.5 |
| male, African American | 940 | 68200 | 55.4 | 1.03 | 1.03 | 35.3 | 34.8 |
| male, other race | 815 | 59330 | 60.2 | 1.18 | 1.18 | 42.0 | 41.5 |
Procedural-sedation simulation (Figure 4)
Figure 4 of the paper is a visual predictive check of all studies
pooled. The simulation below reproduces its procedural-sedation
component: a virtual cohort of 200 patients with the Table 1 sex and
race mix receives 5 mg over 1 minute followed by 2.5 mg top-ups
(15-second infusions) at 4 and 8 minutes, as in CNS7056-006, with venous
samples from 2 minutes onward. Following the source, these patients
carry no random effect on V1 (STUDY_NOEARLYPK = 1).
set.seed(20210101)
n_sub <- 200L
draw_weight <- function(n, mean_wt, sd_wt, lower, upper) {
out <- numeric(0)
while (length(out) < n) {
draw <- rnorm(n, mean_wt, sd_wt)
out <- c(out, draw[draw >= lower & draw <= upper])
}
out[seq_len(n)]
}
subjects <- data.frame(
id = seq_len(n_sub),
WT = draw_weight(n_sub, 82.6, 18.4, 45, 150),
SEXF = rbinom(n_sub, 1, 37 / 85),
RACE_BLACK = rbinom(n_sub, 1, 14 / 85),
STUDY_NOEARLYPK = 1
)
dose_rows <- tidyr::expand_grid(
id = subjects$id,
data.frame(time = c(0, 4, 8), amt = c(5, 2.5, 2.5), dur = c(1, 0.25, 0.25))
) |>
dplyr::mutate(rate = amt / dur, evid = 1, dvid = NA_integer_,
TINF = dur / 60)
obs_times <- c(2, 3, 6, 10, 12, 15, 20, 30, 45, 60, 90, 120, 180, 240)
obs_rows <- tidyr::expand_grid(id = subjects$id, time = obs_times) |>
dplyr::mutate(amt = NA_real_, rate = NA_real_, evid = 0, dvid = 2L,
TINF = NA_real_)
sed_events <- dplyr::bind_rows(dose_rows, obs_rows) |>
dplyr::arrange(id, time, dplyr::desc(evid)) |>
dplyr::group_by(id) |>
tidyr::fill(TINF, .direction = "down") |>
dplyr::ungroup() |>
dplyr::left_join(subjects, by = "id") |>
dplyr::mutate(cmt = "central") |>
dplyr::select(id, time, amt, rate, evid, cmt, dvid, WT, SEXF, RACE_BLACK,
STUDY_NOEARLYPK, TINF)
stopifnot(!anyDuplicated(sed_events[, c("id", "time", "evid")]))
rxode2::rxSetSeed(20210101)
sed_sim <- rxode2::rxSolve(mod, events = sed_events, returnType = "data.frame")
#> ℹ parameter labels from comments will be replaced by 'label()'
# The V1 switch: with STUDY_NOEARLYPK = 1 every subject's V1 equals the
# typical value for its weight and race exactly, while the other volumes vary.
v1_typical <- 4.83 * sed_sim$WT / 70 * 0.839^sed_sim$RACE_BLACK
stopifnot(
max(abs(sed_sim$vc / v1_typical - 1)) < 1e-10,
sd(log(unique(sed_sim[, c("id", "vp")])$vp)) > 0.1
)
# Every venous sample here falls after the infusion that preceded it, so the
# ratio is the post-dose constant for every subject and every eta draw.
stopifnot(max(abs(sed_sim$Cvenous / sed_sim$Cc - 1.28)) < 1e-8)
sed_sim |>
dplyr::select(time, Cc, Cvenous) |>
tidyr::pivot_longer(c(Cc, Cvenous), names_to = "site", values_to = "conc") |>
dplyr::mutate(site = ifelse(site == "Cc", "arterial (Cc)", "venous (Cvenous)")) |>
dplyr::group_by(time, site) |>
dplyr::summarise(
p025 = quantile(conc, 0.025), p50 = median(conc), p975 = quantile(conc, 0.975),
.groups = "drop"
) |>
ggplot(aes(time, p50, colour = site, fill = site)) +
geom_ribbon(aes(ymin = p025, ymax = p975), alpha = 0.2, colour = NA) +
geom_line() +
scale_y_log10() +
labs(
x = "Time (min)", y = "Remimazolam (ng/mL)", colour = NULL, fill = NULL,
caption = paste(
"Median and 95% prediction interval without residual error;",
"compare the procedural-sedation panels of Figure 4 of Zhou 2021."
)
) +
theme_bw()
The individual clearances of the simulated cohort should spread with
the Table 2 IIV. With 200 subjects the standard deviation of
log(CL), after removing the sex and race effects, estimates
omega to within about 10% (standard error 0.226 / sqrt(400) =
0.011).
ind <- sed_sim |>
dplyr::distinct(id, cl, WT, SEXF, RACE_BLACK) |>
dplyr::mutate(eta_cl = log(cl / (cl_ref * (WT / 70)^0.75 * 1.1^SEXF *
0.87^RACE_BLACK)))
omega_cl <- sqrt(log(1 + 0.229^2))
stopifnot(abs(sd(ind$eta_cl) / omega_cl - 1) < 0.25)
c(simulated_sd = sd(ind$eta_cl), model_omega = omega_cl)
#> simulated_sd model_omega
#> 0.2301054 0.2260801Assumptions and deviations
-
IIV convention. Table 2 prints each IIV as a bare
percentage and the paper does not state how it was derived from the
NONMEM omega. The maintainers applied the library’s default log-normal
relation
omega^2 = log(1 + CV^2). If the percentages are instead100 * sqrt(omega^2), the variances would be 0.0524 (CL), 0.863 (Q3), 0.549 (V3), 0.381 (V1) and 0.0615 (V2); the difference is negligible for CL and V2 but material for Q3, V3 and V1. No published output (the paper has no NCA or exposure-percentile table) can separate the two readings. -
V1 random effect. The source switches the random
effect on V1 off for subjects from the six studies without early
sampling (Figure S3). This is carried as the
STUDY_NOEARLYPKcovariate. It was an estimation device; for simulating new subjects set it to 0 so V1 varies as it did in the early-sampled studies. -
Time since start of infusion. Eq. 3 uses TSLC, the
time since the start of the infusion or bolus, and flags a sample as
“during infusion” from the data-set column TSEOI. The model reconstructs
TSLC as
tad(central)and the flag astad(central) < TINF * 60, which needs the infusion duration (hours) as theTINFcovariate. For a stepped infusion (CNS7056-017, ONO-2745-03), entering each rate step as its own dose record restarts TSLC at every step; the paper does not say whether its TSLC restarted at a rate change. The CNS7056-017 study sampled arterial blood only, so it is unaffected. -
Shared residual error. The source has a single
proportional epsilon for arterial and venous samples. nlmixr2 needs a
distinct endpoint parameter per output, so the venous output reads the
same
propSdthrough the model variablepropSd_Cvenous. Simulation is identical to the source; a re-estimation keeps one sigma. -
Race coding. The control stream tests
RACE.EQ.1; Table 2 names the contrast “African Americans vs. Asians and whites”, soRACE_BLACKis 1 for African Americans. The two subjects of other race fall in the reference group. - Virtual cohort. The procedural-sedation cohort uses the CNS7056-006 weight distribution (mean 82.6 kg, SD 18.4, Table 1, redrawn outside 45-150 kg) and its sex (37/85 female) and race (14/85 African American) proportions. Top-up timing (4 and 8 minutes) is illustrative; the paper states only the dose sizes.
- No erratum or correction notice for this article was found as of 2026-09-27.