---
title: "(R)-[11C]verapamil rat PET PK with kainate / tariquidar covariates (Syvanen 2011)"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{(R)-[11C]verapamil rat PET PK with kainate / tariquidar covariates (Syvanen 2011)}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r setup, include = FALSE}
knitr::opts_chunk$set(collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 4.5)
library(nlmixr2lib)
library(PKNCA)
library(rxode2)
library(dplyr)
library(tidyr)
library(ggplot2)
```

# Model and source

* Citation: Syvanen S, Luurtsema G, Molthoff CFM, Windhorst AD, Huisman MC, Lammertsma AA, Voskuyl RA, de Lange ECM. (R)-[11C]verapamil PET studies to assess changes in P-glycoprotein expression and functionality in rat blood-brain barrier after exposure to kainate-induced status epilepticus. *BMC Med Imaging.* 2011;11:1. doi:[10.1186/1471-2342-11-1](https://doi.org/10.1186/1471-2342-11-1).
* Article: <https://doi.org/10.1186/1471-2342-11-1> (open-access).

This vignette validates the preclinical (rat, male Sprague-Dawley) population mixed-effects popPK model for (R)-[11C]verapamil published in Syvanen et al. (2011), as fit to plasma (`blood`) and whole-brain VOI PET time-activity curves under four experimental arms (saline-control vs kainate-induced post-status-epilepticus state, each crossed with vehicle vs tariquidar P-glycoprotein inhibition). The structural model has two layers (paper Figure 3 schematic):

* a three-compartment plasma disposition (`central` + `peripheral1` + `peripheral2`, parameterised as `Vc` / `Vp1` / `Vp2` and inter-compartmental clearances `Q1` / `Q2`, with systemic clearance `CL` cleared from `central`);
* a two-compartment whole-brain layer (`brain_csf` = the fast-exchange brain compartment connected to plasma via asymmetric `Qin` (into brain) and `Qout` (out of brain); `brain_deep` = the deep-brain compartment connected to `brain_csf` only, via symmetric `Qbr`).

Plasma time-activity curves are complete-metabolite-corrected before model fitting (paper Methods, equation 2a), so the structural model describes intact (R)-[11C]verapamil only. Body weight is the only continuous covariate (allometric on plasma `CL`, reference weight `0.3084 kg` -- the mean across all 42 successfully scanned rats). Tariquidar co-administration multiplies `Vp1` by 1.20, `Vbr1` by 2.41, and `Qin` by 12.0; the kainate-induced post-SE state multiplies `Vbr1` by 1.32 (no significant effect on `Qin` or `Qout`); both categorical covariate effects use the paper's `theta^COV` multiplicative form (Equation 5 in the paper).

# Population

42 successfully scanned male Sprague-Dawley rats (Harlan, Horst, The Netherlands), body weight 200-224 g at arrival and 308 +/- 31 g (mean +/- SD) on the experimental day, distributed across four arms:

* saline + vehicle (n = 10, mean body weight 327 +/- 26 g);
* kainate + vehicle (n = 11, mean 292 +/- 33 g);
* saline + tariquidar (n = 10, mean 326 +/- 25 g);
* kainate + tariquidar (n = 11, mean 293 +/- 24 g).

Of an original 50 animals, 8 were excluded (4 died from the kainate-induction protocol, 1 did not respond to kainate, 3 had technical issues such as scanner movement or extravascular tracer injection). Kainate-treated rats received repeated intraperitoneal injections of kainic acid (10 mg/kg loading, then 5 mg/kg every 30-60 min until stage IV-V seizures by Racine scale, or 30 mg/kg total) 7 days prior to scanning. Tariquidar-treated rats received a 15 mg/kg IV bolus 20-30 min before the (R)-[11C]verapamil injection. The same metadata are available programmatically via `readModelDb("Syvanen_2011_verapamil_rat")$population`.

# Source trace

The per-parameter origin is recorded inline next to each `ini()` entry in `inst/modeldb/specificDrugs/Syvanen_2011_verapamil_rat.R`. The table below collects everything in one place for review.

| Equation / parameter        | Value             | Source location                                                                            |
|-----------------------------|-------------------|--------------------------------------------------------------------------------------------|
| `d/dt(central)`             | n/a               | Plasma 3-cmt + 2 cross-BBB flows; paper Figure 3 schematic, Methods 'NONMEM model'         |
| `d/dt(peripheral1)`         | n/a               | Plasma 3-cmt; paper Figure 3                                                                |
| `d/dt(peripheral2)`         | n/a               | Plasma 3-cmt; paper Figure 3                                                                |
| `d/dt(brain_csf)`           | n/a               | Brain 2-cmt; paper Figure 3                                                                 |
| `d/dt(brain_deep)`          | n/a               | Brain 2-cmt; paper Figure 3                                                                 |
| `lvc` (Vc)                  | `log(22.8)` mL    | Paper Table 3: Vc = 22.8 mL (SE 2.41)                                                       |
| `lvp` (Vp1)                 | `log(504)` mL     | Paper Table 3: Vp1 = 504 mL (SE 40.7)                                                       |
| `lvp2` (Vp2)                | `log(70.2)` mL    | Paper Table 3: Vp2 = 70.2 mL (SE 9.91)                                                      |
| `lcl` (CL)                  | `log(14.7)` mL/min| Paper Table 3: CL = 14.7 mL/min (SE 0.681)                                                  |
| `lq` (Q1)                   | `log(16.1)` mL/min| Paper Table 3: Q1 = 16.1 mL/min (SE 1.75)                                                   |
| `lq2` (Q2)                  | `log(22.7)` mL/min| Paper Table 3: Q2 = 22.7 mL/min (SE 3.34)                                                   |
| `lvbr1` (Vbr1)              | `log(7.23)` mL    | Paper Table 3: Vbr1 = 7.23 mL (SE 2.00)                                                     |
| `lvbr2` (Vbr2)              | `log(10.7)` mL    | Paper Table 3: Vbr2 = 10.7 mL (SE 2.22)                                                     |
| `lqin` (Qin)                | `log(1.75)` mL/min| Paper Table 3: Qin = 1.75 mL/min (SE 0.26)                                                  |
| `lqout` (Qout)              | `log(1.81)` mL/min| Paper Table 3: Qout = 1.81 mL/min (SE 0.283)                                                |
| `lqbr` (Qbr)                | `log(0.692)` mL/min| Paper Table 3: Qbr = 0.692 mL/min (SE 0.143)                                               |
| `e_conmed_tariquidar_vp`    | `log(1.20)`       | Paper Table 3: tariquidar covariate on Vp1 = 1.20 (SE 0.119); theta^COV form                |
| `e_conmed_tariquidar_vbr1`  | `log(2.41)`       | Paper Table 3: tariquidar covariate on Vbr1 = 2.41 (SE 0.505)                               |
| `e_conmed_tariquidar_qin`   | `log(12.0)`       | Paper Table 3: tariquidar covariate on Qin = 12.0 (SE 0.554)                                |
| `e_dis_postse_kainate_vbr1` | `log(1.32)`       | Paper Table 3: kainate (rat-group) covariate on Vbr1 = 1.32 (SE 0.416)                      |
| `e_wt_cl`                   | `1.98`            | Paper Table 3 + Equation 4: weight allometric exponent on CL = 1.98, ref WT = 0.3084 kg     |
| `etalvc`                    | `0.175`           | Paper Table 3: IIV(Vc) variance = 0.175 (SE 0.085)                                          |
| `etalvp2`                   | `0.036`           | Paper Table 3: IIV(Vp2) variance = 0.036 (SE 0.034)                                         |
| `etalcl`                    | `0.065`           | Paper Table 3: IIV(CL) variance = 0.065 (SE 0.016)                                          |
| `etalq`                     | `0.220`           | Paper Table 3: IIV(Q1) == IIV(Q2) = 0.220 (SE 0.073); shared eta encoding                   |
| `etalvbr`                   | `0.115`           | Paper Table 3: IIV(Vbr1) == IIV(Vbr2) = 0.115 (SE 0.054); shared eta encoding              |
| `propSd`                    | `0.118`           | Paper Table 3: residual error 'blood' = 0.118 (SE 0.0152) (proportional model)              |
| `propSd_Cbrain`             | `0.226`           | Paper Table 3: residual error 'brain' = 0.226 (SE 0.0354) (proportional model)              |

# Virtual cohort

A four-arm virtual cohort matches the paper's design (n = 10 or 11 per arm, replicated 20-fold for tighter VPC percentile bands; arm-mean body weights from Table 1). Each rat receives a single intravenous bolus of 20 MBq (R)-[11C]verapamil at `t = 0`; observations are sampled every 30 seconds across the full 60 minute PET acquisition window. The tariquidar pre-dose is captured via the `CONMED_TARIQUIDAR` covariate (the structural model treats tariquidar exposure as binary, justified by the paper's observation that tariquidar plasma concentrations did not differ between saline and kainate arms at 2 h post-dose).

```{r cohort}
set.seed(2011)

