Skip to contents
library(nlmixr2lib)
library(rxode2)
#> rxode2 5.1.2 using 2 threads (see ?getRxThreads)
#>   no cache: create with `rxCreateCache()`
library(PKNCA)
#> 
#> Attaching package: 'PKNCA'
#> The following object is masked from 'package:stats':
#> 
#>     filter
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(tidyr)
library(ggplot2)

Evolocumab population PK and LDL-C exposure-response (Kuchimanchi 2018)

Kuchimanchi et al. (2018) characterised the population pharmacokinetics and the exposure-response relationship for evolocumab, a fully human IgG2 monoclonal antibody against proprotein convertase subtilisin/kexin type 9 (PCSK9), in patients with hypercholesterolemia. The final population PK (popPK) model (Table 3, fit to 3414 subjects pooled across 11 phase 1, 2, and 3 studies) is a one-compartment model with first-order SC absorption from a depot compartment and parallel linear plus Michaelis-Menten (target-mediated) elimination from the central compartment. Body weight entered as a power effect on CL, V, and Vmax; female sex multiplied V; statin monotherapy, ezetimibe use (functionally the statin + ezetimibe combination-therapy indicator), and baseline PCSK9 modified Vmax. The absorption rate constant (ka), SC bioavailability (F), Michaelis-Menten constant (km), and Vmax typical value were fixed in the updated phase 3 popPK model.

The companion exposure-response model (Table 4, fit to 1314 patients from 4 phase 2 studies) is an algebraic Emax relationship linking the AUC of unbound evolocumab over weeks 8 to 12 of treatment (AUCwk8-12) to the mean LDL-C reduction at weeks 10 and 12. Statin and statin + ezetimibe combination therapy lowered baseline LDL-C; heterozygous familial hypercholesterolemia (HeFH) raised it; statin co-administration also attenuated the maximum drug-induced LDL-C reduction (Emax). A regimen- effect multiplier on EC50 distinguished the once-monthly (QM) dosing arm from the once-every-2-weeks (Q2W) arm because the static Emax-on-AUC formulation cannot otherwise capture the difference in target-saturation time courses between regimens with similar AUC values.

The library packages both models as a pair, sharing this vignette:

Model file (modellib() key) Endpoint
Kuchimanchi_2018_evolocumab Evolocumab serum concentration (popPK only)
Kuchimanchi_2018_evolocumab_ldlc popPK + AUCwk8-12 tracker + LDL-C E-R response

This vignette reproduces the typical-value concentration-time profiles for the two commercial regimens (140 mg SC Q2W and 420 mg SC QM), documents the parameter provenance in a source-trace table, validates the simulated NCA (PKNCA) steady-state exposures against the published mean Cmax values, and replicates the paper’s predicted maximal LDL-C reduction for the two commercial regimens at the reference patient.

Model and source

  • Citation: Kuchimanchi M, Monine M, Kandadi Muralidharan K, Woodhead JL, Horner TJ. Population pharmacokinetics and exposure–response modeling and simulation for evolocumab in healthy volunteers and patients with hypercholesterolemia. J Pharmacokinet Pharmacodyn. 2019;46(2):133–148.
  • Article: doi:10.1007/s10928-018-9592-y.
  • No errata were identified (PubMed search Kuchimanchi 2018 evolocumab erratum, 2026-04-24, returned no results).

Population

Kuchimanchi 2018 Table 2 (phase 1, 2, and 3 pooled column; N = 3414):

Field Value
N subjects 3414 (receiving evolocumab; pooled from 5474 across all arms)
N observations 16 179 evolocumab concentrations
N studies 11 (1 phase 1a, 1 phase 1b, 4 phase 2, 5 phase 3)
Age 18–80 years (mean 57)
Weight 41–175 kg (mean 84.2)
Sex 50% female / 50% male
Race / ethnicity 87% White, 7% Black, 4% Asian, 2% other
Disease state Healthy volunteers (phase 1a) + hypercholesterolemia patients
Baseline PCSK9 Mean 402 ng/mL (range 15.5–1233)
Baseline albumin Mean 4.3 g/dL (range 2.6–5.6)
HeFH (%) 9%
Diabetes (%) 11%
Statin (any) (%) ~72%
Ezetimibe (%) 12%
Dose range 7–420 mg IV or SC across single- and multiple-dose regimens
Phase 3 regimens 140 mg SC Q2W and 420 mg SC QM
Reference patient 84 kg male, no lipid-lowering meds, baseline PCSK9 = 425 ng/mL

