@@ -162,6 +162,19 @@ PEtab 2.0.0 is a major update of the PEtab format. The main changes are:
162162 clearer. The ``log10 `` transformation has been removed, since this was mostly
163163 relevant for visualization purposes, and the same effect can be achieved by
164164 rescaling the parameters of the respective (natural) log-distributions.
165+ * The ``observableFormula `` field in the :ref: `v2_observables_table ` must not
166+ contain any observable IDs. This was previously allowed, but it was not
167+ well-defined how to deal with placeholder parameters in this case.
168+ The ``noiseFormula `` field may contain only the observable ID of the
169+ respective observable itself, but no other observable IDs for the same
170+ reason.
171+ * Placeholders for measurement-specific parameters in ``observableFormula ``
172+ and ``noiseFormula `` are now declared using the
173+ ``observablePlaceholders `` and ``noisePlaceholders `` fields in the
174+ :ref: `v2_observables_table `. This replaces the previous
175+ ``observableParameter${n}_${observableId} `` syntax. The new approach is more
176+ more explicit and allows for more descriptive and shorter names for the
177+ placeholders.
165178
166179.. _v2_model :
167180.. _v2_model_entities :
@@ -503,24 +516,23 @@ Detailed field description
503516
504517- ``observableParameters `` [NUMERIC, STRING OR NULL, OPTIONAL]
505518
506- This field allows overriding or introducing condition-specific versions of
507- output parameters defined in the observation model. The model can define
508- observables (see below) containing place-holder parameters which can be
509- replaced by condition-specific dynamic or constant parameters. Placeholder
510- parameters must be named `` observableParameter${n}_${observableId} ``
511- with `` n `` ranging from 1 (not 0) to the number of placeholders for the given
512- observable, without gaps.
513- If the observable specified under `` observableId `` contains no placeholders,
514- this field must be empty. If it contains `` n > 0 `` placeholders, this field
515- must hold `` n `` semicolon-separated numeric values or parameter names. No
516- trailing semicolon must be added .
519+ Measurement-specific overrides for placeholder parameters declared in the
520+ observation model.
521+
522+ The :ref: ` observables table < v2_observables_table >` allows marking some
523+ parameters as measurement-specific (see below). Their values for a given
524+ measurement are specified in this column. The values are separated by
525+ semicolons. The order of the values must match the order of the
526+ placeholders in the observable formula. The number of values must match
527+ the number of placeholders in the observable formula. The values may be
528+ either numeric values or the IDs of parameters from the
529+ :ref: ` parameters table < v2_parameters_table >` .
517530
518531 Different lines for the same ``observableId `` may specify different
519532 parameters. This may be used to account for condition-specific or
520533 batch-specific parameters. This will translate into an extended estimation
521534 parameter vector.
522535
523- All placeholders defined in the observation model must be overwritten here.
524536 If there are no placeholders used, this column may be omitted.
525537
526538- ``noiseParameters `` [NUMERIC, STRING OR NULL, OPTIONAL]
@@ -605,15 +617,24 @@ Detailed field description
605617* ``observableFormula `` [STRING]
606618
607619 Observation function as plain text formula expression.
608- May contain any symbol defined in the SBML model (including model time ``time ``)
609- or parameter table. In the simplest case just an SBML species ID
610- or an ``AssignmentRule `` target. Additionally, any observable ID
611- introduced in the observable table may be referenced, but circular definitions
612- must be avoided.
613620
614- May introduce new parameters of the form ``observableParameter${n}_${observableId} ``,
615- which are overridden by ``observableParameters `` in the measurement table
616- (see description there).
621+ The expression may contain any symbol defined in the model,
622+ the mapping table or the parameter table.
623+ Often, this is just the ID of a state variable.
624+ Additionally, any observable ID introduced in the observable table
625+ may be referenced, but circular definitions must be avoided.
626+ Furthermore, any parameters introduced through the ``observablePlaceholders ``
627+ field for the given observable may be used (see below).
628+
629+ * ``observablePlaceholders `` [STRING, OPTIONAL]
630+
631+ A semicolon-separated list of valid PEtab identifiers that have not been
632+ introduced elsewhere, marking them as placeholders for
633+ measurement-specific parameters.
634+ The actual values for these parameters are specified in the
635+ ``observableParameters `` field of the measurement table.
636+ The ordering of the symbols in ``observableParameters `` must match the
637+ ordering of the symbols in ``observablePlaceholders ``.
617638
618639* ``noiseFormula `` [NUMERIC|STRING]
619640
@@ -626,30 +647,40 @@ Detailed field description
626647 observable.
627648
628649 Alternatively, some formula expression can be provided to specify
629- more complex noise models. The formula may reference any uniquely identifiable
630- model entity with PEtab-compatible identifier or any observable ID
631- specified in the observable table.
632-
633- A noise model which accounts for relative and
634- absolute contributions could, e.g., be defined as::
635-
636- noiseParameter1_observable_pErk + noiseParameter2_observable_pErk * observable_pErk
637-
638- with ``noiseParameter1_observable_pErk `` denoting the absolute and
639- ``noiseParameter2_observable_pErk `` the relative contribution for the
640- observable ``observable_pErk `` corresponding to species ``pErk ``.
641- IDs of noise parameters
642- that need to have different values for different measurements have the
643- structure: ``noiseParameter${indexOfNoiseParameter}_${observableId} ``
644- to facilitate automatic recognition. The specific values or parameters are
645- assigned in the ``noiseParameters `` field of the *measurement table *
646- (see above). Any parameters named ``noiseParameter${1..n}_${observableId} ``
647- *must * be overwritten in the measurement table.
648-
649- Noise formulae can also contain observable parameter overrides, which are
650- described under ``observableFormula `` in this table. An example is when an
651- observable formula contains an override, and a proportional noise model is
652- used, which means the observable formula also appears in the noise formula.
650+ more complex noise models. The same rules as for ``observableFormula ``
651+ apply here. In addition, the current observable ID may be used to refer to
652+ the ``observableFormula `` expression.
653+ In addition to the placeholders declared in ``observablePlaceholders ``,
654+ placeholders for noise parameters that are declared in ``noisePlaceholders ``
655+ may be used.
656+
657+ * ``noisePlaceholders `` [STRING, OPTIONAL]
658+
659+ A semicolon-separated list of valid PEtab identifiers that have not been
660+ introduced elsewhere, marking them as placeholders for
661+ measurement-specific noise parameters.
662+ The actual values for these parameters are specified in the
663+ ``noiseParameters `` field of the measurement table.
664+ The ordering of the symbols in ``noiseParameters `` must match the
665+ ordering of the symbols in ``noisePlaceholders ``.
666+
667+ For example, a noise model that accounts for measurement-specific relative
668+ and absolute contributions for some observable with the ID
669+ ``observable_pErk `` could be defined as::
670+
671+ noise_offset_pErk + noise_scale_pErk * observable_pErk
672+
673+ with ``noise_offset_pErk `` denoting the absolute and
674+ ``noise_scale_pErk `` the relative contribution.
675+ The corresponding ``noisePlaceholders `` would be::
676+
677+ noise_offset_pErk;noise_scale_pErk
678+
679+ and the ``noiseParameters `` in the measurement table could be, for example,
680+ ``0.1;0.2 `` resulting in::
681+
682+ noise_offset_pErk = 0.1
683+ noise_scale_pErk = 0.2
653684
654685* ``noiseDistribution `` [STRING, OPTIONAL]
655686
0 commit comments