Source code for sbmlsim.examples.experiments.midazolam.fitting_problems

"""
Definition of parameter fitting problems
"""
from sbmlsim.examples.experiments.midazolam import MIDAZOLAM_PATH
from sbmlsim.examples.experiments.midazolam.experiments.kupferschmidt1995 import (
    Kupferschmidt1995,
)
from sbmlsim.examples.experiments.midazolam.experiments.mandema1992 import Mandema1992
from sbmlsim.fit import FitExperiment, FitParameter
from sbmlsim.fit.optimization import OptimizationProblem


[docs]exp_kwargs = { "base_path": MIDAZOLAM_PATH, "data_path": MIDAZOLAM_PATH / "data", }
[docs]def op_kupferschmidt1995() -> OptimizationProblem: """Factory to get uninitialized optimization problem.""" KM_BOUNDS = (1e-5, 1e-1) VMAX_BOUNDS = (1e-5, 1e3) return OptimizationProblem( opid="mid1oh_iv", base_path=MIDAZOLAM_PATH, data_path=MIDAZOLAM_PATH / "data", fit_experiments=[ FitExperiment( experiment=Kupferschmidt1995, mappings=["fm_mid_iv", "fm_mid1oh_iv"] ), ], fit_parameters=[ # liver FitParameter( pid="LI__MIDIM_Vmax", start_value=0.1, lower_bound=VMAX_BOUNDS[0], upper_bound=VMAX_BOUNDS[1], unit="mmole_per_min", ), FitParameter( pid="LI__MID1OHEX_Vmax", start_value=0.1, lower_bound=VMAX_BOUNDS[0], upper_bound=VMAX_BOUNDS[1], unit="mmole_per_min", ), FitParameter( pid="LI__MIDOH_Vmax", start_value=100, lower_bound=VMAX_BOUNDS[0], upper_bound=VMAX_BOUNDS[1], unit="mmole_per_min", ), # does not improve fits # FitParameter(parameter_id="LI__MIDX_Vmax", start_value=100, # lower_bound=VMAX_BOUNDS[0], upper_bound=VMAX_BOUNDS[1], # unit="mmole_per_min"), # FitParameter(parameter_id="LI__MIDX_Km", start_value=0.1, # lower_bound=KM_BOUNDS[0], upper_bound=KM_BOUNDS[1], # unit="mM"), # kidneys (determined via 1-OH fits) FitParameter( pid="KI__MID1OHEX_Vmax", start_value=100, lower_bound=VMAX_BOUNDS[0], upper_bound=VMAX_BOUNDS[1] * 10, unit="mmole/min", ), FitParameter( pid="KI__MID1OHEX_Km", start_value=100, lower_bound=KM_BOUNDS[0], upper_bound=KM_BOUNDS[1], unit="mM", ), # distribution FitParameter( pid="ftissue_mid", start_value=50, lower_bound=VMAX_BOUNDS[0], upper_bound=VMAX_BOUNDS[1], unit="liter/min", ), # FitParameter(parameter_id="fup_mid", start_value=0.1, # lower_bound=0.05, upper_bound=0.3, # unit="dimensionless"), FitParameter( pid="ftissue_mid1oh", start_value=1.0, lower_bound=VMAX_BOUNDS[0], upper_bound=VMAX_BOUNDS[1], unit="liter/min", ), # FitParameter(parameter_id="fup_mid1oh", start_value=0.1, # lower_bound=0.01, upper_bound=0.3, # unit="dimensionless"), ], )
[docs]def op_mid1oh_iv() -> OptimizationProblem: """Factory to get uninitialized optimization problem.""" return OptimizationProblem( opid="mid1oh_iv", fit_experiments=[FitExperiment(experiment=Mandema1992, mappings=["fm4"])], fit_parameters=[ # distribution parameters FitParameter( pid="ftissue_mid1oh", start_value=1.0, lower_bound=1, upper_bound=1e5, unit="liter/min", ), FitParameter( pid="fup_mid1oh", start_value=0.1, lower_bound=0.01, upper_bound=0.5, unit="dimensionless", ), # mid1oh kinetics FitParameter( pid="KI__MID1OHEX_Vmax", start_value=100, lower_bound=1e-1, upper_bound=1e4, unit="mmole/min", ), ], **exp_kwargs )
[docs]def op_mandema1992() -> OptimizationProblem: """Factory to get uninitialized optimization problem.""" return OptimizationProblem( opid="mandema1992", fit_experiments=[ # FitExperiment(experiment=Mandema1992, mappings=["fm1"]), FitExperiment(experiment=Mandema1992, mappings=["fm1", "fm3", "fm4"]), ], fit_parameters=[ # liver FitParameter( pid="LI__MIDIM_Vmax", start_value=0.1, lower_bound=1e-3, upper_bound=1e6, unit="mmole_per_min", ), FitParameter( pid="LI__MID1OHEX_Vmax", start_value=0.1, lower_bound=1e-3, upper_bound=1e6, unit="mmole_per_min", ), FitParameter( pid="LI__MIDOH_Vmax", start_value=100, lower_bound=10, upper_bound=200, unit="mmole_per_min", ), # kidneys FitParameter( pid="KI__MID1OHEX_Vmax", start_value=100, lower_bound=1e-1, upper_bound=1e4, unit="mmole/min", ), # distribution FitParameter( pid="ftissue_mid", start_value=2000, lower_bound=1, upper_bound=1e5, unit="liter/min", ), FitParameter( pid="fup_mid", start_value=0.1, lower_bound=0.05, upper_bound=0.3, unit="dimensionless", ), # distribution parameters FitParameter( pid="ftissue_mid1oh", start_value=1.0, lower_bound=1, upper_bound=1e5, unit="liter/min", ), FitParameter( pid="fup_mid1oh", start_value=0.1, lower_bound=0.01, upper_bound=0.3, unit="dimensionless", ), ], **exp_kwargs )