Tacrolimus with Wuzhi capsule (Chen 2021b)
Source:vignettes/articles/Chen_2021b_tacrolimus.Rmd
Chen_2021b_tacrolimus.RmdModel and source
ui <- rxode2::rxode(readModelDb("Chen_2021b_tacrolimus"))
#> ℹ parameter labels from comments will be replaced by 'label()'
# zeroRe() warns that there are no sigma parameters: the residual SDs are
# ordinary thetas combined per centre in model(), so there is nothing to zero.
mod_typ <- suppressWarnings(rxode2::zeroRe(ui))- Citation: Chen L, Yang Y, Wang X, Wang C, Lin W, Jiao Z, Wang Z (2021). Wuzhi Capsule Dosage Affects Tacrolimus Elimination in Adult Kidney Transplant Recipients, as Determined by a Population Pharmacokinetics Analysis. Pharmgenomics Pers Med 14:1093-1106. doi:10.2147/PGPM.S321997.
- Description: One-compartment population PK model with first-order absorption and elimination for oral tacrolimus in Chinese adult kidney transplant recipients during the first 90 postoperative days, pooled from two centres (Chen 2021 Pharmgenomics Pers Med, NONMEM 7.4). Apparent oral clearance CL/F carries median-normalised power effects of Cockcroft-Gault creatinine clearance, haematocrit (inverse ratio) and the daily tacrolimus dose, a 1.29-fold CYP3A5*1-carrier (expresser) multiplier, and a four-level multiplier for the 48-hour cumulative Wuzhi capsule dose (0 mg reference; below 45 mg 0.566; exactly 45 mg 0.783; above 45 mg 0.598). Absorption rate constant fixed at 3.09 1/h from a previous analysis because only trough concentrations were available; no covariate on Vd/F. Exponential IIV on CL/F and Vd/F; exponential (log-normal) residual error estimated separately for each centre.
- Article: https://doi.org/10.2147/PGPM.S321997
Population
Chen 2021 pooled 1378 whole-blood tacrolimus trough concentrations
from 142 Chinese adult kidney transplant recipients followed to
post-operative day 90 at two Shanghai centres: 90 patients (758 troughs,
2016, CMIA assay) from Changhai Hospital and 52 patients (620 troughs,
2009-2013, EMIT assay converted to CMIA equivalents with
CMIA = 0.93 * EMIT + 0.36) from Huashan Hospital. Table 1:
96 men and 46 women, median age 40 years (20-67), median weight 60.1 kg
(36-86.7), median haematocrit 28.9 % (17.6-48.2), median Cockcroft-Gault
creatinine clearance 45.5 mL/min (4.9-123.9), median daily tacrolimus
dose 5 mg (1-11). CYP3A5 rs776746 genotype AA/AG/GG was 12/48/82, so 60
recipients were CYP3A5 expressers. All patients received tacrolimus +
mycophenolic acid + corticosteroid; only Changhai patients received the
Wuzhi capsule (Schisandra sphenanthera extract), at 11.25 mg
once, twice or three times daily or 22.5 mg twice or three times
daily.
The same information is available programmatically:
str(ui$population, max.level = 1)
#> List of 14
#> $ species : chr "human"
#> $ n_subjects : int 142
#> $ n_studies : int 2
#> $ n_concentrations: int 1378
#> $ age_range : chr "20-67 years (Table 1 pooled median 40.0)"
#> $ weight_range : chr "36-86.7 kg (Table 1 pooled median 60.1)"
#> $ sex_female_pct : num 32.4
#> $ race_ethnicity : Named num 100
#> ..- attr(*, "names")= chr "Asian"
#> $ disease_state : chr "Chinese adult kidney transplant recipients followed to post-operative day 90 on triple immunosuppression (tacro"| __truncated__
#> $ dose_range : chr "Oral tacrolimus twice daily, titrated to trough targets; daily dose median 5 mg (range 1-11). Changhai initial "| __truncated__
#> $ regions : chr "China (Shanghai: Changhai Hospital and Huashan Hospital)"
#> $ sampling_design : chr "1378 whole-blood trough concentrations (C0), 758 from 90 Changhai patients (March-September 2016, CMIA, LLOQ 1."| __truncated__
#> $ cyp3a5_genotype : Named num [1:3] 8.45 33.8 57.75
#> ..- attr(*, "names")= chr [1:3] "*1/*1 (AA)" "*1/*3 (AG)" "*3/*3 (GG)"
#> $ notes : chr "Table 1 (pooled): 96 male / 46 female; haematocrit median 28.9 % (17.6-48.2); Cockcroft-Gault creatinine cleara"| __truncated__Source trace
Every ini() value carries an in-file comment pointing to
its source in
inst/modeldb/specificDrugs/Chen_2021b_tacrolimus.R.
Collected here:
| Equation / parameter | Value | Source location |
|---|---|---|
lka |
fixed(log(3.09)) |
Table 2 ’Ka*’ (footnote: fixed to the published value); Methods ‘Base Model Development’ (Zuo 2013) |
lcl |
log(14.4) |
Table 2 ‘CL/F (L/h)’, final model |
lvc |
log(275) |
Table 2 ‘Vd/F (L)’, final model; Results ‘Vd/F = 275’ |
e_crcl_cl |
0.179 | Table 2 ‘Creatinine clearance rate’; Results CL/F equation
(CCR/45.5)^0.179
|
e_hct_cl |
0.503 | Table 2 ‘Haematocrit’; Results CL/F equation
(28.9/HCT)^0.503
|
e_dose_tac_cl |
0.351 | Table 2 ‘DOSE’; Results CL/F equation
(DOSE/5)^0.351
|
e_cyp3a5_expr_cl |
1.29 | Table 2 ‘CYP3A51/1 and 1/3’ |
e_wuzhi_lt45_cl |
0.566 | Table 2 ‘WZ<45mg’ |
e_wuzhi_eq45_cl |
0.783 | Table 2 ‘WZ=45mg’ |
e_wuzhi_gt45_cl |
0.598 | Table 2 ‘WZ>45mg’ (reference ‘WZ=0mg’ = 1) |
etalcl |
0.0625 | Table 2 BSV ‘CL/F(%)’ 25.4 %, as log(0.254^2 + 1)
|
etalvc |
0.2354 | Table 2 BSV ‘V/F(%)’ 51.5 %, as log(0.515^2 + 1)
|
expSd_changhai |
0.2462 | Table 2 ‘CH exponential error’ 0.0606 (variance),
sqrt(0.0606)
|
expSd_huashan |
0.2978 | Table 2 ‘HS exponential error’ 0.0887 (variance),
sqrt(0.0887)
|
| CL/F covariate equation | n/a | Results, ‘The final popPK model included the following parameter-covariate relations’ |
| One-compartment, first-order absorption | n/a | Methods ‘Base Model Development’; Results ‘Population Pharmacokinetic Modeling’ |
| Exponential residual error per centre | n/a | Results ‘The residual error model was selected using an exponential method’; Table 2 |
Verification gate 1: the published CL/F equation
Chen 2021 prints the final model as
CL/F = 14.4 x (CCR/45.5)^0.179 x (28.9/HCT)^0.503 x (DOSE/5)^0.351 x 1.29 (CYP3A5*1 carriers) x 0.566 / 0.783 / 0.598 / 1 (48-h Wuzhi dose < 45 / = 45 / > 45 / 0 mg).
The typical-value model’s cl is compared with that
closed form over a grid spanning every covariate level. Both sides use
the same parameter values, so the only difference is arithmetic and the
bound is tight.
grid <- expand.grid(
CYP3A5_EXPR = 0:1,
DOSE_WUZHI_MG48H = c(0, 22.5, 45, 67.5, 135),
CRCL = c(10, 45.5, 110),
HCT = c(20, 28.9, 45),
DOSE_TAC_MGD = c(2, 5, 10)
)
grid$id <- seq_len(nrow(grid))
ev_grid <- grid |>
mutate(time = 1, evid = 0, amt = 0, cmt = "central", STUDY_HUASHAN = 0)
sim_grid <- rxode2::rxSolve(mod_typ, ev_grid, returnType = "data.frame")
#> ℹ omega/sigma items treated as zero: 'etalcl', 'etalvc'
#> Warning: multi-subject simulation without without 'omega'
wz_mult <- function(d) {
ifelse(d == 0, 1, ifelse(d < 45, 0.566, ifelse(d == 45, 0.783, 0.598)))
}
check_cl <- grid |>
mutate(
cl_paper = 14.4 * (CRCL / 45.5)^0.179 * (28.9 / HCT)^0.503 *
(DOSE_TAC_MGD / 5)^0.351 * ifelse(CYP3A5_EXPR == 1, 1.29, 1) *
wz_mult(DOSE_WUZHI_MG48H),
cl_model = sim_grid$cl[match(id, sim_grid$id)],
rel_err = cl_model / cl_paper - 1
)
stopifnot(
nrow(check_cl) == 2 * 5 * 3 * 3 * 3,
!anyNA(check_cl$cl_model),
max(abs(check_cl$rel_err)) < 1e-10,
# The Discussion's reference subject: CYP3A5*3/*3, 5 mg/day, no Wuzhi,
# CRCL 45.5 mL/min, HCT 28.9 % -> 14.4 L/h.
abs(check_cl$cl_model[check_cl$CYP3A5_EXPR == 0 & check_cl$DOSE_WUZHI_MG48H == 0 &
check_cl$CRCL == 45.5 & check_cl$HCT == 28.9 & check_cl$DOSE_TAC_MGD == 5] - 14.4) < 1e-8
)All 270 covariate combinations reproduce the printed equation (maximum relative error 5.4e-15).
Verification gate 2: steady-state mass balance (PKNCA)
At steady state the AUC over one dosing interval satisfies
CL/F x AUCtau = Dose. A typical CYP3A5 non-expresser at the
covariate medians receives 3 mg q12h under each Wuzhi arm for 30 days
(at least 20 half-lives in every arm), and PKNCA computes AUC over the
last interval on a dense grid.
wz_arms <- tibble(
treatment = c("No Wuzhi", "Wuzhi < 45 mg/48 h", "Wuzhi = 45 mg/48 h", "Wuzhi > 45 mg/48 h"),
DOSE_WUZHI_MG48H = c(0, 22.5, 45, 90)
)
tau <- 12
n_dose <- 60
t_last <- tau * n_dose
obs_t <- sort(unique(c(seq(t_last - tau, t_last, by = 0.05))))
ev_ss <- bind_rows(lapply(seq_len(nrow(wz_arms)), function(i) {
bind_rows(
tibble(id = i, time = seq(0, t_last - tau, by = tau), evid = 1, amt = 3, cmt = "depot"),
tibble(id = i, time = obs_t, evid = 0, amt = 0, cmt = "central")
) |>
mutate(
treatment = wz_arms$treatment[i],
DOSE_WUZHI_MG48H = wz_arms$DOSE_WUZHI_MG48H[i],
CYP3A5_EXPR = 0, CRCL = 45.5, HCT = 28.9, DOSE_TAC_MGD = 6, STUDY_HUASHAN = 0
)
}))
sim_ss <- rxode2::rxSolve(mod_typ, ev_ss, keep = "treatment", returnType = "data.frame") |>
mutate(tad = time - (t_last - tau))
#> ℹ omega/sigma items treated as zero: 'etalcl', 'etalvc'
#> Warning: multi-subject simulation without without 'omega'
conc_ss <- sim_ss |>
filter(!is.na(Cc)) |>
select(id, treatment, tad, Cc)
dose_ss <- conc_ss |>
distinct(id, treatment) |>
mutate(tad = 0, amt = 3)
nca_ss <- PKNCA::pk.nca(PKNCA::PKNCAdata(
PKNCA::PKNCAconc(conc_ss, Cc ~ tad | treatment + id),
PKNCA::PKNCAdose(dose_ss, amt ~ tad | treatment + id),
intervals = data.frame(start = 0, end = tau, auclast = TRUE, cmax = TRUE, cmin = TRUE, tmax = TRUE)
))
nca_wide <- as.data.frame(nca_ss) |>
select(treatment, PPTESTCD, PPORRES) |>
pivot_wider(names_from = PPTESTCD, values_from = PPORRES)
mb <- nca_wide |>
left_join(sim_ss |> distinct(treatment, cl), by = "treatment") |>
mutate(cl_x_auc_ug = cl * auclast, dose_ug = 3000, rel_err = cl_x_auc_ug / dose_ug - 1)
stopifnot(nrow(mb) == 4, !anyNA(mb$rel_err), max(abs(mb$rel_err)) < 0.005)
mb |>
mutate(across(c(cmax, cmin, auclast, cl, rel_err), ~ signif(.x, 4))) |>
select(treatment, tmax, cmax, cmin, auclast, cl, rel_err) |>
dplyr::rename(
"Wuzhi arm" = treatment, "Tmax (h)" = tmax, "Cmax,ss (ng/mL)" = cmax,
"Ctrough,ss (ng/mL)" = cmin, "AUCtau (ng*h/mL)" = auclast,
"CL/F (L/h)" = cl, "CL/F x AUCtau / Dose - 1" = rel_err
) |>
knitr::kable(caption = "Typical CYP3A5 non-expresser, 3 mg q12h at steady state.")| Wuzhi arm | Tmax (h) | Cmax,ss (ng/mL) | Ctrough,ss (ng/mL) | AUCtau (ng*h/mL) | CL/F (L/h) | CL/F x AUCtau / Dose - 1 |
|---|---|---|---|---|---|---|
| No Wuzhi | 1.1 | 21.03 | 11.65 | 195.4 | 15.350 | -3.66e-05 |
| Wuzhi < 45 mg/48 h | 1.1 | 33.37 | 23.91 | 345.3 | 8.689 | -2.05e-05 |
| Wuzhi = 45 mg/48 h | 1.1 | 25.47 | 16.05 | 249.6 | 12.020 | -2.85e-05 |
| Wuzhi > 45 mg/48 h | 1.1 | 31.84 | 22.38 | 326.8 | 9.180 | -2.17e-05 |
Chen 2021 reports no NCA parameters, so there is no published NCA table to set beside these values; the mass balance is the structural check.
Verification gate 3: the paper’s dosing statements
The Results section (‘Dosing Selection Strategies’) states the regimens that reach the 10-15 ng/mL trough target after 7 days of dosing. The typical-value model (covariate medians CRCL 45.5 mL/min, HCT 28.9 %, Changhai residual irrelevant at zero variability) is solved for 7 days of q12h dosing with the trough taken just before the 15th dose.
scen <- expand.grid(
CYP3A5_EXPR = 0:1,
DOSE_WUZHI_MG48H = c(0, 22.5, 45, 90),
mg_q12h = 1:4
)
scen$id <- seq_len(nrow(scen))
make_day7 <- function(s) {
bind_rows(
tibble(id = s$id, time = seq(0, 156, by = 12), evid = 1, amt = s$mg_q12h, cmt = "depot"),
tibble(id = s$id, time = c(84, 168), evid = 0, amt = 0, cmt = "central")
) |>
mutate(
CYP3A5_EXPR = s$CYP3A5_EXPR, DOSE_WUZHI_MG48H = s$DOSE_WUZHI_MG48H,
DOSE_TAC_MGD = 2 * s$mg_q12h, CRCL = 45.5, HCT = 28.9, STUDY_HUASHAN = 0
)
}
ev_d7 <- bind_rows(lapply(split(scen, scen$id), make_day7))
sim_d7 <- rxode2::rxSolve(mod_typ, ev_d7, returnType = "data.frame")
#> ℹ omega/sigma items treated as zero: 'etalcl', 'etalvc'
#> Warning: multi-subject simulation without without 'omega'
trough_typ <- scen |>
left_join(sim_d7 |> filter(time == 168) |> select(id, C0 = Cc), by = "id")
c0 <- function(expr, wz, mg) {
trough_typ$C0[trough_typ$CYP3A5_EXPR == expr & trough_typ$DOSE_WUZHI_MG48H == wz &
trough_typ$mg_q12h == mg]
}
in_target <- function(x) x >= 10 & x <= 15
stopifnot(
nrow(trough_typ) == 32, !anyNA(trough_typ$C0),
# CYP3A5 non-expresser, tacrolimus alone: '>= 3.0 mg q12h'.
c0(0, 0, 2) < 10, in_target(c0(0, 0, 3)),
# CYP3A5 expresser, tacrolimus alone: 'the current dosage seemed insufficient'.
c0(1, 0, 4) < 10,
# Non-expresser with Wuzhi < 45 mg/48 h: '1.0-2.0 mg q12h'.
in_target(c0(0, 22.5, 1)),
# With Wuzhi: '2.0-3.0 mg q12h'.
in_target(c0(0, 45, 2)), in_target(c0(1, 45, 3))
)
trough_typ |>
mutate(
CYP3A5 = ifelse(CYP3A5_EXPR == 1, "expresser (AA/AG)", "non-expresser (GG)"),
C0 = round(C0, 1)
) |>
select(CYP3A5, DOSE_WUZHI_MG48H, mg_q12h, C0) |>
pivot_wider(names_from = mg_q12h, values_from = C0, names_prefix = "q12h mg ") |>
dplyr::rename("Wuzhi (mg/48 h)" = DOSE_WUZHI_MG48H) |>
knitr::kable(caption = "Typical-value trough (ng/mL) on day 7 by tacrolimus dose (mg q12h).")| CYP3A5 | Wuzhi (mg/48 h) | q12h mg 1 | q12h mg 2 | q12h mg 3 | q12h mg 4 |
|---|---|---|---|---|---|
| non-expresser (GG) | 0.0 | 6.4 | 9.4 | 11.6 | 13.5 |
| expresser (AA/AG) | 0.0 | 4.6 | 6.7 | 8.1 | 9.3 |
| non-expresser (GG) | 22.5 | 12.1 | 18.7 | 23.8 | 28.2 |
| expresser (AA/AG) | 22.5 | 9.2 | 13.9 | 17.5 | 20.6 |
| non-expresser (GG) | 45.0 | 8.5 | 12.8 | 16.0 | 18.8 |
| expresser (AA/AG) | 45.0 | 6.3 | 9.3 | 11.5 | 13.3 |
| non-expresser (GG) | 90.0 | 11.4 | 17.5 | 22.3 | 26.3 |
| expresser (AA/AG) | 90.0 | 8.7 | 13.0 | 16.3 | 19.1 |
A typical non-expresser on tacrolimus alone needs 3 mg q12h (11.6 ng/mL; 2 mg q12h gives 9.4), an expresser stays below target even at 4 mg q12h (9.3), and 1 mg q12h reaches the target with Wuzhi below 45 mg per 48 h (12.1), matching the paper’s statements.
Virtual cohort and Figure 4
Figure 4 of Chen 2021 shows box plots of simulated day-7 troughs for CYP3A5 expressers and non-expressers under each Wuzhi arm and 1-4 mg q12h tacrolimus. The paper resampled its own dataset for covariates; that dataset is not public, so creatinine clearance and haematocrit are drawn here from distributions matching the Table 1 medians and ranges (values outside the observed range are redrawn, not clamped). All subjects are assigned to the Changhai centre, which is where Wuzhi was used. Each of the 32 arms has 100 subjects.
set.seed(20210903)
rxode2::rxSetSeed(20210903)
n_per_arm <- 100
draw_in_range <- function(n, rfun, lo, hi) {
out <- rfun(n)
bad <- out < lo | out > hi
while (any(bad)) {
out[bad] <- rfun(sum(bad))
bad <- out < lo | out > hi
}
out
}
arms <- expand.grid(
CYP3A5_EXPR = 0:1,
DOSE_WUZHI_MG48H = c(0, 22.5, 45, 90),
mg_q12h = 1:4
)
arms$arm <- seq_len(nrow(arms))
subj <- arms[rep(arms$arm, each = n_per_arm), ] |>
mutate(
id = seq_len(n()),
CRCL = draw_in_range(n(), function(k) rlnorm(k, log(45.5), 0.55), 4.9, 123.9),
HCT = draw_in_range(n(), function(k) rnorm(k, 29.2, 5.4), 17.6, 48.2)
)
ev_cohort <- bind_rows(
subj |> tidyr::crossing(time = seq(0, 156, by = 12)) |>
mutate(evid = 1, amt = mg_q12h, cmt = "depot"),
subj |> tidyr::crossing(time = c(84, 168)) |>
mutate(evid = 0, amt = 0, cmt = "central")
) |>
mutate(DOSE_TAC_MGD = 2 * mg_q12h, STUDY_HUASHAN = 0) |>
arrange(id, time, desc(evid))
stopifnot(max(table(subj$arm)) <= 200)
sim <- rxode2::rxSolve(
ui, ev_cohort,
keep = c("arm", "CYP3A5_EXPR", "DOSE_WUZHI_MG48H", "mg_q12h"),
returnType = "data.frame"
)
c0_sim <- sim |> filter(time == 168)
stopifnot(nrow(c0_sim) == nrow(subj), !anyNA(c0_sim$Cc), all(c0_sim$Cc > 0))
# Centre check against the typical-value trough of each arm: the cohort
# median should sit near it (covariate spread and log-normal IIV move it by a
# few percent, a mis-specified parameter would move it by tens of percent).
centre <- c0_sim |>
group_by(CYP3A5_EXPR, DOSE_WUZHI_MG48H, mg_q12h) |>
summarise(med = median(Cc), .groups = "drop") |>
left_join(trough_typ, by = c("CYP3A5_EXPR", "DOSE_WUZHI_MG48H", "mg_q12h")) |>
mutate(log_ratio = log(med / C0))
stopifnot(abs(median(centre$log_ratio)) < 0.2)
c0_sim |>
mutate(
CYP3A5 = ifelse(CYP3A5_EXPR == 1, "CYP3A5 AA/AG", "CYP3A5 GG"),
Wuzhi = factor(
DOSE_WUZHI_MG48H,
levels = c(0, 22.5, 45, 90),
labels = c("No Wuzhi", "< 45 mg", "= 45 mg", "> 45 mg")
),
dose = factor(paste(mg_q12h, "mg q12h"))
) |>
ggplot(aes(dose, Cc, fill = Wuzhi)) +
annotate("rect", xmin = -Inf, xmax = Inf, ymin = 10, ymax = 15, alpha = 0.15) +
geom_boxplot(outlier.size = 0.4) +
facet_wrap(~CYP3A5) +
scale_y_log10() +
labs(
x = "Tacrolimus dose", y = "Trough concentration on day 7 (ng/mL)",
fill = "48-h Wuzhi dose",
caption = "Replicates Figure 4 of Chen 2021; shaded band = 10-15 ng/mL target."
)
Assumptions and deviations
-
IIV scale. Table 2 prints between-subject
variability as a percentage (CL/F 25.4 %, V/F 51.5 %) without stating
the conversion. It is read as a log-normal CV and converted with
omega^2 = log(CV^2 + 1)(0.0625, 0.2354). Reading the percentage as100 * omegainstead would give 0.0645 and 0.265; the CL/F value barely changes, the V/F value by 13 %. -
Residual error scale. Table 2 prints the
exponential residual errors as 0.0606 (Changhai) and 0.0887 (Huashan)
without a scale. They are read as NONMEM SIGMA variances because
estimate +/- 1.96 x RSE x estimatereproduces the printed bootstrap 95 % intervals (0.044-0.077 against 0.048-0.075; 0.075-0.103 against 0.075-0.102). The log-scale SDs are thereforesqrt(0.0606) = 0.246andsqrt(0.0887) = 0.298; read as SDs directly they would imply an implausibly small 6-9 % residual for immunoassay trough data. Encoded aslnorm(). -
Centre indicator. The residual error differs by
centre, so the model needs
STUDY_HUASHAN(1 = Huashan, 0 = Changhai). It has no structural effect. Predictions are on the CMIA scale for both centres, because the Huashan EMIT values were converted to CMIA equivalents before fitting. -
Wuzhi covariate. The paper bins the 48-h cumulative
Wuzhi capsule dose into four categories. The model takes the dose itself
(
DOSE_WUZHI_MG48H, mg per 48 h) and bins it internally; the “= 45 mg” bin uses a 0.01 mg tolerance. The bins are non-monotone (the lowest dose gives the largest reduction in CL/F), as the paper reports; only 22.5, 45, 67.5, 90 and 135 mg per 48 h occurred in the data. - Discussion wording. The Discussion describes the Wuzhi multipliers as CL/F values “of 0.566 L/h”, “0.783 L/h” and “0.598 L/h”; they are dimensionless multipliers on the 14.4 L/h typical value (Table 2 and the Results equation). The Discussion also says that “patients with a lower creatinine clearance rate had a higher CL/F”, which contradicts the positive exponent in both Table 2 and the Results equation; the equation is followed.
- Absorption. Ka is fixed at 3.09 1/h from Zuo 2013 (same population) with no IIV, as in the paper. Trough-only sampling means the absorption phase and Tmax in the steady-state table are not informed by Chen 2021’s data.
- Covariates used in Figure 4. The paper resampled its own data; here creatinine clearance is log-normal around the 45.5 mL/min median and haematocrit normal around the 29.2 % mean (SD 5.4), both redrawn into the Table 1 ranges. Wuzhi arms are represented by 22.5, 45 and 90 mg per 48 h.
-
Dose covariate.
DOSE_TAC_MGDis the total daily dose and must equal twice the q12hamtin any simulation; in a trough-titrated cohort a dose-on-clearance effect is partly a surrogate for fast-clearance characteristics (see the covariate register). - No errata were found for this article (PubMed checked 2026-09-29).