Non Compartmental Analysis

PumasAI
August 2020

Load the necessary libraries

using PumasTutorials, Pumas, Plots, CSV, DataFrames, StatsPlots, Statistics

Introduction

In this tutorial you will learn how to compute specific parameters using Non-Compartmental Analysis

PK was collected in 107 subjects who received 50 mg q24 hours for 5 days, on Day 1 (first dose) and Day 5 (last dose at steady-state). We will compute Single Dose and Multiple Dose NCA parameters

In the given dataset

  • Time = hrs

  • Conc = mg/L

  • Amt = mg

Step1: Load the NCA dataset using the CSV.read function and convert it to a Dataframe

data = DataFrame(CSV.File(joinpath(dirname(pathof(PumasTutorials)), "..", "tutorials", "nca", "NCA_tutorial.csv")))
first(data, 6)

6 rows × 6 columns

IDTIMECONCAMTROUTEII
Int64Float64Float64Int64StringInt64
120.00.050ev0
220.250.350ev0
320.50.330ev0
420.750.360ev0
521.00.370ev0
621.50.330ev0

Plot a exploratory graph of Concentration vs Time and group each subject by the specific ID assigned.

@df data plot(:TIME, :CONC, group=:ID, xlabel="Time (hrs)", ylabel="Concentration (mg/L)", xticks=[0,12,24,36,48,60,72,84,96,108,120], label=false)

Single-dose NCA

Filter data for time <= 24 hrs to perform the Single-dose NCA

single_dose_data  = filter(x -> x.TIME <= 24 , data)

1,712 rows × 6 columns

IDTIMECONCAMTROUTEII
Int64Float64Float64Int64StringInt64
120.00.050ev0
220.250.350ev0
320.50.330ev0
420.750.360ev0
521.00.370ev0
621.50.330ev0
722.00.310ev0
822.50.30ev0
923.00.290ev0
1024.00.240ev0
1126.00.180ev0
1228.00.120ev0
13212.00.060ev0
14216.00.030ev0
15220.00.020ev0
16224.00.010ev0
1730.00.050ev0
1830.250.610ev0
1930.50.660ev0
2030.750.640ev0
2131.00.730ev0
2231.50.580ev0
2332.00.420ev0
2432.50.480ev0

We will specify the units of time, concentration and amount which will be mapped to read_nca

timeu = u"hr"
concu = u"mg/L"
amtu  = u"mg";
mg

Parse the dataframe to a read_nca function and map the necessary columns from the dataset

  • id

  • conc

  • time

  • ocassion - if you have different ocassions

  • amt

  • route - Infusion "inf", IV "iv", Oral "ev"

  • duration - Only for Infusion

  • group - any other grouping variables that you require in the output

Note:

  • If your datset has the specific style of headers for the column you will not need to map them seperately. They will be

automatically determined by PUMAS. eg: id, time, conc, amt, route, duration(if needed), ocassion(if needed), group(if needed)

  • Do not specify the Inter Dose Interval in this case because we are computing Single-Dose NCA parameters

pop        = read_nca(  single_dose_data,
                        id    = :ID,
                        time  = :TIME,
                        conc  = :CONC,
                        amt   = :AMT,
                        route = :ROUTE,
                        llq   = 0.001concu,
                        timeu = timeu,
                        concu = concu,
                        amtu  = amtu
                      )
report     = NCAReport(pop, sigdigits=3)

107 rows × 39 columns (omitted printing of 31 columns)

