Source code for petab_select.petab

"""Helper methods for working with PEtab problems."""

from typing import Literal

import numpy as np
import petab.v1 as petab
from petab.v1.C import ESTIMATE

__all__ = ["get_petab_parameters"]


[docs] def get_petab_parameters( petab_problem: petab.Problem, as_lists: bool = False ) -> dict[str, float | Literal[ESTIMATE] | list[float | Literal[ESTIMATE]]]: """Convert PEtab problem parameters to the format in model space files. Args: petab_problem: The PEtab problem. as_lists: Each value will be provided inside a list object, similar to the format for multiple values for a parameter in a model subspace. Returns: Keys are parameter IDs, values are the nominal values for fixed parameters, or :const:`ESTIMATE` for estimated parameters. """ values = np.array(petab_problem.x_nominal, dtype=object) values[petab_problem.x_free_indices] = ESTIMATE if as_lists: values = [[v] for v in values] return dict(zip(petab_problem.x_ids, values, strict=True))