create new tag
, view all tags
-- 2011-02-27

jlibSEDML 1.1.0 Release Notes

jlibSEDML is intended to provide pure Java libraries to facilitate SED-ML support for applications to:

  • read, validate, edit, and write out SED-ML documents
  • execute tasks and produce outputs and reports as specified in SED-ML documents

This implementation is for the SED-ML Level 1 Version 1 specification as of the Jan 3, 2011, pre-release 3. This release is for the core functionality of SED-ML and does not included simulation libraries such as VCell or Copasi.

A brief description of design, current functionality and limitations follows below. A developer's user manual is included with the core distribution - please read this for detailed usage and example code.

Java code organization

jlibSEDML library consists of 8 Java packages:

  • org.sedml package : This package contains the public API data model for each of the known entities specified in the SEDML specification. SEDBase is the base class from which all other SEDML entities (Model, Simulation, Task, Output, Variable, Parameter, etc.) are derived. SedML is a holder for the SEDML element and contains a list of models, simulations, tasks, data generators, outputs and other specified attributes of the SEDML root element in the document. The SEDMLDocument class encapsulates a SedML model and provides additional validation services. SEDMLTags contains a collection of XML element name strings that are used by SEDMLReader and SEDMLWriter to translate between the XML and data model formats of the SEDML document. The Version class is used to consolidate the level and version of the SEDML document. SEDMLError, XMLException and Assert classes are used for error handling. Libsedml contains utility methods for reading/writing miase archives (using IModelContent, FileModelContent, BaseModelContent, ArchiveComponents classes).
  • org.sedml.applications package : This package contains an interface Simulator that contains a set of methods (to run tasks, retrieve variables from simulation results, plot data, get reports, etc.) that can be implemented by any tool that can process SEDML. The class AbstractSimulator implements the Simulator interface; it provides an implementation for plotData using the generalized VCell plot mechanisms (packaged in Utilities_20100525.jar). SimulatorCopasi and SimulatorVCell extend the AbstractSimulator class. [Note: Any tool choosing to use its own mechanism for plotting can implement the Simulator interface and proceed from there].
  • org.sedml.applications.vcell package : This package contains SimulatorVCell that implements the Simulator interface and uses VCell methodologies to process the SEDML document and run simulations.
  • org.sedml.applications.copasi package : This package has one class SimulatorCopasi that implements Simulator interface uses Copasi mechanisms to handle the SEDML document and run simulations.
  • org.sedml.validation package : a set of classes ( SEDMLValidator, SemanticValidationManager, SimulationsValidator, UniformTimeCourseValidator) used for semantic and schema validation of the SEDMLDocument; and schema files for SEDML and SBML-MathML.
  • org.sedml.execution An execution framework providing hooks into the simulation process that can be used by simulation engines.
  • org.sedml.mathsymbols provides SED-ML specific extensions to the included MathML library.
  • org.sedml.modelsupport provides support services for handling the various modelling languages provided by SED-ML.

Usage and Functionality

The library provides sample usage and exercising of (almost) all functionality. org.sedml.applications.SedTest is a tester class that can be used to test the library. It can be run with the following options:

[path_of_input_file [[-run vcell|copasi] [-output]]|[-save filename]]

The specified input file will be read in and validated as correct SEDML.

-run option is used to run the tasks using the simulator specified in the argument (presently VCell or Copasi)

-output option is used optionally in addition to -run and will display each output specified by the SEDML document as both a line plot and a spreadsheet-style table

-save saves the document as an XML file.


The jlibSEDML library has the following external dependencies (jars, executables and dlls are required for full functionality - all are free):

  1. xom-1.2.1.jar : XOM (for xpath)
  2. jaxen-1.1.1.jar : Jaxen (used with XOM for xpath)
  3. jdom_1.0.jar : translating between XML and Java objects.
  4. biomodelswslib-standalone-1.11.jar and MiriamJavaLib-standalone-20080421.jar (for downloading SBML models from Biomodels.net database)
  5. VCell_All_20100521.jar, SundialsSolverStandalone.exe, expat.dll, sbml.dll, sbmlj.dll ( required for running tasks with VCell)
  6. copasi_build30.jar and CopasiJava.dll ( required for running tasks with Copasi)
  7. Utilities_20100525.jar : a collection of utility classes that can be used for VCell-style expression parsing, plotting of data, etc. (used by SimulatorCopasi and SimulatorVCell to plot the outputs specified in the SEDML file).


This project uses JDOM 1.0 to translate between XML and the Java constructs of the SEDML document. Due to the limitations of JDOM version 1.0, Xpath strings used in the SEDML document (in the <Change> entity for modifying an existing model or in the <DataGenerator> entity while specifying particular variables from different models that need to be observed in the output) are handled using XOM 1.2.1 (open source XML Object Model) and Jaxen 1.1.1 (open source Java XPath library).