iddoseamttlagtmaxcmaxtlastclastclast_pred
Int64Quantit…Quantit…Quantit…Quantit…Quantit…Quantit…Quantit…
1250 mg0.0 hr1.0 hr0.37 mg L⁻¹24.0 hr0.01 mg L⁻¹0.00965 mg L⁻¹
2350 mg0.0 hr1.0 hr0.73 mg L⁻¹20.0 hr0.01 mg L⁻¹0.01 mg L⁻¹
31050 mg0.0 hr0.5 hr0.65 mg L⁻¹20.0 hr0.01 mg L⁻¹0.00983 mg L⁻¹
41450 mg0.0 hr0.75 hr0.5 mg L⁻¹24.0 hr0.02 mg L⁻¹0.0212 mg L⁻¹
51550 mg0.0 hr1.0 hr0.48 mg L⁻¹24.0 hr0.01 mg L⁻¹0.0131 mg L⁻¹
61650 mg0.0 hr0.75 hr0.5 mg L⁻¹20.0 hr0.01 mg L⁻¹0.00971 mg L⁻¹
71850 mg0.0 hr0.75 hr0.41 mg L⁻¹24.0 hr0.01 mg L⁻¹0.0133 mg L⁻¹
81950 mg0.0 hr0.75 hr0.41 mg L⁻¹16.0 hr0.01 mg L⁻¹0.00873 mg L⁻¹
92150 mg0.0 hr0.5 hr0.48 mg L⁻¹24.0 hr0.01 mg L⁻¹0.00626 mg L⁻¹
102350 mg0.0 hr0.5 hr0.47 mg L⁻¹20.0 hr0.01 mg L⁻¹0.01 mg L⁻¹
112750 mg0.0 hr0.5 hr0.37 mg L⁻¹24.0 hr0.01 mg L⁻¹0.01 mg L⁻¹
122850 mg0.0 hr0.5 hr0.5 mg L⁻¹16.0 hr0.01 mg L⁻¹0.0121 mg L⁻¹
133250 mg0.0 hr0.5 hr0.73 mg L⁻¹16.0 hr0.01 mg L⁻¹0.0111 mg L⁻¹
143350 mg0.0 hr0.5 hr0.5 mg L⁻¹20.0 hr0.01 mg L⁻¹0.00634 mg L⁻¹
153450 mg0.0 hr0.25 hr0.5 mg L⁻¹20.0 hr0.01 mg L⁻¹0.00672 mg L⁻¹
163550 mg0.0 hr0.5 hr0.48 mg L⁻¹16.0 hr0.01 mg L⁻¹0.00835 mg L⁻¹
173650 mg0.0 hr1.0 hr0.4 mg L⁻¹24.0 hr0.02 mg L⁻¹0.0227 mg L⁻¹
183850 mg0.0 hr0.75 hr0.56 mg L⁻¹12.0 hr0.01 mg L⁻¹0.01 mg L⁻¹
194050 mg0.0 hr0.25 hr0.77 mg L⁻¹12.0 hr0.02 mg L⁻¹0.02 mg L⁻¹
204150 mg0.0 hr0.5 hr0.51 mg L⁻¹20.0 hr0.01 mg L⁻¹0.0111 mg L⁻¹
214250 mg0.0 hr1.5 hr0.49 mg L⁻¹24.0 hr0.01 mg L⁻¹0.00743 mg L⁻¹
224350 mg0.0 hr0.5 hr0.57 mg L⁻¹16.0 hr0.01 mg L⁻¹0.00844 mg L⁻¹
234450 mg0.0 hr0.25 hr0.38 mg L⁻¹16.0 hr0.01 mg L⁻¹0.00905 mg L⁻¹
244650 mg0.0 hr1.0 hr0.58 mg L⁻¹24.0 hr0.01 mg L⁻¹0.0073 mg L⁻¹
Compute Specific Parameters

We will now compute the specific parameters that we require and merge all of them to a dataframe

vz        = NCA.vz(pop, sigdigits=3)  # Volume of Distribution/F, in this case since the drug is given orally
cl        = NCA.cl(pop, sigdigits=3)  # Clearance/F, in this case since the drug is given orally
lambdaz   = NCA.lambdaz(pop, threshold=3, sigdigits=3)  # Terminal Elimination Rate Constant, threshold=3 specifies the max no. of time point used for calculation
lambdaz_1 = NCA.lambdaz(pop, slopetimes=[8,12,16].*timeu, sigdigits=3) # slopetimes in this case specifies the exact time point you want for the calculation
thalf     = NCA.thalf(pop[4], sigdigits=3) # Half-life calculation for 4th individual
cmax_d    = NCA.cmax(pop, normalize=true, sigdigits=3) # Dose Normalized Cmax
mrt       = NCA.mrt(pop, sigdigits=3) # Mean residence time
aumc      = NCA.aumc(pop, method=:linlog, sigdigits=3) # AUMC calculation, using :linlog method
rename!(lambdaz_1, Dict(:lambdaz => "lambdaz_specf")) #since we have two lambdaz calculation rename one column to merge in a dataframe
df_1      = innerjoin(vz,cl,lambdaz, lambdaz_1,cmax_d,mrt,aumc, on=[:id], makeunique=true)

107 rows × 8 columns (omitted printing of 1 columns)

