DeSolve
INSA Lyon - 3BIM EDO Modelling
The objective is to describe the exposure-response relationship.
How the body affects the a chemical (xenobiotic) after administration, through absorption, distribution, metabolic changes, and excretion of metabolites. Multi-compartmental models are the most common models.
ADME or (LADME) scheme: Liberation, Absorption, Distribution, Metabolism, Excretion
Assumptions
Monocompartmental and two compartmental models are the most frequently used.
\[C(t) = C_0 \exp(- k_e t).\]
\(C\) (\(\mu\)g/L) is the drug concentration in plasma, \(C_0\) is the initial concentration. \(C_0\) is related to the dose \(D\) (\(\mu\)g) and the volume of distribution \(V_d\) (L):
\[C_0 = \frac{D}{V_d}.\] \(k_e\) is the drug elimination rate constant.
Term | Description | Symbol | Equation | Example |
---|---|---|---|---|
Dose | Amount of drug | \(D\) | input par | 250mg |
administered | ||||
Volume of | Apparent volume | \(V_d\) | \(D/C_0\) | 5.0L |
distribution | in which the drug | |||
is distributed | ||||
Concentration | Initial concentration | \(C_0\) | \(D/V_d\) | 0.2mg/L |
of the drug | ||||
Elimination | Rate at which drug | \(k_e\) | 0.12h\({}^{-1}\) | |
rate constant | is removed from the | |||
body | ||||
Area under | Integral of | \(AUC_{0,t}\) | \(\int_0^tC(t)dt\) | mg/L h |
the curve (AUC) | drug concentration | |||
over time | ||||
Clearance | Volume of plasma | \(CL\) | \(V_d k_e\) | L/h |
cleared of the drug | ||||
per unit time |
The model can be expressed as an initial value problem: solve
\[C' = - k_e C, \; C(0) = C_0.\]
monocompartment <- function(t, var, pars) {
with(as.list(c(pars, var)), {
dC <- - ke * C
list(dC) }) }
D <- 500 # Dose (in mg)
Vd <- 5.0 # Volume of distribution (in L)
C0 <- c(C = D/Vd) # Initial concentration (in mg/L)
times <- seq(0, 100, 0.1) # (in hours)
pars <- c(ke = 0.04) # elimination rate (in h^-1)
sol <- ode(times = times, y = C0,
func = monocompartment, parms = pars)
events
function# 500mg per dose, three times a day
# (08:00, 12:00, 18:00) for 2 days
dosingSchedule <- data.frame(var = rep(c("C"), 6),
time = rep(c(8,12,18),2) + rep(c(0,24), each = 3),
value = rep(c(D/Vd), 6),
method = rep(c("add"), 6))
C0 <- c(C = 0) # Initial concentration = 0 mg/L
sol <- ode(times = times, y = C0,
func = monocompartment, parms = pars,
event = list(data = dosingSchedule))
\[C(t) = a \exp(- \alpha t) + b \exp(- \beta t), \; \alpha > \beta.\]
pars <- c(a=80.0, b=20.0, alpha=1.2, beta=0.02)
t <- seq(0,40,by=0.1)
with(as.list(pars),
plot(t, a*exp(-alpha*t) + b*exp(-beta*t),
type = 'l', log = 'y', lwd = 2,
xlab = 'time (h)', ylab = 'central compartment'))
The pair of ODEs is
\[\begin{align*} C_c' & = -k_{12} C_c + k_{21} C_p - k_{10} C_c \\ C_p' & = k_{12} C_c - k_{21} C_p \\ \end{align*}\]
Parameters \(a,b,\alpha,\beta\) and \(D,k_{12},k_{21},k_{10}\) are related.
In the two compartment model, the volume of distribution changes as the drug gets distributed into the peripheral compartment. We denote \(V_c,V_p\) the volumes of distribution of the central and peripheral compartments.
twocompartment <- function(t, var, pars) {
with(as.list(c(pars, var)), {
dCc <- -k12*Central + k21*r*Peripheral - k10*Central
dCp <- k12/r*Central - k21*Peripheral
list(c(dCc,dCp)) }) }
D <- 500 # Dose (in mg)
Vc <- 5.0 # Volume of distribution in Central (in L)
Vp <- 10.0 # Volume of distribution in Peripheral (in L)
C0 <- c(Central = D/Vc, Peripheral = 0) # Initial concentration (in mg/L)
times <- seq(0, 40, 0.1) # (in hours)
pars <- c(k12 = 1.2, k21 = 1.5, k10 = 0.04, r = Vp/Vc)
sol <- ode(times = times, y = C0,
func = twocompartment, parms = pars)
plot(sol, which = 'Central',
type = 'l', log = 'y', lwd = 2,
xlab = 'time (h)', ylab = 'central compartment')