@@ -53,7 +53,7 @@ text-based files in `Tab-Separated Values (TSV)
5353<https://www.iana.org/assignments/media-types/text/tab-separated-values> `_
5454format (Figure 2), including:
5555
56- - A :ref: `model <v2_model >` file specifying the base model
56+ - One or multiple (optional) :ref: `model <v2_model >` file(s) specifying the base model(s)
5757 [SBML, CELLML, BNGL, PYSB, ...].
5858
5959- A :ref: `measurement file <v2_measurements_table >` containing experimental
@@ -111,12 +111,20 @@ should not alter the definition of the estimation problem itself.
111111 parameters, but excluding parameters listed in the
112112 :ref: `v2_parameters_table ` (independent of their ``estimate `` value).
113113
114+ .. _v2_changes :
114115
115116Changes from PEtab 1.0.0
116117------------------------
117118PEtab 2.0.0 is a major update of the PEtab format. The main changes are:
118119
120+ * The :ref: `PEtab YAML problem description <v2_problem_yaml >` is now
121+ mandatory and its structure changed. In particular, the `problems ` list
122+ has been flattened.
119123* Support for models in other formats than SBML (:ref: `v2_model `).
124+ * The use of different models for different measurements is now
125+ supported via the optional ``modelId `` column in the
126+ :ref: `v2_measurements_table `, see also :ref: `v2_multiple_models `.
127+ This was poorly defined in PEtab 1.0.0 and probably not used in practice.
120128* The (now optional) conditions table format changed from wide to long
121129 (:ref: `v2_conditions_table `).
122130* ``simulationConditionId `` and ``preequilibrationConditionId `` in the
@@ -205,10 +213,10 @@ PEtab distinguishes between three types of entities:
205213Conditions table
206214----------------
207215
208- The optional conditions table defines discrete changes to the model. These (sets of)
209- changes typically represent interventions, perturbations, or changes in the
210- environment of the system of interest. These modifications are referred to as
211- (experimental) *conditions *.
216+ The optional conditions table defines discrete changes to the simulated model(s).
217+ These (sets of) changes typically represent interventions, perturbations, or
218+ changes in the environment of the system of interest. These modifications are
219+ referred to as (experimental) *conditions *.
212220
213221Conditions are applied at specific time points, which are defined in the
214222:ref: `v2_experiments_table `. This allows for the specification of time
@@ -533,6 +541,15 @@ Detailed field description
533541 Numeric values or parameter names are allowed. Same rules apply as for
534542 ``observableParameters `` in the previous point.
535543
544+ - ``modelId `` [PETAB_ID, OPTIONAL, REFERENCES(yaml.models.model_id)]
545+
546+ Which model to simulate for each data point. Model IDs are defined by the
547+ keys of the `models ` object in the PEtab problem YAML file.
548+ This column is required when multiple models are defined in the PEtab
549+ problem.
550+ For problems with a single model, this column is optional,
551+ and its values default to the ID of the only model present.
552+
536553.. _v2_simulation_table :
537554
538555Simulation table
@@ -608,8 +625,7 @@ Detailed field description
608625* ``observableFormula `` [STRING]
609626
610627 Observation function as plain text formula expression.
611-
612- The expression may contain any symbol defined in the model,
628+ The expression may contain any symbol defined in a model,
613629 the mapping table or the parameter table.
614630 Often, this is just the ID of a state variable.
615631 Furthermore, any parameters introduced through the ``observablePlaceholders ``
@@ -750,7 +766,7 @@ and *must not* include:
750766- "Parameters" that are not *constant * entities (e.g., in an SBML model,
751767 the targets of *AssignmentRules * or *EventAssignments *)
752768- Any parameters that do not have valid PEtab IDs
753- (e.g., SBML *local * parameters)
769+ (e.g., SBML *local * parameters that are not mapped in the mapping table )
754770
755771it *may * include:
756772
@@ -789,7 +805,7 @@ Detailed field description
789805- ``parameterId `` [PETAB_ID, REQUIRED]
790806
791807 The ``parameterId `` of the parameter described in this row. This has to match
792- the ID of a parameter specified in the SBML model, a parameter introduced
808+ the ID of a parameter specified in at least one model, a parameter introduced
793809 as override in the condition table, or a parameter occurring in the
794810 ``observableParameters `` or ``noiseParameters `` column of the measurement table
795811 (see above).
@@ -976,8 +992,8 @@ Detailed field description
976992
977993- ``modelEntityId `` [STRING or empty, REQUIRED]
978994
979- A globally unique identifier defined in the model, or empty if the entity is
980- not present in the model. This does not have to be a valid PEtab identifier.
995+ A globally unique identifier defined in any model, or empty if the entity is
996+ not present in any model. This does not have to be a valid PEtab identifier.
981997 Rows with empty ``modelEntityId `` serve as annotations only.
982998
983999 For example, in SBML, local parameters may be referenced as
@@ -1015,15 +1031,66 @@ easy validation:
10151031.. literalinclude :: _static/petab_schema_v2.yaml
10161032 :language: yaml
10171033
1034+ .. _v2_multiple_models :
10181035
10191036Parameter estimation problems combining multiple models
10201037~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10211038
1022- Parameter estimation problems can comprise multiple models. For now, PEtab
1023- allows one to specify multiple models with corresponding condition and
1024- measurement tables, and one joint parameter table. This means that the parameter
1025- namespace is global. Therefore, parameters with the same ID in different models
1026- will be considered identical.
1039+ Purpose
1040+ +++++++
1041+
1042+ PEtab supports defining multiple models within a single problem specification. This
1043+ feature is designed to enable users to define experiment-specific model variants or
1044+ submodels. Rather than implementing a single global, parameterized model, users can
1045+ define multiple smaller, self-contained models that differ structurally as needed.
1046+
1047+ This approach offers several benefits:
1048+
1049+ - Simplified model definition for users, as each variant can be independently
1050+ specified.
1051+ - Improved simulation performance for tool developers, as smaller models can be
1052+ simulated more efficiently.
1053+
1054+ Scope and Application
1055+ +++++++++++++++++++++
1056+
1057+ While multiple models are intended to be applied to different experiments, model
1058+ selection is specified at the level of individual data points in the
1059+ :ref: `v2_measurements_table `. This design enables:
1060+
1061+ - Reuse of experiments across models.
1062+ - Fine-grained model-to-data assignment.
1063+
1064+ With the exception of the :ref: `v2_measurements_table `, all other PEtab tables apply
1065+ to all models. Parameters listed in the parameter table are defined globally and
1066+ shared across all models. In contrast, entries in all other tables implicitly define
1067+ model-specific instances of observables, conditions, experiments, etc., with their
1068+ respective PEtab IDs existing in local, model-specific namespaces. Each PEtab
1069+ subproblem defined in this way must constitute a valid PEtab problem on its own.
1070+
1071+ This design has several implications:
1072+
1073+ - A single experiment may need to be simulated with different models for
1074+ different measurements. However, a single simulation of a given experiment
1075+ is always performed using one single model.
1076+ - Each model may be associated with a distinct subset of experiments.
1077+ - The number of conditions to be simulated for a model-specific instance
1078+ of an experiment may vary across models.
1079+ - Each parameter defined in the :ref: `v2_parameters_table ` has a shared value
1080+ across all models. Parameters not listed in the parameter table do not share
1081+ values, which can result in model-specific instantiations of model observables
1082+ referencing these parameters.
1083+
1084+ Validation Rules
1085+ ++++++++++++++++
1086+
1087+ For any given model, only those experiments and observables that appear in the
1088+ same rows of the :ref: `v2_measurements_table ` need to be valid. This means that all
1089+ symbols used in the corresponding ``observableFormula `` and all symbols assigned
1090+ in the associated condition definitions must be defined in the model.
1091+
1092+ Conditions and observables that are not applied to a model do not need to be
1093+ valid for that model.
10271094
10281095
10291096.. _v2_objective_function :
0 commit comments