library(tidyverse)
library(nlmixr2data)Structural PK Models
Module goal: Learn how structural PK models describe concentration-time profiles before adding population variability and estimation.
Module Overview
In the previous Module, we focused on understanding the dataset.
Now we begin modeling.
This module introduces the structural PK model component: the part of the model that describes the expected concentration-time profile after dosing.
Before fitting a full population model in nlmixr2, students should understand what the structural equations are trying to represent.
We will focus on:
- one-compartment PK models
- first-order absorption
- clearance and volume
- elimination rate constants
- half-life
- parameterization
- simulation of concentration-time profiles
- naive structural predictions
The goal is to build the model-thinking foundation before mixed-effects estimation.
Learning Objectives
By the end of this module, you will be able to:
- Explain what a structural PK model represents.
- Describe one-compartment oral PK behavior.
- Interpret
ka,CL,V,k, and half-life. - Write a concentration-time function using CL/V parameterization.
- Simulate concentration-time profiles from parameter values.
- Understand how dose, clearance, volume, and absorption affect profiles.
- Recognize why structural models come before population models.
Lessons in This Module
Lesson 1: What Is a Structural PK Model?
This lesson introduces structural models as the expected biological pattern underlying concentration-time data.
Lesson 2: One-Compartment Oral PK Model
This lesson introduces the one-compartment oral model with first-order absorption and linear elimination.
Lesson 3: Parameters and Profile Shape
This lesson explores how ka, CL, V, and dose affect the concentration-time profile.
Lesson 4: Simulating Structural PK Profiles in R
This lesson uses simple R functions to simulate concentration-time profiles from chosen parameter values.
Lesson 5: From Structural Model to Population Modeling
This lesson connects structural simulation to the next step: writing and fitting the first nlmixr2 population model.
Software Used
This module mostly uses standard R and the tidyverse for simulation and visualization.
Later modules will use:
library(nlmixr2)
library(rxode2)This module may preview the modeling logic used by nlmixr2, but formal population model fitting begins in the next module.
Dataset Used
We continue using:
data("theo_sd", package = "nlmixr2data")The same dataset is used to preserve continuity across modules.
However, this module also uses simulated profiles because structural model behavior is easier to understand when we control parameter values directly.
Module Workflow
Conceptually, this module follows:
Observed PK Profiles
↓
Structural Assumptions
↓
PK Parameters
↓
Concentration-Time Equation
↓
Simulation
↓
Readiness for Population Modeling
Why This Module Matters
A population PK model has several layers.
This module isolates one layer:
Structural Model
If the structural model is poorly understood, later topics become harder:
- random effects
- residual error
- covariates
- diagnostics
- simulation
- PK/PD extensions
So before we estimate variability, we first learn what the expected concentration-time curve means.
What This Module Does Not Do Yet
This module does not yet focus on:
- interindividual variability
- random effects
- residual error models
- covariate model building
- formal
nlmixr2estimation
Those topics come later.
For now, the focus is:
What profile does the model predict if we know the parameters?
Expected Outputs
By the end of this module, you should have:
- interpreted a one-compartment oral PK model
- written a structural concentration-time function
- simulated profiles from parameter values
- visualized how parameters affect profile shape
- connected structural model thinking to future population model fitting
Next Step
Start with Lesson 1 to understand what structural PK models represent and why they are the foundation of population modeling.