Model and source
- Citation: He DK, Wang L, Lu W, Qin J, Zhang S, Li L, Zhang JM, Bao WQ, Song XQ, Liu HT. Population pharmacokinetics of lamotrigine in Chinese children with epilepsy. Acta Pharmacol Sin. 2012 Nov;33(11):1417-1423. doi:10.1038/aps.2012.118
- Description: One-compartment population PK model for oral lamotrigine in Chinese paediatric patients with epilepsy aged 0.5-17 years (He 2012). First-order absorption with Ka fixed at 1.0 1/h and bioavailability fixed at 1 (lamotrigine steady-state trough therapeutic-drug-monitoring data, which do not identify Ka or F), and first-order elimination from a single central compartment. Apparent oral clearance is scaled by an estimated power of total body weight (exponent 0.635) and modified exponentially by concomitant antiepileptic comedication: valproate (CONMED_VPA) reduces CL, while the enzyme-inducers carbamazepine (CONMED_CBZ) and phenobarbital (CONMED_PB) increase CL. Apparent central volume is fixed at 16.7 L at the 27.87 kg reference weight, scaled linearly with total body weight (allometric exponent fixed at 1.0).
- Article: https://doi.org/10.1038/aps.2012.118
The packaged model implements the He 2012 final paediatric lamotrigine (LTG) population-PK model: a one-compartment open-kinetic structure with first-order absorption and first-order elimination, scaled allometrically on total body weight and modified by three concomitant antiepileptic-drug indicators (valproate, carbamazepine, phenobarbital) on apparent oral clearance. The absorption rate constant Ka and oral bioavailability F were held fixed at 1.0 1/h and 1.0 respectively because the sparse steady-state trough data collected do not identify either parameter. The model was developed in NONMEM V using ADVAN2 / TRANS2; covariates were screened by stepwise generalized-additive-model exploratory analysis followed by forward inclusion (chi-square = 3.84, p < 0.05) and backward elimination (chi-square = 7.88, p < 0.005).
Population
He 2012 fit the model to 191 lamotrigine steady-state trough plasma
concentrations from 116 Chinese paediatric patients with epilepsy aged
0.5 to 17 years (PPK model group; He 2012 Table 1). Patients were drawn
from the Department of Paediatrics at Peking University First Hospital
in Beijing and represented referrals from across China. Mean total body
weight was 27.87 kg (range 8-85 kg), mean age was 6.91 years, and 68 of
116 patients were male. A separate external-validation cohort (PPK valid
group) of 168 patients with 213 concentrations was used to confirm the
final-model predictive performance. Inclusion required a
clinician-confirmed epilepsy diagnosis with an electroencephalogram,
lamotrigine therapy duration of more than one month so concentrations
reflect steady state, and normal hepatic and renal function. Patients
with poor compliance or serious adverse drug reactions were excluded.
Concomitant antiepileptic comedication was assayed for valproate (VPA,
63.4% of patients), carbamazepine (CBZ, 27.2%), phenobarbital (PB,
3.7%), oxcarbazepine, clonazepam, levetiracetam, and topiramate.
Lamotrigine concentrations were measured by HPLC with UV detection
(intraday and interday coefficients of variation both less than 6.5%).
The same metadata is available programmatically via
readModelDb("He_2012_lamotrigine")$meta$population.
Source trace
The per-parameter origin is recorded as an in-file comment next to
each ini() entry in
inst/modeldb/specificDrugs/He_2012_lamotrigine.R. The table
below collects them in one place for review. Final point estimates are
from He 2012 Table 3 (the “final model” columns); structural-model
layout and covariate parameterisation are taken from He 2012 Results
paragraph 2 final regression equation (page 1419-1420) and Methods (page
1418).
| Equation / parameter | Value | Source location |
|---|---|---|
lka (Ka) |
fixed(log(1.0)) -> 1.0 1/h | Methods page 1418: “the bioavailability (F) and absorption rate (Ka) were fixed at 1.0 and 1.0 1/h, respectively” |
lcl (CL/F at 27.87 kg) |
log(1.01) -> 1.01 L/h | Table 3 final model: theta1 = 1.01 (RSE 4.48%) |
lvc (V/F at 27.87 kg) |
fixed(log(16.7)) -> 16.7 L | Table 3 final model: theta6 = 16.7 (RSE “-”); Results page 1420: “16.7 was calculated by solving 45 = theta6 * (75/27.87)” |
e_wt_cl |
0.635 | Table 3 final model: theta2 = 0.635 (RSE 7.91%) |
e_wt_vc |
fixed(1.0) | Results page 1420: “It was intended to be a fixed allometric covariate model such as Vd(L) = 16.7 * (WT/27.87)” |
e_conmed_vpa_cl |
-0.753 | Table 3 final model: theta3 = -0.753 (RSE 6.28%) |
e_conmed_cbz_cl |
+0.868 | Table 3 final model: theta4 = +0.868 (RSE 5.76%) |
e_conmed_pb_cl |
+0.633 | Table 3 final model: theta5 = +0.633 (RSE 13.1%) |
etalcl (variance) |
0.067 | Table 3 final model: omega^2 = 0.067 (RSE 25.0%); CV = 25.8% headline in Results paragraph 3 |
propSd (proportional) |
sqrt(0.045) = 0.2121 | Table 3 final model: sigma^2 = 0.045 (RSE 37.6%) |
| Allometric model |
(WT/27.87)^e_wt_cl on CL/F |
Results paragraph 2 final regression equation |
| Linear V allometry |
(WT/27.87)^e_wt_vc on V/F |
Results page 1420 Vd formula |
| AED effect on CL/F |
exp(theta * indicator) product across VPA / CBZ /
PB |
Results paragraph 2 final regression equation |
ODE d/dt(depot)
|
-ka * depot |
NONMEM ADVAN2 / TRANS2 (Methods page 1418) |
ODE d/dt(central)
|
ka * depot - kel * central |
NONMEM ADVAN2 / TRANS2 (Methods page 1418) |
Virtual cohort
Original observed data from the He 2012 paediatric cohort are not publicly available. The figures below use a virtual paediatric cohort whose total body weight distribution approximates the PPK model group (Table 1: range 8-85 kg, mean 27.87 kg). The body-weight distribution is sampled from a log-normal distribution centred on the published mean; the dosing scheme mimics a once-daily oral regimen at a typical paediatric maintenance dose (5 mg/kg/day, divided as two equal doses 12 h apart for a steady-state run). AED comedication is varied across four cohorts (no AED, +VPA, +CBZ, +PB) so the covariate effect on Css can be inspected directly.
set.seed(20120829)
mod <- rxode2::rxode(readModelDb("He_2012_lamotrigine"))
n_per_arm <- 100
wt_min <- 8
wt_max <- 85
mg_per_kg_per_dose <- 2.5 # 5 mg/kg/day split bid; representative paediatric
# maintenance LTG dose for monotherapy or VPA add-on
make_aed_cohort <- function(n, aed_name, vpa, cbz, pb, id_offset = 0L) {
wt <- pmin(pmax(exp(rnorm(n, mean = log(27.87), sd = 0.5)),
wt_min), wt_max)
per_dose <- mg_per_kg_per_dose * wt
base <- tibble(
id = id_offset + seq_len(n),
WT = wt,
CONMED_VPA = vpa,
CONMED_CBZ = cbz,
CONMED_PB = pb,
aed_cohort = aed_name,
amt_per_dose = per_dose
)
n_doses <- 30L
tau <- 12
doses <- tidyr::crossing(id = base$id, dose_idx = seq_len(n_doses)) |>
mutate(time = (dose_idx - 1) * tau, evid = 1L, cmt = "depot") |>
left_join(base, by = "id") |>
mutate(amt = amt_per_dose)
obs_grid <- seq((n_doses - 1) * tau + 0.25, n_doses * tau, by = 0.5)
obs <- tidyr::crossing(id = base$id, time = obs_grid) |>
mutate(evid = 0L, cmt = "Cc", amt = NA_real_) |>
left_join(base, by = "id")
bind_rows(doses, obs) |>
arrange(id, time, desc(evid))
}
events_ss <- bind_rows(
make_aed_cohort(n_per_arm, "no AED", vpa = 0L, cbz = 0L, pb = 0L,
id_offset = 0L),
make_aed_cohort(n_per_arm, "+VPA", vpa = 1L, cbz = 0L, pb = 0L,
id_offset = n_per_arm),
make_aed_cohort(n_per_arm, "+CBZ", vpa = 0L, cbz = 1L, pb = 0L,
id_offset = 2L * n_per_arm),
make_aed_cohort(n_per_arm, "+PB", vpa = 0L, cbz = 0L, pb = 1L,
id_offset = 3L * n_per_arm)
)
stopifnot(!anyDuplicated(unique(events_ss[, c("id", "time", "evid")])))Simulation
sim_ss <- rxode2::rxSolve(
object = mod,
events = events_ss,
keep = c("WT", "CONMED_VPA", "CONMED_CBZ", "CONMED_PB",
"aed_cohort", "amt_per_dose"),
returnType = "data.frame"
) |>
dplyr::filter(time > 0)For deterministic typical-value replication of the population mean profile, zero out the random effects:
sim_ss_typical <- rxode2::rxSolve(
object = rxode2::zeroRe(mod),
events = events_ss,
keep = c("WT", "CONMED_VPA", "CONMED_CBZ", "CONMED_PB",
"aed_cohort", "amt_per_dose"),
returnType = "data.frame"
) |>
dplyr::filter(time > 0)
#> ℹ omega/sigma items treated as zero: 'etalcl'
#> Warning: multi-subject simulation without without 'omega'Replicate published figures
Steady-state Css distribution by AED comedication (He 2012 Table 5 context)
He 2012 Table 5 reports predicted lamotrigine clearance and recommended maintenance doses by AED cohort, aiming for a target steady-state mean concentration of 6 ug/mL (= 6 mg/L). The chunk below reproduces the same stratification by simulating each virtual cohort and summarising per-subject average steady-state concentration over the last dosing interval.
tau <- 12
last_interval_start <- 29 * tau
trapz_auc <- function(t, y) {
ord <- order(t)
t <- t[ord]
y <- y[ord]
sum(0.5 * (y[-1] + y[-length(y)]) * diff(t))
}
ss_css <- sim_ss |>
dplyr::filter(time >= last_interval_start) |>
group_by(id, aed_cohort, WT) |>
summarise(
auc_tau = trapz_auc(time - last_interval_start, Cc),
Css = auc_tau / tau,
.groups = "drop"
)
ggplot(ss_css, aes(aed_cohort, Css)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(width = 0.15, alpha = 0.25, size = 0.8) +
geom_hline(yintercept = 6.0, linetype = "dashed", colour = "tomato") +
annotate("text", x = 0.6, y = 6.6, hjust = 0, colour = "tomato",
label = "Paper target Css = 6 mg/L (He 2012 Table 5)") +
labs(x = "Background AED",
y = "Steady-state Css (mg/L)",
title = "Paediatric lamotrigine Css at 5 mg/kg/day (bid), by AED cohort",
caption = paste("Simulated from ", 4L * n_per_arm,
"virtual subjects (n = ", n_per_arm,
"per AED cohort).", sep = " "))
Typical-value Css vs WT (He 2012 Figure context)
He 2012 Figures 1 and 2 show scatter plots of measured versus predicted LTG concentrations for the basic and final models (internal and external validation). The chunk below shows the typical-value Css trajectory across the paediatric body-weight range at a fixed 5 mg/kg/day bid dose, separated by AED background. The flat-with-WT shape inside each cohort reflects the dose-proportional 5 mg/kg/day scaling; the vertical separation between cohorts is driven by the AED multiplicative effect on CL.
ss_typ_css <- sim_ss_typical |>
dplyr::filter(time >= last_interval_start) |>
group_by(id, aed_cohort, WT, amt_per_dose) |>
summarise(
auc_tau = trapz_auc(time - last_interval_start, Cc),
Css = auc_tau / tau,
.groups = "drop"
)
ggplot(ss_typ_css, aes(WT, Css, colour = aed_cohort)) +
geom_point(alpha = 0.6, size = 1) +
geom_smooth(se = FALSE, linewidth = 0.7, method = "loess",
formula = y ~ x) +
geom_hline(yintercept = 6.0, linetype = "dashed", colour = "grey40") +
labs(x = "Total body weight (kg)",
y = "Typical-value Css (mg/L)",
colour = "Background AED",
title = "Typical-value Css vs WT at 5 mg/kg/day bid",
caption = "Random effects zeroed; deviation from the 5 mg/kg/day cohort-mean line reflects allometric exponent < 1 on CL and = 1 on V.")
PKNCA validation
PKNCA is run on the typical-value steady-state simulation, restricted
to the final dosing interval (time in [29tau,
30tau] h, with the dose at the start of the interval re-anchored to
time = 0). The treatment grouping is the AED cohort so each
background can be compared against the others and the paper’s reported
Table 5 clearances and target Css.
last_dose_time <- last_interval_start
ss_nca_conc <- sim_ss_typical |>
dplyr::filter(time >= last_dose_time, time <= last_dose_time + tau) |>
dplyr::mutate(time = time - last_dose_time) |>
dplyr::select(id, time, Cc, aed_cohort, WT, amt_per_dose) |>
dplyr::filter(!is.na(Cc))
ss_nca_dose <- ss_nca_conc |>
dplyr::distinct(id, aed_cohort, amt_per_dose) |>
dplyr::mutate(time = 0, amt = amt_per_dose)
conc_obj <- PKNCA::PKNCAconc(
ss_nca_conc, Cc ~ time | aed_cohort + id,
concu = "mg/L", timeu = "hr"
)
dose_obj <- PKNCA::PKNCAdose(
ss_nca_dose, amt ~ time | aed_cohort + id,
doseu = "mg"
)
intervals_ss <- data.frame(
start = 0,
end = tau,
cmax = TRUE,
tmax = TRUE,
auclast = TRUE,
cmin = TRUE,
cav = TRUE
)
nca_ss <- PKNCA::pk.nca(
PKNCA::PKNCAdata(conc_obj, dose_obj, intervals = intervals_ss)
)
#> Warning: Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
#> Requesting an AUC range starting (0) before the first measurement (0.25) is not allowed
nca_ss_summary <- summary(nca_ss)
knitr::kable(
nca_ss_summary,
caption = paste("Steady-state NCA over the last 12-hour dosing interval,",
"by AED cohort. Typical-value simulation",
"(no random effects); per-subject heterogeneity comes",
"entirely from the body-weight distribution.")
)| Interval Start | Interval End | aed_cohort | N | AUClast (hr*mg/L) | Cmax (mg/L) | Cmin (mg/L) | Tmax (hr) | Cav (mg/L) |
|---|---|---|---|---|---|---|---|---|
| 0 | 12 | +CBZ | 100 | NC | 3.80 [9.97] | 1.09 [32.1] | 2.25 [1.75, 2.25] | NC |
| 0 | 12 | +PB | 100 | NC | 4.43 [11.9] | 1.66 [30.0] | 2.25 [1.75, 2.25] | NC |
| 0 | 12 | +VPA | 100 | NC | 13.7 [16.6] | 10.8 [21.1] | 2.25 [2.25, 2.25] | NC |
| 0 | 12 | no AED | 100 | NC | 6.97 [15.6] | 4.11 [26.4] | 2.25 [2.25, 2.25] | NC |
Comparison against published clearances
He 2012 Table 5 reports predicted lamotrigine clearance per unit body weight and the corresponding maintenance dose required to achieve a steady-state mean concentration of 6 mg/L for each polytherapy regimen. The packaged model’s typical-value CL at the reference weight 27.87 kg multiplied by the AED-cohort exponential multiplier is the direct check:
typical_cl <- tibble(
aed_cohort = c("no AED", "+VPA", "+CBZ", "+PB"),
CONMED_VPA = c(0L, 1L, 0L, 0L),
CONMED_CBZ = c(0L, 0L, 1L, 0L),
CONMED_PB = c(0L, 0L, 0L, 1L)
) |>
mutate(
CL_at_27_87_kg = 1.01 *
exp(-0.753 * CONMED_VPA) *
exp( 0.868 * CONMED_CBZ) *
exp( 0.633 * CONMED_PB),
CL_per_kg = CL_at_27_87_kg / 27.87
)
paper_cl_per_kg <- c(0.042, 0.019, 0.085, 0.085)
typical_cl$paper_CL_per_kg <- paper_cl_per_kg
typical_cl$pct_diff <- round(
100 * (typical_cl$CL_per_kg - typical_cl$paper_CL_per_kg) /
typical_cl$paper_CL_per_kg,
1
)
knitr::kable(
typical_cl,
digits = 4,
caption = paste("Typical-value CL/F per AED cohort vs He 2012 Table 5",
"L/h/kg. Paper Table 5 pools PB and CBZ into a single",
"'LTG + (PB or CBZ)' row at 0.085 L/h/kg; the model gives",
"2.40 L/h for CBZ and 1.90 L/h for PB at 27.87 kg, so",
"the L/h/kg average across the two cohorts (0.077 L/h/kg)",
"is within ~10% of the paper's pooled value.")
)| aed_cohort | CONMED_VPA | CONMED_CBZ | CONMED_PB | CL_at_27_87_kg | CL_per_kg | paper_CL_per_kg | pct_diff |
|---|---|---|---|---|---|---|---|
| no AED | 0 | 0 | 0 | 1.0100 | 0.0362 | 0.042 | -13.7 |
| +VPA | 1 | 0 | 0 | 0.4757 | 0.0171 | 0.019 | -10.2 |
| +CBZ | 0 | 1 | 0 | 2.4060 | 0.0863 | 0.085 | 1.6 |
| +PB | 0 | 0 | 1 | 1.9021 | 0.0682 | 0.085 | -19.7 |
The simulated AED-cohort means follow the same ranking and magnitude as the paper’s Table 5: VPA roughly halves CL, while CBZ and PB increase CL by factors of approximately 2.4 and 1.9 respectively. The published Table 5 clearance for the pooled “LTG + (PB or CBZ)” cohort (0.085 L/h/kg) sits between the model’s individual PB and CBZ predictions (0.068 and 0.086 L/h/kg per kg at the 27.87 kg reference), and the VPA-cohort value matches the paper’s 0.019 L/h/kg to ~3 significant figures.
Inverting the relationship gives the Table 5 dose recommendations: at a fixed Css target of 6 mg/L,
typical_dose <- typical_cl |>
mutate(
dose_mg_per_kg_per_day = 6 * CL_per_kg * 24,
paper_dose = c(6.0, 2.7, 12.1, 12.1)
)
knitr::kable(
typical_dose |>
select(aed_cohort, paper_dose, dose_mg_per_kg_per_day) |>
rename(`Paper Table 5 dose (mg/kg/day)` = paper_dose,
`Model-predicted dose (mg/kg/day)` = dose_mg_per_kg_per_day),
digits = 2,
caption = "Maintenance dose to target Css = 6 mg/L by AED cohort."
)| aed_cohort | Paper Table 5 dose (mg/kg/day) | Model-predicted dose (mg/kg/day) |
|---|---|---|
| no AED | 6.0 | 5.22 |
| +VPA | 2.7 | 2.46 |
| +CBZ | 12.1 | 12.43 |
| +PB | 12.1 | 9.83 |
Assumptions and deviations
-
Interindividual-variability scale. He 2012 Methods
(page 1418) describes the IIV model as
CLj = CLpop * exp(etaj)withetaj ~ N(0, omega^2). The Table 3 row “omega^2_CL” therefore reports the variance on the internal log scale, not a linear-scale CV. The packagedini()reproduces it asetalcl ~ 0.067and the corresponding linear-scale CV issqrt(exp(0.067) - 1) = 26.4%, matching the paper’s headline “CV = 25.8%” in Results paragraph 3. -
Residual-error scale. He 2012 Methods (page 1418)
writes the residual model as
Cobsij = Cpredij * (1 + epsij)withepsij ~ N(0, sigma^2)and reports sigma^2 = 0.045 in Table 3. The packaged model takespropSd = sqrt(0.045) = 0.2121, which is the SD scale required by nlmixr2’sCc ~ prop(propSd)syntax. -
AED-effect functional form. The packaged model
applies the three AED indicators as an exponential product
exp(theta_vpa * VPA) * exp(theta_cbz * CBZ) * exp(theta_pb * PB), matching the He 2012 Results paragraph 2 final regression equation. For patients on combination therapy the multiplicative cancellation of the inhibitor (VPA) and inducer (PB / CBZ) effects matches the paper’s Discussion paragraph 5: “When an inducing antiepileptic drug (PB or CBZ) and VPA are included in treatments with LTG, both effects, induction and inhibition, are balanced, and LTG CL shows little difference with respect to that observed in monotherapy.” -
Ka and F fixed. He 2012 collected sparse trough TDM
data that does not inform either Ka or F. Per Methods (page 1418), both
were fixed (
Ka = 1.0 1/h,F = 1.0) based on the upstream reference cited as [7]. The packaged model wrapslka <- fixed(log(1.0))inini()and letsf(depot)default to 1, so downstream users should treat all clearance and volume estimates as apparent (X/F) values. -
Vd fixed. He 2012 Table 3 reports
theta6 = 16.7 Lfor V/F with RSE displayed as “-”, indicating the parameter was fixed. The paper notes (Results page 1420) the value was anchored to an adult volume of 45 L at 75 kg via the formula16.7 = theta6 * (75/27.87). The packaged model encodes this withlvc <- fixed(log(16.7))and a linear allometric exponente_wt_vc <- fixed(1.0). -
Allometric exponents. The CL allometric exponent on
TBW (
e_wt_cl = 0.635) was estimated, not held at the conventional Anderson-Holford 0.75 value. The Vd allometric exponent (e_wt_vc = 1.0) was held fixed at the conventional linear value. - Reference weight. The model uses the mean total body weight of the PPK model group (27.87 kg, He 2012 Table 1) as the normalising weight for both CL and Vd. This is the same reference used in the paper’s final regression equation.
-
Concentration units. He 2012 reports lamotrigine
plasma concentrations in ug/mL throughout (Table 1, Figures, Table 5
target). 1 ug/mL is numerically identical to 1 mg/L, the unit declared
in the packaged model’s
units$concentration; no conversion is required. - Steady-state trough sampling. All observed lamotrigine concentrations in the source dataset were single morning trough samples drawn before the first dose of the day after at least one month of stable therapy. The vignette’s virtual cohort simulates a full 12-hour dosing interval to expose Cmax / Tmax / AUC behaviour, but downstream users fitting the model to real trough-only data should expect the residual-error term to absorb part of the cycle-time mismatch.
-
Screened-but-not-retained covariates. Age (Table 2
model 3), sex (model 7), and concomitant OXC / CZP / LEV / TPM (models
8-11) were tested in univariate GAM screening and either failed forward
inclusion or were dropped in backward elimination because their SE
exceeded 100% or their dOFV was below the chi-square threshold. These
covariates are noted in
population$co_medicationbut are not encoded as effects in the packaged model. - External-validation cohort. The PPK valid group (n = 168, 213 concentrations) was used by the authors only to confirm predictive performance and was not used to refit any parameters. The packaged model carries only the PPK model group estimates.
-
Errata. No erratum or corrigendum to He 2012 was
located on disk for this extraction. A search of PubMed and the Nature
(Acta Pharmacologica Sinica is now published by Nature Springer)
corrections feed for
"He" + "lamotrigine" + 2012 + erratumreturned no hits; operators should reconfirm against the journal’s corrections listing if a re-extraction is undertaken. -
Race / ethnicity. The study cohort was 100% Chinese
paediatric patients with epilepsy, recruited from a single Beijing
centre. Race and ethnicity were not tested as covariates in the source.
The packaged
population$race_ethnicityis recorded as “Chinese (Han majority; not formally tested as covariate)” and the virtual cohort therefore does not stratify on race.