Groups Proposal (2009-09)
Groups. (Appreviation: groups.)
Beckman Institute BNMC
California Institute of Technology
Pasadena, CA 91125
Proposal tracking number
Number 2847474 in the SBML issue tracking system.
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  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 . 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 . 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  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 , but the result of the vote was such that generalized reactions were not accepted .
Proposed syntax and semantics
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
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.
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.
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).
<model> <listOfGroups> <group id="ATP" sboTerm="SBO:0000252"/> </listOfGroups> <listOfCompartments> <compartment id="cytosol"/> <compartment id="mitochon"/> </listOfCopartments> <listOfSpecies> <species id="ATPc" compartment="cytosol" initialConcentration="1"> <listOfGroupMemberships> <groupMembership group="ATP"/> </listOfGroupMemberships> </species> <species id="ATPm" compartment="mitochon" initialConcentration="2" <listOfGroupMemberships> <groupMembership group="ATP"/> </listOfGroupMemberships> </species> </listOfSpecies> </model>
Translation to SBML Level 2
- ↑ 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 http://sbml.org/Documents/Specifications/All_Releases_and_Versions_of_SBML_Level_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 http://sbml.org/Documents/Specifications/All_Releases_and_Versions_of_SBML_Level_2 .
- ↑ 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 http://sbml.org/Documents/Specifications/All_Releases_and_Versions_of_SBML_Level_2 .
- ↑ Finney, A. (2004) Multicomponent Species: A proposal for SBML Level 3. Available online at http://sbml.org/images/1/19/20041015-finney-multicomponent.pdf .
- ↑ http://sbml.org/Forums/index.php?t=tree&goto=3057&rid=2
- ↑ The SBML Editors. (2006) SBML L2v2 specification vote #9: Introducing Generalized Reactions. Available online at http://sbml.org/Forums/index.php?t=tree&goto=3026&rid=0 .
- ↑ The SBML Editors. (2006) Results of L2v2 specification vote #9: Introducing Generalized Reactions. Available online at https://utils.its.caltech.edu/pipermail/sbml-discuss/2006-February/001564.html .