idvzcllambdazlambdaz_specfcmaxmrt
Int64Quantit…Quantit…Quantit…Quantit…?Quantit…Quantit…
12116.994 L18.5931 L hr⁻¹0.137327 hr⁻¹0.173287 hr⁻¹0.0074 L⁻¹6.30874 hr
2390.694 L15.7161 L hr⁻¹0.173287 hr⁻¹0.22397 hr⁻¹0.0146 L⁻¹4.42943 hr
31086.099 L17.6125 L hr⁻¹0.22397 hr⁻¹0.20118 hr⁻¹0.013 L⁻¹4.99676 hr
41495.2837 L12.9591 L hr⁻¹0.156595 hr⁻¹0.103335 hr⁻¹0.01 L⁻¹7.93671 hr
515102.629 L15.4735 L hr⁻¹0.20118 hr⁻¹0.128702 hr⁻¹0.0096 L⁻¹6.80482 hr
61699.963 L19.6887 L hr⁻¹0.20118 hr⁻¹0.18801 hr⁻¹0.01 L⁻¹5.14831 hr
718112.03 L16.6257 L hr⁻¹0.20118 hr⁻¹0.119439 hr⁻¹0.0082 L⁻¹7.23706 hr
819115.472 L28.3778 L hr⁻¹0.22397 hr⁻¹0.22397 hr⁻¹0.0082 L⁻¹4.17173 hr
92198.8231 L18.1609 L hr⁻¹0.0866434 hr⁻¹0.233975 hr⁻¹0.0096 L⁻¹5.37424 hr
1023124.628 L21.5963 L hr⁻¹0.173287 hr⁻¹0.173287 hr⁻¹0.0094 L⁻¹5.11981 hr
1127106.415 L18.4403 L hr⁻¹0.173287 hr⁻¹0.156595 hr⁻¹0.0074 L⁻¹6.82738 hr
1228101.231 L23.5235 L hr⁻¹0.243239 hr⁻¹0.243239 hr⁻¹0.01 L⁻¹4.41727 hr
133261.2703 L16.6357 L hr⁻¹0.287823 hr⁻¹0.287823 hr⁻¹0.0146 L⁻¹3.8292 hr
143389.8264 L20.1961 L hr⁻¹0.137327 hr⁻¹0.299737 hr⁻¹0.01 L⁻¹4.48313 hr
1534112.285 L23.4704 L hr⁻¹0.137327 hr⁻¹0.274653 hr⁻¹0.01 L⁻¹4.69174 hr
163593.1374 L24.4123 L hr⁻¹0.22397 hr⁻¹0.22397 hr⁻¹0.0096 L⁻¹3.94318 hr
1736129.094 L15.3457 L hr⁻¹0.137327 hr⁻¹0.114536 hr⁻¹0.008 L⁻¹8.54074 hr
183861.8756 L24.7525 L hr⁻¹0.400036 hr⁻¹missing0.0112 L⁻¹3.09497 hr
194057.7691 L18.0322 L hr⁻¹0.312142 hr⁻¹missing0.0154 L⁻¹3.18305 hr
204191.6955 L17.9874 L hr⁻¹0.20118 hr⁻¹0.173287 hr⁻¹0.0102 L⁻¹5.21775 hr
2142100.35 L17.3439 L hr⁻¹0.137327 hr⁻¹0.20118 hr⁻¹0.0098 L⁻¹5.72516 hr
224396.5568 L24.7181 L hr⁻¹0.22397 hr⁻¹0.22397 hr⁻¹0.0114 L⁻¹3.85494 hr
2344132.552 L31.0771 L hr⁻¹0.22397 hr⁻¹0.22397 hr⁻¹0.0076 L⁻¹4.36673 hr
244698.903 L17.349 L hr⁻¹0.137327 hr⁻¹0.173287 hr⁻¹0.0116 L⁻¹5.63225 hr
Calculate AUC at specific intervals

Calculation of AUC at specific time intervals and merge to the final report dataframe

auc0_12   = NCA.auc(pop, interval=(0,12).*timeu, method=:linuplogdown, sigdigits=3) #various other methods are :linear, :linlog
auc12_24  = NCA.auc(pop, interval=(12,24).*timeu, method=:linuplogdown, sigdigits=3)
final     = innerjoin(report, auc0_12, auc12_24, on = [:id], makeunique=true)

107 rows × 41 columns (omitted printing of 33 columns)

