Software Open Access
Keating, Sarah; Bergmann, Frank; Smith, Lucian; Hucka, Michael
NOTE: This release includes support for the SBML L3V2(RC1)
Release Candidate specifications. This specification is not yet
official and thus it, and the supporting code, may change.
* Multistate and Multicomponent Species
- The first official version of the specification of the Multistate
and Multicomponent Species package is now available, and thus the
libSBML code for 'multi' is now included in the stable release of
libSBML. This means that all prebuilt binaries for the stable
release will include the 'multi' package code. The src archive
containing libSBML core code will continue to be available, with
additional src archives available in the stable branch: one
containing libSBML core plus all stable packages and additional
archives of the individual package code.
NOTE: The libSBML GNU make-based build system has not been updated
for packages. Thus, to build from src, it is necessary to
use the CMake build system.
* New features
- A new option has been added to the L3ParserSettings to allow
users to turn off the parsing of the new L3 math elements. If
enabled the parser will treat the new functions as generic
user defined functions.
- The L3Parser has been updated to parse '%' as rem.
- The MATLAB binding has been updated to support SBML L3V2(RC 1).
- Additional options are available for the TranslateSBML/OutputSBML
functions for the MATLAB binding allowing users to add their own
validation and customize the input/output of some fbc elements.
(See documentation for more details.)
- A new structure field 'cvterms' has been added to the MATLAB_SBML
structure. This supports annotations as a set of fields relating
to qualifiers and resources rather than relying on annotation
in the string format.
- A new function setCharacters has been added to the XMLToken class.
- The SBMLDocument object resulting from an invalid read will now
report level and version as '0'. This facilitates distinguishing
between an invalid read and a Level 3 Version 2 document that
does not contain a <model> element.
* Bug fixes
- Code was failing to recognize the math elements <pi/> and
<exponentiale/> as returning numeric values. This has been
- A <stoichiometryMath> element with no child <math> was causing
code to crash. This has been sorted.
- Validation of MathML was failing to report when a <math> element
contained two top-level elements. This is now caught and correctly
- A speciesReference id which has been declared 'constant' cannot be
changed by an event. Validation was failing to catch this situation.
This is now fixed.
- Several fixes have been made to the conversion of SBML documents
to lower levels and versions. These include: loss of compartment
size; evaluation of functionDefinitions and initialAssignments;
conversion of fast reactions; evaluation of stoichiometry using
initialAssignment and rules and expanding functionDefinitions with
no bvar elements.
- The export of the Avagadro constant as an exponential number was
losing precision. This has been fixed.
- Unit checking was failing to correctly associate the model 'timeUnits'
with the use of the csymbol for time. This has been corrected. Thanks
to Matthias König for reporting it.
- 'comp' package-specific bug fixes:
- Validation of a model that indirectly referenced a replacedBy element
was causing a problem. This has been resolved.
- The flattening routine was failing to correctly adjust the metaid
referenced by annotation where necessary. This has been fixed.
Thanks to Matthias König for reporting it.
- 'fbc' package-specific bug fixes:
- Validation was incorrectly reporting that a lower fluxBound could
not have a value of -INF. This has been corrected.
- The 'unsetActiveObjective' function now returns an OperationReturnValue
in line with other set/unset functions.
* Configuration/build system changes
- The minizip library used for compression supported has been updated.
There are no backwards compatability issues.
- The CMake build has been extended to enable export of the configuration
used in building. This will facilitate users who use libsbml and/or its
dependencies as dependencies in other projects.
- Beware that Doxygen 1.8.12 and later changed something in the HTML
it creates, and as a result, the libSBML documentation-generation
currently does not work for Doxygen versions after 1.8.11. This will
be fixed in a later release. For the time being, use Doxygen 1.8.11.
- We are aware that the released MATLAB binaries do not appear to work
with MATLAB 2017a on Mac OSX. At present we are unable to address this
issue but will resolve it and issue new binaries as soon as possible.
- We are aware that the octave binding is not functioning as expected.
We would be very interested to know of any users of the libsbml
octave interface that are affected by this.
* New features
- 'spatial' package-specific updates:
- The spatial code has been adjusted for minor changes in the
specification and now reflects rel0.91 of the specification.
Some, but not all, validation has been added to the code.