---
title: "Tamsulosin (Tsuda 2010)"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Tamsulosin (Tsuda 2010)}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

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

# Model and source

* Citation: `r rxode2::rxode2(readModelDb("Tsuda_2010_tamsulosin"))$reference`
* Description: `r rxode2::rxode2(readModelDb("Tsuda_2010_tamsulosin"))$description`
* Article: <https://doi.org/10.1111/j.1365-2125.2010.03662.x>

# Population

The model was developed from 1082 plasma tamsulosin HCl concentrations from 189
paediatric patients pooled across three clinical trials (Tsuda 2010 Table 1A):
trial 1 (phase I single dose in non-neurogenic bladder, n = 45), trial 2 (phase II
long-term safety / efficacy in neurogenic bladder with a PK sub-study, n = 29),
and trial 3 (phase IIb / III double-blind randomised placebo-controlled
dose-ranging trial in neurogenic bladder, n = 115). Age range was 2-16 years
(median 8); body weight 12.1-92.2 kg (median 25.0); 44% female; race mix in step
2 was White 46%, Asian 44%, Black or African American 3%, American Indian or
Alaska Native 7% (Tsuda 2010 Table 2). Trials 2 and 3 administered the modified
release capsule contents sprinkled over applesauce or yogurt; a biowaiver covered
this paediatric administration based on in vitro dissolution comparison with the
adult commercial product. Per-trial dosing schemes (Tsuda 2010 Table 1B for trial
1, Table 1C for trials 2 and 3) ranged from 0.025 to 0.8 mg once daily across
weight bands. The PK base model was developed on the frequent-sampling data from
trials 1 and 2 (step 1, n = 74) and the covariate model added the sparse trial 3
data (step 2, n = 189).

The same information is available programmatically via
`readModelDb("Tsuda_2010_tamsulosin")$population`.

# Source trace

Every parameter in the model file carries an inline source-location comment.
The table below collects the entries in one place.

| Equation / parameter                              | Value           | Source location |
|---------------------------------------------------|-----------------|-----------------|
| `lcl` (CL/F at WT 70 kg, AAG 20 uM)               | 2.28 L/h        | Table 3, row 'CL/F (l h-1)' |
| `e_aag_cl` (AAG/20 exponent on CL/F)              | -0.844          | Table 3, row 'theta_AAG_CL' |
| `lvc` (V/F at WT 70 kg, AAG 20 uM)                | 37.5 L          | Table 3, row 'V/F (l)' |
| `e_aag_vc` (AAG/20 exponent on V/F)               | -0.663          | Table 3, row 'theta_AAG_V' |
| `lka` (ka)                                        | 0.368 1/h       | Table 3, row 'Ka (h-1)' |
| `ltlag` (absorption lag)                          | 0.957 h         | Table 3, row 'ALAG1 (h)' |
| `e_wt_cl` (allometric exponent on CL/F)           | 0.75 (fixed)    | Table 3 structural equation; Methods Step 1; Results Step 2 (CI for the estimated 0.768 included 0.75 -> fixed) |
| `e_wt_vc` (allometric exponent on V/F)            | 1.0 (fixed)     | Table 3 structural equation; Methods Step 1; Results Step 2 (CI for the estimated 0.807 included 1.0 -> fixed) |
| Reference weight 70 kg                            | -               | Table 3 structural equation '(WT/70)' |
| Reference AAG 20 uM                               | -               | Table 3 structural equation '(AAG/20.0)' |
| IIV CL/F (54.4%; omega^2 = 0.544^2 = 0.2959)      | 54.4% CV        | Table 3, row 'IIV in CL/F' |
| IIV V/F (61.2%; omega^2 = 0.612^2 = 0.3745)       | 61.2% CV        | Table 3, row 'IIV in V/F' |
| IIV ka (117%; omega^2 = 1.17^2 = 1.3689)          | 117% CV         | Table 3, row 'IIV in Ka' |
| Cov(CL/F, V/F) = 0.238 (correlation 0.715)        | 0.238           | Table 3, row 'Cov_V/CL' |
| Proportional residual error (28.4%; propSd 0.284) | 28.4% CV        | Table 3, row 'Proportional residual variability (CV%)' |
| Additive residual error (0.178 ng/mL)             | 0.178 ng/mL     | Table 3, row 'Additive residual variability (SD ng ml-1)' |
| Structural model: 1 cmt + FOA + lag time          | -               | Methods 'Population pharmacokinetic modelling' paragraph 1; Results 'Step 1' |
| Combined residual error Y = Yhat + Yhat*eps1 + eps2 | -             | Methods 'Population pharmacokinetic modelling' paragraph 1; Table 3 header |

