virtualcell / vcdb

MIT License
3 stars 0 forks source link

[BUG] SED-ML files for native and SBML models have involve different numbers of models (archives are not equivalent) #8

Open jonrkarr opened 2 years ago

jonrkarr commented 2 years ago

Example (12119723):

The SED-ML for native has 1 model, 3 simulations, and 3 tasks.

The SED-ML for SBML has 3 models, 3 simulations, and 3 tasks. The SBML files used by the SED-ML are not identical.

Because the SBML files used by the SED-ML are not identical, the two versions of the COMBINE archives are not equivalent.

moraru commented 2 years ago

This is not a bug, it is by design, and is correct. The native format (VCML) encodes one or more variations of a model, each of which needs to be translated into a corresponding SBML model upon export. The tree structure of the VCell BioModel is roughly equivalent to a SEDML file, With the Application being the model and the Simulation being the task.

Therefore there will always be exactly 1 model when creating OMEX with VCML format but 1..n models when creating OMEX with SBML format. The total number of tasks however should always be identical.

moraru commented 2 years ago

@jonrkarr if you want to check equivalency you need to count the tasks and match the simulation names

jonrkarr commented 2 years ago

Understand that. The issue is that the VCML vs SBML tasks are different:

If the VCML tasks are intended to simulate different variants of a model, I think this should be encoded using SED-ML model changes, which is not presently the case. It sounds like this is what's happening:

From my perspective, this is unintuitive because it deviates from how SED-ML is intended to be used. In the case of other model languages (SBML-fbc, SBML-qual, BNGL, NeuroML/LEMS, Smoldyn, RBA XML, XPP ODE), I have used SED-ML to capture model changes, including when those languages have capabilities to capture model variants themselves. Encoding model changes into SED-ML is important to enabling us to use SED-ML as an abstraction for specifying changes to models in any format.