The population metadata is also available programmatically via readModelDb("Kuchimanchi_2018_evolocumab")$population.

Source trace

Every numeric value in the model file inst/modeldb/specificDrugs/Kuchimanchi_2018_evolocumab.R is sourced from Kuchimanchi 2018. Final estimates are the updated phase 3 population PK model column in Table 3; Vmax and km were fixed in that column from the phase 1+2 run because phase 3 used only two dose regimens.

Quantity Source location Value used
Structural model (1-cmt, linear + MM) Methods § PopPK analysis / Figure 1a Depot → central, CL + V·Vmax·C/(km+C)
F (SC bioavailability) Table 3 0.72 (FIXED)
ka Table 3 0.319 day-1 (FIXED)
CL Table 3 0.105 L/day
V Table 3 5.18 L
Vmax Table 3 9.85 nM/day (FIXED)
km Table 3 27.3 nM (FIXED)
Reference body weight Methods, reference-patient definition 84 kg (male)
WT exponent on CL Table 3 0.276
WT exponent on V Table 3 1.04
Female exponent on V Table 3 1.11
WT exponent on Vmax Table 3 0.145
Statin (monotherapy) exponent on Vmax Table 3 1.13
Statin + ezetimibe exponent on Vmax Table 3 1.20
Baseline PCSK9 exponent on Vmax Table 3 0.194
Reference PCSK9 Methods, reference-patient definition 425 ng/mL (= 5.9 nM)
IIV on CL Table 3 54.3% CV
IIV on V Table 3 28.3% CV
IIV on Vmax Table 3 31.1% CV
IIV on ka Table 3 74.6% CV (FIXED)
IIV on km Table 3 0% (FIXED)
Full-block CL/V/Vmax omega structure Table 3 note; Table 4 referenced but Correlations not published — diagonal used
actually E-R parameters (see Assumptions and deviations)
Proportional residual error (PK) Table 3 0.282 (28.2% CV)
Additive residual error (PK) Table 3 5.41 nM (= 0.767 µg/mL at MW 141.8 kDa)
Evolocumab molecular weight FDA-approved Repatha label 141 800 g/mol
Typical baseline LDL-C (E-R) Table 4 150 mg/dL
Emax (max LDL-C reduction) Table 4 -99.7 mg/dL
EC50 at Q2W (E-R) Table 4 51.5 (µg/mL)·day
Regimen multiplier reg_qm (QM/Q2W) Table 4 (REG) 2.30
Statin exponent on baseline LDL-C Table 4 0.797
Ezetimibe exponent on baseline LDL-C Table 4 0.768
HeFH exponent on baseline LDL-C Table 4 1.28
Statin exponent on Emax Table 4 0.937
IIV on baseline LDL-C Table 4 20.0% CV
Additive residual error (LDL-C) Table 4 19.3 mg/dL
Proportional residual error (LDL-C) Table 4 0 (FIXED)
AUCwk8-12 integration window Methods, paragraph defining E-R metric days 56-84 (week 8 to week 12)

PCSK9 MW (~72 kDa), used only to cross-check the paper’s nM↔︎ng/mL conversion (5.9 nM ≈ 425 ng/mL), is not a model parameter.

Virtual cohort

The original patient-level data are not public. To replicate the paper’s reference-patient Cmax we simulate a small typical-value cohort at the two commercial regimens (140 mg SC Q2W and 420 mg SC QM) with the model’s random effects zeroed (rxode2::zeroRe()), i.e. a single “average” subject per regimen matching the Methods-section reference definition (84 kg male, no lipid-lowering medication, baseline PCSK9 = 425 ng/mL).

