MATLAB: How does Matlab Simbiology calculate pharmacokinetic (PK) non-compartmental (NCA) area under the curve (AUC)

area under the curveaucextrapolationintegrationMATLABncanon-compartmental analysispharmacokineticpharmacokineticspkSimBiologytrapezium ruletrapezoidal rule

I can't seem to find the answer to my question in SimBiology's documentation.
Does anyone know how Matlab calculates the non-compartmental AUC? Does it use the linear / log-linear trapezoidal rule? How many points does it use to extrapolate the curve to infinity? Does it use log or linear extension?
Many thanks!

Best Answer

Hi,
Some of the details of SimBiology's non-compartmental analysis (NCA) depend on the type of data and type of dose. However, the conceptual approach is similar, so I will explain below how SimBiology calculates the AUC for a single dose with an IV bolus dose.
First, SimBiology uses the linear trapezoidal rule to estimate the area under the time-concentration curve until the last concentration measurement. This is denoted as AUC_0_tz in the SimBiology desktop. If time is denoted as t and concentration as y, then the following formula is used:
AUC_0_tz = trapz(t,y);
Next, the final two concentration measurements are used to estimate the terminal rate constant, denoted as Lambda_z in the SimBiology desktop. This is calculated in log-space as follows:
Lambda_z = -((log(y(end)) - log(y(end-1)))/(t(end) - t(end-1)));
The extrapolated area under the curve (from t(end) to infinity) is calculated analytically by assuming exponential decay as y(end)/Lambda_z.
Combining all of these, you can see that the AUC is calculated as
AUC = trapz(t,y) - y(end)*(t(end) - t(end-1))/(log(y(end)) - log(y(end-1)))