OneModel design philosophy

OneModel was developed to meet the following design requirements in systems and synthetic biology:

  • Reactions: to define models based on reactions with linear or rational rates (e.g. a Hill function) that depend on reactant concentrations.

  • ODE: to define models based on ordinary differential equations (ODE).

  • DAE: to define models based on ODE and differential-algebraic equations (DAE).

  • Modularity: to define models incrementally and reuse specific model parts or functions.

  • Accessibility: low entry barriers for non-expert users, and ease to integrate with other available tools.

  • Simplicity: the tool’s scope is limited to the definition and generation of SBML models; and the simplicity of the tool’s internal implementation.

  • Open source: the code is freely available to the public.

Most of the available text-based tools fail to meet these requirements. The following table enumerates the tools which best met our design requirements.

onemodel comparison table

Fig. 4 Available software compared with the requirements. Ticks green (fully met), and yellow (partially met).

The three of them (Antimony, Little b and BioCRNpyler) allow the user to define models based on reactions and ODE, but none of these tools supports algebraic equations (DAE), an inherent element of the reduced-order models generated by the quasi-steady-state (QSS) approximation.

They also provide enough modularity for model definition. Antimony had some minor problems that limited its full potential (but they will most likely be fixed in the following versions).

About accessibility, Antimony is very accessible through the use of Tellurium, it defines its domain-specific language (as OneModel does), and the need of knowing Python is just for simulation and analysis of the generated models (not the definition of them). BioCRNpyler is very accessible but does not define a domain-specific language, and it relies on Python knowledge for the definition of the models. Little b does not meet our requirements for accessibility.

Concerning simplicity, the three tools are focused on the definition of SBML models. Antimony defines its custom syntax parser that is a handicap when one looks for the simplicity of the tool’s internal implementation: it will make it harder to understand, extend, and maintain the tool’s code by external developers. Little b source code was not found by the author. BioCRNpyler internal implementation is available and is based on Python; therefore, the simplicity requirement is satisfied.

All three tools are freely distributed, but we did not find the source code for Little b.

OneModel allows the user to define models with chemical or biochemical pseudo-reactions; and differential and algebraic equations. It has sufficient modularity to implement complex models efficiently. In addition, OneModel defines a domain-specific language (to avoid learning Python by the user) and incorporates two interfaces: the graphical user interface, which lowers the entry barriers for non-expert users to the minimum, and the command-line interface for expert users to integrate OneModel into their workflows. It is focused on definition of SBML models and it minimizes the use of custom code in its implementation. Finally, it is freely distributed and its source code can be found at https://github.com/sb2cl/onemodel.