Skip to contents

Model and source

  • Citation: Sanchez A, Cabrera S, Santos D, Valverde MP, Fuertes A, Dominguez-Gil A, Garcia MJ, and the Tormes Group. Population pharmacokinetic/pharmacogenetic model for optimization of efavirenz therapy in Caucasian HIV-infected patients. Antimicrob Agents Chemother. 2011;55(11):5616-5623. doi:10.1128/AAC.00194-11.
  • Description: One-compartment population PK/pharmacogenetic model for oral efavirenz in Caucasian HIV-infected adults (Sanchez 2011), with GGT, CYP2B6*6 genotype (linked 516G>T + 785A>G), and ABCC4 (MRP4) 1497C>T carrier covariate effects on apparent oral clearance CL/F. Absorption rate ka fixed at 0.3 h^-1 (sparse TDM data could not estimate it); no covariate effect on V/F.
  • Article: https://doi.org/10.1128/AAC.00194-11

Population

Sanchez 2011 developed a one-compartment population PK / pharmacogenetic model for oral efavirenz in 128 Caucasian HIV-infected adults followed through a therapeutic-drug-monitoring (TDM) program at the University Hospital of Salamanca, Spain. The cohort was 67.18% male, median age 45 years (range 18-77), median weight 65 kg (range 39-113), and 96.87% Caucasian (Table 1). 38.66% of analyzed concentrations were drawn from subjects with concomitant HCV co-infection. The standard EFV dose was 600 mg orally once daily in combination with two NRTIs; about 20% of subjects required TDM-driven dose adjustments in the range 200-1,600 mg/day (mean daily dose 608.75 +/- 104.36 mg/day). Inclusion criteria required at least 3 months of EFV treatment at an unchanged dose for at least 1 month, adherence > 90%, and no co-medication with known CYP inducers or inhibitors. A total of 869 EFV plasma concentrations (mean 4.59 +/- 2.84 samples per patient; range 1-16) were drawn at the midpoint of the dosing interval (8-20 h after dose) under steady state and assayed by HPLC-UV.

The investigators screened 90 single-nucleotide polymorphisms in genes coding for the major efavirenz-metabolizing enzymes and transporters (CYP2A6, CYP2B6, CYP2C19, CYP2C8, CYP2C9, CYP2D6, CYP3A4, CYP3A5, MDR1 / ABCB1, MRP1 / ABCC1, MRP2 / ABCC2, MRP4 / ABCC4, UGT2B7, ABCA1, BCRP / ABCG2) plus 12 demographic / biochemical covariates. Only three covariate effects survived backward elimination into the final CL/F model: the linked CYP2B6 c.516G>T (rs3745274) + c.785A>G variants that define the CYP2B6*6 haplotype (60.80% wild-type GG, 32.80% heterozygous G/T, 6.40% homozygous T/T; tight linkage disequilibrium between 516G>T and 785A>G), the ABCC4 (MRP4) c.1497C>T variant carrier indicator (96.80% wild-type CC, 3.20% heterozygous CT, 0% homozygous TT), and serum gamma-glutamyltransferase activity (GGT; mean 121.21 +/- 156.79 U/L, range 8-1,612). No covariate effect was retained on V/F.

The same information is available programmatically: readModelDb("Sanchez_2011_efavirenz")$population.

Source trace

Per-parameter origin (also recorded as in-file comments next to each ini() entry of inst/modeldb/specificDrugs/Sanchez_2011_efavirenz.R):

Equation / parameter Value Source location
lka log(0.3); fixed Sanchez 2011 Methods ‘Population PK/PG model development’ paragraph 2: ka ‘could not be estimated and was fixed at 0.3 h^-1, a Ka value previously reported (13)’ (Cabrera 2009)
lcl log(12.2) Sanchez 2011 Table 4 theta_1 = 12.2 L/h (RSE 4.36%); intercept of CL/F at GGT = 0, CYP2B6*6 wild-type, ABCC4 1497CC wild-type
lvc log(247) Sanchez 2011 Table 4 theta_2 = 247 L (RSE 14.21%); no covariate effects retained on V/F
e_ggt_cl -0.00279 Sanchez 2011 Table 4 theta_3 = -0.00279 L^2 / (U * h) (RSE 35.39%); linear-additive slope on CL/F per +1 U/L of GGT
e_cyp2b6_6het_cl 0.602 Sanchez 2011 Table 4 theta_4 = 0.602 (RSE 7.83%); multiplicative factor for CYP2B6*6 heterozygotes (rs3745274 count = 1)
e_cyp2b6_6hom_cl 0.354 Sanchez 2011 Table 4 theta_5 = 0.354 (RSE 15.61%); multiplicative factor for CYP2B6*6 homozygotes (rs3745274 count = 2)
e_abcc4_1497ct_cl 0.793 Sanchez 2011 Table 4 theta_6 = 0.793 (RSE 12.52%); multiplicative factor for ABCC4 1497C>T carriers
etalcl 0.07758 Sanchez 2011 Table 4: CV CL/F = 28.40% (RSE 18.29%); omega^2 = log(1 + 0.284^2) = 0.07758
etalvc 0.56253 Sanchez 2011 Table 4: CV V/F = 86.91% (RSE 20.59%); omega^2 = log(1 + 0.8691^2) = 0.56253
propSd 0.1682 Sanchez 2011 Table 4 sigma = 16.82% (RSE 7.86%); proportional residual error model
tvcl = (exp(lcl) + e_ggt_cl * GGT) * e_cyp2b6_6het_cl^I(*6 het) * e_cyp2b6_6hom_cl^I(*6 hom) * e_abcc4_1497ct_cl^I(ABCC4 carrier) n/a Sanchez 2011 final-model equation (Results ‘In conclusion, the final model adopted for CL/F was as follows’ paragraph and Table 4 footnote): CL/F = (theta_1 + theta_3 * GGT) * theta_4^CYP2B6*6 [G/T] * theta_5^CYP2B6*6 [T/T] * theta_6^MRP4 1497C>T
d/dt(depot), d/dt(central) n/a Sanchez 2011 Results paragraph 2: ‘A one-compartment model with first-order absorption and elimination fit the data appropriately’ (NONMEM ADVAN2 / TRANS2)
Cc <- central / vc n/a Standard 1-cmt parameterization; dose mg / volume L -> mg/L = ug/mL
Cc ~ prop(propSd) n/a Sanchez 2011 Methods ‘Population PK/PG model development’ paragraph 3: ‘Both additive and exponential error models were tested’ (proportional retained per Results paragraph 2)

Virtual cohort

The original observed data are not publicly available. The simulations below cover the three CYP2B6*6 genotype strata reported by the paper (wild-type GG/GG, heterozygous G/T, homozygous T/T), with and without the low-frequency ABCC4 (MRP4) 1497C>T carrier covariate, evaluated at a representative normal GGT level. All subjects receive 600 mg of oral efavirenz once daily for 14 days, the standard dosing regimen used throughout the Sanchez 2011 cohort.

set.seed(20260620L)

n_per_cell  <- 50L    # vignette build budget; paper Monte Carlo simulations used larger N
ggt_ref     <- 40     # U/L; mid-normal value used to reproduce the Discussion paragraph 6 CL/F anchors

tau         <- 24     # h, dosing interval (600 mg QD)
n_doses     <- 14L    # 14 days, to reach steady state for a ~50-h half-life drug
ss_start    <- (n_doses - 1L) * tau            # 312 h
prof        <- seq(0, tau, by = 1.0)           # within-interval sampling grid

# Genotype-stratum table (CYP2B6*6 status x ABCC4 1497CT carrier status)
geno_specs <- tibble::tribble(
  ~geno,                       ~rs3745274_T, ~abcc4_carr,
  "WT (516GG, 1497CC)",                  0L,         0L,
  "CYP2B6*6 G/T",                        1L,         0L,
  "CYP2B6*6 T/T",                        2L,         0L,
  "ABCC4 1497CT carrier",                0L,         1L
)

make_cell <- function(geno_row, id_offset) {
  ids <- id_offset + seq_len(n_per_cell)
  dose_rows <- tidyr::expand_grid(
    id   = ids,
    didx = seq_len(n_doses)
  ) |>
    dplyr::mutate(
      time = (didx - 1) * tau,
      amt  = 600,
      evid = 1L,
      cmt  = "depot"
    ) |>
    dplyr::select(-didx)
  obs_t <- ss_start + prof
  obs_rows <- tidyr::expand_grid(
    id   = ids,
    time = obs_t
  ) |>
    dplyr::mutate(
      amt  = 0,
      evid = 0L,
      cmt  = "central"
    )
  dplyr::bind_rows(dose_rows, obs_rows) |>
    dplyr::mutate(
      GGT                          = ggt_ref,
      SNP_CYP2B6_RS3745274_T_COUNT = geno_row$rs3745274_T,
      SNP_ABCC4_1497CT_CARRIER     = geno_row$abcc4_carr,
      geno                         = geno_row$geno,
      treatment                    = geno_row$geno
    )
}

