Skip to content

nca.urine

Non-compartmental analysis of urinary excretion data.

A urine study does not sample a concentration over time, it collects the urine of a subject over intervals \([s_k, e_k]\) and measures the volume and the concentration of the substance in every collection. The analysis runs on the excretion rate curve: the rate

\[\dot A_k = \frac{A_k}{e_k - s_k}\]

of every collection, plotted against the midpoint \(\bar t_k = (s_k + e_k)/2\) of its interval. The rate curve is analysed like a concentration curve (Phoenix WinNonlin urine models 210 to 212, which mirror the plasma models 200 to 202), so the areas, the peak and the terminal regression come from the same vectorized core as every other analysis of the package (pkpdutils.nca.nca.compute_parameters) and only the names differ: aurc_last is the auc_last of the rate curve, max_rate its cmax and mid_pt_last its tlast.

The area under the rate curve is an amount, since a rate times a time is an amount, and \(\mathrm{AURC}_{0\text{-}\infty}\) is the amount the subject would excrete in total. What the subject did excrete over the collections is amount_recovered, the plain sum \(A_e = \sum_k A_k\), and percent_recovered is that amount as a percentage of the dose. With the plasma curve of the same subject the renal clearance

\[\mathrm{CL}_R = \frac{A_e}{\mathrm{AUC}}\]

follows over the same window, the one parameter Phoenix, PKanalix and Pumas all leave to the user.

Excretion

Bases: BaseModel

Amounts of a substance collected over urine collection intervals.

One subject and one substance: the collection intervals \([s_k, e_k]\) with the volume of every collection and either the concentration measured in it or the amount it contains. The intervals are sorted by their start on construction, have to be strictly increasing (\(s_k < e_k\)) and may not overlap (\(e_k \le s_{k+1}\)); a gap between two collections is allowed, since a subject does not void continuously.

The amount and the concentration are two views of the same measurement and the volume connects them, \(A_k = c_k V_k\): give either one together with the volume and the other is derived, or give the amount alone when the volumes were not recorded (vol_ur is then NaN). The product is taken as it is given, so the concentration has to be in unit / volume_unit: with unit="mg" and volume_unit="ml" it is in mg/ml, not in mg/l.

Attributes:

Name Type Description
start ndarray

start of every collection interval, in time_unit

end ndarray

end of every collection interval, in time_unit

unit str

unit of the amount, e.g. "mg"

time_unit str

unit of start and end, e.g. "hr"

volume ndarray | None

volume of every collection, in volume_unit; None when the volumes were not recorded

concentration ndarray | None

concentration in every collection, in unit / volume_unit; derived from amount and volume when it is not given

amount ndarray | None

amount in every collection, in unit; derived from concentration and volume when it is not given

volume_unit str | None

unit of volume, e.g. "ml"; required with a volume

dose Dose | None

the dose the collections follow, whose amount percent_recovered refers to and whose route decides the value of the rate curve at the dose time

substance str

name of the substance

label str | None

label of the subject or of the profile

n_intervals property

n_intervals

Number of collection intervals.

duration property

duration

Length \(e_k - s_k\) of every collection interval.

midpoint property

midpoint

Midpoint \(\bar t_k = (s_k + e_k)/2\) of every collection interval.

The time the excretion rate of an interval is reported at, the convention of Phoenix WinNonlin, PKanalix, Pumas and PKNCA.

rate property

rate

Excretion rate \(\dot A_k = A_k / (e_k - s_k)\) of every collection interval.

cumulative property

cumulative

Amount recovered up to the end of every collection interval, \(\sum_{j \le k} A_j\).

total_amount property

total_amount

Amount recovered over every collection interval, \(A_e = \sum_k A_k\).

total_volume property

total_volume

Volume collected over every interval, NaN without volumes.

route property

route

Route of the dose, None without a dose.

rate_unit property

rate_unit

Unit of the excretion rate, the amount unit per time unit.

concentration_unit property

concentration_unit

Unit of the concentration in the collections, None without volumes.

nca_urine

nca_urine(excretion, *, options=None, plasma=None)

Non-compartmental analysis of the urinary excretion of one subject.

The excretion rate \(\dot A_k = A_k / (e_k - s_k)\) of every collection is analysed against the midpoint \(\bar t_k\) of its interval, with the same trapezoid rules and the same terminal regression as a concentration curve (Phoenix WinNonlin urine models 210 to 212): the area under the rate curve is an amount, so

\[\mathrm{AURC}_{0\text{-}t_\mathrm{last}} = \sum_k \int_{\bar t_k}^{\bar t_{k+1}} \dot A(t)\, \mathrm dt, \qquad \mathrm{AURC}_{0\text{-}\infty} = \mathrm{AURC}_{0\text{-}t_\mathrm{last}} + \frac{\dot A_\mathrm{last}}{\lambda_z},\]

and \(\lambda_z\) is the negative slope of \(\ln \dot A_k\) against \(\bar t_k\), which is the elimination rate constant of the substance when the renal elimination follows the plasma. The area starts at the dose (\(t = 0\)) the way it does for a concentration curve: at 0 for an extravascular dose, at the back-extrapolated rate of an intravenous bolus (NCAOptions.c0_method) and at the first midpoint without a dose.

What was collected is reported as it was measured: \(A_e = \sum_k A_k\) (amount_recovered), \(100\,A_e/D\) (percent_recovered) and \(\sum_k V_k\) (vol_ur). With the plasma curve of the same subject the renal clearance

\[\mathrm{CL}_R = \frac{A_e}{\mathrm{AUC}_{s_1\text{-}e_K}}\]

is computed over the collection span, the window the amount belongs to (EMA CPMP/EWP/QWP/1401/98 Rev. 1 asks for \(A_e\) and, where it applies, the maximum rate; the CDISC codelist names the parameters AURC*, RCAMINT, RCPCINT, VOLPK and RENALCL).

Only auc_method, c0_method, terminal and extrapolation_warning of the options are read: the rules which read a concentration (lloq, blq, kind, partial_aucs, acceptance, the uncertainty) do not apply to a rate curve and are ignored.

Parameters:

Name Type Description Default
excretion Excretion

the collections of one subject

required

Other Parameters:

Name Type Description
options NCAOptions | None

the options, defaults for None

plasma NCAResult | Timecourse | Timecourses | None

the plasma curve of the same subject (a Timecourse or a batch of one sample), whose area over the collection span \([s_1, e_K]\) the renal clearance divides by, or the NCAResult of that curve, whose auc_last is taken instead; without it the result carries no clr

Returns:

Type Description
NCAResult

The parameters of the excretion without sample dimensions, with the

NCAResult

rate curve as the point variables rate and midpoint over the

NCAResult

dimension collection.