# Virtual cohort

The original observed data are not publicly available. The virtual cohorts below
reproduce the simulation scenarios of Tsuda 2010 Figure 4 (effect of body weight
and AAG on steady-state Cmax and AUC) and Figure 5 (weight-based dosing scheme
in paediatrics vs. adult NCA at 0.4 mg).

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

n_per_band <- 200L

make_cohort <- function(n, wt, aag, label, id_offset = 0L) {
  tibble(
    id    = id_offset + seq_len(n),
    WT    = wt,
    AAG   = aag,
    cohort = label
  )
}

# Figure 4 left panel -- four body weights at the cohort-median AAG = 20 uM
fig4_wt <- bind_rows(
  make_cohort(n_per_band, wt = 12.5, aag = 20, label = "12.5 kg", id_offset = 0L),
  make_cohort(n_per_band, wt = 25.0, aag = 20, label = "25.0 kg", id_offset = 1L * n_per_band),
  make_cohort(n_per_band, wt = 50.0, aag = 20, label = "50.0 kg", id_offset = 2L * n_per_band),
  make_cohort(n_per_band, wt = 70.0, aag = 20, label = "70.0 kg", id_offset = 3L * n_per_band)
) |>
  mutate(cohort = factor(cohort, levels = c("12.5 kg", "25.0 kg", "50.0 kg", "70.0 kg")))
stopifnot(!anyDuplicated(fig4_wt$id))

# Figure 4 right panel -- four AAG concentrations at the cohort-median WT = 25 kg
fig4_aag <- bind_rows(
  make_cohort(n_per_band, wt = 25, aag = 10, label = "AAG 10 uM", id_offset = 0L),
  make_cohort(n_per_band, wt = 25, aag = 20, label = "AAG 20 uM", id_offset = 1L * n_per_band),
  make_cohort(n_per_band, wt = 25, aag = 30, label = "AAG 30 uM", id_offset = 2L * n_per_band),
  make_cohort(n_per_band, wt = 25, aag = 40, label = "AAG 40 uM", id_offset = 3L * n_per_band)
) |>
  mutate(cohort = factor(cohort, levels = c("AAG 10 uM", "AAG 20 uM", "AAG 30 uM", "AAG 40 uM")))
stopifnot(!anyDuplicated(fig4_aag$id))
```

# Simulation

Tamsulosin HCl is dosed once daily; steady state is reached by the fifth day of
dosing (Tsuda 2010 Discussion paragraph 5). The simulations below dose 10 days
of 0.1 mg once daily (the paper's Figure 4 dose) and characterise the day-10
dosing interval as the steady-state interval.

```{r build-events}
build_events <- function(demo, dose_mg, n_doses = 10, tau = 24,
                          obs_grid = seq(0, n_doses * tau, by = 0.25)) {
  doses <- demo |>
    mutate(amt  = dose_mg,
           evid = 1L,
           cmt  = "depot",
           ii   = tau,
           addl = n_doses - 1L,
           time = 0) |>
    select(id, time, amt, evid, cmt, ii, addl, cohort, WT, AAG)
  obs <- demo |>
    select(id, cohort, WT, AAG) |>
    tidyr::crossing(time = obs_grid) |>
    mutate(amt  = NA_real_,
           evid = 0L,
           cmt  = NA_character_,
           ii   = NA_real_,
           addl = NA_integer_)
  bind_rows(doses, obs) |>
    arrange(id, time, desc(evid))
}

events_fig4_wt  <- build_events(fig4_wt,  dose_mg = 0.1)
events_fig4_aag <- build_events(fig4_aag, dose_mg = 0.1)
```

```{r simulate}
mod <- rxode2::rxode2(readModelDb("Tsuda_2010_tamsulosin"))

