Skip to contents

Overview

  • Incorporates feedback from Dr. Morrison and Dr.Aiemjoy
  • Focus exclusively on (Teunis and Eijkeren 2016) model
  • Clarifies model dynamics: growth, clearance, decay
  • Uses updated parameter notation: μy\mu_y, μb\mu_b, γ\gamma, α\alpha, ρ\rho
  • Assumes block-diagonal covariance structure across biomarkers

Within-Host ODE System (Teunis and Eijkeren 2016)

Two-phase within-host antibody kinetics:

dydt={μyy(t),tt1αy(t)ρ,t>t1with dbdt=μbb(t)γy(t)(1) \frac{dy}{dt} = \begin{cases} \mu_y y(t), & t \le t_1 \\ - \alpha y(t)^\rho, & t > t_1 \end{cases} \quad \text{with } \frac{db}{dt} = \mu_b b(t) - \gamma y(t) \qquad(1)

Initial conditions: y(0)=y0y(0) = y_0, b(0)=b0b(0) = b_0
Key transition: t1t_1 is the time when b(t1)=0b(t_1) = 0
Derived quantity: y1=y(t1)y_1 = y(t_1)


Closed-Form Solutions

Antibody concentration y(t)y(t)

  • tt1t \le t_1:
    y(t)=y0eμyt y(t) = y_0 e^{\mu_y t}

  • t>t1t > t_1:
    y(t)=y1(1+(ρ1)αy1ρ1(tt1))1ρ1 y(t) = y_1 \left(1 + (\rho - 1)\alpha y_1^{\rho - 1}(t - t_1)\right)^{- \frac{1}{\rho - 1}}

Pathogen load b(t)b(t)

  • tt1t \le t_1:
    b(t)=b0eμbtγy0μyμb(eμyteμbt) b(t) = b_0 e^{\mu_b t} - \frac{\gamma y_0}{\mu_y - \mu_b} \left(e^{\mu_y t} - e^{\mu_b t} \right)

  • t>t1t > t_1:
    b(t)=0 b(t) = 0


Time of Peak Response

Peak Time t1t_1

t1=1μyμblog(1+(μyμb)b0γy0)(2) t_1 = \frac{1}{\mu_y - \mu_b} \log \left( 1 + \frac{(\mu_y - \mu_b) b_0}{\gamma y_0} \right) \qquad(2)

Peak Antibody Level y1y_1

y1=y0eμyt1(3) y_1 = y_0 e^{\mu_y t_1} \qquad(3)


Parameter Summary

Table 1: Parameter summary for antibody kinetics model.
Symbol Description
μy\mu_y Antibody production rate (growth phase)
μb\mu_b Pathogen replication rate
γ\gamma Clearance rate (by antibodies)
α\alpha Antibody decay rate
ρ\rho Shape of antibody decay (power-law)
t1t_1 Time of peak response
y1y_1 Peak antibody concentration

Note: Only the first 6 are typically estimated. y1y_1 is derived from the ODE solution at t1t_1.


Model Comparison: (Teunis and Eijkeren 2016) vs This Presentation

Table 2: Comparison of Teunis (2016) model and this presentation’s model assumptions.
Component (Teunis and Eijkeren 2016) This Presentation
Pathogen ODE μ0b(t)cy(t)\mu_0 b(t) - c y(t) μbb(t)γy(t)\mu_b b(t) - \gamma y(t)
Antibody ODE (pre-t1t_1) μy(t)\mu y(t) μyy(t)\mu_y y(t)
Antibody ODE (post-t1t_1) αy(t)r- \alpha y(t)^r αy(t)ρ- \alpha y(t)^\rho
Antibody growth type Pathogen-driven Self-driven exponential
Antibody rate name μ\mu μy\mu_y
t1t_1 formula Uses μ0\mu_0, μ\mu, b0b_0, cc, y0y_0 Uses μb\mu_b, μy\mu_y, etc.

Note:

  • (Teunis and Eijkeren 2016) uses linear clearance: cy(t)c y(t), not bilinear
  • Antibody production is driven by pathogen b(t)b(t)
  • Our model simplifies by assuming self-expanding antibody dynamics

Full Parameter Model (7 Parameters)

Subject-level parameters:

θij𝒩(μj,Σj),θij=[y0,ijb0,ijμb,ijμy,ijγijαijρij] \theta_{ij} \sim \mathcal{N}(\mu_j,\, \Sigma_j), \quad \theta_{ij} = \begin{bmatrix} y_{0,ij} \\ b_{0,ij} \\ \mu_{b,ij} \\ \mu_{y,ij} \\ \gamma_{ij} \\ \alpha_{ij} \\ \rho_{ij} \end{bmatrix}

Hyperparameters – Means:

  • μj\mu_j: population-level mean vector for biomarker jj
  • Prior on μj\mu_j:

μj𝒩(μhyp,j,Ωhyp,j) \mu_j \sim \mathcal{N}(\mu_{\text{hyp},j},\, \Omega_{\text{hyp},j})


Core Parameters Used for Curve Drawing

In this presentation, we focus on 5 key parameters required to draw antibody curves:

  • y0y_0: initial antibody level
  • t1t_1: time of peak antibody response
  • y1y_1: peak antibody level
  • α\alpha: decay rate
  • ρ\rho: shape of decay

Note: t1t_1 and y1y_1 are derived from the full model - These 5 are sufficient for prediction and plotting


Classifying Model Parameters ((Teunis and Eijkeren 2016) Structure)

Estimated Parameters (7 total):

  • Core model parameters (5): μb\mu_b, μy\mu_y, γ\gamma, α\alpha, ρ\rho

  • Initial conditions (2): y0y_0, b0b_0

Derived Quantity (not estimated):

  • y1y_1: peak antibody level computed as y(t1)y(t_1)

Time of Pathogen Clearance t1t_1

Definition: t1t_1 is the time when the pathogen is cleared, i.e., b(t1)=0b(t_1) = 0

Analytic expression:

t1=1μyμblog(1+(μyμb)b0γy0) t_1 = \frac{1}{\mu_y - \mu_b} \log\left(1 + \frac{(\mu_y - \mu_b)b_0}{\gamma y_0}\right)

Key observations: t1t_1 depends on μb\mu_b, μy\mu_y, b0b_0, y0y_0, and y1=y(t1)y_1 = y(t_1) is computed based on this time point


Why It’s a Seven-Parameter Model

  • Our model estimates 7 parameters:
    • 5 biological parameters: μb\mu_b, μy\mu_y, γ\gamma, α\alpha, ρ\rho
    • 2 initial conditions: y0y_0, b0b_0
  • But we often refer to an 8th quantity: y1y_1
  • So why isn’t y1y_1 a parameter?

Answer: y1y_1 is a computed value, not directly estimated.


Why y1y_1 Is Not Fit Directly

  • y1y_1 is the antibody level at the time the pathogen is cleared:

y1=y(t1)where b(t1)=0 y_1 = y(t_1) \quad \text{where } b(t_1) = 0

  • y1y_1 is not an “input” — it is computed from:
    • μy\mu_y, y0y_0, b0b_0, μb\mu_b, γ\gamma
    • via solution of ODEs to find t1t_1 and compute y(t1)y(t_1)

In other words: y1y_1 is a derived output, not a fit parameter.


How y1y_1 Is Computed

  • y1y_1 is computed by solving the ODE system:

dydt=μyy(t),dbdt=μbb(t)γy(t) \frac{dy}{dt} = \mu_y y(t), \quad \frac{db}{dt} = \mu_b b(t) - \gamma y(t)

  • Evaluate y(t)y(t) at t=t1t = t_1 using ODE solution:

y1=y(t1;μy,y0,b0,μb,γ) y_1 = y(t_1; \mu_y, y_0, b_0, \mu_b, \gamma)


Recap: What We Estimate

Seven model parameters (7-parameter model for full dynamics):

  • μb\mu_b, μy\mu_y, γ\gamma, α\alpha, ρ\rho (biological process)
  • y0y_0, b0b_0 (initial state)

Derived quantity:

  • y1=y(t1)y_1 = y(t_1) — not directly estimated, computed

5-parameter subset for curve visualization:

  • y0y_0, y1y_1, t1t_1, α\alpha, ρ\rho

Hierarchical Bayesian Structure

Individual parameters:

θij=[y0,ijb0,ijμb,ijμy,ijγijαijρij]𝒩(μj,Σj) \theta_{ij} = \begin{bmatrix} y_{0,ij} \\ b_{0,ij} \\ \mu_{b,ij} \\ \mu_{y,ij} \\ \gamma_{ij} \\ \alpha_{ij} \\ \rho_{ij} \end{bmatrix} \sim \mathcal{N}(\mu_j,\, \Sigma_j)

Hyperparameters:

  • μj\mu_j: population-level means (per biomarker jj)
  • Σj\Sigma_j: 7×77 \times 7 covariance matrix over parameters

Subject-Level Parameters: θij\theta_{ij}

θij𝒩(μj,Σj),θij7 \theta_{ij} \sim \mathcal{N}(\mu_j,\, \Sigma_j), \quad \theta_{ij} \in \mathbb{R}^7

Where:

𝛉ij=[y0,ijb0,ijμb,ijμy,ijγijαijρij],Σj7×7 \boldsymbol{\theta}_{ij} = \begin{bmatrix} y_{0,ij} \\ b_{0,ij} \\ \mu_{b,ij} \\ \mu_{y,ij} \\ \gamma_{ij} \\ \alpha_{ij} \\ \rho_{ij} \end{bmatrix}, \quad \Sigma_j \in \mathbb{R}^{7 \times 7}

Each subject ii has a unique 7-parameter vector per biomarker jj, capturing individual-level variation in antibody dynamics.


Hyperparameters: Priors on Population Means

Population-level means:

𝛍j𝒩(𝛍hyp,j,Ωhyp,j) \boldsymbol{\mu}_j \sim \mathcal{N}(\boldsymbol{\mu}_{\mathrm{hyp},j}, \Omega_{\mathrm{hyp},j})

Interpretation:

  • 𝛍j\boldsymbol{\mu}_j: average parameter vector for biomarker jj
  • 𝛍hyp,j\boldsymbol{\mu}_{\mathrm{hyp},j}: prior guess (e.g., vector of zeros)
  • Ωhyp,j\Omega_{\mathrm{hyp},j}: covariance matrix encoding uncertainty

Example:

𝛍hyp,j=0,Ωhyp,j=100I7 \boldsymbol{\mu}_{\mathrm{hyp},j} = 0, \quad \Omega_{\mathrm{hyp},j} = 100 \cdot I_7


Hyperparameters: Priors on Covariance

Covariance across parameters:

Σj1𝒲(Ωj,νj) \Sigma_j^{-1} \sim \mathcal{W}(\Omega_j, \nu_j)

  • Σj\Sigma_j: variability/covariance in subject-level parameters
  • Ωj\Omega_j: prior scale matrix
  • νj\nu_j: degrees of freedom

Example:

Ωj=0.1I7,νj=8 \Omega_j = 0.1 \cdot I_7, \quad \nu_j = 8


Measurement Error and Precision Priors

Observed antibody levels:

log(yobs,ij)𝒩(log(ypred,ij),τj1) \log(y_{\text{obs},ij}) \sim \mathcal{N}(\log(y_{\text{pred},ij}), \tau_j^{-1})

Precision prior:

τjGamma(aj,bj) \tau_j \sim \text{Gamma}(a_j, b_j)

  • τj\tau_j: shared measurement precision for biomarker jj
  • Gamma prior allows flexible noise modeling

Matrix Algebra Computation

Let K=7K = 7 (parameters), JJ biomarkers. Then:

Θi=[θi1θi2θiJ]K×J \Theta_i = \begin{bmatrix} \theta_{i1} & \theta_{i2} & \cdots & \theta_{iJ} \end{bmatrix} \in \mathbb{R}^{K \times J}

Assume:

vec(Θi)𝒩(vec(M),ΣKIJ) \text{vec}(\Theta_i) \sim \mathcal{N}(\text{vec}(M), \Sigma_K \otimes I_J)


Matrix Algebra – Simplified Structure

Setup: Θi7×J\Theta_i \in \mathbb{R}^{7 \times J}

Model:

vec(Θi)𝒩(vec(M),ΣKIJ) \text{vec}(\Theta_i) \sim \mathcal{N}(\text{vec}(M), \Sigma_K \otimes I_J)

  • ΣK\Sigma_K: 7×7 covariance (same across biomarkers)
  • IJI_J: biomarkers assumed uncorrelated
  • Block-diagonal covariance

Understanding vec(Θi)\text{vec}(\Theta_i)

Each θij7\theta_{ij} \in \mathbb{R}^7:

θij=[y0b0μ0μ1cαr] \theta_{ij} = \begin{bmatrix} y_0 \\ b_0 \\ \mu_0 \\ \mu_1 \\ c \\ \alpha \\ r \end{bmatrix}

Flattening:

vec(Θi)7J×1 \text{vec}(\Theta_i) \in \mathbb{R}^{7J \times 1}


Understanding vec(M)\text{vec}(M)

Let M=[μ1μ2μJ]7×JM = [\mu_1\, \mu_2\, \cdots\, \mu_J] \in \mathbb{R}^{7 \times J}

Example for J=3J=3:

M=[μ1,1μ1,2μ1,3μ2,1μ2,2μ2,3μ3,1μ3,2μ3,3μ4,1μ4,2μ4,3μ5,1μ5,2μ5,3μ6,1μ6,2μ6,3μ7,1μ7,2μ7,3] M = \begin{bmatrix} \mu_{1,1} & \mu_{1,2} & \mu_{1,3} \\ \mu_{2,1} & \mu_{2,2} & \mu_{2,3} \\ \mu_{3,1} & \mu_{3,2} & \mu_{3,3} \\ \mu_{4,1} & \mu_{4,2} & \mu_{4,3} \\ \mu_{5,1} & \mu_{5,2} & \mu_{5,3} \\ \mu_{6,1} & \mu_{6,2} & \mu_{6,3} \\ \mu_{7,1} & \mu_{7,2} & \mu_{7,3} \end{bmatrix}


Covariance Structure: ΣKIJ\Sigma_K \otimes I_J

Cov(vec(Θi))=ΣKIJ \text{Cov}(\text{vec}(\Theta_i)) = \Sigma_K \otimes I_J

  • ΣK\Sigma_K: parameter covariance matrix
  • IJI_J: biomarker-wise independence
  • Kronecker product yields block-diagonal matrix

Example: Kronecker Product with K=2K=2, J=3J=3

Let:

ΣK=[σ11σ12σ21σ22],I3=[100010001] \Sigma_K = \begin{bmatrix} \sigma_{11} & \sigma_{12} \\ \sigma_{21} & \sigma_{22} \end{bmatrix},\quad I_3 = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}

