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:
objectApply 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.