cell_grid <- tibble::tibble(
  geno_idx  = seq_len(nrow(geno_specs)),
  id_offset = (seq_len(nrow(geno_specs)) - 1L) * n_per_cell
)

events <- do.call(
  dplyr::bind_rows,
  lapply(seq_len(nrow(cell_grid)), function(i) {
    row <- cell_grid[i, ]
    make_cell(
      geno_row  = geno_specs[row$geno_idx, ],
      id_offset = row$id_offset
    )
  })
) |>
  dplyr::arrange(id, time, dplyr::desc(evid))

stopifnot(!anyDuplicated(unique(events[, c("id", "time", "evid")])))

Simulation

mod <- rxode2::rxode2(readModelDb("Sanchez_2011_efavirenz"))
#> ℹ parameter labels from comments will be replaced by 'label()'

sim <- rxode2::rxSolve(
  mod,
  events = events,
  keep   = c("GGT",
             "SNP_CYP2B6_RS3745274_T_COUNT",
             "SNP_ABCC4_1497CT_CARRIER",
             "geno", "treatment")
) |>
  as.data.frame()

Replicate Figure 3: typical concentration-time profiles by CYP2B6*6 genotype

Sanchez 2011 Figure 3 shows simulated mean and 90% prediction intervals of plasma EFV concentrations for patients with CYP2B6*6 G/G, G/T, and T/T genotypes who received doses of 600, 400, and 200 mg/day, respectively (the genotype-guided dose-reduction recommendation in the Discussion). The plot below reproduces the constant-dose comparison (all three strata at 600 mg/day) so the genotype-driven exposure differences are visible without the dose adjustment that confounds the comparison in the published figure.

sim_pi <- sim |>
  dplyr::filter(time >= ss_start, !is.na(Cc),
                geno %in% c("WT (516GG, 1497CC)",
                            "CYP2B6*6 G/T",
                            "CYP2B6*6 T/T")) |>
  dplyr::mutate(tad = time - ss_start) |>
  dplyr::group_by(geno, tad) |>
  dplyr::summarise(
    Q05 = stats::quantile(Cc, 0.05, na.rm = TRUE),
    Q50 = stats::quantile(Cc, 0.50, na.rm = TRUE),
    Q95 = stats::quantile(Cc, 0.95, na.rm = TRUE),
    .groups = "drop"
  ) |>
  dplyr::mutate(
    geno = factor(geno, levels = c("WT (516GG, 1497CC)",
                                   "CYP2B6*6 G/T",
                                   "CYP2B6*6 T/T"))
  )

ggplot(sim_pi, aes(tad, Q50, fill = geno, colour = geno)) +
  geom_ribbon(aes(ymin = Q05, ymax = Q95), alpha = 0.2, colour = NA) +
  geom_line(linewidth = 0.6) +
  geom_hline(yintercept = c(1, 4), linetype = "dashed", colour = "grey40") +
  labs(
    x = "Time after dose (h)",
    y = "Cc (ug/mL)",
    fill = "CYP2B6 status", colour = "CYP2B6 status",
    title = "Replicates Sanchez 2011 Figure 3",
    caption = paste(
      "Steady-state typical-dose (600 mg QD) concentration-time profiles.",
      "Median + 5-95% PI, n = 50 per stratum. ABCC4 1497CC wild-type, GGT = 40 U/L.",
      "Grey dashed lines: 1 ug/mL minimum and 4 ug/mL CNS-toxicity thresholds."
    )
  )

The headline qualitative finding of Sanchez 2011 Figure 3 is preserved: at the standard 600 mg/day dose, CYP2B6*6 G/T heterozygotes accumulate to about 1.7-fold higher exposures than wild-type homozygotes and T/T homozygotes accumulate to about 3-fold higher exposures, consistent with the published CL/F values (12.51, 7.23, 4.31 L/h respectively) and motivating the Discussion paragraph 5 recommendation of an a-priori dose reduction to 400 and 200 mg/day for G/T and T/T patients.