Then:

ΣKI36×6 \Sigma_K \otimes I_3 \in \mathbb{R}^{6 \times 6}


Expanded Matrix: ΣKI3\Sigma_K \otimes I_3

ΣKI3=[σ1100σ12000σ1100σ12000σ1100σ12σ2100σ22000σ2100σ22000σ2100σ22] \Sigma_K \otimes I_3 = \begin{bmatrix} \sigma_{11} & 0 & 0 & \sigma_{12} & 0 & 0 \\ 0 & \sigma_{11} & 0 & 0 & \sigma_{12} & 0 \\ 0 & 0 & \sigma_{11} & 0 & 0 & \sigma_{12} \\ \sigma_{21} & 0 & 0 & \sigma_{22} & 0 & 0 \\ 0 & \sigma_{21} & 0 & 0 & \sigma_{22} & 0 \\ 0 & 0 & \sigma_{21} & 0 & 0 & \sigma_{22} \end{bmatrix}


Next Steps: Modeling Correlation Across Biomarkers

Current Limitation:

  • Biomarkers assumed independent: IJI_J

Planned Extension:

  • Use full covariance ΣJ\Sigma_J:

Cov(vec(Θi))=ΣKΣJ \text{Cov}(\text{vec}(\Theta_i)) = \Sigma_K \otimes \Sigma_J


