Main Content

What is a SimBiology Model?

Model Definition

A SimBiology® model is composed of a set of expressions (reactions, differential equations, discrete events), which together describe the dynamics of a biological system. You write expressions in terms of quantities (compartments, species, parameters), which are also enumerated in the model.


There are four distinct types of expressions in SimBiology:

  • Reactions

  • Rules

  • Events

  • Observables


A reaction describes a process such as a transformation, transport, or binding/unbinding process between reactants and products.

Example reactions include:

Creatine + ATP <-> ADP + phosphocreatine
cytoplasm.speciesA -> nucleus.speciesA


A rule is a class of mathematical expressions that include differential equations, initial assignments, repeated assignments, and algebraic constraints.

For example, you can use a rule to:

  • Specify values for model components that are required for comparison with experimental data. For example, specify the active fraction of total protein.

  • Assign values to model components based on the values of other components in the model. For example, define a parameter's value as being proportional to a species or another parameter.

  • Define mass balance equations.

  • For species, use rate rules as an alternative to the differential rate expression generated from reactions.


An event describes an instantaneous change in the value of a quantity (compartment, species, parameter). The discrete transition occurs when a user-specified condition becomes true. The condition can be a specific time or a specific time-independent condition.

For example, you can use an event to:

  • Activate or deactivate a specific species (activator or inhibitor species).

  • Change a parameter value based on external signals.

  • Change reaction rates in response to addition or removal of a species.

  • Replicate an experimental condition, such as the addition or removal of an activating agent (such as a drug) to or from a sample.


An Observable is a mathematical expression that lets you perform post-simulation calculations. For example, you can use an observable to:

  • Compute some statistics such as area under the curve (AUC) of a drug concentration profile.

  • Compute the fraction of a ligand that is bound to a receptor at each time step.

You can also use an observable as a response in simulation, data fitting, and global sensitivity analysis.


SimBiology uses three types of quantities in models:

  • Compartments

  • Species

  • Parameters


A compartment defines a physically bounded region that contains species. A compartment is characterized by a capacity expressed as volume, area, or length. A compartment can also contain other compartments, which adds hierarchy to a model. For example, a compartment named cytoplasm might contain a compartment named nucleus, thereby partitioning species based on their location.


A species characterizes the state of the biological system by representing the amount (or concentration) present in the system for that entity. Examples of species are DNA, ATP, and creatine. Species' amounts (or concentrations) vary during a simulation as a result of their participation in reactions, differential equations, and events. Therefore, species represent the dynamical state of a biological system.


A parameter is a quantity that is referred to by expressions. It typically remains constant during a simulation. For example, parameters are used as rate constants in reactions.

You can configure a parameter to vary during a simulation. This is useful, for example, to model the change in a reaction rate given the concentration of a catalyst or a change in temperature.

Model Hierarchy

Note the following conditions imposed on quantities in the model hierarchy:

  • Models must contain at least one compartment.

  • A compartment can contain one or more compartments.

  • Species are always contained within a compartment.

Representing a Model

In SimBiology, models and their components are implemented as objects. These objects have properties and methods that you can use to access and configure them. Use the get method to list the property values of an object. Use the dot notation to change the property values of an object.

SimBiology objects are handle objects, which has implications for how they behave during copy operations. Handle objects are referenced by their handle variable, and copies of the handle variable refer to the same object. To learn how handle objects affect copy operations, see Copying Objects.

See Also