Skip to content

Commit cdc73b0

Browse files
committed
v2: Placeholders for measurement-specific output parameters
1 parent 4298e15 commit cdc73b0

File tree

1 file changed

+75
-44
lines changed

1 file changed

+75
-44
lines changed

doc/v2/documentation_data_format.rst

Lines changed: 75 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)