petab.sbml

Functions for interacting with SBML models

Functions

add_global_parameter(sbml_model, parameter_id)

Add new global parameter to SBML model

add_model_output(sbml_model, observable_id, ...)

Add PEtab-style output to model

add_model_output_sigma(sbml_model, ...)

Add PEtab-style sigma for the given observable id

add_model_output_with_sigma(sbml_model, ...)

Add PEtab-style output and corresponding sigma with single (newly created) parameter

assignment_rules_to_dict(sbml_model[, ...])

Turn assignment rules into dictionary.

create_assigment_rule(sbml_model, ...[, ...])

Create SBML AssignmentRule

get_model_for_condition(petab_problem[, ...])

Create an SBML model for the given condition.

get_model_parameters(sbml_model[, with_values])

Return SBML model parameters which are not AssignmentRule targets for observables or sigmas

get_observables(sbml_model[, remove])

Get observables defined in SBML model according to PEtab format.

get_sbml_model(filepath_or_buffer)

Get an SBML model from file or URL or file handle

get_sigmas(sbml_model[, remove])

Get sigmas defined in SBML model according to PEtab format.

globalize_parameters(sbml_model[, ...])

Turn all local parameters into global parameters with the same properties

is_sbml_consistent(sbml_document[, check_units])

Check for SBML validity / consistency

load_sbml_from_file(sbml_file)

Load SBML model from file

load_sbml_from_string(sbml_string)

Load SBML model from string

log_sbml_errors(sbml_document[, ...])

Log libsbml errors

sbml_parameter_is_observable(sbml_parameter)

Returns whether the libsbml.Parameter sbml_parameter matches the defined observable format.

sbml_parameter_is_sigma(sbml_parameter)

Returns whether the libsbml.Parameter sbml_parameter matches the defined sigma format.

write_sbml(sbml_doc, filename)

Write PEtab visualization table

petab.sbml.add_global_parameter(sbml_model: libsbml.Model, parameter_id: str, parameter_name: Optional[str] = None, constant: bool = False, units: str = 'dimensionless', value: float = 0.0) libsbml.Parameter[source]

Add new global parameter to SBML model

Parameters
  • sbml_model – SBML model

  • parameter_id – ID of the new parameter

  • parameter_name – Name of the new parameter

  • constant – Is parameter constant?

  • units – SBML unit ID

  • value – parameter value

Returns

The created parameter

petab.sbml.add_model_output(sbml_model: libsbml.Model, observable_id: str, formula: str, observable_name: Optional[str] = None) None[source]

Add PEtab-style output to model

We expect that all formula parameters are added to the model elsewhere.

Parameters
  • sbml_model – Model to add output to

  • formula – Formula string for model output

  • observable_id – ID without “observable_” prefix

  • observable_name – Any observable name

petab.sbml.add_model_output_sigma(sbml_model: libsbml.Model, observable_id: str, formula: str) None[source]

Add PEtab-style sigma for the given observable id

We expect that all formula parameters are added to the model elsewhere.

Parameters
  • sbml_model – Model to add to

  • observable_id – Observable id for which to add sigma

  • formula – Formula for sigma

petab.sbml.add_model_output_with_sigma(sbml_model: libsbml.Model, observable_id: str, observable_formula: str, observable_name: Optional[str] = None) None[source]

Add PEtab-style output and corresponding sigma with single (newly created) parameter

We expect that all formula parameters are added to the model elsewhere.

Parameters
  • sbml_model – Model to add output to

  • observable_formula – Formula string for model output

  • observable_id – ID without “observable_” prefix

  • observable_name – Any name

petab.sbml.assignment_rules_to_dict(sbml_model: libsbml.Model, filter_function=<function <lambda>>, remove: bool = False) Dict[str, Dict[str, Any]][source]

Turn assignment rules into dictionary.

Parameters
  • sbml_model – a sbml model instance.

  • filter_function – callback function taking assignment variable as input and returning True/False to indicate if the respective rule should be turned into an observable.

  • remove – Remove the all matching assignment rules from the model

Returns

{
    assigneeId:
    {
        'name': assigneeName,
        'formula': formulaString
    }
}

petab.sbml.create_assigment_rule(sbml_model: libsbml.Model, assignee_id: str, formula: str, rule_id: Optional[str] = None, rule_name: Optional[str] = None) libsbml.AssignmentRule[source]

Create SBML AssignmentRule

Parameters
  • sbml_model – Model to add output to

  • assignee_id – Target of assignment

  • formula – Formula string for model output

  • rule_id – SBML id for created rule

  • rule_name – SBML name for created rule