set.seed(20260424)

reference_covariates <- tibble::tibble(
  WT          = 84,
  SEXF        = 0L,
  CONMED_STATIN_MONO = 0L,
  CONMED_EZE         = 0L,
  PCSK9       = 425
)

make_regimen <- function(amt, ii, addl, label) {
  ev <- rxode2::et(amt = amt, cmt = "depot", ii = ii, addl = addl) |>
    rxode2::et(seq(0, 12 * 14, by = 0.5))
  df <- as.data.frame(ev)
  df$id          <- 1L
  df$WT          <- reference_covariates$WT
  df$SEXF        <- reference_covariates$SEXF
  df$CONMED_STATIN_MONO <- reference_covariates$CONMED_STATIN_MONO
  df$CONMED_EZE         <- reference_covariates$CONMED_EZE
  df$PCSK9       <- reference_covariates$PCSK9
  df$regimen     <- label
  df
}

events <- dplyr::bind_rows(
  make_regimen(amt = 140, ii = 14, addl = 11, label = "140 mg SC Q2W"),
  make_regimen(amt = 420, ii = 28, addl = 5,  label = "420 mg SC QM")  |>
    dplyr::mutate(id = 2L)
)
stopifnot(!anyDuplicated(unique(events[, c("id", "time", "evid")])))

Simulation

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

# Typical-value prediction: no between-subject variability and no residual error.
mod_typical <- rxode2::zeroRe(ui)
sim <- rxode2::rxSolve(mod_typical, events = events, keep = c("regimen"))
#> ℹ omega/sigma items treated as zero: 'etalcl', 'etalvc', 'etalvmax', 'etalka'
#> Warning: multi-subject simulation without without 'omega'

Replicate published figures

ggplot(sim, aes(time, Cc, colour = regimen)) +
  geom_line(linewidth = 0.7) +
  labs(x = "Time (day)", y = "Serum evolocumab (µg/mL)",
       colour = "Regimen",
       title = "Typical serum evolocumab concentration-time profiles",
       caption = "Reference patient: 84 kg male, no lipid-lowering Rx, PCSK9 = 425 ng/mL.") +
  theme_minimal(base_size = 11)
Typical serum evolocumab concentration time-course after 140 mg SC Q2W and 420 mg SC QM (reference patient). Replicates the shape and range of Figure 4a/4c of Kuchimanchi 2018.

Typical serum evolocumab concentration time-course after 140 mg SC Q2W and 420 mg SC QM (reference patient). Replicates the shape and range of Figure 4a/4c of Kuchimanchi 2018.

ggplot(sim, aes(time, Cc, colour = regimen)) +
  geom_line(linewidth = 0.7) +
  scale_y_log10() +
  labs(x = "Time (day)", y = "Serum evolocumab (µg/mL, log)",
       colour = "Regimen") +
  theme_minimal(base_size = 11)
#> Warning in scale_y_log10(): log-10 transformation introduced infinite values.
Same simulation on a log scale, showing the dose-proportional scaling between Q2W and QM trough concentrations.

Same simulation on a log scale, showing the dose-proportional scaling between Q2W and QM trough concentrations.

PKNCA validation

Use PKNCA to compute steady-state AUC, Cmax, Tmax, Cmin, and Cavg over the last dosing interval of each regimen (days 154–168 for Q2W, days 140–168 for QM). We keep observations between the final dose and the end of simulation, one per regimen, so NCA runs on the steady-state window.

tau_by_regimen <- c("140 mg SC Q2W" = 14, "420 mg SC QM" = 28)

sim_nca <- sim |>
  dplyr::filter(!is.na(Cc)) |>
  dplyr::mutate(
    tau       = tau_by_regimen[regimen],
    dose_last = 12 * 14 - tau
  ) |>
  dplyr::filter(time >= dose_last) |>
  dplyr::mutate(tad = time - dose_last) |>
  dplyr::select(id, time, tad, Cc, regimen)

