Back to Claude Scientific Skills

Non-compartmental analysis: conventions that change the answer

skills/pkpd-modeling/references/nca-conventions.md

2.61.06.7 KB
Original Source

Non-compartmental analysis: conventions that change the answer

NCA is arithmetic on a concentration-time curve. What makes two analyses of the same data disagree is never the arithmetic — it is the four conventions below, which are frequently left unstated.

1. Which trapezoidal rule

RuleSegment AUCWhen
Linear(C1+C2)/2 * dtRising phase; sparse data; regulatory default for some agencies on ascending segments
Linear-up / log-downlinear while rising, log while fallingThe usual default for a drug with log-linear decline
Log-linear(C1-C2)/k, k = ln(C1/C2)/dtWhole curve; fails on any rising or flat segment

Linear trapezoid overestimates AUC on a convex declining curve, because the chord lies above the exponential. The error grows with the sampling interval, so a sparse late-phase schedule biases AUC upward under the linear rule and the two rules can differ by several percent.

Under log-down, the AUMC segment is

AUMC = (t1*C1 - t2*C2)/k + (C1 - C2)/k^2      with k = ln(C1/C2)/(t2 - t1)

which is not what you get by applying the AUC substitution naively.

2. How lambda_z was selected

The dominant convention: fit ln C on time over the last three quantifiable points, extend the window backwards one point at a time, and keep the longer window only when adjusted r-squared improves by more than 0.0001.

  • Plain r-squared is monotone in the number of points, so it always selects the longest window. Adjusted r-squared is the only version of this rule that discriminates.
  • Points at or before Tmax are never eligible. Including Tmax fits the tail of absorption, which biases lambda_z upward and therefore half-life, Vz and AUCinf downward.
  • Trailing BLQ samples are excluded from the regression, not set to zero — a zero cannot be log-transformed and a half-LLOQ substitution in the tail flattens the slope.

Reportability criteria, all conventions rather than regulation, and all worth pre-specifying:

DiagnosticUsual thresholdWhat it means when it fails
Points in the window≥ 3The slope is an interpolation between two points
Adjusted r-squared≥ 0.80 (sometimes 0.85)The terminal phase is not log-linear, or is noise
Span ratio: window duration / t½≥ 2The true terminal phase may not have been reached
% AUC extrapolated≤ 20%AUCinf is driven by the fit, not by data

A profile can pass all four and still be wrong if sampling stopped during a distribution phase: the "terminal" slope is then the beta phase of a drug whose gamma phase was never observed, and Vz and t½ are both underestimated. Only the sampling duration relative to the true terminal half-life fixes this, and NCA cannot detect it.

3. What happened to BLQ values

RuleEffect
Set to zeroStandard for leading BLQ before the first quantifiable sample
LLOQ/2Common for embedded BLQ; biases AUC upward slightly and t½ downward
Treated as missingStandard for trailing BLQ; avoids fabricating a tail

The usual regulatory-acceptable combination is: leading BLQ = 0, embedded BLQ = 0 or LLOQ/2 with the choice stated, trailing BLQ excluded. Whatever you choose, apply it identically to every profile and to every treatment arm — a rule applied to the test formulation and not the reference biases the ratio directly.

4. Observed or predicted Clast

AUCinf_obs  = AUClast + Clast_observed  / lambda_z
AUCinf_pred = AUClast + Clast_predicted / lambda_z     (Clast_predicted from the lambda_z fit)

They differ whenever the last observation sits off the fitted line, which is exactly when the last observation is noisy. _pred is more stable; _obs is more common. Report which.

Parameter definitions

ParameterDefinitionNotes
Cmax, TmaxHighest observed concentration and its timeObserved values, never interpolated. Tmax is summarised as median and range, not mean and SD
AUClastAUC to the last quantifiable concentrationThe only exposure metric that involves no extrapolation
AUCinfAUClast + Clast/lambda_z
AUMCinfAUMClast + tlast·Clast/λz + Clast/λz²
MRTAUMCinf/AUCinfSubtract Tinf/2 for a zero-order infusion
CL or CL/FDose/AUCinfApparent (/F) for any extravascular route
Vz or Vz/FDose/(λz · AUCinf)Terminal-phase volume; depends on λz and inherits its error
VssCL · MRTIntravenous only. Vss from extravascular data is not defined, because MRT then includes mean absorption time
AUC(0-tau)AUC over one dosing interval at steady stateThe reportable exposure metric at steady state
CavgAUC(0-tau)/tau
PTF%100·(Cmax − Cmin)/CavgPeak-trough fluctuation
Swing(Cmax − Cmin)/CminMore sensitive than PTF to a low trough
RacAUC(0-tau),ss / AUC(0-tau),first doseObserved accumulation; compare with 1/(1 − e^(−λz·tau))

Vz versus Vss. Vz is a terminal-phase parameter and is systematically larger than Vss for a multi-compartment drug. They are not alternative estimates of the same thing, and a covariate model built on one does not transfer to the other.

Steady state

Do not compute AUCinf from a truncated steady-state profile. The nca.py extrapolation finding fires on exactly this, because the tail beyond tau is not observed and the extrapolated area is a fiction. Report AUC(0-tau).

Attainment of steady state should be demonstrated, not assumed — by trough concentrations across at least three consecutive intervals showing no trend, not by counting half-lives, because the half life you would count with is the one you are trying to estimate.

Urinary data

  • Ae — cumulative amount excreted unchanged; fe = Ae(0-inf)/Dose
  • CLr = Ae(0-t)/AUC(0-t) over the same interval; mismatching the intervals is the standard error
  • CLnr = CL − CLr

Incomplete collection biases fe and CLr downward and is not detectable from the data alone.

Sparse sampling

With one or two samples per subject, per-subject NCA is not possible. The Bailer method and its Nedelman-Jia extension estimate a mean AUC and its standard error across a batch design. Do not average per-subject AUCs computed from single points; do not run the destructive-sampling data through an individual NCA and summarise the result.

Reporting

State, for every NCA: the trapezoidal rule; the BLQ rule at each position; the lambda_z selection rule with the window and number of points per subject; whether AUCinf is observed- or predicted-based; and the exclusion criteria applied, decided before unblinding. Summarise exposure metrics as geometric mean with geometric CV%, and Tmax as median with range.