Skip to content

pbpk regional absorption

The derivation of a regional absorption profile with the model from a release study: release_auc_ratios (the AUC of a solution released in a segment relative to the oral solution), derive_regional_absorption (the factors of a RegionalAbsorption which give the reported ratios) and regional_key, see Intestine and routes.

Derive a regional absorption profile with the model from a release study.

A regional absorption study releases a solution of the drug in a segment of the intestine (an intubation, a remote-controlled capsule) and reports its exposure relative to an oral solution, e.g. the AUC of apixaban released in the distal small bowel 0.40 and in the ascending colon 0.16 of the oral solution (Byon 2018). The factors of a RegionalAbsorption profile which give these ratios depend on the rest of the absorption of the model (ka, fabs, an efflux, the first pass), so they are derived with the model:

  • release_auc_ratios simulates the oral solution (SOLDOSE_<s>) and the same dose put dissolved into the lumen of each release segment (GU__Clumen_<seg>_<s>) and gives the AUC of the arm vein relative to the oral solution;
  • derive_regional_absorption finds the factors for which the ratios are the reported ones: one factor per release segment, the factor of the profile which scales the absorption there (regional_key: the segment itself in the small intestine, the group colon in the large intestine), each the root of its ratio (brentq) with the others fixed, in turns until no factor moves (a release reaches the other regions little, so a few turns converge).

Because the ratios depend on the fitted absorption, a model derives the factors on its adopted fit, writes them into its profile (a Value with the source of the study) and fits again from the adopted fit, until the factors derived on the fit are those of the model. The model must have the factors (its profile names them, e.g. with a first guess) and an oral solution of the substance.

DAY module-attribute

DAY = 24 * 60.0

A day [min].

regional_key

regional_key(segment)

The key of the profile whose factor scales the absorption of a release segment.

Parameters:

Name Type Description Default
segment str

the token of an absorbing segment (du to rec).

required

Returns:

Type Description
str

The segment itself in the small intestine, the group colon in the

str

large intestine (caecum to rectum).

Raises:

Type Description
ValueError

for the stomach or an unknown token.

release_auc_ratios

release_auc_ratios(
    r,
    substance,
    segments,
    dose,
    *,
    factors=None,
    changes=None,
    end=14 * DAY,
    points=20161,
    observable=None,
)

Get the AUC of a solution released in each segment relative to the oral solution.

Every simulation starts from the initial values of the model in the condition of the study (changes, set as initial values) with the factors set; the oral solution is the dose state SOLDOSE_<s>, a release the dose dissolved in the lumen of the segment (dose/Mr/Vlumen). The AUC is the trapezoid of observable over points equidistant times from 0 to end. Afterwards the condition is taken back and every value of r is reset to its initial value (reset of all values): a value set on r before the call is kept only if it was set as an initial value.

Parameters:

Name Type Description Default
r RoadRunner

the model, a roadrunner of the flat model with the tolerances of the derivation (e.g. absolute 1e-14, relative 1e-10).

required
substance str

the substance id.

required
segments Sequence[str]

the release segments (ile2, asc).

required
dose float

the dose [mg].

required
factors Mapping[str, float] | None

the factors of the profile by key (regional_key), those of the model if None.

None
changes Mapping[str, float] | None

the condition of the study, initial values by id (FED, BW, an activity); none if None.

None
end float

the end of the simulations [min], long enough for the AUC.

14 * DAY
points int

the number of time points.

20161
observable str | None

the id whose AUC is compared, the arm vein Carm_<s> by default.

None

Returns:

Type Description
dict[str, float]

The ratio by release segment.

Raises:

Type Description
ValueError

for a segment which does not absorb, or a model without the oral solution, a lumen, a factor or a changed id.

derive_regional_absorption

derive_regional_absorption(
    r,
    substance,
    targets,
    dose,
    *,
    changes=None,
    bounds=(0.0001, 10.0),
    xtol=1e-06,
    max_turns=20,
    end=14 * DAY,
    points=20161,
    observable=None,
)

Derive the factors of a profile which give the ratios of a release study.

One factor per release segment (regional_key: the segment in the small intestine, colon in the large one, so two release segments of the large intestine are refused), each the root of the ratio of its segment within bounds with the other factors fixed, in the order of targets and in turns, starting from the factors of the model, until no factor moves by more than xtol. Afterwards r is reset as by release_auc_ratios: the factors of the model, not the derived ones.

Parameters:

Name Type Description Default
r RoadRunner

the model, see release_auc_ratios.

required
substance str

the substance id.

required
targets Mapping[str, float]

the reported AUC of the release relative to the oral solution by release segment ({"ile2": 0.40, "asc": 0.16}).

required
dose float

the dose of the study [mg].

required
changes Mapping[str, float] | None

the condition of the study, see release_auc_ratios.

None
bounds tuple[float, float]

the bracket of every factor.

(0.0001, 10.0)
xtol float

the tolerance of a factor.

1e-06
max_turns int

the most turns over the factors.

20
end float

see release_auc_ratios.

14 * DAY
points int

see release_auc_ratios.

20161
observable str | None

see release_auc_ratios.

None

Returns:

Type Description
dict[str, float]

The factors by key of the profile ({"ile2": 0.149, "colon": 0.0567}).

Raises:

Type Description
ValueError

for two release segments of one factor, a ratio which no factor within bounds gives, or a model without what the derivation needs.

RuntimeError

if the factors do not converge in max_turns turns.