Main Content

SBML Support

What Is SBML?

Systems Biology Markup Language (SBML) is a standard format for sharing systems biology models among various modeling and simulation software tools. The current specification is available here.

Import from SBML Files

Import an SBML model from a file or URL using sbmlimport.

SimBiology® supports a subset of the SBML level 3 version 1 specification. The following SBML features are not imported into the SimBiology model:

  • Piecewise kinetics — Models with piecewise kinetics are loaded, but the definitions for piecewise kinetics are ignored.

  • MATLAB® incompatible variable names in UnitDefinition — Models that have variable names incompatible with MATLAB in UnitDefinition are not loaded and an error message is displayed.

  • The hasOnlySubstanceUnits attribute does not have a corresponding property in the SimBiology species object. Instead, if the species has no units, SimBiology uses the DefaultSpeciesDimension property to determine whether to interpret species names in expressions as substance amounts or concentrations. When you set DefaultSpeciesDimension to substance and do not specify units, SimBiology interprets species names as substance amounts and does not scale by any compartment capacity (volume). When the property is set to concentration, species names are interpreted as concentrations and are scaled by the appropriate compartment capacity. SimBiology does not let you set the initial value of a species as concentration or substance amount independently of how you refer to it in expressions. To provide better compatibility with SBML models having this attribute, SimBiology adds an initial assignment rule or appropriate units during the import process. For details, see the Compatibility Considerations section of sbmlimport.

  • Models containing other models as submodels are loaded but submodels are ignored.

  • The fast attribute of any reaction object is ignored.

  • The delay, priority, initialValue, persistent, and useValuesFromTriggerTime attributes of event objects are ignored.

  • XOR, OR, and AND logical operators having three or more arguments are not supported. They are supported for binary operations only.

  • The constraints and conversion factors are not supported.

  • If there is any rule that determines a stoichiometric coefficient, the rule is imported with a warning that says Rule variable <identifier> does not refer to any object in the model.

Read-Only Support for Function Definitions

You can import SBML models with function definitions. SimBiology replaces the function definitions with the corresponding mathematical expressions.

Support for Reaction IDs

You can also load SBML models that use reaction IDs to reference reaction rates in mathematical expressions. SimBiology replaces the references with the corresponding reaction rates.

Export a SimBiology Model to SBML Format

SimBiology Features Supported by SBML

The following SimBiology model information is included in the SBML format file:

  • Compartments, species, parameters, reactions, rules, and events that are defined in the model and have their Active property set to true.

  • All unit definitions in SBML-compliant format.

  • Model component properties with SBML equivalents, such as notes, and unit values for species and parameters.

  • The reaction rate equation, but not the kinetic law definition.


SimBiology and MATLAB Features Not Supported by SBML

Not all SimBiology and MATLAB features are supported by SBML. If your model contains any of those features, SimBiology issues corresponding warnings during the model export. The following SimBiology features are not supported and are not included in the saved SBML format file.

  • Projects — Models, analysis programs, and data.

  • Kinetic law information — SimBiology models store kinetic law information such as the kinetic law name and a Kinetic Law Definition.

  • Variant information — Collections of quantities (compartments, species, and/or parameters) that you can use to alter a model's initial or base configuration.

  • Dosing information — Exogenous increments to the amount (or concentration) of a species in a model.

  • Custom MATLAB function files — Custom functions that you used in your SimBiology model.

  • Features and properties specific to SimBiology software, such as Name (of Rule objects only), Tag, and Active.

  • Some MATLAB features — Some of the MATLAB features and language constructs are not supported. For example, elementwise operations, such as .*, ./, character vector such as 'drug', string such as "drug", empty bracket [] are not supported.


  • With respect to the BoundaryCondition and Constant properties of a species, SimBiology is more permissive than the SBML standard. In SimBiology, a constant species with BoundaryCondition set to false can participate in a reaction. In this case, the species value is held constant during simulation, even if the net stoichiometry is non-zero. To be compliant with the SBML standard in this situation, set species BoundaryCondition to true.

  • If your models use any of these features not supported by SBML, save your work as a SimBiology project file (.sbproj) to capture such information.

See Also