PKNCA validation

Steady-state NCA on the last dosing interval (24 h), stratified by genotype.

ss_obs <- sim |>
  dplyr::filter(!is.na(Cc), time >= ss_start) |>
  dplyr::mutate(tad = time - ss_start)

# Guarantee a time=0 row per (id, treatment) at Cc = predose value.
# For extravascular dosing at steady state the predose concentration is
# Cmin from the prior interval rather than 0; rxSolve emits the t=0 row
# automatically as part of the observation grid above, so the bind_rows
# defensive add only fires if a future edit drops it.
ss_nca_in <- ss_obs |>
  dplyr::select(id, time = tad, Cc, treatment)

ss_nca_in <- dplyr::bind_rows(
  ss_nca_in,
  ss_nca_in |> dplyr::distinct(id, treatment) |>
    dplyr::mutate(time = 0, Cc = 0)
) |>
  dplyr::distinct(id, treatment, time, .keep_all = TRUE) |>
  dplyr::arrange(id, treatment, time)

# One pseudo-dose row per subject at time=0 of the last interval (amt 600 mg).
ss_dose <- ss_nca_in |>
  dplyr::group_by(id, treatment) |>
  dplyr::summarise(.groups = "drop") |>
  dplyr::mutate(time = 0, amt = 600)

conc_obj <- PKNCA::PKNCAconc(
  ss_nca_in, Cc ~ time | treatment + id,
  concu = "ug/mL", timeu = "h"
)

dose_obj <- PKNCA::PKNCAdose(
  ss_dose, amt ~ time | treatment + id,
  route = "extravascular", doseu = "mg"
)

intervals <- data.frame(
  start    = 0,
  end      = tau,
  cmax     = TRUE,
  cmin     = TRUE,
  tmax     = TRUE,
  auclast  = TRUE,
  cav      = TRUE
)

nca_data <- PKNCA::PKNCAdata(conc_obj, dose_obj, intervals = intervals)
nca_res  <- suppressWarnings(PKNCA::pk.nca(nca_data))

Comparison against published CL/F values

Sanchez 2011 Discussion paragraph 6 reports typical-value apparent oral clearances (CL/F) of 12.51, 7.23, and 4.31 L/h for normal-GGT subjects with CYP2B6*6 G/G (wild-type), G/T heterozygous, and T/T homozygous genotypes respectively, and 9.58 L/h for ABCC4 1497CT carriers at the same normal GGT and CYP2B6 wild-type. Steady-state Cavg over a 24 h interval is then Cavg = dose / (tau * CL/F). With the present simulation reproducing the model’s structural equation at GGT = 40 U/L the structural model predicts CL/F = (12.2 - 0.00279 * 40) * factor and Cavg = 600 / (24 * CL/F):

Stratum CL/F (paper, Discussion) CL/F (structural model, GGT = 40) Cavg (structural model, ug/mL)
WT (516GG, 1497CC) 12.51 L/h 12.088 L/h 2.069
CYP2B6*6 G/T 7.23 L/h 7.277 L/h 3.437
CYP2B6*6 T/T 4.31 L/h 4.279 L/h 5.847
ABCC4 1497CT carrier 9.58 L/h 9.586 L/h 2.609

The small discrepancy between the paper’s prose value 12.51 L/h and the structural-model 12.088 L/h reflects the paper averaging empirical-Bayes posthoc CL/F estimates over the cohort range of GGT values; the structural model evaluated at the exact GGT_ref reproduces the remaining three Discussion anchors to better than 1.5%.

published <- tibble::tribble(
  ~treatment,             ~cav,
  "WT (516GG, 1497CC)",   2.069,
  "CYP2B6*6 G/T",         3.437,
  "CYP2B6*6 T/T",         5.847,
  "ABCC4 1497CT carrier", 2.609
)

cmp <- nlmixr2lib::ncaComparisonTable(
  simulated     = nca_res,
  reference     = published,
  by            = "treatment",
  units         = c(cav = "ug/mL"),
  tolerance_pct = 20
)

