Disease Progression Models
Disease progression models [CookBies2016] describe the change in disease status over time. Most diseases will progress if left untreated and a disease progression model aims to capture this progress and model the effects of any treatment. Biomarkers are often used as proxies to measure disease status eg tumour size to measure cancer or fasting plasma glucose to measure Type II diabetes.
There are a number of possible disease progression models (see https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4294073/pdf/bcp0079-0018.pdf). A few simple models will be considered here.
Linear Disease Progression Model
linear_disease_progression_model contains a one compartment PK model is used to determine the concentration of a drug in the central compartment. Clearance and volume of distribution have already been determined for each individual.
The disease status at each time step is dependent on the linear disease progression over time and the concentration in the central compartment. This is defined in the PREDICTIONS section of the script file:-
DERIVATIVES: |
d[CENTRAL] = @bolus{amt:c[AMT], lag:0} - c[CL]*s[CENTRAL]/c[V]
PREDICTIONS: |
plabel[DIS] = 'Disease'
p[DIS] = m[ALPHA]*c[TIME] - m[BETA]*s[CENTRAL]/c[V]
c[DIS] ~ norm(p[DIS], 1.0)
Compartmental Disease Progression Model
linear_disease_progression_compartmental_model is a similar model, but the change in disease status is modelled as a compartment in the DERIVATIVES block:
DERIVATIVES: |
# Use the ODE solver to estimate drug concentration
d[CENTRAL] = @bolus{lag:0, amt:c[AMT]} - c[CL]*s[CENTRAL]/c[V]
# Use the ODE solver as an integrator over time
d[DIS] = m[ALPHA] - m[BETA]*s[CENTRAL]/c[V]
This is then added to the original disease status in the PREDICTIONS block:
PREDICTIONS: |
plabel[DIS] = 'Disease'
p[DIS] = m[DIS_BASE] + s[DIS]
c[DIS] ~ norm(p[DIS], 1.0)
Exponential Disease Progression Model
In exponential_disease_progression_model, the disease progresses in an exponential manner:
DERIVATIVES: |
conc = s[CENTRAL]/c[V]
d[CENTRAL] = @bolus{amt:c[AMT], lag:0} - c[CL]*conc
d[DIS] = exp(m[ALPHA]) - m[BETA]*conc
PREDICTIONS: |
plabel[DIS] = 'Disease'
p[DIS] = m[DIS_BASE] + s[DIS]
c[DIS] ~ norm(p[DIS], 1.0)
EMAX Disease Progression Model
In emax_disease_progression_compartmental_model the response of the disease to the drug is limited through an emax equation:
DERIVATIVES: |
conc = s[CENTRAL]/c[V]
d[CENTRAL] = @bolus{lag:0, amt:c[AMT]} - c[CL]*conc
RES = m[EMAX]*conc/(m[E50]+ conc)
d[DIS] = m[ALPHA] - m[BETA]*RES
PREDICTIONS: |
plabel[DIS] = 'Disease'
p[DIS] = m[S0] + s[DIS]
var = m[ANOISE]**2
c[DIS] ~ norm(p[DIS], var)
Disease Progression Model with Placebo
For some drugs there may be a placebo effect, which reduces the disease status in addition to the effects of the drug. This is often found in drugs used to treat depression. In placebo_disease_progression_model, there is an initial placebo effect that lessens over time. The disease progression is driven by m[ALPHA], which increases over time and the drug effect is modelled through concentration and m[BETA]:
DERIVATIVES: |
conc = s[CENTRAL]/c[V]
d[CENTRAL] = @bolus{lag:0, amt:c[AMT]} - c[CL]*conc
d[DIS] = m[PLAC]/(x[TIME]+0.0001) + exp(m[ALPHA]*x[TIME]) - m[BETA]*conc
PREDICTIONS: |
plabel[DIS] = 'Disease'
p[DIS] = c[BASE] + s[DIS]
var = m[ANOISE]**2
c[DIS] ~ norm(p[DIS], var)
The placebo effect in this model can have a positive or negative effect on the disease status. We have chosen a generating value of -20 for f[PLAC] so it will have a negative effect for the majority of patients.
Tumour Growth Model
tumour_growth_model is an example where the change in the size of a tumour is modelled as a compartment. The change in tumour size is modelled through m[KIN] (tumour growth) and m[KOUT] (tumour shrinkage). m[KOUT] increases with the concentration of drug in the central compartment (plasma):
DERIVATIVES: |
conc = s[CENTRAL]/c[V]
d[DEPOT] = @bolus{lag:0, amt:c[AMT]} - c[KA]*s[DEPOT]
d[CENTRAL] = c[KA]*s[DEPOT] - c[CL]*conc
d[TUMOUR] = exp(m[KIN]) - m[KOUT]*conc
The change in tumour size is then added to the initial size in the PREDICTIONS section:
PREDICTIONS: |
plabel[TUMOUR] = 'Tumour'
p[TUMOUR] = c[SIZE] + s[TUMOUR]
var = m[ANOISE]**2
c[TUMOUR] ~ norm(p[TUMOUR], var)