sim_fig4_wt  <- rxode2::rxSolve(mod, events = events_fig4_wt,
                                 keep = c("cohort", "WT", "AAG"),
                                 nStud = 1) |> as.data.frame()
sim_fig4_aag <- rxode2::rxSolve(mod, events = events_fig4_aag,
                                 keep = c("cohort", "WT", "AAG"),
                                 nStud = 1) |> as.data.frame()

mod_typical <- mod |> rxode2::zeroRe()
sim_typ_wt  <- rxode2::rxSolve(mod_typical, events = events_fig4_wt,
                                keep = c("cohort", "WT", "AAG")) |> as.data.frame()
sim_typ_aag <- rxode2::rxSolve(mod_typical, events = events_fig4_aag,
                                keep = c("cohort", "WT", "AAG")) |> as.data.frame()
```

# Replicate published figures

## Figure 4 left panel -- effect of body weight

Tsuda 2010 Figure 4 left panel shows simulated plasma tamsulosin HCl
concentration-time profiles for four body weights (12.5, 25, 50, 70 kg) at the
cohort-median AAG = 20 uM, with dose fixed at 0.1 mg. Exposure decreases as body
weight increases (the (WT/70)^0.75 allometric effect on CL/F dominates the
volume effect on Cmax).

```{r figure-4-wt, fig.cap = "Replicates Tsuda 2010 Figure 4 left panel: median + 5-95 prediction band of plasma tamsulosin concentration after 0.1 mg once daily at steady state (day 10 dosing interval), for four body weights at AAG = 20 uM."}
last_dose_time <- 9 * 24  # 10th dose at t = 216 h
fig4_wt_window <- sim_fig4_wt |>
  filter(time >= last_dose_time, time <= last_dose_time + 24) |>
  mutate(time_after_dose = time - last_dose_time)

fig4_wt_summary <- fig4_wt_window |>
  group_by(cohort, time_after_dose) |>
  summarise(Q05 = quantile(Cc, 0.05),
            Q50 = quantile(Cc, 0.50),
            Q95 = quantile(Cc, 0.95),
            .groups = "drop")

ggplot(fig4_wt_summary, aes(time_after_dose, Q50, colour = cohort, fill = cohort)) +
  geom_ribbon(aes(ymin = Q05, ymax = Q95), alpha = 0.15, colour = NA) +
  geom_line(linewidth = 0.7) +
  labs(x = "Time after dose (h)",
       y = "Tamsulosin concentration (ng/mL)",
       colour = "Body weight", fill = "Body weight",
       title = "Figure 4 (left) -- WT effect at AAG 20 uM, dose 0.1 mg QD",
       caption = "Replicates Tsuda 2010 Figure 4 left panel.")
```

## Figure 4 right panel -- effect of AAG

Tsuda 2010 Figure 4 right panel shows simulated profiles for four AAG values
(10, 20, 30, 40 uM) at the cohort-median WT = 25 kg, dose 0.1 mg. Exposure
increases with AAG (negative exponents on both CL/F and V/F).

```{r figure-4-aag, fig.cap = "Replicates Tsuda 2010 Figure 4 right panel: median + 5-95 prediction band of plasma tamsulosin concentration after 0.1 mg once daily at steady state for four AAG concentrations at WT = 25 kg."}
fig4_aag_window <- sim_fig4_aag |>
  filter(time >= last_dose_time, time <= last_dose_time + 24) |>
  mutate(time_after_dose = time - last_dose_time)

fig4_aag_summary <- fig4_aag_window |>
  group_by(cohort, time_after_dose) |>
  summarise(Q05 = quantile(Cc, 0.05),
            Q50 = quantile(Cc, 0.50),
            Q95 = quantile(Cc, 0.95),
            .groups = "drop")

ggplot(fig4_aag_summary, aes(time_after_dose, Q50, colour = cohort, fill = cohort)) +
  geom_ribbon(aes(ymin = Q05, ymax = Q95), alpha = 0.15, colour = NA) +
  geom_line(linewidth = 0.7) +
  labs(x = "Time after dose (h)",
       y = "Tamsulosin concentration (ng/mL)",
       colour = "AAG (uM)", fill = "AAG (uM)",
       title = "Figure 4 (right) -- AAG effect at WT 25 kg, dose 0.1 mg QD",
       caption = "Replicates Tsuda 2010 Figure 4 right panel.")