arm_design <- tibble::tribble(
  ~arm,                          ~n,   ~WT_kg,    ~CONMED_TARIQUIDAR, ~DIS_POSTSE_KAINATE,
  "saline + vehicle",            10L,  0.327,     0L,                 0L,
  "kainate + vehicle",           11L,  0.292,     0L,                 1L,
  "saline + tariquidar",         10L,  0.326,     1L,                 0L,
  "kainate + tariquidar",        11L,  0.293,     1L,                 1L
)

# Dose: 20 MBq IV bolus (paper Table 1 reports 20.8 +/- 4.5 MBq mean across arms).
dose_mbq          <- 20
sim_duration_min  <- 60
obs_times         <- seq(0.5, sim_duration_min, by = 0.5)

make_arm <- function(arm_label, n, wt_kg, tariq, kainate, id_offset = 0L) {
  # Dosing rows (evid = 1) + observation rows (evid = 0).
  ids <- id_offset + seq_len(n)
  dose_rows <- tibble::tibble(
    id   = ids,
    time = 0,
    amt  = dose_mbq,
    evid = 1L,
    cmt  = "central",
    WT                  = wt_kg,
    CONMED_TARIQUIDAR   = tariq,
    DIS_POSTSE_KAINATE  = kainate,
    arm                 = arm_label
  )
  obs_rows <- tidyr::expand_grid(
    id   = ids,
    time = obs_times
  ) |>
    dplyr::mutate(
      amt  = 0,
      evid = 0L,
      cmt  = "Cc",
      WT                  = wt_kg,
      CONMED_TARIQUIDAR   = tariq,
      DIS_POSTSE_KAINATE  = kainate,
      arm                 = arm_label
    )
  dplyr::bind_rows(dose_rows, obs_rows)
}

n_replicates  <- 20L
events_list   <- list()
offset_cursor <- 0L
for (rep in seq_len(n_replicates)) {
  for (i in seq_len(nrow(arm_design))) {
    a <- arm_design[i, ]
    events_list[[length(events_list) + 1L]] <- make_arm(
      arm_label  = a$arm,
      n          = a$n,
      wt_kg      = a$WT_kg,
      tariq      = a$CONMED_TARIQUIDAR,
      kainate    = a$DIS_POSTSE_KAINATE,
      id_offset  = offset_cursor
    )
    offset_cursor <- offset_cursor + a$n
  }
}
events_rat <- dplyr::bind_rows(events_list)
stopifnot(!anyDuplicated(unique(events_rat[, c("id", "time", "evid")])))
```

# Simulation

```{r simulate}
mod <- readModelDb("Syvanen_2011_verapamil_rat")

sim <- rxode2::rxSolve(mod, events = events_rat,
                       keep = c("arm", "WT", "CONMED_TARIQUIDAR", "DIS_POSTSE_KAINATE")) |>
  as.data.frame()
```

A deterministic typical-value trace per arm (zeroed random effects) is used for the macroconstant validation later in this vignette:

```{r simulate-typical}
mod_typical <- mod |> rxode2::zeroRe()