iddoseamttlagtmaxcmaxtlastclastclast_pred
Int64Quantit…Quantit…Quantit…Quantit…Quantit…Quantit…Quantit…
1250 mg0.0 hr1.0 hr0.37 mg L⁻¹24.0 hr0.01 mg L⁻¹0.00965 mg L⁻¹
2350 mg0.0 hr1.0 hr0.73 mg L⁻¹20.0 hr0.01 mg L⁻¹0.01 mg L⁻¹
31050 mg0.0 hr0.5 hr0.65 mg L⁻¹20.0 hr0.01 mg L⁻¹0.00983 mg L⁻¹
41450 mg0.0 hr0.75 hr0.5 mg L⁻¹24.0 hr0.02 mg L⁻¹0.0212 mg L⁻¹
51550 mg0.0 hr1.0 hr0.48 mg L⁻¹24.0 hr0.01 mg L⁻¹0.0131 mg L⁻¹
61650 mg0.0 hr0.75 hr0.5 mg L⁻¹20.0 hr0.01 mg L⁻¹0.00971 mg L⁻¹
71850 mg0.0 hr0.75 hr0.41 mg L⁻¹24.0 hr0.01 mg L⁻¹0.0133 mg L⁻¹
81950 mg0.0 hr0.75 hr0.41 mg L⁻¹16.0 hr0.01 mg L⁻¹0.00873 mg L⁻¹
92150 mg0.0 hr0.5 hr0.48 mg L⁻¹24.0 hr0.01 mg L⁻¹0.00626 mg L⁻¹
102350 mg0.0 hr0.5 hr0.47 mg L⁻¹20.0 hr0.01 mg L⁻¹0.01 mg L⁻¹
112750 mg0.0 hr0.5 hr0.37 mg L⁻¹24.0 hr0.01 mg L⁻¹0.01 mg L⁻¹
122850 mg0.0 hr0.5 hr0.5 mg L⁻¹16.0 hr0.01 mg L⁻¹0.0121 mg L⁻¹
133250 mg0.0 hr0.5 hr0.73 mg L⁻¹16.0 hr0.01 mg L⁻¹0.0111 mg L⁻¹
143350 mg0.0 hr0.5 hr0.5 mg L⁻¹20.0 hr0.01 mg L⁻¹0.00634 mg L⁻¹
153450 mg0.0 hr0.25 hr0.5 mg L⁻¹20.0 hr0.01 mg L⁻¹0.00672 mg L⁻¹
163550 mg0.0 hr0.5 hr0.48 mg L⁻¹16.0 hr0.01 mg L⁻¹0.00835 mg L⁻¹
173650 mg0.0 hr1.0 hr0.4 mg L⁻¹24.0 hr0.02 mg L⁻¹0.0227 mg L⁻¹
183850 mg0.0 hr0.75 hr0.56 mg L⁻¹12.0 hr0.01 mg L⁻¹0.01 mg L⁻¹
194050 mg0.0 hr0.25 hr0.77 mg L⁻¹12.0 hr0.02 mg L⁻¹0.02 mg L⁻¹
204150 mg0.0 hr0.5 hr0.51 mg L⁻¹20.0 hr0.01 mg L⁻¹0.0111 mg L⁻¹
214250 mg0.0 hr1.5 hr0.49 mg L⁻¹24.0 hr0.01 mg L⁻¹0.00743 mg L⁻¹
224350 mg0.0 hr0.5 hr0.57 mg L⁻¹16.0 hr0.01 mg L⁻¹0.00844 mg L⁻¹
234450 mg0.0 hr0.25 hr0.38 mg L⁻¹16.0 hr0.01 mg L⁻¹0.00905 mg L⁻¹
244650 mg0.0 hr1.0 hr0.58 mg L⁻¹24.0 hr0.01 mg L⁻¹0.0073 mg L⁻¹

You can select the colums that you wish to see in the output

Note: Since this drug is given orally the parameters returned by NCA are apparent Volume of Distribution (Vz/F) and Clearance (Cl/F) where F is the bioavailability.

nca_output_single = select(final, :doseamt, :kel, :half_life, :cmax, :tmax, :auclast, :aucinf_obs, :vz_f_obs, :cl_f_obs, :aumcinf_obs, :auc0_12, :auc12_24)

107 rows × 12 columns (omitted printing of 5 columns)

