Target-Mediated Drug Disposition (TMDD)¶
Advanced PK model for drugs that bind to their pharmacological target, forming drug-target complexes that affect both PK and PD behavior.
Usage¶
using NeoPKPD
# Create TMDD model specification
model = target_mediated_drug_disposition()
params = CustomODEParams(
kel = 0.1, # Drug elimination rate (1/h)
kon = 0.01, # Association rate
koff = 0.001, # Dissociation rate
ksyn = 1.0, # Receptor synthesis
kdeg = 0.1, # Receptor degradation
kint = 0.05, # Complex internalization
V = 50.0 # Volume (L)
)
doses = [DoseEvent(0.0, 500.0)]
spec = ModelSpec(model, "tmdd_sim", params, doses)
grid = SimGrid(0.0, 72.0, 0:1:72)
solver = SolverSpec(:Tsit5, 1e-10, 1e-12, 10^7)
result = simulate(spec, grid, solver)
Parameters¶
| Parameter | Type | Description |
|---|---|---|
kel |
Float64 | Drug elimination rate constant (1/h) |
kon |
Float64 | Association rate constant (1/(conc*h)) |
koff |
Float64 | Dissociation rate constant (1/h) |
ksyn |
Float64 | Receptor synthesis rate (conc/h) |
kdeg |
Float64 | Receptor degradation rate constant (1/h) |
kint |
Float64 | Complex internalization rate constant (1/h) |
V |
Float64 | Volume of distribution (L) |
Derived Parameters¶
- KD (dissociation constant): \(K_D = k_{off} / k_{on}\)
- Receptor baseline: \(R_0 = k_{syn} / k_{deg}\)
Model Equations¶
Three-state ODE system:
\[\frac{dL}{dt} = -k_{el} \cdot L - k_{on} \cdot L \cdot R + k_{off} \cdot RL\]
\[\frac{dR}{dt} = k_{syn} - k_{deg} \cdot R - k_{on} \cdot L \cdot R + k_{off} \cdot RL\]
\[\frac{dRL}{dt} = k_{on} \cdot L \cdot R - k_{off} \cdot RL - k_{int} \cdot RL\]
Where: - L = Free drug (ligand) concentration - R = Free receptor concentration - RL = Drug-receptor complex concentration
Basic Example¶
using NeoPKPD
model = target_mediated_drug_disposition()
params = CustomODEParams(
kel = 0.1,
kon = 0.01,
koff = 0.001,
ksyn = 1.0,
kdeg = 0.1,
kint = 0.05,
V = 50.0
)
doses = [DoseEvent(0.0, 500.0)]
spec = ModelSpec(model, "tmdd", params, doses)
grid = SimGrid(0.0, 72.0, 0:0.5:72)
solver = SolverSpec(:Tsit5, 1e-10, 1e-12, 10^7)
result = simulate(spec, grid, solver)
# Access states
conc = result.observations[:conc]
println("Initial free drug: $(conc[1]) mg/L")
println("Free drug at 24h: $(conc[49]) mg/L")
Non-Linear PK Behavior¶
using NeoPKPD
model = target_mediated_drug_disposition()
doses_list = [50.0, 100.0, 200.0, 500.0, 1000.0]
println("Dose (mg) | Cmax (mg/L) | Apparent t1/2")
println("-" ^ 45)
for dose in doses_list
params = CustomODEParams(
kel = 0.1, kon = 0.01, koff = 0.001,
ksyn = 1.0, kdeg = 0.1, kint = 0.05, V = 50.0
)
doses = [DoseEvent(0.0, dose)]
spec = ModelSpec(model, "tmdd", params, doses)
grid = SimGrid(0.0, 96.0, 0:0.5:96)
solver = SolverSpec(:Tsit5, 1e-10, 1e-12, 10^7)
result = simulate(spec, grid, solver)
conc = result.observations[:conc]
cmax = maximum(conc)
println("$dose | $cmax | ...")
end
Clinical Applications¶
TMDD is relevant for:
- Monoclonal antibodies binding to soluble targets
- Therapeutic proteins with receptor-mediated clearance
- Small molecules with high-affinity target binding
- Biologics with target-mediated disposition
Equations Summary¶
| Quantity | Formula |
|---|---|
| KD | \(k_{off} / k_{on}\) |
| Receptor baseline | \(R_0 = k_{syn} / k_{deg}\) |
| Free drug rate | \(-k_{el}L - k_{on}LR + k_{off}RL\) |
| Complex rate | \(k_{on}LR - k_{off}RL - k_{int}RL\) |
| Total drug | \(L + RL\) |
See Also¶
- Michaelis-Menten - Saturable elimination
- Two-Compartment IV - Distribution kinetics