Chorus Sign in

Extracting PK Models

Translating a clinical publication into software parameters.

Each of the 45 population pharmacokinetic (PopPK) models in Chorus was extracted from a peer-reviewed publication. This walkthrough explains that process — how a published NONMEM model is read, understood, and translated into the parameters that drive patient-specific Bayesian forecasting.

The Goti 2018 vancomycin model is used throughout as a worked example.

What is NONMEM?

NONMEM (Nonlinear Mixed-Effects Modeling) is the standard statistical platform for developing population PK models from clinical data. It simultaneously estimates two things:

  1. The typical pharmacokinetic parameters for the study population.
  2. The between-subject variability around those typical values.

Accurate extraction of both allows the Bayesian estimator to weight the population prior against a patient's observed drug concentrations.

Step 1: Identify the Structural Model

The first step is determining the compartmental structure. The Goti 2018 abstract states that a "2-compartment model… best fit the data", which means the model is built on four primary parameters:

  • Clearance (CL) — volume of plasma cleared of drug per unit time.
  • Central volume ($V_c$) — apparent volume of the initial distribution space.
  • Peripheral volume ($V_p$) — volume of the secondary distribution compartment.
  • Intercompartmental clearance (Q) — rate of drug transfer between compartments.

Step 2: Extract Base Population Parameters ($\theta$)

Population parameters (denoted $\theta$ in NONMEM) represent typical values for an average patient in the study before individual factors such as weight or renal function are applied. From Table 2 of Goti 2018:

  • CL: $4.5$ L/h
  • $V_c$: $58.4$ L
  • $V_p$: $38.4$ L
  • Q: $6.5$ L/h

Step 3: Map Covariate Relationships

Covariates are patient-specific factors that scale the base parameters. The covariate equations are typically buried in a table footnote — Goti 2018 provides:

$$TVCL = \theta_1 \times \left(\frac{CrCL}{120}\right)^{\theta_2} \times \theta_3^{DIAL}$$ $$TVVc = \theta_4 \times \left(\frac{WT}{70}\right) \times \theta_5^{DIAL}$$

Matching the $\theta$ indices to the parameter table identifies each modifier:

  • $\theta_1$ (base CL) $= 4.5$
  • $\theta_2$ (power exponent for CrCL on CL) $= 0.8$
  • $\theta_4$ (base $V_c$) $= 58.4$

Step 4: Calculate Between-Subject Variability (BSV / $\eta$)

Between-subject variability (BSV) describes how much individual patients deviate from the calculated population mean. Papers typically report BSV as a coefficient of variation (%CV). From Goti 2018:

  • BSV on CL: 39.8%
  • BSV on $V_c$: 81.6%
  • BSV on $V_p$: 57.1%

Bayesian estimation requires variance ($\omega^2$), not %CV. For an exponential (multiplicative) eta model, the conversion is:

$$\omega^2 = \ln\left(1 + \left(\frac{CV}{100}\right)^2\right)$$

Applying this to each parameter:

  • CL: $\ln(1 + 0.398^2) \approx 0.147$
  • $V_c$: $\ln(1 + 0.816^2) \approx 0.510$
  • $V_p$: $\ln(1 + 0.571^2) \approx 0.282$

Parameter Transformation Models

Variability is applied by transforming the population typical value ($P_{pop}$) by the individual's random deviation ($\eta$). Goti 2018 uses the exponential form:

Exponential (used here)
$$P_{ind} = P_{pop} \times e^\eta$$
Proportional
$$P_{ind} = P_{pop} \times (1 + \eta)$$

Step 5: Construct the Omega ($\Omega$) Matrix

BSV is structured into the Omega ($\Omega$) matrix — a covariance matrix that captures both the variance of each parameter and any correlations between them. When parameters vary independently (no covariance), the off-diagonal entries are zero:

CL $V_c$ $V_p$
CL 0.147 0 0
$V_c$ 0 0.510 0
$V_p$ 0 0 0.282

Step 6: Extract Residual Error ($\sigma$)

Residual error captures the gap between model-predicted and observed concentrations — a composite of measurement noise, assay imprecision, and model misspecification. From Goti 2018, Table 2 under "Residual Variability":

  • Additive error: $3.4$ mg/L
  • Proportional error: $22.7\%$ CV

Summary: The Final Computational Model

Individualized Parameters

$$CL_i = 4.5 \times \left(\frac{CrCL}{120}\right)^{0.8} \times e^{\eta_{CL}}$$
$$Vc_i = 58.4 \times e^{\eta_{Vc}}$$
$$Vp_i = 38.4 \times e^{\eta_{Vp}}$$
$$Q_i = 6.5$$

$\Omega$ Matrix

$$\Omega = \begin{bmatrix} 0.147 & 0 & 0 \\ 0 & 0.510 & 0 \\ 0 & 0 & 0.282 \end{bmatrix}$$

$\sigma$ Residual Error

$$\sigma_{add} = 3.4 \text{ mg/L}$$
$$\sigma_{prop} = 22.7\%$$