Extending to Correlated Biomarkers

Assume K=3K=3, J=3J=3

Define:

ΣK=[σ11σ12σ13σ21σ22σ23σ31σ32σ33],ΣJ=[τ11τ12τ13τ21τ22τ23τ31τ32τ33] \Sigma_K = \begin{bmatrix} \sigma_{11} & \sigma_{12} & \sigma_{13} \\ \sigma_{21} & \sigma_{22} & \sigma_{23} \\ \sigma_{31} & \sigma_{32} & \sigma_{33} \end{bmatrix},\quad \Sigma_J = \begin{bmatrix} \tau_{11} & \tau_{12} & \tau_{13} \\ \tau_{21} & \tau_{22} & \tau_{23} \\ \tau_{31} & \tau_{32} & \tau_{33} \end{bmatrix}


Kronecker Product Structure: ΣKΣJ\Sigma_K \otimes \Sigma_J

ΣKΣJ=[σ11ΣJσ12ΣJσ13ΣJσ21ΣJσ22ΣJσ23ΣJσ31ΣJσ32ΣJσ33ΣJ] \Sigma_K \otimes \Sigma_J = \begin{bmatrix} \sigma_{11}\Sigma_J & \sigma_{12}\Sigma_J & \sigma_{13}\Sigma_J \\ \sigma_{21}\Sigma_J & \sigma_{22}\Sigma_J & \sigma_{23}\Sigma_J \\ \sigma_{31}\Sigma_J & \sigma_{32}\Sigma_J & \sigma_{33}\Sigma_J \end{bmatrix}

Now biomarkers and parameters can be correlated.


Expanded Form: ΣKΣJ\Sigma_K \otimes \Sigma_J (3x3)

The 9×99 \times 9 matrix contains all combinations σabτcd\sigma_{ab}\tau_{cd}

Not block-diagonal — includes cross-biomarker correlation


Practical To-Do List (for Chapter 2)

Model Implementation:

  • Define full ΣJ\Sigma_J and prior: ΣJ1𝒲(Ψ,ν)\Sigma_J^{-1} \sim \mathcal{W}(\Psi, \nu)
  • Implement ΣKΣJ\Sigma_K \otimes \Sigma_J in JAGS

Simulation + Validation:

  • Simulate individuals with correlated biomarkers
  • Fit both block-diagonal and full-covariance models
  • Compare fit: DIC, WAIC, predictive checks
Teunis, Peter F. M., and J. C. H. van Eijkeren. 2016. “Linking the Seroresponse to Infection to Within-Host Heterogeneity in Antibody Production.” Epidemics 16: 33–39. https://doi.org/10.1016/j.epidem.2016.04.001.