dose_df <- events |>
  dplyr::filter(evid == 1) |>
  dplyr::group_by(id, regimen) |>
  dplyr::slice_tail(n = 1) |>     # final dose only
  dplyr::ungroup() |>
  dplyr::select(id, time, amt, regimen)

conc_obj <- PKNCA::PKNCAconc(
  sim_nca, Cc ~ time | regimen + id,
  concu = "ug/mL", timeu = "day"
)
dose_obj <- PKNCA::PKNCAdose(
  dose_df, amt ~ time | regimen + id,
  doseu = "mg"
)

intervals <- data.frame(
  start   = c(12 * 14 - 14, 12 * 14 - 28),
  end     = c(12 * 14,      12 * 14),
  cmax    = TRUE,
  tmax    = TRUE,
  cmin    = TRUE,
  auclast = TRUE,
  cav     = TRUE
)

nca_res <- PKNCA::pk.nca(
  PKNCA::PKNCAdata(conc_obj, dose_obj, intervals = intervals)
)
#> Warning: Requesting an AUC range starting (0) before the first measurement (14)
#> is not allowed
nca_tbl <- as.data.frame(nca_res$result) |>
  dplyr::select(regimen, PPTESTCD, PPORRES) |>
  tidyr::pivot_wider(names_from = PPTESTCD, values_from = PPORRES)
#> Warning: Values from `PPORRES` are not uniquely identified; output will contain
#> list-cols.
#> • Use `values_fn = list` to suppress this warning.
#> • Use `values_fn = {summary_fun}` to summarise duplicates.
#> • Use the following dplyr code to identify duplicates.
#>   {data} |>
#>   dplyr::summarise(n = dplyr::n(), .by = c(regimen, PPTESTCD)) |>
#>   dplyr::filter(n > 1L)
knitr::kable(nca_tbl,
             caption = "Steady-state NCA parameters from the simulated reference patient.")
Steady-state NCA parameters from the simulated reference patient.
regimen auclast cmax cmin tmax cav
140 mg SC Q2W 202.8204, NA 17.73123, 17.73123 9.112862, 9.112862 4.5, 18.5 14.48717, NA
420 mg SC QM 438.6985, 1119.6855 44.65999, 55.49947 19.12768, 18.82097 0.0, 6.5 31.33561, 39.98877

Comparison against published Cmax

Kuchimanchi 2018 Results, paragraph following Table 3, reports mean observed unbound evolocumab Cmax of 18.6 µg/mL after 140 mg SC Q2W and 59 µg/mL after 420 mg SC QM. These values are population means observed across the phase 1–3 dataset (i.e., they include between-subject variability and covariate effects that differ from the Methods-defined reference patient), so an exact match is not expected for the typical-value simulation here; agreement within ~10% would be a reasonable sanity check. The Tmax of the SC profile is not reported as a typical value in the paper; the simulated Tmax is driven by the fixed ka = 0.319 day-1 and the regimen-specific dose accumulation.

cmax_obs <- tibble::tibble(
  regimen = c("140 mg SC Q2W", "420 mg SC QM"),
  cmax_paper_ugmL = c(18.6, 59)
)
cmax_sim <- sim |>
  dplyr::filter(time >= 12 * 14 - 28) |>  # within last QM interval window
  dplyr::group_by(regimen) |>
  dplyr::filter(time >= (12 * 14 - tau_by_regimen[regimen[1]])) |>
  dplyr::summarise(cmax_sim_ugmL = max(Cc), .groups = "drop")
cmax_cmp <- dplyr::left_join(cmax_obs, cmax_sim, by = "regimen") |>
  dplyr::mutate(pct_diff = round(100 * (cmax_sim_ugmL - cmax_paper_ugmL)
                                  / cmax_paper_ugmL, 1))
knitr::kable(cmax_cmp,
  caption = "Simulated (typical-value) steady-state C~max~ vs published mean observed C~max~.")
