libSBML C API
5.18.0
|
The SBML Level 3 Groups package provides a means of defining a group of entities: a simple mechanism for indicating that particular components of an SBML model are related in some way. A group is defined using a Group_t class object, and all the Group_t objects in a model are stored in the parent Model_t object within a ListOfGroups_t object.
A ListOfGroups_t is optional, but, if present, must contain at least one Group_t object. In common with other ListOf___ classes in SBML, ListOfGroups_t is derived from SBase_t. It inherits SBase_t's attributes "metaid" and "sboTerm", as well as the subcomponents for Annotation and Notes, but does not add any new attributes of its own.
The relationship between the lists and the rest of an SBML model is illustrated by the following (for SBML Level 2 Version 4):
SBML Level 3 Version 1 has essentially the same structure as Level 2 Version 4, depicted above, but SBML Level 3 Version 2 allows containers to contain zero or more of the relevant object, instead of requiring at least one. As such, libsbml will write out an otherwise-empty ListOf___ element that has any optional attribute set (such as 'id' or 'metaid'), that has an optional child (such as a 'notes' or 'annotation'), or that has attributes or children set from any SBML Level 3 package, whether or not the ListOf___ has any other children.
Readers may wonder about the motivations for using the ListOf___ containers in SBML. A simpler approach in XML might be to place the components all directly at the top level of the model definition. The choice made in SBML is to group them within XML elements named after ListOfClassname, in part because it helps organize the components. More importantly, the fact that the container classes are derived from SBase_t means that software tools can add information about the lists themselves into each list container's "annotation".
Public Member Functions | |
Group_t * | ListOfGroups_getById (ListOf_t *lo, const char *sid) |
Get a Group_t from the ListOf_t based on its identifier. More... | |
Group_t * | ListOfGroups_getGroup (ListOf_t *lo, unsigned int n) |
Get a Group_t from the ListOf_t. More... | |
Group_t * | ListOfGroups_remove (ListOf_t *lo, unsigned int n) |
Removes the nth Group_t from this ListOf_t and returns a pointer to it. More... | |
Group_t * | ListOfGroups_removeById (ListOf_t *lo, const char *sid) |
Removes the Group_t from this ListOf_t based on its identifier and returns a pointer to it. More... | |
Get a Group_t from the ListOf_t based on its identifier.
lo | the ListOf_t structure to search. |
sid | a string representing the identifier of the Group_t to retrieve. |
Get a Group_t from the ListOf_t.
lo | the ListOf_t structure to search. |
n | an unsigned int representing the index of the Group_t to retrieve. |
Removes the nth Group_t from this ListOf_t and returns a pointer to it.
lo | the ListOf_t structure to search. |
n | an unsigned int representing the index of the Group_t to remove. |
Removes the Group_t from this ListOf_t based on its identifier and returns a pointer to it.
lo | the ListOf_t structure to search. |
sid | a string representing the identifier of the Group_t to remove. |