draeger-lab / SBSCL

The Systems Biology Simulation Core Library (SBSCL) provides an efficient and exhaustive Java implementation of methods to interpret the content of models encoded in the Systems Biology Markup Language (SBML) and its numerical solution.
https://draeger-lab.github.io/SBSCL/
GNU Lesser General Public License v3.0
20 stars 13 forks source link

SBML Version Support Documentation #29

Closed rsivek closed 4 years ago

rsivek commented 4 years ago

First I'll just mention that this library is awesome! Thank you for all your hard work on it. We're currently using it to simulate patient physiology in a branch of our synthetic patient generator which will hopefully get pulled into a release in the near future.

So, to the issue at hand:

It would be helpful to know which version of the SBML specification this library supports.

I just attempted to use the min and max operators which appear to have been added in the current version of the SBML spec (level 3 version 2, section 3.4.1). What surprised me is that the simulation ran without errors, but the output table had NaN values for parameters assigned with min and max operators in the equations. We can workaround this issue by using piecewise elements, but it would have been nice to know beforehand that the library wouldn't handle max and min properly.

Of course, this is all assuming that the current release of SBSCL doesn't support SBML level 3 version 2. If it is supposed to support those functions, then consider this a bug report as well :).

The docs mention which version of the SBML test suite the library is evaluated against, but doesn't mention anything about which versions of the spec are supported. I recommend adding this information to the docs and the README.

shalinshah1993 commented 4 years ago

This seems to be something that can be added in JSBML rather than SBSCL. Perhaps, @draeger can comment more on that.

rsivek commented 4 years ago

@shalinshah1993 good point about JSBML though I think it would be nice to have it documented for both.

draeger commented 4 years ago

@nanowizard thank you for your feedback! When the library was implemented, we made sure to support all levels and versions of SBML that were available at that time (see the publication).

During the Google Summer of Code in 2018 we worked mainly on supporting SED-ML and the extension for flux balance analysis, as well as updating the library itself, but we did not yet implement newer features that came along with SBML Level 3 Version 2.

There is a new Google Summer of Code project that we planned. This project would allow us to implement the missing features you describe and to update the library to the latest versions of SBML.

hemilpanchiwala commented 4 years ago

@nanowizard, now the README contains Supported Packages section which will get merged to the main repository once the PR #57 gets merged. Also, now we have the support for SBML L3V2 models in SBSCL and many other interesting features which you can give a look.

You can view the section here.