opendose_poppk.covariate

opendose_poppk.covariate

Covariate modeling for population pharmacokinetics.

Classes

CovariateModel : Apply covariates to PK parameters via Power Model

class opendose_poppk.covariate.CovariateModel(pk: PKModel, omega: dict | None = None, betas: dict | None = None, references: dict | None = None)

Bases: object

Apply covariates to PK parameters via Power Model.

Formula

θᵢ = θ_pop · ∏ (COVₖ / refₖ)^βₖ · exp(ηᵢ)

Where:

θ_pop → typical population parameter COVₖ → patient’s covariate value refₖ → reference value (median) βₖ → effect coefficient (beta) ηᵢ → random deviation ~ N(0, ω²)

Example

>>> pk  = PKModel(F=0.8, ka=1.8, ke=0.28, Vd=65)
>>> cov = CovariateModel(pk)
>>> p   = cov.individualize({"weight": 90, "crcl": 50}, sex="M")
>>> print(p)  # {"F": ..., "ka": ..., "ke": ..., "Vd": ...}
add_covariate(name: str, reference: float, betas: dict)

Register a new covariate.

Example

>>> cov.add_covariate("albumin", reference=4.0, betas={"Vd": 0.30})
individualize(covariates: dict, sex: str = 'M', rng: Generator | None = None) dict

Generate individual PK parameters with covariates + IIV.

Parameters:
  • covariates ({"weight": 85.0, "crcl": 60.0, "age": 65.0, ...})

  • sex ("M" or "F" (affects Vd))

  • rng (random number generator (optional))

Returns:

{“F”

Return type:

…, “ka”: …, “ke”: …, “Vd”: …}

set_beta(covariate: str, param: str, beta: float)

Update the beta coefficient of a covariate.