SBML is one of the most widely used modeling formats in systems biology. With the release of SBML Level 3, the syntax and semantics of plain SBML be extended by SBML packages. The Hierarchical Model Composition ("comp" for short) package defines how models in SBML can be composed of multiple individual submodels. These submodels can be stored in the same file, or be distributed as separate files in a file system, or even referenced over a network using resource identifiers. While this format adds a large number of benefits and freedom for the model creator, it also significantly increases the complexity of the SBML documents. In addition, most software tools today do not (yet) implement direct support for hierarchical models, although they can usually deal with models that have been "flattened" to an equivalent non-hierarchical version. The specification of the SBML comp package describes how such a flattening algorithm works.
Goal
The aim of this project is to implement the flattening algorithm in JSBML. This will allow JSBML to take a hierarchically-composed SBML file and generate an equivalent nonhierarchical version that does not use the comp package (meaning it uses only SBML Level 3 "core" constructs). This will enable a much larger number of software systems to work with SBML "comp" models.
A flattening algorithm has already been defined, and has also been implemented in the C++-based library libSBML. The latter may help in developing an equivalent implementation in JSBML.
An additional goal of this project is the implementation of basic validation rules for the SBML comp package.
Background
SBML is one of the most widely used modeling formats in systems biology. With the release of SBML Level 3, the syntax and semantics of plain SBML be extended by SBML packages. The Hierarchical Model Composition ("comp" for short) package defines how models in SBML can be composed of multiple individual submodels. These submodels can be stored in the same file, or be distributed as separate files in a file system, or even referenced over a network using resource identifiers. While this format adds a large number of benefits and freedom for the model creator, it also significantly increases the complexity of the SBML documents. In addition, most software tools today do not (yet) implement direct support for hierarchical models, although they can usually deal with models that have been "flattened" to an equivalent non-hierarchical version. The specification of the SBML comp package describes how such a flattening algorithm works.
Goal
The aim of this project is to implement the flattening algorithm in JSBML. This will allow JSBML to take a hierarchically-composed SBML file and generate an equivalent nonhierarchical version that does not use the comp package (meaning it uses only SBML Level 3 "core" constructs). This will enable a much larger number of software systems to work with SBML "comp" models.
A flattening algorithm has already been defined, and has also been implemented in the C++-based library libSBML. The latter may help in developing an equivalent implementation in JSBML.
An additional goal of this project is the implementation of basic validation rules for the SBML comp package.
Potential mentors
Nicolas Rodriguez, Lucian Smith, Chris Myers, Leandro Watanabe
Contact
JSBML developers mailing list, available online at https://groups.google.com/d/forum/jsbml-development.
Useful pointers to documentation related to GSOC for student on the main NRNB web site :