Known limitations

  1. When getting outputs/plots from <DataGenerators>, each data generator can have multiple variables; each of those variables can be from different tasks => different time sampling. Interpolation/extrapolation might be required in order to make all variables have the same time sampling when filling in the result set corresponding to a particular <DataGenerator>.
  2. Currently, only 2D plots are supported as a graphical output.


This library was made possible thanks to Richard Adams (semantic & syntatic validation, producing/reading MIASE archive, setting up the Sourceforge page - code repository, tracker, etc., etc.); Dan Vasilescu (setting up Java data objects for SEDML constructs, parsing/writing SEDML documents), Ion Moraru for guidance/inputs/clarifications regarding SEDML; Anuradha Lakshminarayana (implementing VCell/Copasi simulators as example applications for handling SEDML documents).

Topic attachments
I Attachment Action Size Date Who Comment
Dynamic Linked Library; Microsoft application filedll CopasiJava.dll manage 4496.0 K 2010-05-20 - 19:47 AnuradhaLakshminarayana CopasiJava DLL (build30)
Unknown file formatjar MiriamJavaLib-standalone-20080421.jar manage 2675.2 K 2010-05-19 - 20:28 AnuradhaLakshminarayana MiriamJavaLib 2008_04_21
Compressed Zip archivezip SEDML3_27_5_10.zip manage 165.0 K 2010-05-27 - 10:44 UnknownUser source & test code updated by RA on 27-5-10
Compressed Zip archivezip SEDML_src_2010_05_26.zip manage 136.2 K 2010-05-26 - 17:45 AnuradhaLakshminarayana Zip of source code for SEDML project + 2 xsd files for schema validation
Microsoft Executable fileexe SundialsSolverStandalone_NoMsg_20100329.exe manage 472.0 K 2010-05-19 - 20:55 AnuradhaLakshminarayana SundialsSolverStandalone_20100329 executable
Unknown file formatjar Utilities_20100525.jar manage 420.8 K 2010-05-26 - 21:12 AnuradhaLakshminarayana Utility classes to plot outputs/expression parsing
Unknown file formatjar VCell_All_20100521.jar manage 35076.3 K 2010-05-26 - 19:34 AnuradhaLakshminarayana VCell source and related jars rolled into one jar.
Unknown file formatjar biomodelswslib-standalone-1.11.jar manage 1878.8 K 2010-05-19 - 20:28 AnuradhaLakshminarayana BiomodelsNet webservices 1.11
Unknown file formatjar copasi_build30.jar manage 364.8 K 2010-05-19 - 20:56 AnuradhaLakshminarayana Copasi_build30
Dynamic Linked Library; Microsoft application filedll expat.dll manage 120.0 K 2010-05-26 - 19:37 AnuradhaLakshminarayana expat DLL for required for running VCell simulator
Unknown file formatjar jaxen-1.1.1.jar manage 221.6 K 2010-05-19 - 20:27 AnuradhaLakshminarayana Jaxen 1.1.1
Unknown file formatjar jdom_1.0.jar manage 121.0 K 2010-05-19 - 20:26 AnuradhaLakshminarayana JDOM 1.0
Compressed Zip archivezip newSrc_21_5_2010.zip manage 137.8 K 2010-05-21 - 23:57 UnknownUser Source with merged jlibsedml functionality from RA 21-5-10
Dynamic Linked Library; Microsoft application filedll sbml.dll manage 1848.0 K 2010-05-26 - 19:37 AnuradhaLakshminarayana sbml DLL for required for running VCell simulator
Dynamic Linked Library; Microsoft application filedll sbmlj.dll manage 456.0 K 2010-05-26 - 19:37 AnuradhaLakshminarayana sbmlj DLL for required for running VCell simulator
XMLxml sedMLBIOM12_2.xml manage 4.5 K 2010-05-20 - 21:44 AnuradhaLakshminarayana SEDML sample file using Biomodels.net Model 12
XMLxml sedml_3.xml manage 2.6 K 2010-05-20 - 21:44 AnuradhaLakshminarayana SEDML sample file using Biomodels.net Model 3
Compressed Zip archivezip sedml_javadoc_2010_5_26.zip manage 377.3 K 2010-05-26 - 19:35 AnuradhaLakshminarayana Javadoc for SEDML source
Unknown file formatjar xom-1.2.1.jar manage 406.7 K 2010-05-19 - 20:27 AnuradhaLakshminarayana XOM 1.2.1
Topic revision: r14 - 2011-03-03 - 13:48:59 - RaquellHolmes
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback