Skip to content

Release notes for sbml2cellml 0.3.0

Much wider coverage of SBML in the conversion to CellML. Of the runnable cases of the SBML test suite, 1420 convert to valid CellML (458 in 0.2.0) and 857 simulate with libopencor like the expected results (137 in 0.2.0), see the SBML test suite page.

Features

  • function definitions: their calls are replaced by the bodies of the functions
  • initial assignments are evaluated to initial values (an assignment to NaN is not)
  • local parameters of kinetic laws become variables <reaction>_<parameter>
  • species reference ids (stoichiometries, which rules may set) and reaction ids (rates) in formulas become variables
  • the time and avogadro symbols in formulas
  • numbers without units in formulas are dimensionless, integers and rationals are written as real numbers
  • models without differential equations are converted as algebraic models without the variable of integration time; run_timecourse returns their steady state values at every requested time point
  • an infinite or NaN value of a variable which is not a state becomes an equation

Fixes

  • kinetic laws are multiplied with their stoichiometry, which was ignored
  • reactions no longer change boundary species
  • a local parameter takes precedence over a global parameter of the same id in its kinetic law
  • the target of an assignment rule has no initial value, which the libcellml 0.7 analyser rejected as underconstrained (e.g., the glimepiride kidney model is valid again)
  • an SBML value set to NaN is no longer replaced by 1.0 like an unset value
  • run_timecourse raises a SimulationError when two result columns get the same name instead of silently replacing one of them
  • a recursive function definition no longer crashes the conversion: libsbml (5.21) segfaults when it expands the function definitions or initial assignments of such a document, which is therefore checked first

Limitations

  • events, algebraic rules, the delay and rateOf symbols and species conversion factors are not converted
  • units are not converted, every variable is dimensionless; numbers with the units of an SBML unit definition are not supported
  • Windows is not supported, the Windows wheels of libcellml 0.7.1 contain ARM64 binaries
  • see the roadmap in the documentation

Your sbml2cellml team