doseamtkelhalf_lifecmaxtmaxauclastaucinf_obs
Quantit…Quantit…Quantit…Quantit…Quantit…Quantit…Quantit…
150 mg0.159 hr⁻¹4.36 hr0.37 mg L⁻¹1.0 hr2.63 mg hr L⁻¹2.69 mg hr L⁻¹
250 mg0.173 hr⁻¹4.0 hr0.73 mg L⁻¹1.0 hr3.12 mg hr L⁻¹3.18 mg hr L⁻¹
350 mg0.205 hr⁻¹3.39 hr0.65 mg L⁻¹0.5 hr2.79 mg hr L⁻¹2.84 mg hr L⁻¹
450 mg0.136 hr⁻¹5.1 hr0.5 mg L⁻¹0.75 hr3.71 mg hr L⁻¹3.86 mg hr L⁻¹
550 mg0.151 hr⁻¹4.6 hr0.48 mg L⁻¹1.0 hr3.16 mg hr L⁻¹3.23 mg hr L⁻¹
650 mg0.197 hr⁻¹3.52 hr0.5 mg L⁻¹0.75 hr2.49 mg hr L⁻¹2.54 mg hr L⁻¹
750 mg0.148 hr⁻¹4.67 hr0.41 mg L⁻¹0.75 hr2.94 mg hr L⁻¹3.01 mg hr L⁻¹
850 mg0.246 hr⁻¹2.82 hr0.41 mg L⁻¹0.75 hr1.72 mg hr L⁻¹1.76 mg hr L⁻¹
950 mg0.184 hr⁻¹3.77 hr0.48 mg L⁻¹0.5 hr2.7 mg hr L⁻¹2.75 mg hr L⁻¹
1050 mg0.173 hr⁻¹4.0 hr0.47 mg L⁻¹0.5 hr2.26 mg hr L⁻¹2.32 mg hr L⁻¹
1150 mg0.173 hr⁻¹4.0 hr0.37 mg L⁻¹0.5 hr2.65 mg hr L⁻¹2.71 mg hr L⁻¹
1250 mg0.232 hr⁻¹2.98 hr0.5 mg L⁻¹0.5 hr2.08 mg hr L⁻¹2.13 mg hr L⁻¹
1350 mg0.272 hr⁻¹2.55 hr0.73 mg L⁻¹0.5 hr2.97 mg hr L⁻¹3.01 mg hr L⁻¹
1450 mg0.225 hr⁻¹3.08 hr0.5 mg L⁻¹0.5 hr2.43 mg hr L⁻¹2.48 mg hr L⁻¹
1550 mg0.209 hr⁻¹3.32 hr0.5 mg L⁻¹0.25 hr2.08 mg hr L⁻¹2.13 mg hr L⁻¹
1650 mg0.262 hr⁻¹2.64 hr0.48 mg L⁻¹0.5 hr2.01 mg hr L⁻¹2.05 mg hr L⁻¹
1750 mg0.119 hr⁻¹5.83 hr0.4 mg L⁻¹1.0 hr3.09 mg hr L⁻¹3.26 mg hr L⁻¹
1850 mg0.4 hr⁻¹1.73 hr0.56 mg L⁻¹0.75 hr2.0 mg hr L⁻¹2.02 mg hr L⁻¹
1950 mg0.312 hr⁻¹2.22 hr0.77 mg L⁻¹0.25 hr2.71 mg hr L⁻¹2.77 mg hr L⁻¹
2050 mg0.196 hr⁻¹3.53 hr0.51 mg L⁻¹0.5 hr2.73 mg hr L⁻¹2.78 mg hr L⁻¹
2150 mg0.173 hr⁻¹4.01 hr0.49 mg L⁻¹1.5 hr2.82 mg hr L⁻¹2.88 mg hr L⁻¹
2250 mg0.256 hr⁻¹2.71 hr0.57 mg L⁻¹0.5 hr1.98 mg hr L⁻¹2.02 mg hr L⁻¹
2350 mg0.234 hr⁻¹2.96 hr0.38 mg L⁻¹0.25 hr1.57 mg hr L⁻¹1.61 mg hr L⁻¹
2450 mg0.175 hr⁻¹3.95 hr0.58 mg L⁻¹1.0 hr2.82 mg hr L⁻¹2.88 mg hr L⁻¹

Compute the Statistics of the selected variables that you require

Stat_report = describe(nca_output_single)

12 rows × 8 columns (omitted printing of 3 columns)