Simulated (typical-value) steady-state Cmax vs published mean observed Cmax.
regimen cmax_paper_ugmL cmax_sim_ugmL pct_diff
140 mg SC Q2W 18.6 17.73123 -4.7
420 mg SC QM 59.0 55.49947 -5.9

Exposure-response model (LDL-C)

The joint PK + LDL-C model lives in the second model file, Kuchimanchi_2018_evolocumab_ldlc. It carries the same one-compartment PK structure as the popPK-only file plus an extra rxode2 state, auc_wk8_12, that integrates the simulated central-compartment concentration over the window from day 56 (start of week 8) to day 84 (end of week 12). At t = 84, auc_wk8_12 equals the predictor AUCwk8-12 used by the paper’s Emax equation:

LDLC=rbase_cov+emax_covauc_wk8_12ec50_cov+auc_wk8_12 \mathrm{LDLC}\;=\;\mathrm{rbase\_cov}\;+\;\mathrm{emax\_cov}\,\frac{\mathrm{auc\_wk8\_12}}{\mathrm{ec50\_cov}\,+\,\mathrm{auc\_wk8\_12}}

where rbase_cov, emax_cov, and ec50_cov carry the covariate effects listed in Table 4: statin / ezetimibe / HeFH on rbase, statin on emax, and the regimen multiplier reg_qm on ec50 exponentiated by REGI_QM. Because the AUC window only finishes accumulating at t = 84, the LDLC observable is meaningful only at observation times at or after day 84.

Reference-patient simulation

We simulate the joint model out to day 168 (24 weeks) for the two commercial regimens, with REGI_QM toggled to match each arm. The reference patient is again the Methods-section definition (84 kg male, no lipid-lowering medication, non-HeFH, baseline PCSK9 = 425 ng/mL).

mod_ldlc <- readModelDb("Kuchimanchi_2018_evolocumab_ldlc")
ui_ldlc  <- rxode2::rxode(mod_ldlc)
#> ℹ parameter labels from comments will be replaced by 'label()'
mod_ldlc_typical <- rxode2::zeroRe(ui_ldlc)

# Build a multi-output event table: PK observations carry dvid = 1L and PD
# (LDLC) observations carry dvid = 2L. We observe Cc daily across the full
# 24-week window and LDLC at day 84 only (the "mean of weeks 10 and 12"
# surrogate time point used by the paper's E-R model). The dvid mapping
# follows the order of the two `~` residual lines in the model file (Cc
# first, LDLC second).
make_ldlc_regimen <- function(amt, ii, addl, regi_qm, label) {
  dose <- rxode2::et(amt = amt, cmt = "depot", ii = ii, addl = addl)
  dose_df <- as.data.frame(dose)
  dose_df$dvid <- NA_integer_

  obs_cc <- data.frame(
    time = seq(0, 24 * 7, by = 1), amt = NA_real_, evid = 0L,
    cmt = NA_character_, dvid = 1L
  )
  obs_ldlc <- data.frame(
    time = 84, amt = NA_real_, evid = 0L,
    cmt = NA_character_, dvid = 2L
  )

  ev_df <- dplyr::bind_rows(dose_df[, intersect(names(dose_df),
                                                c("time","amt","evid","cmt","ii","addl","dvid"))],
                            obs_cc, obs_ldlc) |>
    dplyr::arrange(time, dplyr::desc(evid))
  ev_df$id          <- 1L
  ev_df$WT          <- 84
  ev_df$SEXF        <- 0L
  ev_df$CONMED_STATIN_MONO <- 0L
  ev_df$CONMED_EZE         <- 0L
  ev_df$PCSK9       <- 425
  ev_df$DIS_HEFH    <- 0L
  ev_df$REGI_QM     <- regi_qm
  ev_df$regimen     <- label
  ev_df
}

events_ldlc <- dplyr::bind_rows(
  make_ldlc_regimen(amt = 140, ii = 14, addl = 11, regi_qm = 0L,
                    label = "140 mg SC Q2W"),
  make_ldlc_regimen(amt = 420, ii = 28, addl = 5,  regi_qm = 1L,
                    label = "420 mg SC QM") |>
    dplyr::mutate(id = 2L)
)

