Introduction

Unsurprisingly, the absorption of drugs is a complex process. Should you try a first-order input? Zero-order? Both?! Especially when a bias in the model fit of your absorption phase is visible, you should pay some attention on quantifying parallel absorption processes.
Multiple absorption processes in one model may be used to describe complex absorption profiles of drugs. Indeed, a drug may be simultaneously absorbed at different rates. Thus, by defining a parallel absorption structure in the model, the modeller has the flexibility to create fast and slow absorptions which both represent the input of a drug. For example, certain extended-release formulations provide dual delivery of a drug: a fast release and a slow release. This system allows continuous delivery of drugs into the blood stream, without necessitating frequent dosing.
The Osmotic-controlled release oral delivery system (OROS) is a good example of this dual absorption. The pill is separated into sections and drug release is governed by an osmotic push section. Each section is released at different rates.
Modelling Parallel Absorption in NONMEM
The simplest method to model an oral absorption is undoubtedly a first-order input of drugs into a central compartment. In that model, we assume that the absorption varies according to the absorption rate constant (ka) and the amount of drug at the site of absorption (depot compartment). It is also possible to delay the absorption process, with a lag time for example (Lag). Another simple absorption model is the zero-order input, where we assume that the drug is absorbed at a constant rate of mass per unit of time (k0) until the depot compartment is depleted.
An example of a first-order absorption profile, without a delay, can be seen below:

However, if the absorption profile shows a ‘non-typical’ shape or your model fit shows a bias in the absorption phase of the pharmacokinetic profile, it might be required to explore additional structural models. In this post, we will focus on the code required to model the first two model structures presented below, containing two parallel first-order absorption routes. However, this model can be expanded with zero-order absorption, transit compartments, non-linear absorption, lag times, etc.

When modeling parallel absorption with NONMEM, each absorption process is attributed a depot compartment which receives a fraction of the bioavailable amount of total drug administered (F1 and F2 for example which are each a fraction of F). Thus, the control file will be a user-written model (ADVAN 5, 6, 7, 8, 9, 13) and the dataset must be set up to reflect these depot compartments.
It is also worth noting that you should pay attention to the cumulative amount of the F. As it is most likely an extravascular administration, the bioavailability (F) will be smaller than 100%. In your model, do you fix F based on literature/intravenous information? In this case, F1 and F2 would represent real bioavailability (thus you must make sure that F1 + F2 do not become higher than F). Or do you assume an unknown F? In that case, F1 and F2 are rather fractions of an unknown F (thus you must make sure that F1 + F2 = 100%).
For the sake of simplicity, I will represent a parallel two first-order absorptions and one central compartment with first-order elimination. I will suppose an oral administration of 500mg with an unknown F.
1. Dataset
According to our model, we must account for three compartments:
- Compartment 1: Depot for the first absorption (F1)
- Compartment 2: Depot for the second absorption (F2)
- Compartment 3: Central compartment (Plasma)
Of course, as the absorption model or the distribution model becomes more complex, the number of compartments will increase.
Each absorption compartment will receive a fraction (ex. F1 or F2) of the bioavailable dose (the total fraction between depot compartments must be 100% of the amount; F1 + F2 = 100%). If this fraction is known, the amount can be calculated and directly given in the dataset. For example, if the modeler fixes 100 mg to the first absorption and 400 mg to the second absorption, the dataset will look like this (F1 = 20% F2 = 80%):
ID | TIME | DV | AMT | CMT | EVID | … |
1 | 0 | 0 | 100 | 1 | 1 | |
1 | 0 | 0 | 400 | 2 | 1 | |
1 | 0.5 | 1.2 | 0 | 3 | 0 | |
… | … | … | … | … | … |
However, it is more likely that we want NONMEM to estimate F1 or F2. Then, the total dose administered will be repeated in the dataset for each compartment and the fraction that will eventually reach a certain depot will be estimated in the control file. This might seem strange as the total AMT administered is now doubled. However, only the estimated fraction of the administered dose (F1 or F2) will reach the central compartment (maximum bioavailability of 100%; F2 = 1 – F1).
For example, let’s pretend that NONMEM outputs F1 = 35% and F2 = 65%. This would mean that 175mg (0.35*500mg) were deposited from the first absorption compartment into the central compartment and 325mg (0.65*500mg) from the second absorption compartment. The total dose which reached the central compartment equals 500mg, even though two dosing lines of 500mg were used as input.
The dataset to estimate the fractions will look like this:
ID | TIME | DV | AMT | CMT | EVID | … |
1 | 0 | 0 | 500 | 1 | 1 | |
1 | 0 | 0 | 500 | 2 | 1 | |
1 | 0.5 | 1.2 | 0 | 3 | 0 | |
… | … | … | … | … | … |
2. Control File
The control file for NONMEM must be written as a user-written model. The specific sections are detailed below.
2.1 $SUBROUTINE
If every transfer between compartments is first-order, the use of ADVAN5 and ADVAN7 must be considered. Alternatively, ADVAN6, ADVAN8, ADVAN9 and ADVAN13 allow more flexibility and nonlinear transfers between compartments. For our model, I will use ADVAN6 to show the differential equations.
; Use the subroutine ADVAN6 for example with an appropriate TOL $SUBROUTINES ADVAN6 TOL=6
2.2 $MODEL
As seen in the dataset, there are three compartments. They must be defined in $MODEL
$MODEL NCOMP=3 COMP=(DEPOT1) ; Depot for the first depot compartment COMP=(DEPOT2) ; Depot for the second depot compartment COMP=(CENT) ; Central compartment where the DV is measured
2.3 $pk
In the PK block, we define the parameters of the model. It also contains ALAG1 and ALAG2, two lag time parameters used in NONMEM. If only 1 route should have a lag time, one of these parameters can be fixed to 0 (0 FIX). This provides a flexible model control file to explore different combinations of absorption structures without having to perform large changes in the file during model development.
$PK ;;;;;;;;; Parallel absorption rate constants TVKA1 = THETA(1) ; First-order absorption rate constant for the first depot compartment TVKA2 = THETA(2) ; First-order absorption rate constant for the second depot compartment ; Fraction of the total amount that will be deposited in the first depot compartment. ; If F1 is fixed by the modeler and the doses are already adjusted in the dataset, THETA(3) and F2 must be fixed to 1 TVF1 = THETA(3) ;;;;;;;;; LAG times (optional) TVALAG1 = THETA(4) ; Delay before starting the first absorption TVALAG2 = THETA(5) ; Delay before starting the second absorption ;;;;;;;;; Distribution and Elimination TVCL = THETA(6) ; Clearance TVV = THETA(7) ; Volume of Distribution ;;;;;;;;; Estimating the Interindividual variability KA1 = TVKA1 * EXP(ETA1) KA2 = TVKA2 * EXP(ETA2) F1 = TVF1 * EXP(ETA3) ALAG1 = TVALAG1 * EXP(ETA4) ALAG2 = TVALAG2 * EXP(ETA5) CL = TVCL * EXP(ETA6) V = TVV * EXP(ETA7) ;;;;;;;;; Estimating the Fraction of the Dose in the Second Compartment ; Fraction of the bioavailable amount that will be deposited in the second depot compartment. It is the difference between 1 and the amount already deposited in the first depot compartment F2 = 1 - F1 ; The elimination from the central compartment parametrized as a micro constant K30 = CL/V
2.4 $DES
The differential equations must show the rate of exchange between the depot compartments and the central compartment.
$DES DADT(1) = - KA1 * A(1) ; The first depot compartment is eliminating A(1) at rate KA1 DADT(2) = - KA2 * A(2) ; The second depot compartment is eliminating A(2) at rate KA2 DADT(3) = KA1 * A(1) + KA2 * A(2) - K30 * A(3) ; The central compartment is absorbing A(1) at rate KA1 and A(2) at rate KA2. It is eliminating A(3) at rate K30
Simulation of Pharmacokinetic Curves with Parallel Absorption
To visualize the impact of the parallel absorption from the previous code, we can simulate separately each absorption route (CMT = 1 or CMT = 2). Each absorption route is an input of drug into the central compartment (CMT = 3). Thus, the concentration in the central compartment is computed as the sum of both routes’ concentrations.
The PK parameters were chosen from DOI: 10.1089/cap.2018.0093. Using Ka1 = 0.182, Ka2 = 0.258, V = 816, and CL = 405, we get the simulations below.


It is important to note that the simulations presented for dual first-order absorptions without delay are not identifiable models as it is impossible to distinguish a resulting concentration-time profile in the plasma, back into 2 separate first-order absorption profiles. They are presented here solely as a visual mean to understand how the central compartment concentrations are a sum of each absorption’s input.
We can now start modifying our parameters to simulate different scenarios, in which lag times come into play, where only 50% of the dose was released immediately.

This can be further changed with different absorption rate constants to result in different profiles that you would not be able to fit with single first-order absorption kinetics.
Shiny application for simulations:
A Shiny application was developed in which you can alter these parameters and show how a profile with parallel first-order absorption would look like:
The code of the Shiny application is available at:
GitHub – SaraSoufsaf/ShinyDualAbsorption
Additional resources
To read more about parallel absorption models, I suggest :
- Owen JS, Fiedler-Kelly J. Introduction to population pharmacokinetic/pharmacodynamic analysis with nonlinear mixed effects models. Hoboken, New Jersey: Wiley; 2014.
Conclusion
So why don’t we see these kind of model structures very often in (old) publications or as a required step during model development? There are two main components that come into play. First of all, we need the data. The absorption curve needs to be quantified with dense samples in order to correctly distinguish between the different absorption routes. Most of the time, this is not the case. Second, computation power. Back in the days, a ‘simple’ first-order absorption component in the model was already pushing the limits of our poor computers and a first-order absorption route might have already been fit for purpose. However, nowadays, this computational power is not an issue anymore and I am not surprised if we would see an increase in these models in the future.
Finally, this post gave information on how to build your dataset and code parallel absorption routes in NONMEM. It must be reiterated that model exploration should be driven by the data and by the purpose of the model. This post only gave an example of two first-order absorption routes, but can be changed to whatever structure seems appropriate, driven by physiological knowledge and/or dissolution profiles of the drug administered.
Guest Author
This post was written by Sara Soufsaf
In publications, in the results section, you often sees the estimates of ‘apparent’ parameters, such as ‘apparent clearance CL/F’, ‘apparent central/peripheral volume V/F’, ‘apparent inter-compartmental clearance Q/F’. Could you please explain why that is and what are the consequences of it?
For example, let’s assume I would like to use that model, for which the estimates where obtained, to simulate other dosage scenarios. Do I then scale the dose of interest by the estimated F and/or use e.g. apparent ‘CL/F’ or ‘CL’ after multiplying CL/F by F as clearance?
Any comments would be very appreciated.
Thank you for this interesting question, the ‘apparent’ parameters are related to the unknown bioavailability of that study.
Simulating a new scenario using the estimated apparent parameters will therefore be identical as the study details previously used.
Example 1:
We have estimated a model on an oral dose of 100 mg. As we have oral dosing only, all parameters should be reported as apparent parameters.
If we want to simulate a dose of 200 mg, we can take the estimated parameters and only change the input dose to 200 mg.
Example 2:
We have estimated a model on an oral dose of 100 mg. As we have oral dosing only, all parameters should be reported as apparent parameters.
We now want to simulate a different oral formulation, for which we expect that the bioavailability will be 20% higher than our previous study.
This can be simulated by modifying the input dose to 120 mg (even though you would only administer 100 mg of the new formulation). As that might be confusing, best practice is to scale the apparent parameters by this change in bioavailability of 20%.
As you are using ADVAN6 as an example, where should ALAG parameter be incorporated under $DES equations? Probably multiplied by KA1*A(1) for first-order absorption as no lag time in zero-order absorption.
The use of the predefined syntax TVALAG1 and TVALAG2 will be automatically incorporated as a lag time of dosing in compartiment 1 and 2. Therefore, nothing has to be done under $DES.
You can set TVALAG2 to 0 or leave it out if you do not want any lag time on the second absorption pathway.
Michiel