Noncompartmental Analysis (NCA)

Noncompartmental Analysis (NCA)

NCA is performed in Pumas by creating NCASubject and NCAPopulation types which then preprocess the data to allow for easy generation of all NCA values. These types come with plotting, DataFrame, and report overloads to ease the analysis process.

The NCA Functions

The NCA functions can perform calculations on both NCAPopulation and NCASubject. When the input is a NCAPopulation, then the output is a DataFrame, and when the input is a NCASubject, the output is a number.

Keyword Arguments

The following keyword arguments apply to all NCA functions:

NCA Function List

For urine analysis the functions are:

These functions are all accessed from within the NCA submodule. For example, to use auc on NCAPopulation, one would use NCA.auc(pop).

Analysis Functionality (Plots, Reports, DataFrame)

To plot NCASubject or NCAPopulation:

plot(subj; linear=true, loglinear=true, kwargs...)

when linear=true the plot in linear-linear scale will be shown, and when loglinear=true the plot in linear-logarithmic scale will be shown. Please consult Plots.jl's documentation for more information on the additional arguments and plotting functions.

To report NCA quantities in DataFrame:

report = NCAReport(pop; sigdigits=nothing, kwargs...)
report_df = to_dataframe(report)

sigdigits defaults to nothing, so all reporting quantities are in full Float64 precision. To truncate extraneous digits, one can do sigdigits=4. One can put additional arguments (kwargs...) to NCAReport, and they will be passed all NCA functions.


The PumasNCADF is a standardized format for tabular data for NCA. The format has the following columns:

For urine analysis, the format has the follows columns:

Parsing PumasNCADF

The parsing function for the PumasNCADF is as follows:

read_nca(df; group=nothing, ii=:ii, ss=:ss, blq=:blq
                  concu=true, timeu=true, amtu=true, volumeu=true, verbose=true)

These arguments are: