Skip to content

fit.petab_v2.export

Write an sbmlsim optimization problem as a PEtab v2 problem.

The export walks an initialized OptimizationProblem, i.e., a problem whose fit mappings are resolved, and builds the tables of PEtab v2 from it:

  • every model of the fit is a model of the problem,
  • the fit mappings which share a model and a simulation are one experiment, its periods are the timecourses of the TimecourseSim and their changes are the conditions,
  • every fit mapping is one observable, its reference data are the measurements of that observable,
  • every fit parameter is a parameter which is estimated.

What the tables do not hold goes into the sbmlsim extension of the problem, see sbmlsim.fit.petab_v2.extension, and what is lost is reported by sbmlsim.fit.petab_v2.gaps.

PetabExporter

PetabExporter(
    problem,
    settings=None,
    kinds=None,
    required_extension=True,
)

Write an optimization problem as a PEtab v2 problem.

Initialize the export of a problem.

Parameters:

Name Type Description Default
problem OptimizationProblem

problem to export, it is initialized if it is not.

required
settings FitSettings | None

settings of the fit, required if the problem is not initialized.

None
kinds set[MappingKind] | None

kinds of fit mappings to write, everything the problem resolved by default, i.e. the training data, the validation data and the outliers, so that a round trip keeps the fit. The data the model does not describe is not part of the problem. Which of them a fit uses is in the extension: a tool which reads the problem without it would fit everything it finds.

None
required_extension bool

mark the sbmlsim extension as required, which it is: the settings it carries are the objective of the fit, so a tool which does not know it has to reject the problem instead of fitting the same data differently. False writes a problem which other tools fit with the objective PEtab defines, see sbmlsim.fit.petab_v2.extension.SbmlsimExtension.

True

Raises:

Type Description
ValueError

if the problem is not initialized and no settings are given.

check

check()

Check that the problem can be written.

Raises:

Type Description
ValueError

for a gap which has no representation in PEtab v2, i.e. a structural model change, an observable which is a python function or a mapping over something else than time; or for a selector without its own id, see _check_unnamed_versions.

to_problem

to_problem()

Build the PEtab v2 problem.

Returns:

Type Description
Problem

The problem with its models, conditions, experiments, observables,

Problem

measurements and parameters, and the sbmlsim extension.

Raises:

Type Description
ValueError

if the problem uses features PEtab v2 cannot express.

petab_id

petab_id(*parts)

Get a PEtab identifier from the parts of an sbmlsim key.

Parameters:

Name Type Description Default
parts str

parts of the identifier, joined with __.

()

Returns:

Type Description
str

An identifier of letters, digits and underscores which does not start

str

with a digit.

to_petab

to_petab(
    problem,
    output_dir,
    settings=None,
    kinds=None,
    required_extension=True,
)

Write an optimization problem as a PEtab v2 problem.

Parameters:

Name Type Description Default
problem OptimizationProblem

problem to write, it is initialized if it is not.

required
output_dir Path

directory the problem is written to, created if it does not exist.

required
settings FitSettings | None

settings of the fit, required if the problem is not initialized.

None
kinds set[MappingKind] | None

kinds of fit mappings to write, everything the problem resolved by default, i.e. the training data, the validation data and the outliers.

None
required_extension bool

mark the sbmlsim extension as required, which it is: the settings it carries are the objective of the fit. False writes a problem other tools fit with the objective of PEtab.

True

Returns:

Type Description
Path

Path of the YAML file of the problem.

Raises:

Type Description
ValueError

if the problem uses features PEtab v2 cannot express.