Returns

The created AssignmentRule

petab.sbml.get_model_for_condition(petab_problem: petab.problem.Problem, sim_condition_id: Optional[str] = None, preeq_condition_id: Optional[str] = None) Tuple[libsbml.SBMLDocument, libsbml.Model][source]

Create an SBML model for the given condition.

Creates a copy of the model and updates parameters according to the PEtab files. Estimated parameters are set to their nominalValue. Observables defined in the observables table are not added to the model.

Parameters
  • petab_problem – PEtab problem

  • sim_condition_id – Simulation conditionId for which to generate a model

  • preeq_condition_id – Preequilibration conditionId of the settings for which to generate a model. This is only used to determine the relevant output parameter overrides. Preequilibration is not encoded in the resulting model.

Returns

The generated SBML document, and SBML model

petab.sbml.get_model_parameters(sbml_model: libsbml.Model, with_values=False) Union[List[str], Dict[str, float]][source]

Return SBML model parameters which are not AssignmentRule targets for observables or sigmas

Parameters
  • sbml_model – SBML model

  • with_values – If False, returns list of SBML model parameter IDs which are not AssignmentRule targets for observables or sigmas. If True, returns a dictionary with those parameter IDs as keys and parameter values from the SBML model as values.

petab.sbml.get_observables(sbml_model: libsbml.Model, remove: bool = False) dict[source]

Get observables defined in SBML model according to PEtab format.

Returns

Dictionary of observable definitions. See assignment_rules_to_dict for details.

petab.sbml.get_sbml_model(filepath_or_buffer) Tuple[libsbml.SBMLReader, libsbml.SBMLDocument, libsbml.Model][source]

Get an SBML model from file or URL or file handle

Parameters

filepath_or_buffer – File or URL or file handle to read the model from

Returns

The SBML document, model and reader

petab.sbml.get_sigmas(sbml_model: libsbml.Model, remove: bool = False) dict[source]

Get sigmas defined in SBML model according to PEtab format.

Returns

Dictionary of sigma definitions.

Keys are observable IDs, for values see assignment_rules_to_dict for details.

petab.sbml.globalize_parameters(sbml_model: libsbml.Model, prepend_reaction_id: bool = False) None[source]

Turn all local parameters into global parameters with the same properties

Local parameters are currently ignored by other PEtab functions. Use this function to convert them to global parameters. There may exist local parameters with identical IDs within different kinetic laws. This is not checked here. If in doubt that local parameter IDs are unique, enable prepend_reaction_id to create global parameters named ${reaction_id}_${local_parameter_id}.

Parameters
  • sbml_model – The SBML model to operate on

  • prepend_reaction_id – Prepend reaction id of local parameter when creating global parameters

petab.sbml.is_sbml_consistent(sbml_document: libsbml.SBMLDocument, check_units: bool = False) bool[source]

Check for SBML validity / consistency

Parameters
  • sbml_document – SBML document to check

  • check_units – Also check for unit-related issues

Returns

False if problems were detected, otherwise True

petab.sbml.load_sbml_from_file(sbml_file: str) Tuple[libsbml.SBMLReader, libsbml.SBMLDocument, libsbml.Model][source]

Load SBML model from file

Parameters

sbml_file – Filename of the SBML file

Returns

The SBML document, model and reader

petab.sbml.load_sbml_from_string(sbml_string: str) Tuple[libsbml.SBMLReader, libsbml.SBMLDocument, libsbml.Model][source]

Load SBML model from string

Parameters

sbml_string – Model as XML string

Returns

The SBML document, model and reader

petab.sbml.log_sbml_errors(sbml_document: libsbml.SBMLDocument, minimum_severity=1) None[source]

Log libsbml errors

Parameters
  • sbml_document – SBML document to check

  • minimum_severity – Minimum severity level to report (see libsbml)

petab.sbml.sbml_parameter_is_observable(sbml_parameter: libsbml.Parameter) bool[source]

Returns whether the libsbml.Parameter sbml_parameter matches the defined observable format.

petab.sbml.sbml_parameter_is_sigma(sbml_parameter: libsbml.Parameter) bool[source]

Returns whether the libsbml.Parameter sbml_parameter matches the defined sigma format.

petab.sbml.write_sbml(sbml_doc: libsbml.SBMLDocument, filename: Union[pathlib.Path, str]) None[source]

Write PEtab visualization table

Parameters
  • sbml_doc – SBML document containing the SBML model

  • filename – Destination file name