variablemeanminmedianmax
SymbolQuantit…QuantityQuantit…Quantity
1doseamt50.0 mg50 mg50.0 mg50 mg
2kel0.20586 hr⁻¹0.119 hr⁻¹0.191 hr⁻¹0.4 hr⁻¹
3half_life3.53383 hr1.73 hr3.64 hr5.83 hr
4cmax0.515888 mg L⁻¹0.34 mg L⁻¹0.5 mg L⁻¹0.77 mg L⁻¹
5tmax0.595794 hr0.25 hr0.5 hr2.0 hr
6auclast2.55738 mg hr L⁻¹1.57 mg hr L⁻¹2.61 mg hr L⁻¹4.11 mg hr L⁻¹
7aucinf_obs2.61065 mg hr L⁻¹1.61 mg hr L⁻¹2.64 mg hr L⁻¹4.17 mg hr L⁻¹
8vz_f_obs98.729 L57.7 L98.5 L140.0 L
9cl_f_obs19.7794 L hr⁻¹12.0 L hr⁻¹18.9 L hr⁻¹31.1 L hr⁻¹
10aumcinf_obs13.6261 mg hr² L⁻¹5.12 mg hr² L⁻¹13.4 mg hr² L⁻¹29.1 mg hr² L⁻¹
11auc0_122.30904 mg hr L⁻¹1.47949 mg hr L⁻¹2.29028 mg hr L⁻¹3.49442 mg hr L⁻¹
12auc12_240.221197 mg hr L⁻¹0.02 mg hr L⁻¹0.208671 mg hr L⁻¹0.666289 mg hr L⁻¹

Multiple-dose NCA

Filter data for time >= 24 hrs to perform the Multiple-dose NCA

multiple_dose_data           = filter(x -> x.TIME > 24 , data)

1,712 rows × 6 columns

IDTIMECONCAMTROUTEII
Int64Float64Float64Int64StringInt64
1296.00.0150ev24
2296.250.430ev0
3296.50.460ev0
4296.750.40ev0
5297.00.370ev0
6297.50.330ev0
7298.00.310ev0
8298.50.270ev0
9299.00.230ev0
102100.00.230ev0
112102.00.160ev0
122104.00.130ev0
132108.00.060ev0
142112.00.040ev0
152116.00.020ev0
162120.00.010ev0
17396.00.050ev24
18396.250.660ev0
19396.50.670ev0
20396.750.620ev0
21397.00.610ev0
22397.50.610ev0
23398.00.520ev0
24398.50.390ev0

In the case of multiple-dose NCA the extra parameters which are calculated based on the dosing interval (τ) will be included in the output.

pop1       = read_nca( multiple_dose_data,
                       id    = :ID,
                       time  = :TIME,
                       conc  = :CONC,
                       amt   = :AMT,
                       route = :ROUTE,
                       ii    = :II,        # please specify II for Multiple-dose NCA
                       llq   = 0.001concu,
                       timeu = timeu,
                       concu = concu,
                       amtu  = amtu)
report1    = NCAReport(pop1, sigdigits=3)

107 rows × 48 columns (omitted printing of 40 columns)

iddoseamttlagtmaxcmaxcmaxsstlastclast
Int64Quantit…Quantit…Quantit…Quantit…Quantit…Quantit…Quantit…
1250 mg0.0 hr0.5 hr0.46 mg L⁻¹0.467 mg L⁻¹24.0 hr0.01 mg L⁻¹
2350 mg0.0 hr0.5 hr0.67 mg L⁻¹0.672 mg L⁻¹20.0 hr0.01 mg L⁻¹
31050 mg0.0 hr0.5 hr0.69 mg L⁻¹0.701 mg L⁻¹20.0 hr0.01 mg L⁻¹
41450 mg0.0 hr0.5 hr0.53 mg L⁻¹0.552 mg L⁻¹24.0 hr0.02 mg L⁻¹
51550 mg0.0 hr0.25 hr0.46 mg L⁻¹0.484 mg L⁻¹24.0 hr0.02 mg L⁻¹
61650 mg0.0 hr0.5 hr0.5 mg L⁻¹0.503 mg L⁻¹20.0 hr0.01 mg L⁻¹
71850 mg0.0 hr0.5 hr0.44 mg L⁻¹0.468 mg L⁻¹24.0 hr0.02 mg L⁻¹
81950 mg0.0 hr0.5 hr0.4 mg L⁻¹0.403 mg L⁻¹16.0 hr0.01 mg L⁻¹
92150 mg0.0 hr0.5 hr0.48 mg L⁻¹0.483 mg L⁻¹20.0 hr0.01 mg L⁻¹
102350 mg0.0 hr0.5 hr0.52 mg L⁻¹0.528 mg L⁻¹20.0 hr0.01 mg L⁻¹
112750 mg0.0 hr0.75 hr0.38 mg L⁻¹0.386 mg L⁻¹24.0 hr0.01 mg L⁻¹
122850 mg0.0 hr0.75 hr0.52 mg L⁻¹0.523 mg L⁻¹20.0 hr0.01 mg L⁻¹
133250 mg0.0 hr0.5 hr0.84 mg L⁻¹0.841 mg L⁻¹16.0 hr0.01 mg L⁻¹
143350 mg0.0 hr0.75 hr0.5 mg L⁻¹0.508 mg L⁻¹20.0 hr0.01 mg L⁻¹
153450 mg0.0 hr0.25 hr0.47 mg L⁻¹0.471 mg L⁻¹16.0 hr0.01 mg L⁻¹
163550 mg0.0 hr0.5 hr0.59 mg L⁻¹0.591 mg L⁻¹16.0 hr0.01 mg L⁻¹
173650 mg0.0 hr0.75 hr0.37 mg L⁻¹0.379 mg L⁻¹24.0 hr0.02 mg L⁻¹
183850 mg0.0 hr0.5 hr0.66 mg L⁻¹0.66 mg L⁻¹12.0 hr0.02 mg L⁻¹
194050 mg0.0 hr1.0 hr0.7 mg L⁻¹0.701 mg L⁻¹16.0 hr0.01 mg L⁻¹
204150 mg0.0 hr0.25 hr0.5 mg L⁻¹0.506 mg L⁻¹24.0 hr0.01 mg L⁻¹
214250 mg0.0 hr0.5 hr0.51 mg L⁻¹0.517 mg L⁻¹24.0 hr0.01 mg L⁻¹
224350 mg0.0 hr0.5 hr0.53 mg L⁻¹0.531 mg L⁻¹16.0 hr0.01 mg L⁻¹
234450 mg0.0 hr0.5 hr0.33 mg L⁻¹0.331 mg L⁻¹16.0 hr0.01 mg L⁻¹
244650 mg0.0 hr0.75 hr0.53 mg L⁻¹0.536 mg L⁻¹24.0 hr0.01 mg L⁻¹

Similar to the Single-NCA you can compute individual parameters and merge them to the final report

You can select the colums that you wish to see in the output

nca_output_multiple = select(report1, :doseamt, :kel, :half_life, :tmax, :cmax, :auclast, :auc_tau_obs, :vz_f_obs, :cl_f_obs, :aumcinf_obs, :tau, :cavgss)

107 rows × 12 columns (omitted printing of 5 columns)