# One representative rat per arm for the typical-value sim
events_typical <- arm_design |>
  dplyr::mutate(id = seq_len(dplyr::n())) |>
  dplyr::rowwise() |>
  dplyr::do({
    make_arm(arm_label = .$arm, n = 1L, wt_kg = .$WT_kg,
             tariq = .$CONMED_TARIQUIDAR, kainate = .$DIS_POSTSE_KAINATE,
             id_offset = .$id - 1L)
  }) |>
  dplyr::ungroup()
stopifnot(!anyDuplicated(unique(events_typical[, c("id", "time", "evid")])))

sim_typical <- rxode2::rxSolve(mod_typical, events_typical,
                               keep = c("arm", "WT", "CONMED_TARIQUIDAR", "DIS_POSTSE_KAINATE")) |>
  as.data.frame()
```

# Replicate Figure 1 (mean whole-brain SUV by arm)

Figure 1 of Syvanen 2011 plots mean +/- SD whole-brain SUV (radioactivity normalised to injected dose and animal weight) over 60 min for the four rat groups. The published figure shows vehicle (saline / kainate) brain uptake plateauing at low SUV (<= 1) and tariquidar-treated rats reaching SUV ~3-4. Here we reproduce the typical-value trace per arm; SUV is computed as `Cbrain * WT_g / dose_MBq`, where `WT_g = WT_kg * 1000` (paper SUV convention).

```{r figure-1}
sim_typical_with_suv <- sim_typical |>
  dplyr::filter(time > 0) |>
  dplyr::mutate(SUV_brain = Cbrain * (WT * 1000) / dose_mbq,
                SUV_plasma = Cc * (WT * 1000) / dose_mbq)

ggplot(sim_typical_with_suv, aes(time, SUV_brain, colour = arm)) +
  geom_line(linewidth = 0.9) +
  labs(x = "Time (min)", y = "Whole-brain SUV (unitless)",
       title = "Figure 1 replication: mean whole-brain (R)-[11C]verapamil SUV by treatment arm",
       caption = "Replicates Figure 1 of Syvanen 2011 (typical-value trace, IIV zeroed). Tariquidar arms (Group 3 + 4) reach SUV ~3-4 at the 60-min plateau; vehicle arms (Group 1 + 2) plateau below 1 SUV.")
```

A stochastic VPC version using the full virtual cohort (with IIV and residual error):

```{r figure-1-vpc}
vpc_brain <- sim |>
  dplyr::filter(time > 0) |>
  dplyr::mutate(SUV_brain = Cbrain * (WT * 1000) / dose_mbq) |>
  dplyr::group_by(arm, time) |>
  dplyr::summarise(
    Q05 = quantile(SUV_brain, 0.05, na.rm = TRUE),
    Q50 = quantile(SUV_brain, 0.50, na.rm = TRUE),
    Q95 = quantile(SUV_brain, 0.95, na.rm = TRUE),
    .groups = "drop"
  )

ggplot(vpc_brain, aes(time, Q50, colour = arm, fill = arm)) +
  geom_ribbon(aes(ymin = Q05, ymax = Q95), alpha = 0.2, colour = NA) +
  geom_line(linewidth = 0.7) +
  labs(x = "Time (min)", y = "Whole-brain SUV (unitless)",
       title = "Figure 1 stochastic VPC: median + 5th-95th percentile per arm",
       caption = "Solid line = median; ribbon = 5-95 percentile of the simulated cohort (20-fold replicate of Syvanen 2011 Table 1 design).")
```

# Replicate Table 2 (2-compartment popPK macroconstants and Kp)

Table 2 of Syvanen 2011 reports per-group `K1`, `k2`, `k3`, `k4`, and `Kp` macroconstants computed from the same NONMEM popPK fit. The table footer states the closed-form mapping from the structural Table 3 estimates: `K1 = Qin / (Vbr1 + Vbr2)`, `k2 = Qout / Vbr1`, `k3 = Qbr / Vbr1`, `k4 = Qbr / Vbr2`, and (from the steady-state equilibrium of the asymmetric BBB) `Kp = Qin / Qout`. Reproducing those formulas directly from the typical-value parameters per arm:

```{r table-2-macro}
table3_typical <- function(tariq, kainate) {
  Vc   <- 22.8
  Vp1  <- 504 * (1.20)^tariq
  Vp2  <- 70.2
  CL   <- 14.7        # weight-effect ignored at the typical-value Reference WT
  Q1   <- 16.1
  Q2   <- 22.7
  Vbr1 <- 7.23 * (2.41)^tariq * (1.32)^kainate
  Vbr2 <- 10.7
  Qin  <- 1.75 * (12.0)^tariq
  Qout <- 1.81
  Qbr  <- 0.692
  tibble::tibble(
    K1 = Qin / (Vbr1 + Vbr2),
    k2 = Qout / Vbr1,
    k3 = Qbr  / Vbr1,
    k4 = Qbr  / Vbr2,
    Kp = Qin / Qout
  )
}

macro_pred <- arm_design |>
  dplyr::rowwise() |>
  dplyr::mutate(macro = list(table3_typical(CONMED_TARIQUIDAR, DIS_POSTSE_KAINATE))) |>
  tidyr::unnest(macro) |>
  dplyr::select(arm, K1, k2, k3, k4, Kp)

knitr::kable(
  macro_pred,
  digits = 3,
  caption = "Macroconstants derived from Table 3 typical-value parameters per arm."
)
```

A direct side-by-side against the published Table 2 means (`(R)-[11C]verapamil`, `Model - 2 comp PopPK` row block):

| Quantity / arm                      | Paper Table 2 (mean +/- SD)   | Model (typical-value, this vignette) |
|-------------------------------------|-------------------------------|--------------------------------------|
| `K1`  saline + vehicle              | 0.10 (0.02)                   | `r round(macro_pred$K1[1], 2)`      |
| `K1`  kainate + vehicle             | 0.10 (0.02)                   | `r round(macro_pred$K1[2], 2)`      |
| `K1`  saline + tariquidar           | 0.75 (0.14)                   | `r round(macro_pred$K1[3], 2)`      |
| `K1`  kainate + tariquidar          | 0.62 (0.12)                   | `r round(macro_pred$K1[4], 2)`      |
| `k2`  saline + vehicle              | 0.25 (0.08)                   | `r round(macro_pred$k2[1], 2)`      |
| `k2`  kainate + vehicle             | 0.25 (0.08)                   | `r round(macro_pred$k2[2], 2)`      |
| `k2`  saline + tariquidar           | 0.10 (0.04)                   | `r round(macro_pred$k2[3], 2)`      |
| `k2`  kainate + tariquidar          | 0.08 (0.03)                   | `r round(macro_pred$k2[4], 2)`      |
| `k3`  saline + vehicle              | 0.10 (0.03)                   | `r round(macro_pred$k3[1], 2)`      |
| `k3`  saline + tariquidar           | 0.04 (0.02)                   | `r round(macro_pred$k3[3], 2)`      |
| `k4`  saline + tariquidar           | 0.06 (0.02)                   | `r round(macro_pred$k4[3], 2)`      |
| `Kp`  saline + vehicle              | 0.97 (0.21)                   | `r round(macro_pred$Kp[1], 2)`      |
| `Kp`  saline + tariquidar           | 11.6 (2.6)                    | `r round(macro_pred$Kp[3], 2)`      |
| `Kp`  kainate + tariquidar          | 11.6 (2.6)                    | `r round(macro_pred$Kp[4], 2)`      |

The tariquidar-arm macroconstants reproduce the published Table 2 values to two decimal places; the vehicle-arm `K1`, `k2`, `k3` for the kainate group are lower than the saline group in the model (because the kainate covariate inflates `Vbr1` by 32%), whereas Table 2 reports identical macroconstant means for the saline-vehicle and kainate-vehicle groups. This discrepancy is consistent with one of two readings of the paper -- see Assumptions and deviations.

# PKNCA validation (plasma)

PKNCA is run on the simulated plasma Cc curves per arm. Following the IV-bolus single-dose recipe (no extrapolation needed beyond the 60-minute observation window because the PET acquisition ends well before the terminal phase is fully resolved in plasma):

```{r pknca}
sim_nca <- sim |>
  dplyr::filter(time > 0, !is.na(Cc)) |>
  dplyr::transmute(id, time, Cc, arm)

conc_obj <- PKNCA::PKNCAconc(sim_nca, Cc ~ time | arm + id)

dose_df <- events_rat |>
  dplyr::filter(evid == 1L) |>
  dplyr::transmute(id, time, amt, arm)

dose_obj <- PKNCA::PKNCAdose(dose_df, amt ~ time | arm + id)

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

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

nca_summary <- summary(nca_res)
knitr::kable(nca_summary, caption = "Simulated plasma NCA by treatment arm (0 - 60 min window).")
```

# Assumptions and deviations

* **Compartment names `brain_csf` and `brain_deep` are paper-named rather than canonical.** Same convention rationale as Xie 2000: the brain layer is asymmetric (`Qin` != `Qout` across the BBB) and the deep brain compartment connects only to the fast-exchange brain compartment, so neither matches the symmetric `peripheral` semantics. Naming them `brain_csf` and `brain_deep` follows the Xie 2000 m3g_rat precedent; the paper's labels are `Vbr1` and `Vbr2`, with no explicit anatomical interpretation beyond "the brain compartment exchanging directly with plasma" and "the deeper brain compartment". `checkModelConventions()` will emit one compartment warning per name (accepted by design).
* **Brain output `Cbrain` is paper-named.** The whole-brain VOI observation is the sum of activity in `brain_csf` and `brain_deep` divided by their summed volumes. The nlmixr2lib observation register includes `Cbrain_<region>` for region-specific outputs but no canonical name for a multi-compartment whole-brain aggregate, so the model declares `propSd_Cbrain` via the `paper_specific_residual_sds` mechanism. Accepted by design.
* **Paper-specific PK-parameter names `lvbr1`, `lvbr2`, `lqin`, `lqout`, `lqbr`.** The brain-layer asymmetric BBB structure does not collapse to canonical `vc` / `vp` / `vp2` / `q` semantics, so paper-faithful names are used. Same precedent as Xie 2000 (`lvubr1`, `lvubr2`, `lcluin`, `lcluout`, `lqbr`). `checkModelConventions()` will report one warning per non-canonical PK-parameter name (accepted by design).
* **Shared etas for `Q1`/`Q2` and `Vbr1`/`Vbr2`.** Table 3 of Syvanen 2011 reports the inter-individual variability of `Q1` and `Q2` with identical numeric values (`0.220 (0.073)`) and the IIV of `Vbr1` and `Vbr2` with identical numeric values (`0.115 (0.054)`). Identical SE-to-the-same-decimal-place is essentially impossible if two independent etas were estimated separately (each variance estimate carries its own SE distribution under FOCE-I), so the model encodes these as shared etas (Q1 and Q2 share a single `etalq`; Vbr1 and Vbr2 share a single `etalvbr`). The alternative interpretation -- two independent etas constrained to be numerically identical -- is mathematically equivalent at the population mean but underestimates joint variability if `Q1` and `Q2` are treated as independent draws. If the paper actually fit independent etas, the per-rat simulated profiles will be slightly less correlated than the published fit; the typical-value (zeroed-IIV) predictions are unaffected.
* **Table 2 vs Table 3 macroconstant inconsistency for the kainate + vehicle group.** Table 2 reports identical macroconstants (`K1 = 0.10`, `k2 = 0.25`, `k3 = 0.10`) for the saline-vehicle (Group 1) and kainate-vehicle (Group 2) arms, while Table 3 + the table-footer macroconstant formulas imply that the 32% kainate-induced increase in `Vbr1` should reduce `k2` from 0.250 to 0.190, `k3` from 0.096 to 0.073, and `K1` from 0.098 to 0.087 in the kainate-vehicle group. The model file implements Table 3 + Equation 5 literally (kainate covariate applies to `Vbr1` regardless of tariquidar status, as Syvanen 2011 Discussion paragraph 5 explicitly states "rat group as covariate for the brain distribution volume, Vbr1, did improve the model fit significantly and increased Vbr1 with 32% in kainate treated compared to saline treated rats"), so the model-predicted macroconstants for Group 2 differ from Table 2 by ~24-27%. Possible explanations: (a) Table 2 reports macroconstants computed from the structural model WITHOUT covariate effects (i.e., as a model-comparison baseline), with the kainate effect captured only through the Vbr1 fractional change reported in Table 3; (b) Table 2 reports per-individual empirical Bayes estimates averaged within each group, with the eta variation partially compensating for the typical-value shift; (c) the Table 2 rendering has a typesetting issue. The model file implements the interpretation consistent with the paper's stated structural description (kainate uniformly inflates `Vbr1` by 1.32 across both tariquidar conditions); the tariquidar-arm macroconstants reproduce Table 2 to two decimal places under this interpretation, supporting it. Users relying on the kainate-vehicle macroconstants matching Table 2 exactly should be aware of this discrepancy.
* **Body weight treated as time-fixed.** The Syvanen 2011 dataset records one body-weight value per animal on the experimental day; the model treats `WT` as a per-subject baseline covariate rather than time-varying. The 60-minute PET acquisition window is short enough that weight changes are negligible regardless.
* **Constant-rate IV bolus vs the paper's bolus injection.** Syvanen 2011 administered (R)-[11C]verapamil as a single intravenous bolus over 30 seconds (paper Methods, p1785: "The emission scan was started 30 seconds before an injection ..."). The vignette simulation uses a true zero-duration bolus event (`evid = 1`, no `rate` column). This causes a discontinuity at `t = 0` in the simulated Cc that the paper's 30-second push would smooth out, but the integrated AUC, Cmax (at first sample), and brain time-activity curve from `t = 0.5 min` onward are unaffected.
* **All 42 rats pooled into a virtual cohort with arm-mean body weights.** Table 1 of Syvanen 2011 reports per-arm mean body weights (327, 292, 326, 293 g) and SD (~25-33 g). The vignette virtual cohort uses the per-arm means as a fixed weight per animal within an arm rather than a per-subject body-weight distribution. This collapses the WT-driven CL spread inside each arm (the model's per-rat CL scales as `(WT/0.3084)^1.98`, so a 30 g SD around a 308 g mean gives roughly +/- 18% spread in CL) into the residual variability captured by `etalcl`. Users who want a more realistic spread can replace the constant `WT_kg` with `rnorm(n, mean = arm_WT, sd = arm_WT_SD)`.
* **The model is fit to metabolite-corrected plasma curves and describes intact (R)-[11C]verapamil only.** Paper Methods (equation 2a) describe the complete-metabolite-correction applied to all plasma samples before model fitting. The model therefore does NOT predict total plasma radioactivity (which would include 11C-labelled N-dealkylated, O-demethylated, and N-demethylated metabolites). Users interpreting simulated plasma `Cc` should treat it as intact-tracer activity per mL.