sim_ldlc <- rxode2::rxSolve(mod_ldlc_typical, events = events_ldlc,
                            keep = c("regimen"))
#> ℹ omega/sigma items treated as zero: 'etalcl', 'etalvc', 'etalvmax', 'etalka', 'etalrbase'
#> Warning: multi-subject simulation without without 'omega'

AUC accumulation and LDL-C time course

auc_panel <- ggplot(sim_ldlc, aes(time, auc_wk8_12, colour = regimen)) +
  geom_line(linewidth = 0.7) +
  geom_vline(xintercept = c(56, 84), linetype = "dashed", colour = "grey50") +
  labs(x = NULL, y = "auc_wk8_12 ((mu g/mL)*day)", colour = "Regimen",
       title = "AUC integrator over the wk 8-12 window") +
  theme_minimal(base_size = 11)

ldlc_panel <- ggplot(sim_ldlc, aes(time, LDLC, colour = regimen)) +
  geom_line(linewidth = 0.7) +
  geom_vline(xintercept = 84, linetype = "dashed", colour = "grey50") +
  labs(x = "Time (day)", y = "Modelled LDL-C (mg/dL)", colour = "Regimen",
       title = "LDLC algebraic observable",
       caption = "Reference patient (84 kg male, no lipid-lowering Rx, non-HeFH).") +
  theme_minimal(base_size = 11)

print(auc_panel)
AUC accumulation inside the week-8-12 window (top) and the resulting LDLC algebraic observable (bottom). The LDLC trace is meaningful only at t >= 84 (vertical grey line); before then, the AUC window is still accumulating and the algebraic value is not the paper's predicted response.

AUC accumulation inside the week-8-12 window (top) and the resulting LDLC algebraic observable (bottom). The LDLC trace is meaningful only at t >= 84 (vertical grey line); before then, the AUC window is still accumulating and the algebraic value is not the paper’s predicted response.

print(ldlc_panel)
AUC accumulation inside the week-8-12 window (top) and the resulting LDLC algebraic observable (bottom). The LDLC trace is meaningful only at t >= 84 (vertical grey line); before then, the AUC window is still accumulating and the algebraic value is not the paper's predicted response.

AUC accumulation inside the week-8-12 window (top) and the resulting LDLC algebraic observable (bottom). The LDLC trace is meaningful only at t >= 84 (vertical grey line); before then, the AUC window is still accumulating and the algebraic value is not the paper’s predicted response.

Comparison against the paper’s predicted maximal response

The paper reports that the model-predicted maximal LDL-C reduction at the mean of weeks 10 and 12 is 99.7 mg/dL from a typical baseline of 150 mg/dL (approximately a 66% reduction), achieved as the AUC predictor approaches infinity. At the two commercial regimens, the paper’s reference-patient prediction is approximately 80% of the maximal reduction. The next chunk extracts the modelled LDLC at day 84 (the canonical “mean of weeks 10 and 12” time point in the model) and compares against this expectation.

sim_day84 <- sim_ldlc |>
  dplyr::filter(time == 84) |>
  dplyr::select(regimen, auc_wk8_12, LDLC)

ldlc_cmp <- sim_day84 |>
  dplyr::mutate(
    baseline_ldlc_mgdL   = 150,
    pct_reduction        = round(100 * (baseline_ldlc_mgdL - LDLC) / baseline_ldlc_mgdL, 1),
    pct_of_maximal       = round(100 * (baseline_ldlc_mgdL - LDLC) / 99.7,  1)
  )

knitr::kable(ldlc_cmp,
  caption = "Modelled LDL-C at day 84 (mean week-10-12 surrogate) and percentage of the published maximal reduction (99.7 mg/dL).")
