Skip to content

fit.proportionality

Dose proportionality by the power model and the confidence interval criterion.

With AUC = a D^b the exposure is dose proportional when b = 1. Smith et al. (2000) accept proportionality over a dose range r = D_high / D_low when the confidence interval of b lies within [1 + ln(theta_L) / ln(r), 1 + ln(theta_H) / ln(r)] with the acceptance limits (theta_L, theta_H) = (0.8, 1.25) of the dose-normalized exposure ratio.

ProportionalityResult dataclass

ProportionalityResult(
    slope,
    ci_low,
    ci_high,
    bounds,
    proportional,
    inconclusive,
    dose_range,
    criterion,
)

Verdict of the confidence interval criterion of dose proportionality.

The three variables of the fit (slope, ci_low, ci_high) and the two verdicts (proportional, inconclusive) are xarray.DataArray objects over the sample dimensions of the fit, 0-D for a fit of one dose escalation; bounds, dose_range and criterion describe the criterion itself and are the same for every sample. Use sel to pick one sample.

Attributes:

Name Type Description
slope DataArray

the exponent b of the power model

ci_low DataArray

lower bound of the confidence interval of b

ci_high DataArray

upper bound of the confidence interval of b

bounds tuple[float, float]

the acceptance bounds of b, (bound_low, bound_high)

proportional DataArray

whether the interval of b lies inside bounds

inconclusive DataArray

whether the interval overlaps bounds without lying inside

dose_range tuple[float, float]

lowest and highest dose the criterion refers to

criterion tuple[float, float]

acceptance limits of the dose-normalized exposure ratio

sel

sel(**indexers)

The verdict of one sample, selected by coordinate label.

Parameters:

Name Type Description Default
**indexers Any

coordinate label per sample dimension.

{}

Returns:

Type Description
ProportionalityResult

The result of the selected sample, with 0-D variables.

to_dict

to_dict()

The fields as a dictionary of plain python values.

Returns:

Type Description
dict[str, Any]

Field name to value; the variables of a 0-D result are floats and

dict[str, Any]

booleans, those of a batch result nested lists.

proportionality_test

proportionality_test(
    result, *, dose_range, criterion=(0.8, 1.25)
)

Apply the confidence interval criterion to the exponent of a power model fit.

The bounds of the exponent are bound_low = 1 + ln(theta_L) / ln(r) and bound_high = 1 + ln(theta_H) / ln(r), with r = D_high / D_low of dose_range and the acceptance limits (theta_L, theta_H) of criterion (Smith et al. 2000). proportional is set when the confidence interval of b lies inside [bound_low, bound_high]; inconclusive when it overlaps the bounds without lying inside.

Parameters:

Name Type Description Default
result FitResult

fit of Power (or Allometric with a free exponent), with b, b_ci_low, b_ci_high

required
dose_range tuple[float, float]

lowest and highest dose of the range the criterion refers to

required
criterion tuple[float, float]

acceptance limits of the dose-normalized exposure ratio

(0.8, 1.25)

Returns:

Type Description
ProportionalityResult

The verdict over the sample dimensions of the fit; the variables carry

ProportionalityResult

no unit, the exponent and the verdicts are dimensionless by

ProportionalityResult

construction.

Raises:

Type Description
ValueError

if the result has no exponent b with a confidence interval, or dose_range or criterion is not 0 < low < high.

proportionality_table

proportionality_table(result, *, digits=3)

The dose proportionality table of a publication: one row per sample, formatted.

The verdict of the confidence interval criterion as a study reports it: the exponent of the power model with its interval, the acceptance bounds the criterion derives from the dose range, and the verdict (Smith et al. 2000). A result of one dose escalation is one row, a result over sample dimensions one row per sample.

Parameters:

Name Type Description Default
result ProportionalityResult

the verdict of proportionality_test.

required
digits int

significant digits of the numbers.

3

Returns:

Type Description
DataFrame

The table with the sample coordinates and the columns slope,

DataFrame

ci_low, ci_high, bound_low, bound_high, dose_low,

DataFrame

dose_high and verdict ("proportional", "inconclusive" or

DataFrame

"not proportional"); every cell is a string.