From System Biology Format Converter framework (SBFC)
Jump to: navigation, search

Conversion from SBML to XPP


About SBML
SBML is a machine-readable format for representing models. It's oriented towards describing systems where biological entities are involved in, and modified by, processes that occur over time. An example of this is a network of biochemical reactions. SBML's framework is suitable for representing models commonly found in research on a number of topics, including cell signaling pathways, metabolic pathways, biochemical reactions, gene regulation, and many others. If you want to know more, you can read the Basic Introduction on SBML
About XPP
XPP is a numerical analysis software. It permits to solve differential equations, difference equations, delay equations, functional equations, boundary value problems, and stochastic equations. To know more, you can read the What is it? page.


The converter is based on jsbml, so support all the levels and versions of SBML until SBML level 3 version 1 core.

Most of the mathematical parts of the SBML model are converted into a set of declarations or equations that can be executed in XPP.

Here is what we wrote to the ode file :

  • all SBML ids are changed to comply to the XPP rules. In XPP id should be 9 character long maximum (may be not true with the latest versions of XPP) and we have to put the local parameter in the same id space as all the others.
  • in general we put a comment for each SBML element that we include in the ode file
  • we declare several functions used in the MathML expression and that do not exist by default in XPP, like root, power,..
  • the compartment elements as para or init
  • the parameters elements as para or init (global parameters as well as local paramaters).
  • the species elements as para or init
  • d species/dt=ODE (if this species actually be affected by reaction/kineticLaw) (ODE should be concentration/time, but kineticLaw usually be substance/time, depending on species unit) (in ODE all the reaction/kineticLaw will be represented as RXNindex)
  • rules
  • reactions/kineticLaws
  • events
  • we set several XPP values to be able to simulate the model
  • done (the word "done" as to be written at the end of an Xpp ode file)

SBML elements not supported
  • delayed event
  • constraint
  • initialAssignment
  • stoichiometryMath
  • some math operators allowed in SBML are not supported by XPP

Information lost in the conversion
  • compartment
  • units
  • sboTerm
  • notes
  • most annotations


You can download SBML2XPP here:

End users

To run SBML2XPP you need java 1.6 or higher.

After unpacking the zipped file, move to the folder that have been created and run:

    # Convert SBML (any *.xml files if you put a folder) to XPP
    # The output file(s) will be in the same folder as the SBML file(s) with an extension .xpp
    ./ [file.xml | folder]


To compile SBML2XPP from source, you also need Apache Ant 1.6.5 or higher.

After editing the source code you can build the jar file by just typing in the SBML2XPP folder:

    # Generate the jar file
    ant jar

    # Generate the java documentation
    ant javadoc

Getting Help and Support

In case you discover a bug within SBFC or request new features, please let us know. There are two dedicated trackers:

For general discussions about SBFC, please use the forum:

sbfc-forum [at]

If you need further support or you wish to develop new modules in SBFC you can contact the team using the following e-mail address:

sbfc-devel [at]

Other known converters