— the global portal for all things SBML

Groups Proposal (2009-09)


Proposal title

Groups. (Appreviation: groups.)

Proposal authors

Michael Hucka
Beckman Institute BNMC
California Institute of Technology
Pasadena, CA 91125

Proposal tracking number

Number 2847474 in the SBML issue tracking system.

Version information

Version number and date of public release

Version 1 of the Groups proposal, released 1 September 2009.

URL for this version of the proposal

URL for the previous version of this proposal

There is no previous version of the proposal at this time.

Introduction and motivation

SBML Level 2 versions 2–4 [1][2][3] provides two object classes, CompartmentType and SpeciesType, meant to allow the definition of types of compartments and species. The original motivation for their introduction was in anticipation of introducing generalized reactions, a scheme that would allow reactions to be defined on whole classes of entities in a compact format. However, generalized reactions never ended up being introduced in SBML Level 2, and the notion of generalized reactions has been superceded by the effort to support rule-based models using the Level 3 Multistate and Multicomponent Species package. Moreover, if there are compartment types and species types, why aren't there also parameter types, rule types, event types, reaction types, etc.? In view of these considerations, and the fact that few models seemed to have taken advantage of SpeciesType and CompartmentType so far, the approach being taken for Level 3 is to remove SpeciesType and CompartmentType, with the intention of creating a separate package for typing.

This is the proposal for that package, with the modification that the concept has been changed from "types" to "groups". The reason for the change is that the word "types" would imply stronger behavioral constraints on objects than what this package would provide. This package really only provides a means of defining groups of entities, not types in the computer science sense, therefore a different term is more appropriate.


Problems with current SBML approaches

In SBML Level 2, as mentioned in the introduction above, the CompartmentType and SpeciesTypes constructs are only a partial solution to object typing or grouping. They only address the problem of putting types on compartments and species, respectively, and do not address types/groups/sets of other model objects such as parameters. In SBML Level 3 Core, there is no built-in typing mechanism. A package to add this functionality is therefore desirable.

Past work on this problem or similar topics

The most relevant work on this topic is the development of the CompartmentType and SpeciesType object classes in the SBML Level 2 specification beginning with Version 2 [1]. The original design was based on Andrew Finney's proposal for these object classes, which was made in the context of Finney's proposal for multicomponent species for SBML Level 3 [4]. The SpeciesType class was included in the draft SBML Level 2 Version 2 to lay the groundwork for multicomponent species in Level 3, but CompartmentType was not; instead, a community vote was held in 2006 [5] on the question of whether CompartmentType should also be added to SBML Level 2 Version 2. The original expectation was to also introduce generalized reactions, and a community vote was held on this topic [6], but the result of the vote was such that generalized reactions were not accepted [7].

Proposed syntax and semantics

Image:Updated.gif 2009-08-31 This is still a work in progress.

Basic syntax

The Groups package involves four simple new object classes, Group, ListOfGroups, GroupMembership and ListOfGroupMemberships, as well as extension of the existing SBase and Model object classes in SBML Level 3 Core.

First, below is the UML diagram defining the Group object class. The definition is simple—it essentially only provides an identifier. The meaning of this group identifier in the context of a model is up to the modeler. However, since Group is derived from SBase and SBase provides both the ability to attach SBO terms as well as MIRIAM annotations, the semantics of a given "group" in a model can be made more precise by reference to external controlled vocabularies and ontologies. (For instance, a group could be annotated as having an "isa" relationship to specific GO or SBO terms.)

Second, SBase would, in this proposal, have a new optional list of groups attached to it. The UML diagram for the modified version of SBase is shown below. The green text indicates the extension added by this package.

The result of putting a list of group memberships on SBase is that nearly every component in SBML can be associated with one or more groups. This means that a model can define not only compartment groups and species groups, but also parameter groups, event groups, reaction groups, etc. In addition, it also permits hierarchical nesting of groups. A group can itself be part of one or more other groups because Group is itself derived from SBase.

Finally, below is the UML diagram showing the extension of Model to add a new list of groups. A model can define any number of groups in the <listOfGroups> within the <model>.

Semantics of "groups"

An SBML entity X indicates it is part of a group G by having listing group the identifier of group G in its list of groups. The meaning of group membership is intended in the following sense:

entity X is conceptually related to other members of group G

There are no assumed or presupposed relationships between group members. Membership could mean "isa", or it could mean something else—the meaning is up to the modeler. Different group memberships could represent different relationships.

This facility is analogous to tags of the sort common in Web 2.0 applications. Tags are a way of labeling entities (and in some systems such as Gmail are actually known as labels). In a grouping or tagging system, there is an unlimited number of ways to classify an item. Instead of belonging to one category, an entity may be a member of several groups.

Semantic restrictions

The way that this package is formulated now, its use would have no impact on the mathematics of a model. There are no semantic restrictions necessary. Further, as a consequence of this, this package would not be required for proper interpretation of a model. Models could use the required=false flag on the declaration of the package on the <sbml> element in a file.

Package dependencies

This package does not depend on any other SBML Level 3 package.

Use-cases and examples

The following is a simple example of using this proposed grouping facility to do something similar to the SpeciesType example shown in Section 4.6.3 of the SBML Level 2 Version 4 specification (p. 43).

      <group id="ATP" sboTerm="SBO:0000252"/>  
      <compartment id="cytosol"/>  
      <compartment id="mitochon"/>  
      <species id="ATPc" compartment="cytosol"  initialConcentration="1">
            <groupMembership group="ATP"/>
      <species id="ATPm" compartment="mitochon" initialConcentration="2"
            <groupMembership group="ATP"/>

Prototype implementations

Translation to SBML Level 2

Unresolved issues


  1. 1.0 1.1 Finney, A., Hucka, M., Le Novère, N. (2006) Systems Biology Markup Language (SBML) Level 2: Structures and Facilities for Model Definitions. (The SBML Level 2 Version 2 specification.) Available online at .
  2. Hucka, M., Finney, A., Hoops, S., Keating, S. M., Le Novère, N. (2007) Systems Biology Markup Language (SBML) Level 2: Structures and Facilities for Model Definitions. (The SBML Level 2 Version 3 Release 2 specification.) Available online at .
  3. Hucka, M., Hoops, S., Keating, S. M., Le Novère, N., Sahle, S., Wilkinson, D. J. (2008) Systems Biology Markup Language (SBML) Level 2: Structures and Facilities for Model Definitions. (The SBML Level 2 Version 4 Release 1 specification.) Available online at .
  4. Finney, A. (2004) Multicomponent Species: A proposal for SBML Level 3. Available online at .
  6. The SBML Editors. (2006) SBML L2v2 specification vote #9: Introducing Generalized Reactions. Available online at .
  7. The SBML Editors. (2006) Results of L2v2 specification vote #9: Introducing Generalized Reactions. Available online at .


Retrieved from ""

This page was last modified 05:52, 2 September 2009.

Please use our issue tracking system for any questions or suggestions about this website. This page was last modified 05:52, 2 September 2009.