```

# PKNCA validation

Steady-state NCA over the day-10 dosing interval (tau = 24 h) gives Cmax,ss,
Tmax, AUC0-tau, and trough Cmin by body-weight band (Figure 4 left scenario)
and by AAG band (Figure 4 right scenario).

```{r pknca-wt}
nca_wt_window <- sim_fig4_wt |>
  filter(time >= last_dose_time, time <= last_dose_time + 24) |>
  mutate(time_after_dose = time - last_dose_time) |>
  select(id, time = time_after_dose, Cc, cohort)

# Guarantee a time = 0 row per (id, cohort); for extravascular pre-dose Cc = 0
# (steady-state interval starts at the new dose with the pre-dose concentration
# already drained to the trough, so Cc(0) = trough; the bind_rows pattern keeps
# the first row that already exists if there's one, otherwise inserts Cc = 0).
nca_wt_window <- bind_rows(
  nca_wt_window,
  nca_wt_window |> distinct(id, cohort) |> mutate(time = 0, Cc = 0)
) |>
  distinct(id, cohort, time, .keep_all = TRUE) |>
  arrange(id, cohort, time)

dose_wt_df <- fig4_wt |>
  mutate(time = 0, amt = 0.1) |>
  select(id, time, amt, cohort)

conc_obj_wt <- PKNCA::PKNCAconc(nca_wt_window, Cc ~ time | cohort + id,
                                 concu = "ng/mL", timeu = "h")
dose_obj_wt <- PKNCA::PKNCAdose(dose_wt_df, amt ~ time | cohort + id,
                                 doseu = "mg")
intervals_ss <- data.frame(start    = 0,
                           end      = 24,
                           cmax     = TRUE,
                           tmax     = TRUE,
                           auclast  = TRUE,
                           cmin     = TRUE)
nca_res_wt <- suppressMessages(suppressWarnings(
  PKNCA::pk.nca(PKNCA::PKNCAdata(conc_obj_wt, dose_obj_wt, intervals = intervals_ss))
))
```

```{r pknca-aag}
nca_aag_window <- sim_fig4_aag |>
  filter(time >= last_dose_time, time <= last_dose_time + 24) |>
  mutate(time_after_dose = time - last_dose_time) |>
  select(id, time = time_after_dose, Cc, cohort)

nca_aag_window <- bind_rows(
  nca_aag_window,
  nca_aag_window |> distinct(id, cohort) |> mutate(time = 0, Cc = 0)
) |>
  distinct(id, cohort, time, .keep_all = TRUE) |>
  arrange(id, cohort, time)

dose_aag_df <- fig4_aag |>
  mutate(time = 0, amt = 0.1) |>
  select(id, time, amt, cohort)

conc_obj_aag <- PKNCA::PKNCAconc(nca_aag_window, Cc ~ time | cohort + id,
                                  concu = "ng/mL", timeu = "h")
dose_obj_aag <- PKNCA::PKNCAdose(dose_aag_df, amt ~ time | cohort + id,
                                  doseu = "mg")
nca_res_aag <- suppressMessages(suppressWarnings(
  PKNCA::pk.nca(PKNCA::PKNCAdata(conc_obj_aag, dose_obj_aag, intervals = intervals_ss))
))
```

## Comparison against published exposure ratios

Tsuda 2010 Results 'Simulation' and Discussion paragraph 4 report the
exposure-ratio summaries below at steady state with dose 0.1 mg once daily. The
published values are exposure ratios (relative to the cohort-median reference
within each panel), so the comparison table is built from the simulated AUC0-tau
and Cmax,ss medians normalised the same way.

```{r compare-ratios}
sim_summary_wt <- as.data.frame(nca_res_wt$result) |>
  filter(PPTESTCD %in% c("cmax", "auclast")) |>
  group_by(cohort, PPTESTCD) |>
  summarise(median = median(PPORRES, na.rm = TRUE), .groups = "drop") |>
  tidyr::pivot_wider(names_from = PPTESTCD, values_from = median) |>
  arrange(factor(cohort, levels = c("12.5 kg", "25.0 kg", "50.0 kg", "70.0 kg")))

