SBML.org — the global portal for all things SBML

Groups Proposal (2009-10)

Contents

Proposal title

Groups. (Keyword: groups.)

Proposal authors

Michael Hucka
Engineering and Applied Science
California Institute of Technology
Pasadena, CA 91125
USA

Proposal tracking number

Number 2847474 in the SBML issue tracking system.

Version information

Version number and date of public release

This is version 2 of the Groups proposal, released 28 October 2009.

Version 1 of this proposal had a substantially different object model. Version 2 of the proposal, in the present document, is simpler and does not allow certain group membership structures that were deemed undesirable in the previous version of the proposal.

URL for this version of the proposal

http://sbml.org/Community/Wiki/SBML_Level_3_Proposals/Groups_Proposal_%282009-10%29

URL for the previous version of this proposal

Groups Proposal (2009-09)

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.

Background

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

The Groups package involves four simple new object classes, Group, Member, ListOfMembers and ListOfGroups, as well as a simple extension of the existing Model object class in SBML Level 3 Core.

Basic syntax

The following is the UML diagram defining Group, ListOfMembers, and Member:


As shown above, the definition of Group 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. 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.)

Likewise, Member is also very simple, defining one required attribute whose value must be the identifier of an object elsewhere in the model. An example value of symbol might be the identifier of a species in the model, or a compartment, or a parameter. Since Member is also derived from SBase and, as mentioned above, SBase provides both the ability to attach SBO terms as well as MIRIAM annotations, the semantics of a given "member" in a model can be made more precise by reference to external controlled vocabularies and ontologies.

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"

A group G is defined by declaring an instance of a Group class object within the <listOfGroups> element of a <model>. The group can be given an optional identifier value, but even if the group does not have an identifier, the act of declaring a group has the effect of creating it.

An entity X in the model is declared to be part of group G by listing the identifier of X in a Member object within the <listOfMembers> element of G. The following is an example to illustrate the structure:

<model id="model_1"> 
  <listOfSpecies> 
    <species id="s1" .../> 
    <species id="s2" .../> 
    <species id="s3" .../> 
    <species id="s4" .../> 
  </listOfSpecies> 
  ... 
  <listOfReactions> 
    <reaction id="r1" ...> ... </reaction> 
    <reaction id="r2" ...> ... </reaction> 
  <listOfReactions> 
  ... 
  <listOfGroups xmlns="http://www.sbml.org/sbml/level3/version1/groups/version1"> 
    <group id="some_species_group"> 
      <listOfMembers> 
        <member symbol="s1"/> 
        <member symbol="s3"/> 
      </listOfMembers> 
    </group> 
    <group id="some_reaction_group"> 
      <listOfMembers> 
        <member symbol="r1"/> 
        <member symbol="r2"/> 
      </listOfMembers> 
    </group> 
  </listOfGroups> 
</model> 

The meaning of group membership is intended in the following sense: for an entity X referenced in the list of members of a group G,

"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. Also, groups can refer to other groups:

<model id="model_2"> 
  ... 
  <listOfGroups xmlns="http://www.sbml.org/sbml/level3/version1/groups/version1"> 
    <group id="group1"> 
      <listOfMembers> 
        <member symbol="..."/> 
        <member symbol="..."/> 
      </listOfMembers> 
    </group> 
    <group id="group2"> 
      <listOfMembers> 
        <member symbol="group1"/> 
        <member symbol="..."/> 
        <member symbol="..."/> 
      </listOfMembers> 
    </group> 
  </listOfGroups> 
</model> 

The meaning of group-with-group references such as this is left up to the modeler. The intended meaning can be made more precise by annotating the group and members with appropriate MIRIAM annotations using controlled vocabulary terms that describe the meaning.

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).

<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1" 
      xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" 
      groups:required="false"> 
  ... 
  <model>  
    ... 
    <listOfSpecies>     
        <species id="ATPc" compartment="cytosol" initialConcentration="1"/> 
        <species id="ATPm" compartment="mitochon" initialConcentration="2"/> 
    </listOfSpecies>   
    ...    
    <listOfCompartments>   
        <compartment id="cytosol"/>   
        <compartment id="mitochon"/>   
    </listOfCopartments>   
    ...  
    <listOfGroups xmlns="http://www.sbml.org/sbml/level3/version1/groups/version1">   
        <group id="ATP" sboTerm="SBO:0000252"> 
            <member symbol="ATPc"/> 
            <member symbol="ATPm"/> 
        </group> 
    </listOfGroups>   
  </model>  
</sbml> 

Prototype implementations

Translation to SBML Level 2

Unresolved issues

References

  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 http://sbml.org/Documents/Specifications/All_Releases_and_Versions_of_SBML_Level_2 .
  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 .
  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 http://sbml.org/Documents/Specifications/All_Releases_and_Versions_of_SBML_Level_2 .
  4. Finney, A. (2004) Multicomponent Species: A proposal for SBML Level 3. Available online at http://sbml.org/images/1/19/20041015-finney-multicomponent.pdf .
  5. http://sbml.org/Forums/index.php?t=tree&goto=3057&rid=2
  6. 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 .
  7. 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 .

Appendix

Retrieved from "http://sbml.org/Community/Wiki/SBML_Level_3_Proposals/Groups_Proposal_%282009-10%29"

This page was last modified 06:59, 30 April 2010.



Please use our issue tracking system for any questions or suggestions about this website. This page was last modified 06:59, 30 April 2010.