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

from typing import Callable

from sbmlsim.examples.experiments.midazolam import MIDAZOLAM_PATH
from sbmlsim.examples.experiments.midazolam.fitting_problems import (
    op_kupferschmidt1995,
    op_mandema1992,
    op_mid1oh_iv,
)
from sbmlsim.fit.analysis import OptimizationAnalysis
from sbmlsim.fit.optimization import OptimizationProblem
from sbmlsim.fit.options import (
    OptimizationAlgorithmType,
    ResidualType,
    WeightingCurvesType,
    WeightingPointsType,
)
from sbmlsim.fit.result import OptimizationResult
from sbmlsim.fit.runner import run_optimization


[docs]def fitting_example(op_factory: Callable, size: int = 10, n_cores: int = 10) -> None: """Demonstrate fitting functionality.""" fit_kwargs = { "seed": 1234, "residual": ResidualType.NORMALIZED, "weighting_curves": [WeightingCurvesType.POINTS], "weighting_points": WeightingPointsType.ERROR_WEIGHTING, "absolute_tolerance": 1e-6, "relative_tolerance": 1e-6, } for alg_key, algorithm in [ ("lsq", OptimizationAlgorithmType.LEAST_SQUARE), ("de", OptimizationAlgorithmType.DIFFERENTIAL_EVOLUTION), ]: op: OptimizationProblem = op_factory() fit_path = MIDAZOLAM_PATH / "results_fit" / op.opid / alg_key if not fit_path.exists(): fit_path.mkdir(parents=True) opt_result: OptimizationResult = run_optimization( problem=op, algorithm=algorithm, size=size, n_cores=n_cores, **fit_kwargs )
# OptimizationAnalysis(opt_result=opt_result, op=op) if __name__ == "__main__": for op_factory in [op_mandema1992, op_kupferschmidt1995, op_mid1oh_iv]: fitting_example(op_factory=op_factory)