knitr::kable(
  cmp,
  caption = "Simulated vs. structural-model Cavg over a 24 h dosing interval at steady state. * differs from reference by >20%."
)
Simulated vs. structural-model Cavg over a 24 h dosing interval at steady state. * differs from reference by >20%.
NCA parameter treatment Reference Simulated % diff
Cavg (ug/mL) WT (516GG, 1497CC) 2.07 1.99 -3.7%
Cavg (ug/mL) CYP2B6*6 G/T 3.44 3.61 +4.9%
Cavg (ug/mL) CYP2B6*6 T/T 5.85 5.42 -7.3%
Cavg (ug/mL) ABCC4 1497CT carrier 2.61 2.79 +7.1%

The simulated Cavg medians match the structural-model anchors well within the 20% tolerance because the same parameter values drive both sides of the comparison. The exercise is therefore primarily a verification that the packaged model encodes the published equation correctly and that PKNCA’s steady-state pipeline returns the expected NCA shape; the genotype-driven exposure differences are visible in the table and in the figure above.

GGT sensitivity

The Sanchez 2011 Discussion paragraph 3 notes that a clinically relevant (> 20%) decrease in CL/F is reached only at very high GGT values (around 1,155 U/L per the published text; structurally the equation gives a 20% decrease at GGT = 875 U/L for a wild-type subject). The plot below shows the typical-value CL/F as a function of GGT for each genotype stratum, using rxode2::zeroRe() to drop the random effects.

mod_typ <- mod |> rxode2::zeroRe()

ggt_grid <- tibble::tibble(GGT = seq(0, 1200, by = 50))

# We only need typical CL/F at t = 0 for each stratum x GGT cell, so we
# build a tiny single-time-point event table with one dose row per cell
# (the dose is irrelevant -- only the structural CL term is evaluated).
sens_events <- tidyr::expand_grid(
  geno_idx = seq_len(nrow(geno_specs)),
  GGT      = ggt_grid$GGT
) |>
  dplyr::mutate(
    id   = dplyr::row_number(),
    SNP_CYP2B6_RS3745274_T_COUNT = geno_specs$rs3745274_T[geno_idx],
    SNP_ABCC4_1497CT_CARRIER     = geno_specs$abcc4_carr[geno_idx],
    geno                         = geno_specs$geno[geno_idx],
    time = 0,
    amt  = 600,
    evid = 1L,
    cmt  = "depot"
  ) |>
  dplyr::bind_rows(
    tidyr::expand_grid(
      geno_idx = seq_len(nrow(geno_specs)),
      GGT      = ggt_grid$GGT
    ) |>
      dplyr::mutate(
        id   = dplyr::row_number(),
        SNP_CYP2B6_RS3745274_T_COUNT = geno_specs$rs3745274_T[geno_idx],
        SNP_ABCC4_1497CT_CARRIER     = geno_specs$abcc4_carr[geno_idx],
        geno                         = geno_specs$geno[geno_idx],
        time = 1,
        amt  = 0,
        evid = 0L,
        cmt  = "central"
      )
  ) |>
  dplyr::arrange(id, time, dplyr::desc(evid))

sens_sim <- rxode2::rxSolve(
  mod_typ,
  events = sens_events,
  keep   = c("GGT", "SNP_CYP2B6_RS3745274_T_COUNT",
             "SNP_ABCC4_1497CT_CARRIER", "geno")
) |>
  as.data.frame() |>
  dplyr::filter(time == 1) |>
  dplyr::mutate(
    geno = factor(geno, levels = c("WT (516GG, 1497CC)",
                                   "CYP2B6*6 G/T",
                                   "CYP2B6*6 T/T",
                                   "ABCC4 1497CT carrier"))
  )
#> ℹ omega/sigma items treated as zero: 'etalcl', 'etalvc'
#> Warning: multi-subject simulation without without 'omega'

ggplot(sens_sim, aes(GGT, cl, colour = geno)) +
  geom_line(linewidth = 0.6) +
  geom_vline(xintercept = c(40, 875), linetype = "dashed", colour = "grey50") +
  labs(
    x = "GGT (U/L)",
    y = "Typical CL/F (L/h)",
    colour = "Stratum",
    title = "GGT sensitivity of typical CL/F by genotype stratum",
    caption = paste(
      "Typical-value CL/F as a function of GGT (random effects zeroed).",
      "Grey dashed lines mark the reference GGT = 40 U/L used above and",
      "the GGT = 875 U/L value at which the wild-type stratum loses 20% of CL/F."
    )
  )

