It's almost overFinally after 4 months GSoC the end is near. It was a awesome experience to work with SBML and JSBML team and how much work and efforts they put in this project and what is to work in a collaboration. If it is possible I would like to continue my work after GSoC.
Repository InformationHere is the repository information:
GitHub Commits: https://github.com/hovo1990/deviser/commits/master?author=hovo1990
GitHub Fork Page: https://github.com/hovo1990/deviser
BackgroundBecause there have been of a lot of changes since the first post, I would like to introduce Deviser's code generator to produce Java code once again.
SBML PackagesComputation modeling has become a crucial aspect of biological research, and SBML (the Systems Biology Markup Language) has become the de facto standard open format for exchanging models between software tools in systems biology.
Since SBML Level 3 is being developed as a modular format with optional SBML Level 3 packages are available to extend the focus of the core SBML representation. Deviser is a new code generation system developed to facilitate the development of SBML L3 packages by helping to automate the generation of specifications, UML diagrams and library code.
The current fork extends Deviser's code generator to produce Java code that can be integrated into JSBML, the pure Java API library for SBML. This allows Deviser to target both libSBML and JSBML. At the current stage it generates the foundation of the packages, which facilitates their implementation.
Using Deviser for Java Code GenerationThere is command line version of the function that can be used to invoke the deviser functionality for generating Java/JSBML code from the XML file. This is the deviser.py file found in the generator directory.
deviser.py [--generatejsbml][--latex] input-file.xml
Requirements for the forkDeviser requires javap for the java code generation at the current phase. Javap is available with the JDK and the following is required for Devisers' java code functionality.
Also set up JAVA_HOME environment variable for your operating system, if you are working under Windows, here is a good tutorial on how to set up. And for Linux: Ubuntu/Debian.
Current StateAt the current state Deviser generates compilable templates, which serve as a foundation and facilitate the implementation of the following packages :
- Qualitative Models package (qual, for short) allows species in a model to have non-quantitative or non-continuous levels. (Chaouiya et al., 2013)
- Groups (groups, Hucka and Smith, 2013) agglomerates SBML model elements and can be linked to annotations and SBO terms (Courtot et al., 2011) to contextualize sets of objects for other programmers and modelers.
- Distributions (distrib, Moodie and Smith, 2013) encodes statistical distributions and their sampling.
- Dynamic Structures (dyn, Gomez et al., 2014), which supports the definition of dynamical behaviors for model entities.
What is left to be implementedSpecific parts of the packages are left to be implemented.
- Flux Balance Constraints (fbc, Olivier and Bergmann, 2013) encodes components for constraints based modeling (Lewis et al., 2012), which employs a class of models in which the canonical stoichiometric relations between reactions and metabolites are specified as constraints for mathematical optimization.
- Spatial Processes (spatial, Schaff et al., 2014) specifies geometric descriptions of biochemical models’ components using a cellular coordinate system that can describe non-uniform molecular distributions, diffusive transport and spatially localized reactions.
Java TestsFor running Java code generation tests, please head to generator/tests/test_java_code and run
If there are any errors, it will also show the code differences.