amici.petab_objective
PEtab Objective
Functionality related to running simulations or evaluating the objective function as defined by a PEtab problem
Functions
|
Aggregate likelihood gradient for all conditions, according to PEtab parameter mapping. |
|
Get |
|
Create list of |
|
Generate AMICI specific parameter mapping. |
Generate AMICI specific parameter mapping for condition. |
|
|
Create list of :class:amici.ExpData objects with parameters filled in. |
|
Create a measurement dataframe in the PEtab format from the passed |
|
Create a PEtab simulation dataframe from |
|
Rescale a sensitivity between parameter scales. |
|
Simulate PEtab model. |
- amici.petab_objective.aggregate_sllh(amici_model, rdatas, parameter_mapping, edatas, petab_scale=True, petab_problem=None)[source]
Aggregate likelihood gradient for all conditions, according to PEtab parameter mapping.
- Parameters
amici_model (
typing.Union[amici.amici.Model,amici.amici.ModelPtr]) – AMICI model from whichrdataswere obtained.rdatas (
typing.Sequence[amici.numpy.ReturnDataView]) – Simulation results.parameter_mapping (
typing.Optional[amici.parameter_mapping.ParameterMapping]) – PEtab parameter mapping to condition-specific simulation parameters.edatas (
typing.List[typing.Union[amici.swig_wrappers.ExpData,amici.amici.ExpDataPtr]]) – Experimental data used for simulation.petab_scale (
bool) – Whether to check that sensitivities were computed with parameters on the scales provided in the PEtab parameters table.petab_problem (
typing.Optional[petab.problem.Problem]) – The PEtab problem that defines the parameter scales.
- Return type
- Returns
Aggregated likelihood sensitivities.
- amici.petab_objective.create_edata_for_condition(condition, measurement_df, amici_model, petab_problem, observable_ids)[source]
Get
amici.amici.ExpDatafor the given PEtab condition.Sets timepoints, observed data and sigmas.
- Parameters
condition (
typing.Union[typing.Dict,pandas.core.series.Series]) –pandas.DataFramerow withpreequilibrationConditionIdandsimulationConditionId.measurement_df (
pandas.core.frame.DataFrame) –pandas.DataFramewith measurements for the given condition.amici_model (
typing.Union[amici.amici.Model,amici.amici.ModelPtr]) – AMICI modelpetab_problem (
petab.problem.Problem) – Underlying PEtab problemobservable_ids (
typing.List[str]) – List of observable IDs
- Return type
amici.swig_wrappers.ExpData- Returns
ExpData instance.
- amici.petab_objective.create_edatas(amici_model, petab_problem, simulation_conditions=None)[source]
Create list of
amici.amici.ExpDataobjects for PEtab problem.- Parameters
amici_model (
typing.Union[amici.amici.Model,amici.amici.ModelPtr]) – AMICI model.petab_problem (
petab.problem.Problem) – Underlying PEtab problem.simulation_conditions (
typing.Union[pandas.core.frame.DataFrame,typing.Dict,None]) – Result ofpetab.get_simulation_conditions(). Can be provided to save time if this has be obtained before.
- Return type
typing.List[amici.swig_wrappers.ExpData]- Returns
List with one
amici.amici.ExpDataper simulation condition, with filled in timepoints and data.
- amici.petab_objective.create_parameter_mapping(petab_problem, simulation_conditions, scaled_parameters, amici_model, **parameter_mapping_kwargs)[source]
Generate AMICI specific parameter mapping.
- Parameters
petab_problem (
petab.problem.Problem) – PEtab problemsimulation_conditions (
typing.Union[pandas.core.frame.DataFrame,typing.List[typing.Dict]]) – Result ofpetab.get_simulation_conditions(). Can be provided to save time if this has been obtained before.scaled_parameters (
bool) – IfTrue, problem_parameters are assumed to be on the scale provided in the PEtab parameter table and will be unscaled. IfFalse, they are assumed to be in linear scale.amici_model (
typing.Union[amici.amici.Model,amici.amici.ModelPtr]) – AMICI model.parameter_mapping_kwargs – Optional keyword arguments passed to
petab.get_optimization_to_simulation_parameter_mapping(). To allow changing fixed PEtab problem parameters (estimate=0), usefill_fixed_parameters=False.
- Return type
- Returns
List of the parameter mappings.
- amici.petab_objective.create_parameter_mapping_for_condition(parameter_mapping_for_condition, condition, petab_problem, amici_model)[source]
Generate AMICI specific parameter mapping for condition.
- Parameters
parameter_mapping_for_condition (
typing.Tuple[typing.Dict[str,typing.Union[str,numbers.Number]],typing.Dict[str,typing.Union[str,numbers.Number]],typing.Dict[str,str],typing.Dict[str,str]]) – Preliminary parameter mapping for condition.condition (
typing.Union[pandas.core.series.Series,typing.Dict]) –pandas.DataFramerow withpreequilibrationConditionIdandsimulationConditionId.petab_problem (
petab.problem.Problem) – Underlying PEtab problem.amici_model (
typing.Union[amici.amici.Model,amici.amici.ModelPtr]) – AMICI model.
- Return type
- Returns
The parameter and parameter scale mappings, for fixed preequilibration, fixed simulation, and variable simulation parameters, and then the respective scalings.
- amici.petab_objective.create_parameterized_edatas(amici_model, petab_problem, problem_parameters, scaled_parameters=False, parameter_mapping=None, simulation_conditions=None)[source]
Create list of :class:amici.ExpData objects with parameters filled in.
- Parameters
amici_model (
typing.Union[amici.amici.Model,amici.amici.ModelPtr]) – AMICI Model assumed to be compatible withpetab_problem.petab_problem (
petab.problem.Problem) – PEtab problem to work on.problem_parameters (
typing.Dict[str,numbers.Number]) – Run simulation with these parameters. IfNone, PEtabnominalValueswill be used. To be provided as dict, mapping PEtab problem parameters to SBML IDs.scaled_parameters (
bool) – IfTrue,problem_parametersare assumed to be on the scale provided in the PEtab parameter table and will be unscaled. IfFalse, they are assumed to be in linear scale.parameter_mapping (
typing.Optional[amici.parameter_mapping.ParameterMapping]) – Optional precomputed PEtab parameter mapping for efficiency, as generated bycreate_parameter_mapping().simulation_conditions (
typing.Union[pandas.core.frame.DataFrame,typing.Dict,None]) – Result ofpetab.get_simulation_conditions(). Can be provided to save time if this has been obtained before.
- Return type
typing.List[amici.swig_wrappers.ExpData]- Returns
List with one
amici.amici.ExpDataper simulation condition, with filled in timepoints, data and parameters.
- amici.petab_objective.rdatas_to_measurement_df(rdatas, model, measurement_df)[source]
Create a measurement dataframe in the PEtab format from the passed
rdatasand own information.- Parameters
rdatas (
typing.Sequence[amici.amici.ReturnData]) – A sequence of rdatas with the ordering ofpetab.get_simulation_conditions().model (
typing.Union[amici.amici.Model,amici.amici.ModelPtr]) – AMICI model used to generaterdatas.measurement_df (
pandas.core.frame.DataFrame) – PEtab measurement table used to generaterdatas.
- Return type
- Returns
A dataframe built from the rdatas in the format of
measurement_df.
- amici.petab_objective.rdatas_to_simulation_df(rdatas, model, measurement_df)[source]
Create a PEtab simulation dataframe from
amici.amici.ReturnDatas.See
rdatas_to_measurement_df()for details, only that model outputs will appear in columnsimulationinstead ofmeasurement.- Return type
- amici.petab_objective.rescale_sensitivity(sensitivity, parameter_value, old_scale, new_scale)[source]
Rescale a sensitivity between parameter scales.
- Parameters
- Return type
- Returns
The rescaled sensitivity.
- amici.petab_objective.simulate_petab(petab_problem, amici_model, solver=None, problem_parameters=None, simulation_conditions=None, edatas=None, parameter_mapping=None, scaled_parameters=False, log_level=30, num_threads=1, failfast=True, scaled_gradients=False)[source]
Simulate PEtab model.
Note
Regardless of scaled_parameters, unscaled sensitivities are returned, unless scaled_gradients=True.
- Parameters
petab_problem (
petab.problem.Problem) – PEtab problem to work on.amici_model (
typing.Union[amici.amici.Model,amici.amici.ModelPtr]) – AMICI Model assumed to be compatible withpetab_problem.solver (
typing.Optional[amici.amici.Solver]) – An AMICI solver. Will use default options if None.problem_parameters (
typing.Optional[typing.Dict[str,float]]) – Run simulation with these parameters. IfNone, PEtabnominalValueswill be used. To be provided as dict, mapping PEtab problem parameters to SBML IDs.simulation_conditions (
typing.Union[pandas.core.frame.DataFrame,typing.Dict,None]) – Result ofpetab.get_simulation_conditions(). Can be provided to save time if this has be obtained before. Not required ifedatasandparameter_mappingare provided.edatas (
typing.Optional[typing.List[typing.Union[amici.swig_wrappers.ExpData,amici.amici.ExpDataPtr]]]) – Experimental data. Parameters are inserted in-place for simulation.parameter_mapping (
typing.Optional[amici.parameter_mapping.ParameterMapping]) – Optional precomputed PEtab parameter mapping for efficiency, as generated bycreate_parameter_mapping().scaled_parameters (
typing.Optional[bool]) – IfTrue,problem_parametersare assumed to be on the scale provided in the PEtab parameter table and will be unscaled. IfFalse, they are assumed to be in linear scale.log_level (
int) – Log level, seeamici.loggingmodule.num_threads (
int) – Number of threads to use for simulating multiple conditions (only used if compiled with OpenMP).failfast (
bool) – Returns as soon as an integration failure is encountered, skipping any remaining simulations.scaled_gradients (
bool) – Whether to compute gradients on parameter scale (True) or not (False).
- Return type
- Returns
Dictionary of
cost function value (
LLH),list of
amici.amici.ReturnData(RDATAS),list of
amici.amici.ExpData(EDATAS),
corresponding to the different simulation conditions. For ordering of simulation conditions, see
petab.Problem.get_simulation_conditions_from_measurement_df().