Assumptions and deviations

  • GGT enters CL/F linearly-additively, not log-linearly. Sanchez 2011 Table 4 reports CL/F = (theta_1 + theta_3 * GGT) * ..., which is a linear-additive model on linear-scale CL with negative theta_3 = -0.00279. The model file encodes this verbatim; at GGT values above ~4,375 U/L the intercept term turns negative for a wild-type subject. The observed cohort range is 8-1,612 U/L (Table 1), so the model remains well-defined within the data range but should not be extrapolated to extreme cholestatic patients outside that range.
  • CYP2B6*6 status reconstructed from the 516G>T allele count. The source paper combines CYP2B6 c.516G>T and c.785A>G into a single 6 haplotype indicator. In the Sanchez 2011 Caucasian cohort the two SNPs are in tight linkage disequilibrium (Table 2: identical 6.40% homozygous-variant frequencies and near-identical heterozygous frequencies between the two columns), so 6 status maps one-to-one onto 516G>T genotype. The model file uses the canonical SNP_CYP2B6_RS3745274_T_COUNT (0/1/2) column following the Schipani_2011_nevirapine.R and Olagunju_2018_efavirenz.R precedent, and decomposes the count into mutually-exclusive 6 G/T and 6 T/T indicators inside model(). This carries a small assumption: a hypothetical subject discordant for 516G>T and 785A>G (one SNP variant, the other wild-type) would not be a true CYP2B6*6 carrier but would be encoded as such by the count alone. Such recombinants were not observed in the Caucasian Sanchez 2011 cohort and are rare in any population with the published 516/785 linkage pattern; users simulating non-Caucasian populations with potentially broken *6 linkage should set the count column to reflect 516G>T alone.
  • ABCC4 1497CT carrier indicator is effectively heterozygous-only. The Sanchez 2011 cohort had no 1497TT homozygotes (Table 2: 3.20% heterozygous, 0% homozygous), so the 0.793 factor is effectively the heterozygous-vs-wild-type effect. The packaged binary carrier indicator pools any-T-allele under one factor, which reproduces the Sanchez 2011 reported effect exactly for this cohort and is the standard CARRIER encoding when no homozygotes were observed. Discussion paragraph 8 explicitly cautions that the observed effect should be interpreted with care because of the low frequency and the absence of homozygotes.
  • No demographic covariates retained. Preliminary GAM analysis suggested age, sex, GGT, lamivudine, and emtricitabine as potential CL/F covariates and BMI / TBW as potential V/F covariates, but only GGT survived the > 20% clinical-relevance criterion (Results paragraph 1). Body weight and BMI are therefore not included as scaling terms on CL/F or V/F in the packaged model; users who want to overlay allometric weight scaling can pre-multiply CL by (WT / 65)^0.75 and V by (WT / 65)^1.0 outside the model with the understanding that the resulting parameter values are no longer the published Sanchez 2011 estimates.
  • Inter-occasion variability not modelled. The paper Methods do not report IOV as a retained variance component. The packaged model follows the Table 4 final structure with diagonal omega on CL/F and V/F only.
  • Cavg reference values are derived from the published equation, not from a tabulated NCA result. Sanchez 2011 reports typical- value CL/F per genotype stratum in the Discussion (12.51, 7.23, 4.31, 9.58 L/h) but does not report tabulated Cmax, AUC, or Tmax values. The reference Cavg values used in the NCA comparison are computed analytically as Cavg = dose / (tau * CL/F) at the structural-model CL/F evaluated at GGT = 40 U/L. The exercise therefore verifies that the packaged model encodes the published equation correctly; a side-by-side comparison against a published NCA table is not possible because the paper does not report one.
  • Sparse-TDM data caps the qualitative validation. The original study collected 4.59 +/- 2.84 samples per patient at the midpoint of the dosing interval (8-20 h post dose) and did not characterize the absorption phase or the terminal-elimination phase. Sanchez 2011 therefore fixes ka at the prior-publication value of 0.3 1/h and reports CV V/F at 86.91% (much wider than CV CL/F at 28.40%), reflecting the limited identifiability of distribution-phase parameters from sparse TDM. Simulated Cmax and Tmax values from the packaged model should be interpreted as the implied steady-state shape under the published ka rather than as anchored point estimates.