PEtab-dev / PEtab

PEtab - an SBML and TSV based data format for parameter estimation problems in systems biology
https://petab.readthedocs.io
MIT License
56 stars 12 forks source link

Proposal: Different languages for model specification #538

Closed dweindl closed 2 days ago

dweindl commented 2 years ago

Motivation

There are a number of formats for specifying models in systems biology, each with their specific strengths and weaknesses. PEtab version 1.0.0 only allows Systems Biology Markup Language (SBML) models. While SBML is supported by a large number of tools, there are good reasons to use other formats. For example, rule-based model formats (e.g., BioNetGenLanguage) permit more abstract and compact specification of models based on rules, which are generalisations of reactions. Therefore, and based on user request (#436), we propose to lift PEtab’s restriction to SBML models and allow arbitrary model formats.

Proposed changes

Implications


Co-authored by @FFroehlich @fbergmann. Also thanks to everybody participating in these discussions during the last COMBINE meeting.

paulflang commented 2 years ago

no pattern matching will be performed

So just that I understand this correctly, if I want to do pattern matching, I can still create a BNGL observable in the BNGL model like so

begin molecule types
    A(b~c~d)
end molecule types
begin observables
    Species myObservable A()
end observables
...

and use its ID myObservable in PEtab 2.0.0, for instance in the observable table (even without the mapping table, unless for whatever reason, I've decided to use an ID for the BNGL observable that contains characters that are not allowed in PEtab), but not in the condition table (as I would not know how that makes sense, also not if I map it to another petabEntityId in the mapping table, of course).

Anyway, awesome that PEtab will soon allow other model specifications. Thanks and congratulations!

FFroehlich commented 2 years ago

no pattern matching will be performed

So just that I understand this correctly, if I want to do pattern matching, I can still create a BNGL observable in the BNGL model like so

begin molecule types
    A(b~c~d)
end molecule types
begin observables
    Species myObservable A()
end observables
...

and use its ID myObservable in PEtab 2.0.0, for instance in the observable table (even without the mapping table, unless for whatever reason, I've decided to use an ID for the BNGL observable that contains characters that are not allowed in PEtab), but not in the condition table (as I would not know how that makes sense, also not if I map it to another petabEntityId in the mapping table, of course).

Yes, that is correct. In principle, you could also assign the value of the observable in the condition table, but there probably are only a few circumstances where this would make sense.

Anyway, awesome that PEtab will soon allow other model specifications. Thanks and congratulations!

Thank you!