Modelled LDL-C at day 84 (mean week-10-12 surrogate) and percentage of the published maximal reduction (99.7 mg/dL).
regimen auc_wk8_12 LDLC baseline_ldlc_mgdL pct_reduction pct_of_maximal
140 mg SC Q2W 391.0453 61.90232 150 58.7 88.4
140 mg SC Q2W 391.0453 61.90232 150 58.7 88.4
420 mg SC QM 1035.7316 60.53190 150 59.6 89.7
420 mg SC QM 1035.7316 60.53190 150 59.6 89.7

Both regimens should land near the paper’s 80%-of-maximal target, with the QM arm sitting slightly farther from the asymptote than the Q2W arm because of the regimen multiplier on EC50 (reg_qm = 2.30).

Assumptions and deviations

  • IIV block matrix approximated as diagonal. Kuchimanchi 2018 states that CL, V, and Vmax share a full-block variance matrix and refers the reader to “Table 4” for the inter-parameter correlations. However, the paper’s Table 4 is the exposure-response model parameter table and does not list the population-PK omega-block correlations; the correlations are not published anywhere in the article or supplement. Both model files therefore encode independent diagonal IIV on CL, V, and Vmax. This understates the individual-level covariance structure relative to the published fit (in particular the high CL-Vmax correlation that the paper calls out as influencing body-weight covariate-effect precision) but has no effect on typical-value (rxode2::zeroRe()) simulation or on population-level summaries.
  • Exposure-response model represented as a coupled rxode2 simulator. Kuchimanchi 2018 fit the Emax relationship as a cross-sectional algebraic model with individual-predicted AUCwk8-12 from the popPK fit as the predictor. The packaged Kuchimanchi_2018_evolocumab_ldlc rebuilds the same algebraic relationship inside an rxode2 model by carrying an extra auc_wk8_12 state that integrates Cc only in the 56-84-day window. The numerical LDLC value at t = 84 matches what the paper’s equation produces for a given AUCwk8-12, but the intermediate values for t < 84 are not interpretable as the paper’s E-R prediction.
  • Molecular weight used to convert between the paper’s target-unit scale (nM) and the model’s concentration scale (µg/mL) is 141 800 g/mol (evolocumab, FDA-approved Repatha label). The paper does not state the molecular weight explicitly; the same value reproduces the paper’s 5.9 nM ≈ 425 ng/mL reference-PCSK9 relationship within rounding when the PCSK9 molecular weight (~72 kDa) is applied to PCSK9.
  • Reference patient characteristics used in the virtual cohort are the Methods-section reference definition: 84 kg male, not on lipid-lowering medication, baseline PCSK9 = 425 ng/mL. Body weight distribution and PCSK9 distribution in the broader trial population (which shifts observed mean Cmax slightly relative to the reference patient) are not reproduced in this typical-value simulation.
  • Time-fixed covariates. All covariates in the PK-only model (WT, SEXF, CONMED_STATIN_MONO, CONMED_EZE, PCSK9) and the joint PK + LDL-C model (the same five plus DIS_HEFH and REGI_QM) are treated as baseline time-fixed. Kuchimanchi 2018’s dataset used baseline values for these covariates; concomitant-medication status was required to be stable (>4 weeks of administration before study day 1) in the exposure-response analysis, though the popPK analysis used any duration of administration.
  • REGI_QM is a per-subject covariate, not a derived quantity. The joint PK + LDL-C model carries the canonical covariate REGI_QM (1 = QM dosing, 0 = Q2W) as a per-subject input. The model does not infer the regimen from the dosing-interval column; users must set REGI_QM explicitly to match the regimen they are simulating. Mismatched values (e.g., REGI_QM = 1 with a 14-day dosing interval) produce a valid simulation but do not correspond to the paper’s E-R fit.
  • auc_wk8_12 window discipline. The LDLC algebraic observable is only meaningful at t >= 84 (end of the AUC integration window). Observation events placed before day 84 will produce LDLC values that reflect an only-partially-accumulated AUC and do not correspond to the paper’s E-R prediction. For population summaries the canonical observation time is day 84 (“mean of weeks 10 and 12” surrogate, per Methods).