ratio_wt <- sim_summary_wt |>
  mutate(ratio_cmax_to_70kg = cmax    / cmax[cohort    == "70.0 kg"],
         ratio_auc_to_70kg  = auclast / auclast[cohort == "70.0 kg"])

sim_summary_aag <- as.data.frame(nca_res_aag$result) |>
  filter(PPTESTCD %in% c("cmax", "auclast")) |>
  group_by(cohort, PPTESTCD) |>
  summarise(median = median(PPORRES, na.rm = TRUE), .groups = "drop") |>
  tidyr::pivot_wider(names_from = PPTESTCD, values_from = median) |>
  arrange(factor(cohort, levels = c("AAG 10 uM", "AAG 20 uM", "AAG 30 uM", "AAG 40 uM")))

ratio_aag <- sim_summary_aag |>
  mutate(ratio_cmax_to_10uM = cmax    / cmax[cohort    == "AAG 10 uM"],
         ratio_auc_to_10uM  = auclast / auclast[cohort == "AAG 10 uM"])

# Published values from Tsuda 2010 Results 'Simulation' and Discussion paragraph 4
# Body-weight ratios refer to 12.5 kg patients vs. 70 kg patients at AAG = 20 uM
# AAG ratios refer to AAG 40 uM vs. AAG 10 uM at WT = 25 kg
published <- tibble::tibble(
  Quantity = c("AUC ratio 12.5 kg / 70 kg",
               "Cmax ratio 12.5 kg / 70 kg",
               "AUC ratio AAG 40 / AAG 10",
               "Cmax ratio AAG 40 / AAG 10"),
  Reference = c(3.5, 4.3, 3.2, 3.0),
  Simulated = c(ratio_wt$ratio_auc_to_70kg [ratio_wt$cohort  == "12.5 kg"],
                ratio_wt$ratio_cmax_to_70kg[ratio_wt$cohort  == "12.5 kg"],
                ratio_aag$ratio_auc_to_10uM [ratio_aag$cohort == "AAG 40 uM"],
                ratio_aag$ratio_cmax_to_10uM[ratio_aag$cohort == "AAG 40 uM"])
) |>
  mutate(`% diff` = round(100 * (Simulated - Reference) / Reference, 1),
         flag     = ifelse(abs(`% diff`) > 20, " *", ""))

knitr::kable(
  published |> mutate(Reference = sprintf("%.2f", Reference),
                      Simulated = sprintf("%.2f", Simulated),
                      `% diff` = paste0(sprintf("%.1f", `% diff`), flag)) |>
    select(-flag),
  caption = "Tsuda 2010 Figure 4 / Discussion exposure ratios -- simulated vs. published. * differs from published by > 20%.",
  align = c("l", "r", "r", "r")
)
```

## Typical-value steady-state at adult-equivalent weight

The paper reports (Discussion paragraph 5) a typical model-derived half-life of
12 h at a paediatric body weight of 73 kg and a Tmax around 6 h at 70 kg. The
typical-value simulation below evaluates both.

```{r typical-checks}
# Simulate single-dose 0.1 mg at WT = 73 kg, AAG = 20 uM, characterise lambda_z
demo_73 <- tibble(id = 1L, WT = 73, AAG = 20, cohort = "73 kg typical")
events_73 <- build_events(demo_73, dose_mg = 0.1, n_doses = 10,
                          obs_grid = c(seq(0, 24, by = 0.25),
                                       seq(24.25, 240, by = 0.25)))
sim_73 <- rxode2::rxSolve(mod_typical, events = events_73,
                          keep = c("cohort", "WT", "AAG")) |> as.data.frame()

# Steady-state day-10 dosing interval
ss_73 <- sim_73 |>
  filter(time >= last_dose_time, time <= last_dose_time + 24) |>
  mutate(time_after_dose = time - last_dose_time)

tmax_73 <- ss_73$time_after_dose[which.max(ss_73$Cc)]
cmax_73 <- max(ss_73$Cc)

# Half-life from the typical-value structural parameters: t1/2 = ln(2) / kel
# = ln(2) * (V/F at WT 73, AAG 20) / (CL/F at WT 73, AAG 20)
vF_73 <- 37.5 * (73 / 70)^1   * (20 / 20)^-0.663
clF_73 <- 2.28 * (73 / 70)^0.75 * (20 / 20)^-0.844
thalf_73 <- log(2) * vF_73 / clF_73