doseamtkelhalf_lifetmaxcmaxauclastauc_tau_obs
Quantit…Quantit…Quantit…Quantit…Quantit…Quantit…Quantit…
150 mg0.173 hr⁻¹4.0 hr0.5 hr0.46 mg L⁻¹2.65 mg hr L⁻¹2.65 mg hr L⁻¹
250 mg0.244 hr⁻¹2.84 hr0.5 hr0.67 mg L⁻¹3.33 mg hr L⁻¹3.33 mg hr L⁻¹
350 mg0.173 hr⁻¹4.0 hr0.5 hr0.69 mg L⁻¹2.84 mg hr L⁻¹2.84 mg hr L⁻¹
450 mg0.135 hr⁻¹5.13 hr0.5 hr0.53 mg L⁻¹3.83 mg hr L⁻¹3.83 mg hr L⁻¹
550 mg0.125 hr⁻¹5.56 hr0.25 hr0.46 mg L⁻¹3.28 mg hr L⁻¹3.28 mg hr L⁻¹
650 mg0.209 hr⁻¹3.31 hr0.5 hr0.5 mg L⁻¹2.64 mg hr L⁻¹2.64 mg hr L⁻¹
750 mg0.117 hr⁻¹5.94 hr0.5 hr0.44 mg L⁻¹2.98 mg hr L⁻¹2.98 mg hr L⁻¹
850 mg0.199 hr⁻¹3.48 hr0.5 hr0.4 mg L⁻¹1.62 mg hr L⁻¹1.62 mg hr L⁻¹
950 mg0.213 hr⁻¹3.25 hr0.5 hr0.48 mg L⁻¹2.8 mg hr L⁻¹2.8 mg hr L⁻¹
1050 mg0.173 hr⁻¹4.0 hr0.5 hr0.52 mg L⁻¹2.38 mg hr L⁻¹2.38 mg hr L⁻¹
1150 mg0.173 hr⁻¹4.0 hr0.75 hr0.38 mg L⁻¹2.62 mg hr L⁻¹2.62 mg hr L⁻¹
1250 mg0.216 hr⁻¹3.21 hr0.75 hr0.52 mg L⁻¹2.12 mg hr L⁻¹2.12 mg hr L⁻¹
1350 mg0.275 hr⁻¹2.52 hr0.5 hr0.84 mg L⁻¹3.12 mg hr L⁻¹3.12 mg hr L⁻¹
1450 mg0.173 hr⁻¹4.0 hr0.75 hr0.5 mg L⁻¹2.3 mg hr L⁻¹2.3 mg hr L⁻¹
1550 mg0.256 hr⁻¹2.71 hr0.25 hr0.47 mg L⁻¹2.06 mg hr L⁻¹2.06 mg hr L⁻¹
1650 mg0.253 hr⁻¹2.74 hr0.5 hr0.59 mg L⁻¹2.03 mg hr L⁻¹2.03 mg hr L⁻¹
1750 mg0.157 hr⁻¹4.43 hr0.75 hr0.37 mg L⁻¹3.32 mg hr L⁻¹3.32 mg hr L⁻¹
1850 mg0.304 hr⁻¹2.28 hr0.5 hr0.66 mg L⁻¹1.93 mg hr L⁻¹1.93 mg hr L⁻¹
1950 mg0.283 hr⁻¹2.45 hr1.0 hr0.7 mg L⁻¹2.52 mg hr L⁻¹2.52 mg hr L⁻¹
2050 mg0.182 hr⁻¹3.81 hr0.25 hr0.5 mg L⁻¹2.72 mg hr L⁻¹2.72 mg hr L⁻¹
2150 mg0.177 hr⁻¹3.91 hr0.5 hr0.51 mg L⁻¹2.77 mg hr L⁻¹2.77 mg hr L⁻¹
2250 mg0.256 hr⁻¹2.71 hr0.5 hr0.53 mg L⁻¹2.03 mg hr L⁻¹2.03 mg hr L⁻¹
2350 mg0.231 hr⁻¹3.0 hr0.5 hr0.33 mg L⁻¹1.47 mg hr L⁻¹1.47 mg hr L⁻¹
2450 mg0.186 hr⁻¹3.73 hr0.75 hr0.53 mg L⁻¹2.84 mg hr L⁻¹2.84 mg hr L⁻¹

Compute the Statistics of the selected variables that you require

Stat_report1        = describe(nca_output_multiple)

12 rows × 8 columns (omitted printing of 3 columns)

variablemeanminmedianmax
SymbolQuantit…QuantityQuantit…Quantity
1doseamt50.0 mg50 mg50.0 mg50 mg
2kel0.206701 hr⁻¹0.117 hr⁻¹0.188 hr⁻¹0.363 hr⁻¹
3half_life3.5172 hr1.91 hr3.69 hr5.94 hr
4tmax0.570093 hr0.25 hr0.5 hr1.5 hr
5cmax0.521215 mg L⁻¹0.32 mg L⁻¹0.51 mg L⁻¹0.84 mg L⁻¹
6auclast2.58972 mg hr L⁻¹1.47 mg hr L⁻¹2.64 mg hr L⁻¹4.11 mg hr L⁻¹
7auc_tau_obs2.58972 mg hr L⁻¹1.47 mg hr L⁻¹2.64 mg hr L⁻¹4.11 mg hr L⁻¹
8vz_f_obs97.3551 L57.7 L97.0 L150.0 L
9cl_f_obs19.6561 L hr⁻¹12.0 L hr⁻¹18.6 L hr⁻¹33.0 L hr⁻¹
10aumcinf_obs13.8078 mg hr² L⁻¹5.0 mg hr² L⁻¹13.5 mg hr² L⁻¹29.7 mg hr² L⁻¹
11tau24.0 hr24.0 hr24.0 hr24.0 hr
12cavgss0.110213 mg L⁻¹0.0631 mg L⁻¹0.112 mg L⁻¹0.174 mg L⁻¹

Documentation

Please refer to the NCA Documentation for any further help.

Save NCA Report

The NCA report can be saved as a CSV file for further analysis

CSV.write("NCA_single_dose.csv", final)      # Single-NCA final report
CSV.write("NCA_multiple_dose.csv", report1)  # Multiple-NCA final report
"NCA_multiple_dose.csv"