You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Collect minor spec inconsistencies and clean-ups for the next PEtab version #681
This issue collects small inconsistencies and clean-ups in the PEtab v2 specification. None of them warrant a change on their own, but they could be handled in the next version. Please add further items as comments.
Empty values for optional problem YAML entries: The optional file lists (condition_files, experiment_files, mapping_files) and extensions may be present but empty ([], {}). The optional id can't be empty (id: "" and id: fail the schema); it can only be left out. It's worth deciding whether empty values should be valid for all optional entries or for none, and whether the specification should recommend leaving out unused optional entries. (Came up in Omit empty optional entries in ProblemConfig.to_yaml libpetab-python#547.)
Conditionally empty columns in the parameter table:lowerBound, upperBound and nominalValue are typed [NUMERIC], i.e., neither OPTIONAL nor NULL, and are not bracketed in the table overview. Their descriptions, however, allow empty values depending on estimate ("Optional, if estimate==false" / "Optional, unless estimate==false"). This leaves open (a) whether the columns may be omitted if they would be empty in every row (e.g., nominalValue if all parameters are estimated), and (b) whether individual cells may be empty, which would correspond to NULL. By contrast, observableParameters and noiseParameters explicitly state when the column may be omitted. Also, the general remark "Fields enclosed in "[]" are optional and may be left empty" mixes optional columns and empty cells, which the OPTIONAL/NULL notation distinguishes. (Came up in PEtab-dev/libpetab-python#543.)
Redundant name annotations: Human-readable names can be provided both via parameterName in the parameter table (and observableName in the observable table) and via the name column of the mapping table. With petabEntityId == modelEntityId (explicitly allowed "for annotations"), or an empty modelEntityId ("annotations only"), a parameter can get a name from both tables, and it's not specified which one takes precedence if they differ. Options would be to drop parameterName/observableName in favor of the mapping table, to restrict mapping table names to entities without a name column, or to define a precedence. (Came up in PEtab-dev/libpetab-python#543.)
Activity
dweindl commentedon Oct 15, 2026
Conditionally empty columns in the parameter table:
lowerBound,upperBoundandnominalValueare typed[NUMERIC], i.e., neitherOPTIONALnorNULL, and are not bracketed in the table overview. Their descriptions, however, allow empty values depending onestimate("Optional, ifestimate==false" / "Optional, unlessestimate==false"). This leaves open (a) whether the columns may be omitted if they would be empty in every row (e.g.,nominalValueif all parameters are estimated), and (b) whether individual cells may be empty, which would correspond toNULL. By contrast,observableParametersandnoiseParametersexplicitly state when the column may be omitted. Also, the general remark "Fields enclosed in "[]" are optional and may be left empty" mixes optional columns and empty cells, which theOPTIONAL/NULLnotation distinguishes. (Came up in PEtab-dev/libpetab-python#543.)🤖 Drafted with AI assistance (Claude Code)
dweindl commentedon Oct 15, 2026
Redundant name annotations: Human-readable names can be provided both via
parameterNamein the parameter table (andobservableNamein the observable table) and via thenamecolumn of the mapping table. WithpetabEntityId == modelEntityId(explicitly allowed "for annotations"), or an emptymodelEntityId("annotations only"), a parameter can get a name from both tables, and it's not specified which one takes precedence if they differ. Options would be to dropparameterName/observableNamein favor of the mapping table, to restrict mapping table names to entities without a name column, or to define a precedence. (Came up in PEtab-dev/libpetab-python#543.)🤖 Drafted with AI assistance (Claude Code)