tbl_typical <- tibble::tibble(
  Quantity = c("Tmax at steady state, WT 73 kg, AAG 20 uM (h)",
               "Typical half-life from V/F divided by CL/F at WT 73 kg (h)"),
  Reference = c("~6 h (Tsuda 2010 Discussion paragraph 5; adult Tmax 6-7 h)",
                "12 h (Tsuda 2010 Discussion paragraph 5; adult half-life 13-16 h)"),
  Simulated = c(sprintf("%.2f", tmax_73),
                sprintf("%.2f", thalf_73))
)
knitr::kable(tbl_typical,
             caption = "Typical-value Tmax and half-life at the adult-equivalent paediatric weight of 73 kg.",
             align   = c("l", "l", "r"))
```

# Assumptions and deviations

- **Allometric exponents fixed at theory values.** Tsuda 2010 Results 'Model
  building' Step 2 estimated 0.768 (95% CI 0.598-0.938) for CL/F and 0.807 (95%
  CI 0.603-1.01) for V/F. Because both CIs include the theory values 0.75 and
  1.0, the authors fixed the exponents at those values in the final model
  (Methods Step 2 paragraph 1). The model file uses the fixed theory values per
  the published final model.
- **IIV variance convention.** Tsuda 2010 Table 3 reports IIVs as %CV and a
  raw between-CL-and-V covariance of 0.238 with an interpreted correlation of
  0.715. The simpler %CV = 100 x omega approximation is consistent with the
  reported covariance and correlation (0.715 x 0.544 x 0.612 = 0.238), so the
  model file uses omega^2 = (CV / 100)^2 (i.e., 0.2959 / 0.3745 / 1.3689 for
  CL/F / V/F / ka) rather than the exact log-normal omega^2 = log(1 + CV^2).
  See the in-file ini() comment block for the verification.
- **Inter-occasion variability not separated.** Tsuda 2010 reports only IIV and
  does not partition between-subject from between-occasion variability; the
  model carries the reported variances as BSV-equivalent.
- **AAG units overridden from g/L to uM.** The canonical-register AAG entry is
  in g/L (Kloft 2006 / Netterberg 2017 cytotoxic-chemotherapy family); Tsuda
  2010 reports AAG in uM with reference 20 uM, and the published exponents
  -0.844 (CL/F) and -0.663 (V/F) only apply when AAG enters the model in uM.
  The model file overrides `covariateData[[AAG]]$units = "uM"`. Conversion
  factor: 1 uM ~ 0.041 g/L assuming the conventional 41 kDa AAG molecular
  weight (so 20 uM ~ 0.82 g/L).
- **Covariates screened but not retained are documented in
  `covariatesDataExcluded`**: age, sex, height, BMI, BSA, serum creatinine,
  creatinine clearance, gamma-glutamyl transferase, haemoglobin, anti-
  cholinergic concomitant therapy, neurogenic-bladder patient population, and
  race were all tested and dropped during the Tsuda 2010 stepwise covariate
  analysis (forward inclusion -> backward elimination). They are recorded as
  metadata-only so the screening provenance is preserved without producing
  convention warnings.
- **Vignette uses 200 subjects per weight or AAG band.** This is small enough
  for the rendered vignette to finish well under the pkgdown 5-minute gate but
  large enough for stable median exposures. The reported ratios in the
  comparison table use the simulated cohort medians (the same statistic Tsuda
  2010 reports).
- **Bioavailability not parameterised.** Tsuda 2010 only reports apparent
  parameters CL/F and V/F because no intravenous data were available. The
  model file follows the paper and does not include an `lfdepot` term; users
  who want to separate absolute disposition from F must scale externally.
- **Modified-release formulation simplified to first-order absorption + lag.**
  The paper's structural model is a first-order absorption with a lag time
  (Methods 'Step 1'; alternative zero-order and sequential zero-then-first-
  order absorption forms were tested and not selected). The 0.957 h lag-time
  estimate is consistent with the modified-release capsule sprinkled over
  applesauce or yogurt.
