libSBML C++ API  5.18.0
FbcModelPlugin Class Reference
Inheritance diagram for FbcModelPlugin:
[legend]

Detailed Description

fbc Extension of Model.

The FbcModelPlugin object is used to extend the standard SBML Model object with features used in the SBML Level 3 Flux Balance Constraints (“fbc”) package. In Version 1 of the “fbc” specification, the extended Model class has two optional subobjects: ListOfObjectives and ListOfFluxBounds. In Version 2 of the specification, the extended Model object is defined differently: it is extended with a new required attribute named "strict", and the two optional subobjects ListOfObjectives and ListOfGeneProducts. (ListOfFluxBounds is not used in Version 2.)

The "strict" attribute on the (extended) Model class

The mandatory attribute "strict", of type boolean, in Version 2 of this package, is used to apply an additional set of restrictions to the model. The "strict" attribute helps ensure that the Flux Balance Constraints package can be used to encode legacy flux-balance analysis models expressible as Linear Programs (LP's) for software that is unable to analyze arbitrary mathematical expressions that may appear in an SBML model. In addition, a "strict" model is fully described and mathematically consistent, for example, by ensuring that all fluxes have a valid upper or lower bound.

The following restrictions are in effect if an “fbc” model object has a value of "true" for the attribute "strict" on Model:

  • Each Reaction in a Model must define values for the attributes "lowerFluxBound" and "upperFluxBound", with each attribute pointing to a valid Parameter object defined in the current Model.
  • Each Parameter object referred to by the Reaction attributes "lowerFluxBound" and "upperFluxBound" must have its "constant" attribute set to the value "true" and its "value" attribute set to a value of type double. This value may not be "NaN".
  • SpeciesReference objects in Reaction objects must have their "stoichiometry" attribute set to a double value that is not "NaN", nor "-INF", nor "INF". In addition, the value of their "constant" attribute must be set to "true".
  • All defined FluxObjective objects must have their coefficient attribute set to a double value that is not "NaN", nor "-INF", nor "INF".
  • A Reaction "lowerFluxBound" attribute may not point to a Parameter object that has a value of "INF".
  • A Reaction "upperFluxBound" attribute may not point to a Parameter object that has a value of "-INF".
  • For all Reaction objects, the value of a "lowerFluxBound" attribute must be less than or equal to the value of the "upperFluxBound" attribute.

While it is not compulsory for a "strict" Flux Balance Constraints model to define an Objective, doing so does does allow the model to be formulated as a Linear Program and optimized. However, this decision is left to the modeler. Note that all other properties of the objects referred to in the list above are to be set as specified in the relevant SBML Level 3 Version 1 Core and Flux Balance Constraints (“fbc”) specifications.

Alternatively, if the value of the strict attribute is "false", then none of these restrictions apply and the model creator can choose to define “fbc” models that are not necessarily encodable as an LP. For example, if strict is "false", the InitialAssignment construct may be used to set any valid numerical entity, including Parameter values and stoichiometric coefficients, with any value of type double. In addition, Parameter elements are no longer required to be flagged as constant, thus allowing for a Flux Balance Constraints model's use in alternative, hybrid modeling strategies.

Lists of subobjects on the (extended) Model class

The ListOfObjectives is used to define the objectives of a given “fbc” model. Objectives generally consist of linear combinations of model variables (fluxes) and a direction for the optimality constraint (either maximization or minimization). Each Objective has a ListOfFluxObjectives subobjects.

In Version 2 of “fbc”, the ListOfGeneProducts is used to define the gene products represented by the “fbc” model.

In Version 1 of “fbc”, there is no ListOfGeneProducts, and instead, Model can have an optional ListOfFluxBounds.

See also
Objective
FluxObjective
FluxBound
Examples:
fbc_example1.cpp.

Public Member Functions

int addFluxBound (const FluxBound *bound)
 Adds a copy of the given FluxBound object to the list of FluxBounds. More...
 
int addGeneAssociation (const GeneAssociation *association)
 Adds a copy of the given GeneAssociation annotation object to the list of GeneAssociations. More...
 
int addGeneProduct (const GeneProduct *gp)
 Adds a copy the given GeneProduct to this FbcModelPlugin. More...
 
int addObjective (const Objective *o)
 Adds a copy the given Objective to this FbcModelPlugin. More...
 
virtual FbcModelPluginclone () const
 Creates and returns a deep copy of this FbcModelPlugin object. More...
 
FluxBoundcreateFluxBound ()
 Creates a new FluxBound object and adds it to the list of FluxBound objects and returns it. More...
 
GeneAssociationcreateGeneAssociation ()
 Creates a new GeneAssociation annotation object and adds it to the list of GeneAssociation objects and returns it. More...
 
GeneProductcreateGeneProduct ()
 Creates a new GeneProduct object, adds it to this FbcModelPlugin's ListOfGeneProducts and returns the GeneProduct object created. More...
 
ObjectivecreateObjective ()
 Creates a new Objective object, adds it to this FbcModelPlugin's ListOfObjectives and returns the Objective object created. More...
 
 FbcModelPlugin (const std::string &uri, const std::string &prefix, FbcPkgNamespaces *fbcns)
 Creates a new FbcModelPlugin object using the given parameters. More...
 
 FbcModelPlugin (const FbcModelPlugin &orig)
 Copy constructor for FbcModelPlugin. More...
 
ObjectivegetActiveObjective ()
 Returns the current active objective. More...
 
const ObjectivegetActiveObjective () const
 Returns the current active objective. More...
 
std::string getActiveObjectiveId () const
 Returns the id of the current active objective. More...
 
virtual ListgetAllElements (ElementFilter *filter=NULL)
 Returns a List of all child SBase objects, including those nested to an arbitrary depth. More...
 
virtual SBasegetElementByMetaId (const std::string &metaid)
 Return the first child object found with a given meta identifier. More...
 
virtual SBasegetElementBySId (const std::string &id)
 Return the first child object found with a given identifier. More...
 
const std::string & getElementNamespace () const
 Returns the namespace URI of the package to which this plugin object belongs. More...
 
const FluxBoundgetFluxBound (unsigned int n) const
 Returns the FluxBound object that belongs to the given index. More...
 
FluxBoundgetFluxBound (unsigned int n)
 Returns the FluxBound object that belongs to the given index. More...
 
FluxBoundgetFluxBound (const std::string &sid)
 Returns the FluxBound object based on its identifier. More...
 
const FluxBoundgetFluxBound (const std::string &sid) const
 Returns the FluxBound object based on its identifier. More...
 
ListOfFluxBoundsgetFluxBoundsForReaction (const std::string &reaction) const
 Creates a new ListOfFluxBounds object that contains only the FluxBound objects associated with the given Reaction. More...
 
const GeneAssociationgetGeneAssociation (unsigned int n) const
 Returns the GeneAssociation annotation object that belongs to the given index. More...
 
GeneAssociationgetGeneAssociation (unsigned int n)
 Returns the GeneAssociation annotation object that belongs to the given index. More...
 
GeneAssociationgetGeneAssociation (const std::string &sid)
 Returns the GeneAssociation annotation object based on its identifier. More...
 
const GeneAssociationgetGeneAssociation (const std::string &sid) const
 Returns the GeneAssociation annotation object based on its identifier. More...
 
GeneProductgetGeneProduct (unsigned int n)
 Get a GeneProduct from the ListOfGeneProducts. More...
 
const GeneProductgetGeneProduct (unsigned int n) const
 Get a GeneProduct from the ListOfGeneProducts. More...
 
GeneProductgetGeneProduct (const std::string &sid)
 Get a GeneProduct from the ListOfGeneProducts based on its identifier. More...
 
const GeneProductgetGeneProduct (const std::string &sid) const
 Get a GeneProduct from the ListOfGeneProducts based on its identifier. More...
 
GeneProductgetGeneProductByLabel (const std::string &label)
 Get a GeneProduct from the ListOfGeneProducts based on its label. More...
 
unsigned int getLevel () const
 Returns the SBML Level of the package extension of this plugin object. More...
 
const ListOfFluxBoundsgetListOfFluxBounds () const
 Returns the ListOfFluxBounds in this plugin object. More...
 
ListOfFluxBoundsgetListOfFluxBounds ()
 Returns the ListOfFluxBounds in this plugin object. More...
 
const ListOfGeneAssociationsgetListOfGeneAssociations () const
 Returns the ListOfGeneAssociations annotation object for level 1 in this plugin object. More...
 
ListOfGeneAssociationsgetListOfGeneAssociations ()
 Returns the ListOfGeneAssociations annotation object for level 1 in this plugin object. More...
 
const ListOfGeneProductsgetListOfGeneProducts () const
 Returns the ListOfGeneProducts in this FbcModelPlugin object. More...
 
ListOfGeneProductsgetListOfGeneProducts ()
 Returns the ListOfGeneProducts in this FbcModelPlugin object. More...
 
const ListOfObjectivesgetListOfObjectives () const
 Returns the ListOfObjectives in this FbcModelPlugin object. More...
 
ListOfObjectivesgetListOfObjectives ()
 Returns the ListOfObjectives in this FbcModelPlugin object. More...
 
unsigned int getNumFluxBounds () const
 Returns the number of FluxBound object in this plugin object. More...
 
int getNumGeneAssociations () const
 Returns the number of GeneAssociation annotation object in this plugin object. More...
 
unsigned int getNumGeneProducts () const
 Get the number of GeneProduct objects in this FbcModelPlugin. More...
 
unsigned int getNumObjectives () const
 Get the number of Objective objects in this FbcModelPlugin. More...
 
ObjectivegetObjective (unsigned int n)
 Get an Objective from the ListOfObjectives. More...
 
const ObjectivegetObjective (unsigned int n) const
 Get an Objective from the ListOfObjectives. More...
 
ObjectivegetObjective (const std::string &sid)
 Get an Objective from the ListOfObjectives based on its identifier. More...
 
const ObjectivegetObjective (const std::string &sid) const
 Get an Objective from the ListOfObjectives based on its identifier. More...
 
const std::string & getPackageName () const
 Returns the short-form name of the package to which this plugin object belongs. More...
 
unsigned int getPackageVersion () const
 Returns the package version of the package extension of this plugin object. More...
 
SBasegetParentSBMLObject ()
 Returns the parent object to which this plugin object is connected. More...
 
const SBasegetParentSBMLObject () const
 Returns the parent object to which this plugin object is connected. More...
 
const std::string & getPrefix () const
 Returns the XML namespace prefix of the package to which this plugin object belongs. More...
 
SBMLDocumentgetSBMLDocument ()
 Returns the SBMLDocument object containing this object instance. More...
 
const SBMLDocumentgetSBMLDocument () const
 Returns the SBMLDocument object containing this object instance. More...
 
virtual bool getStrict () const
 Returns the value of the "strict" attribute of this FbcModelPlugin. More...
 
std::string getURI () const
 Returns the XML namespace URI for the package to which this object belongs. More...
 
unsigned int getVersion () const
 Returns the Version within the SBML Level of the package extension of this plugin object. More...
 
virtual bool isSetStrict () const
 Predicate returning true if this FbcModelPlugin's "strict" attribute is set. More...
 
virtual bool isValidTypeForList (SBase *item) const
 
FbcModelPluginoperator= (const FbcModelPlugin &rhs)
 Assignment operator for FbcModelPlugin. More...
 
FluxBoundremoveFluxBound (unsigned int n)
 Removes the nth FluxBound object from this plugin object and returns a pointer to it. More...
 
FluxBoundremoveFluxBound (const std::string &sid)
 Removes the FluxBound object with the given sid attribute from this plugin object and returns a pointer to it. More...
 
GeneAssociationremoveGeneAssociation (unsigned int n)
 Removes the nth GeneAssociation annotation object from this plugin object and returns a pointer to it. More...
 
GeneAssociationremoveGeneAssociation (const std::string &sid)
 Removes the GeneAssociation annotation object with the given sid attribute from this plugin object and returns a pointer to it. More...
 
GeneProductremoveGeneProduct (unsigned int n)
 Removes the nth GeneProduct from the ListOfGeneProducts within this FbcModelPlugin. More...
 
GeneProductremoveGeneProduct (const std::string &sid)
 Removes the GeneProduct with the given identifier from the ListOfGeneProducts within this FbcModelPlugin and returns a pointer to it. More...
 
ObjectiveremoveObjective (unsigned int n)
 Removes the nth Objective from the ListOfObjectives within this FbcModelPlugin. More...
 
ObjectiveremoveObjective (const std::string &sid)
 Removes the Objective with the given identifier from the ListOfObjectives within this FbcModelPlugin and returns a pointer to it. More...
 
virtual void renameMetaIdRefs (const std::string &oldid, const std::string &newid)
 Replaces all uses of a given meta identifier attribute value with another value. More...
 
virtual void renameSIdRefs (const std::string &oldid, const std::string &newid)
 Replaces all uses of a given SIdRef type attribute value with another value. More...
 
virtual void renameUnitSIdRefs (const std::string &oldid, const std::string &newid)
 Replaces all uses of a given UnitSIdRef type attribute value with another value. More...
 
int setActiveObjectiveId (const std::string &objectiveId)
 Sets the id of the active objective. More...
 
int setElementNamespace (const std::string &uri)
 Sets the XML namespace to which this object belongs. More...
 
virtual int setStrict (bool strict)
 Sets the value of the "strict" attribute of this FbcModelPlugin. More...
 
int unsetActiveObjectiveId ()
 Unsets the "activeObjective" attribute of the ListOfObjectives. More...
 
virtual int unsetStrict ()
 Unsets the value of the "strict" attribute of this FbcModelPlugin. More...
 
virtual ~FbcModelPlugin ()
 Destructor for FbcModelPlugin. More...
 

Constructor & Destructor Documentation

FbcModelPlugin::FbcModelPlugin ( const std::string &  uri,
const std::string &  prefix,
FbcPkgNamespaces fbcns 
)

Creates a new FbcModelPlugin object using the given parameters.

In the XML representation of an SBML document, XML namespaces are used to identify the origin of each XML construct used. XML namespaces are identified by their unique resource identifiers (URIs). The core SBML specifications stipulate the namespaces that must be used for core SBML constructs; for example, all XML elements that belong to SBML Level 3 Version 1 Core must be placed in the XML namespace identified by the URI "http://www.sbml.org/sbml/level3/version1/core". Individual SBML Level 3 packages define their own XML namespaces; for example, all elements belonging to the SBML Level 3 Layout Version 1 package must be placed in the XML namespace "http://www.sbml.org/sbml/level3/version1/layout/version1/".
The SBMLNamespaces object encapsulates SBML Level/Version/namespaces information. It is used to communicate the SBML Level, Version, and (in Level 3) packages used in addition to SBML Level 3 Core. A common approach to using libSBML's SBMLNamespaces facilities is to create an SBMLNamespaces object somewhere in a program once, then hand that object as needed to object constructors that accept SBMLNamespaces as arguments.
Parameters
urithe URI of the SBML Level 3 package implemented by this libSBML package extension.
prefixthe XML namespace prefix being used for the package.
fbcnsthe namespaces object for the package.
FbcModelPlugin::FbcModelPlugin ( const FbcModelPlugin orig)

Copy constructor for FbcModelPlugin.

Parameters
origthe FbcModelPlugin instance to copy.
FbcModelPlugin::~FbcModelPlugin ( )
virtual

Destructor for FbcModelPlugin.

Member Function Documentation

int FbcModelPlugin::addFluxBound ( const FluxBound bound)

Adds a copy of the given FluxBound object to the list of FluxBounds.

Note
FluxBound objects are only defined for version 1 of the "Flux Balance Constraints" specification, and are replaced in version 2 by the "upperFluxBound" and "lowerFluxBound" attributes of the FbcReactionPlugin.
Parameters
boundthe FluxBound object to be added to the list of FluxBounds.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:
int FbcModelPlugin::addGeneAssociation ( const GeneAssociation association)

Adds a copy of the given GeneAssociation annotation object to the list of GeneAssociations.

Parameters
associationthe GeneAssociation annotation object to be added to the list of GeneAssociations.
Note
GeneAssociation objects are not defined in any version of the "Flux Balance Constraints" specification, and can only be used for annotation purposes. Version 2 instead defines the GeneProduct and GeneProductAssociation classes to cover the information otherwise encoded here.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:
int FbcModelPlugin::addGeneProduct ( const GeneProduct gp)

Adds a copy the given GeneProduct to this FbcModelPlugin.

Note
GeneProduct objects are only defined for version 2 of the "Flux Balance Constraints" specification, and have no equivalent in version 1 of the specification.
Parameters
gpthe GeneProduct object to add.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:
int FbcModelPlugin::addObjective ( const Objective o)

Adds a copy the given Objective to this FbcModelPlugin.

Parameters
othe Objective object to add.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:
FbcModelPlugin * FbcModelPlugin::clone ( ) const
virtual

Creates and returns a deep copy of this FbcModelPlugin object.

Returns
a (deep) copy of this FbcModelPlugin object.

Reimplemented from SBasePlugin.

FluxBound * FbcModelPlugin::createFluxBound ( )

Creates a new FluxBound object and adds it to the list of FluxBound objects and returns it.

Note
FluxBound objects are only defined for version 1 of the "Flux Balance Constraints" specification, and are replaced in version 2 by the "upperFluxBound" and "lowerFluxBound" attributes of the FbcReactionPlugin.
Returns
a newly created FluxBound object.
Examples:
fbc_example1.cpp.
GeneAssociation * FbcModelPlugin::createGeneAssociation ( )

Creates a new GeneAssociation annotation object and adds it to the list of GeneAssociation objects and returns it.

Returns
a newly created GeneAssociation annotation object.
GeneProduct * FbcModelPlugin::createGeneProduct ( )

Creates a new GeneProduct object, adds it to this FbcModelPlugin's ListOfGeneProducts and returns the GeneProduct object created.

Note
GeneProduct objects are only defined for version 2 of the "Flux Balance Constraints" specification, and have no equivalent in version 1 of the specification.
Returns
a new GeneProduct object instance.
See also
addGeneProduct(const GeneProduct* gp)
Objective * FbcModelPlugin::createObjective ( )

Creates a new Objective object, adds it to this FbcModelPlugin's ListOfObjectives and returns the Objective object created.

Returns
a new Objective object instance.
See also
addObjective(const Objective* o)
Examples:
fbc_example1.cpp.
Objective * FbcModelPlugin::getActiveObjective ( )

Returns the current active objective.

Returns
the Objective pointed to by the 'activeObjective' attribute, or NULL if no such Objective can be found.
const Objective * FbcModelPlugin::getActiveObjective ( ) const

Returns the current active objective.

Returns
the Objective pointed to by the 'activeObjective' attribute, or NULL if no such Objective can be found.
std::string FbcModelPlugin::getActiveObjectiveId ( ) const

Returns the id of the current active objective.

Returns
the value of the "activeObjective" attribute of the ListOfObjectives.
List * FbcModelPlugin::getAllElements ( ElementFilter filter = NULL)
virtual

Returns a List of all child SBase objects, including those nested to an arbitrary depth.

Parameters
filteran ElementFilter that may impose restrictions on the objects to be retrieved.
Returns
a List of pointers to all child objects.

Reimplemented from SBasePlugin.

SBase * SBasePlugin::getElementByMetaId ( const std::string &  metaid)
virtualinherited

Return the first child object found with a given meta identifier.

This method searches all the subobjects under this one, compares their meta identifiers to metaid, and returns the first one that machines.

Parameters
metaidstring, the metaid of the object to find.
Returns
pointer to the first object found with the given metaid.

Reimplemented in QualModelPlugin, GroupsModelPlugin, CompModelPlugin, CompSBasePlugin, and CompSBMLDocumentPlugin.

SBase * SBasePlugin::getElementBySId ( const std::string &  id)
virtualinherited

Return the first child object found with a given identifier.

This method searches all the subobjects under this one, compares their identifiers to id, and returns the first one that machines. It uses SBasePlugin::getAllElements(ElementFilter* filter) to get the list of identifiers, so the order in which identifiers are searched is the order in which they appear in the results returned by that method.

Normally, SId type identifier values are unique across a model in SBML. However, in some circumstances they may not be, such as if a model is invalid because of multiple objects having the same identifier.

Parameters
idstring representing the identifier of the object to find.
Returns
pointer to the first object with the given id.

Reimplemented in QualModelPlugin, GroupsModelPlugin, CompModelPlugin, CompSBasePlugin, and CompSBMLDocumentPlugin.

const std::string & SBasePlugin::getElementNamespace ( ) const
inherited

Returns the namespace URI of the package to which this plugin object belongs.

Returns
the XML namespace URI of the SBML Level 3 package implemented by this libSBML package extension.
const FluxBound * FbcModelPlugin::getFluxBound ( unsigned int  n) const

Returns the FluxBound object that belongs to the given index.

If the index is invalid, NULL is returned.

Note
FluxBound objects are only defined for version 1 of the "Flux Balance Constraints" specification, and are replaced in version 2 by the "upperFluxBound" and "lowerFluxBound" attributes of the FbcReactionPlugin.
Parameters
nthe index number of the FluxBound to get.
Returns
the nth FluxBound in the ListOfFluxBounds. If the index n is invalid, NULL is returned.
FluxBound * FbcModelPlugin::getFluxBound ( unsigned int  n)

Returns the FluxBound object that belongs to the given index.

If the index is invalid, NULL is returned.

Note
FluxBound objects are only defined for version 1 of the "Flux Balance Constraints" specification, and are replaced in version 2 by the "upperFluxBound" and "lowerFluxBound" attributes of the FbcReactionPlugin.
Parameters
nthe index number of the FluxBound to get.
Returns
the nth FluxBound in the ListOfFluxBounds. If the index n is invalid, NULL is returned.
FluxBound * FbcModelPlugin::getFluxBound ( const std::string &  sid)

Returns the FluxBound object based on its identifier.

Note
FluxBound objects are only defined for version 1 of the "Flux Balance Constraints" specification, and are replaced in version 2 by the "upperFluxBound" and "lowerFluxBound" attributes of the FbcReactionPlugin.
Parameters
sida string representing the identifier of the FluxBound to get.
Returns
FluxBound in the ListOfFluxBounds with the given sid or NULL if no such FluxBound exists.
See also
getFluxBound(unsigned int n)
getListOfFluxBounds()
const FluxBound * FbcModelPlugin::getFluxBound ( const std::string &  sid) const

Returns the FluxBound object based on its identifier.

Note
FluxBound objects are only defined for version 1 of the "Flux Balance Constraints" specification, and are replaced in version 2 by the "upperFluxBound" and "lowerFluxBound" attributes of the FbcReactionPlugin.
Parameters
sida string representing the identifier of the FluxBound to get.
Returns
FluxBound in the ListOfFluxBounds with the given sid or NULL if no such FluxBound exists.
See also
getFluxBound(unsigned int n)
getListOfFluxBounds()
ListOfFluxBounds * FbcModelPlugin::getFluxBoundsForReaction ( const std::string &  reaction) const

Creates a new ListOfFluxBounds object that contains only the FluxBound objects associated with the given Reaction.

If no such Reaction can be found, or if there are no FluxBound objects associated with it, returns NULL. The caller owns the created object and is responsible for its deletion.

Note
FluxBound objects are only defined for version 1 of the "Flux Balance Constraints" specification, and are replaced in version 2 by the "upperFluxBound" and "lowerFluxBound" attributes of the FbcReactionPlugin.
Parameters
reactionthe id of an reaction to find FluxBound objects for.
Returns
a ListOfFluxBounds for the given reaction id.
const GeneAssociation * FbcModelPlugin::getGeneAssociation ( unsigned int  n) const

Returns the GeneAssociation annotation object that belongs to the given index.

If the index is invalid, NULL is returned.

Note
GeneAssociation objects are not defined in any version of the "Flux Balance Constraints" specification, and can only be used for annotation purposes. Version 2 instead defines the GeneProduct and GeneProductAssociation classes to cover the information otherwise encoded here.
Parameters
nthe index number of the GeneAssociation annotation to get.
Returns
the nth GeneAssociation annotation in the ListOfGeneAssociations. If the index n is invalid, NULL is returned.
GeneAssociation * FbcModelPlugin::getGeneAssociation ( unsigned int  n)

Returns the GeneAssociation annotation object that belongs to the given index.

If the index is invalid, NULL is returned.

Note
GeneAssociation objects are not defined in any version of the "Flux Balance Constraints" specification, and can only be used for annotation purposes. Version 2 instead defines the GeneProduct and GeneProductAssociation classes to cover the information otherwise encoded here.
Parameters
nthe index number of the GeneAssociation annotation to get.
Returns
the nth GeneAssociation annotation in the ListOfGeneAssociations. If the index n is invalid, NULL is returned.
GeneAssociation * FbcModelPlugin::getGeneAssociation ( const std::string &  sid)

Returns the GeneAssociation annotation object based on its identifier.

Note
GeneAssociation objects are not defined in any version of the "Flux Balance Constraints" specification, and can only be used for annotation purposes. Version 2 instead defines the GeneProduct and GeneProductAssociation classes to cover the information otherwise encoded here.
Parameters
sida string representing the identifier of the GeneAssociation annotation to get.
Returns
GeneAssociation annotation in the ListOfGeneAssociations with the given sid or NULL if no such GeneAssociation annotation exists.
See also
getGeneAssociation(unsigned int n)
getListOfGeneAssociations()
const GeneAssociation * FbcModelPlugin::getGeneAssociation ( const std::string &  sid) const

Returns the GeneAssociation annotation object based on its identifier.

Note
GeneAssociation objects are not defined in any version of the "Flux Balance Constraints" specification, and can only be used for annotation purposes. Version 2 instead defines the GeneProduct and GeneProductAssociation classes to cover the information otherwise encoded here.
Parameters
sida string representing the identifier of the GeneAssociation annotation to get.
Returns
GeneAssociation annotation in the ListOfGeneAssociations with the given sid or NULL if no such GeneAssociation annotation exists.
See also
getGeneAssociation(unsigned int n)
getListOfGeneAssociations()
GeneProduct * FbcModelPlugin::getGeneProduct ( unsigned int  n)

Get a GeneProduct from the ListOfGeneProducts.

Note
GeneProduct objects are only defined for version 2 of the "Flux Balance Constraints" specification, and have no equivalent in version 1 of the specification.
Parameters
nthe index number of the GeneProduct to get.
Returns
the nth GeneProduct in the ListOfGeneProducts within this FbcModelPlugin. If the index n is invalid, NULL is returned.
See also
getNumGeneProducts()
const GeneProduct * FbcModelPlugin::getGeneProduct ( unsigned int  n) const

Get a GeneProduct from the ListOfGeneProducts.

Note
GeneProduct objects are only defined for version 2 of the "Flux Balance Constraints" specification, and have no equivalent in version 1 of the specification.
Parameters
nthe index number of the GeneProduct to get.
Returns
the nth GeneProduct in the ListOfGeneProducts within this FbcModelPlugin. If the index n is invalid, NULL is returned.
See also
getNumGeneProducts()
GeneProduct * FbcModelPlugin::getGeneProduct ( const std::string &  sid)

Get a GeneProduct from the ListOfGeneProducts based on its identifier.

Note
GeneProduct objects are only defined for version 2 of the "Flux Balance Constraints" specification, and have no equivalent in version 1 of the specification.
Parameters
sida string representing the identifier of the GeneProduct to get.
Returns
the GeneProduct in the ListOfGeneProducts with the given id or NULL if no such GeneProduct exists.
See also
getGeneProduct(unsigned int n)
getNumGeneProducts()
const GeneProduct * FbcModelPlugin::getGeneProduct ( const std::string &  sid) const

Get a GeneProduct from the ListOfGeneProducts based on its identifier.

Note
GeneProduct objects are only defined for version 2 of the "Flux Balance Constraints" specification, and have no equivalent in version 1 of the specification.
Parameters
sida string representing the identifier of the GeneProduct to get.
Returns
the GeneProduct in the ListOfGeneProducts with the given id or NULL if no such GeneProduct exists.
See also
getGeneProduct(unsigned int n)
getNumGeneProducts()
GeneProduct * FbcModelPlugin::getGeneProductByLabel ( const std::string &  label)

Get a GeneProduct from the ListOfGeneProducts based on its label.

Note
GeneProduct objects are only defined for version 2 of the "Flux Balance Constraints" specification, and have no equivalent in version 1 of the specification.
Parameters
labela string representing the label of the GeneProduct to get.
Returns
the GeneProduct in the ListOfGeneProducts with the given label or NULL if no such GeneProduct exists.
See also
getGeneProduct(unsigned int n)
getNumGeneProducts()
unsigned int SBasePlugin::getLevel ( ) const
inherited

Returns the SBML Level of the package extension of this plugin object.

Returns
the SBML Level.
See also
getVersion()
const ListOfFluxBounds * FbcModelPlugin::getListOfFluxBounds ( ) const

Returns the ListOfFluxBounds in this plugin object.

Note
FluxBound objects are only defined for version 1 of the "Flux Balance Constraints" specification, and are replaced in version 2 by the "upperFluxBound" and "lowerFluxBound" attributes of the FbcReactionPlugin.
Returns
ListOfFluxBounds object in this plugin object.
ListOfFluxBounds * FbcModelPlugin::getListOfFluxBounds ( )

Returns the ListOfFluxBounds in this plugin object.

Note
FluxBound objects are only defined for version 1 of the "Flux Balance Constraints" specification, and are replaced in version 2 by the "upperFluxBound" and "lowerFluxBound" attributes of the FbcReactionPlugin.
Returns
ListOfFluxBounds object in this plugin object.
const ListOfGeneAssociations * FbcModelPlugin::getListOfGeneAssociations ( ) const

Returns the ListOfGeneAssociations annotation object for level 1 in this plugin object.

Note
GeneAssociation objects are not defined in any version of the "Flux Balance Constraints" specification, and can only be used for annotation purposes. Version 2 instead defines the GeneProduct and GeneProductAssociation classes to cover the information otherwise encoded here.
Returns
ListOfGeneAssociations annotation object for level 1 in this plugin object.
ListOfGeneAssociations * FbcModelPlugin::getListOfGeneAssociations ( )

Returns the ListOfGeneAssociations annotation object for level 1 in this plugin object.

Note
GeneAssociation objects are not defined in any version of the "Flux Balance Constraints" specification, and can only be used for annotation purposes. Version 2 instead defines the GeneProduct and GeneProductAssociation classes to cover the information otherwise encoded here.
Returns
ListOfGeneAssociations annotation object for level 1 in this plugin object.
const ListOfGeneProducts * FbcModelPlugin::getListOfGeneProducts ( ) const

Returns the ListOfGeneProducts in this FbcModelPlugin object.

Note
GeneProduct objects are only defined for version 2 of the "Flux Balance Constraints" specification, and have no equivalent in version 1 of the specification.
Returns
the ListOfGeneProducts child of this FbcModelPlugin.
ListOfGeneProducts * FbcModelPlugin::getListOfGeneProducts ( )

Returns the ListOfGeneProducts in this FbcModelPlugin object.

Note
GeneProduct objects are only defined for version 2 of the "Flux Balance Constraints" specification, and have no equivalent in version 1 of the specification.
Returns
the ListOfGeneProducts child of this FbcModelPlugin.
const ListOfObjectives * FbcModelPlugin::getListOfObjectives ( ) const

Returns the ListOfObjectives in this FbcModelPlugin object.

Returns
the ListOfObjectives child of this FbcModelPlugin.
ListOfObjectives * FbcModelPlugin::getListOfObjectives ( )

Returns the ListOfObjectives in this FbcModelPlugin object.

Returns
the ListOfObjectives child of this FbcModelPlugin.
unsigned int FbcModelPlugin::getNumFluxBounds ( ) const

Returns the number of FluxBound object in this plugin object.

Note
FluxBound objects are only defined for version 1 of the "Flux Balance Constraints" specification, and are replaced in version 2 by the "upperFluxBound" and "lowerFluxBound" attributes of the FbcReactionPlugin.
Returns
the number of FluxBound object in this plugin object.
int FbcModelPlugin::getNumGeneAssociations ( ) const

Returns the number of GeneAssociation annotation object in this plugin object.

Note
GeneAssociation objects are not defined in any version of the "Flux Balance Constraints" specification, and can only be used for annotation purposes. Version 2 instead defines the GeneProduct and GeneProductAssociation classes to cover the information otherwise encoded here.
Returns
the number of GeneAssociation annotation object in this plugin object.
unsigned int FbcModelPlugin::getNumGeneProducts ( ) const

Get the number of GeneProduct objects in this FbcModelPlugin.

Note
GeneProduct objects are only defined for version 2 of the "Flux Balance Constraints" specification, and have no equivalent in version 1 of the specification.
Returns
the number of GeneProduct objects in this FbcModelPlugin.
unsigned int FbcModelPlugin::getNumObjectives ( ) const

Get the number of Objective objects in this FbcModelPlugin.

Returns
the number of Objective objects in this FbcModelPlugin.
Objective * FbcModelPlugin::getObjective ( unsigned int  n)

Get an Objective from the ListOfObjectives.

Parameters
nthe index number of the Objective to get.
Returns
the nth Objective in the ListOfObjectives within this FbcModelPlugin. If the index n is invalid, NULL is returned.
See also
getNumObjectives()
const Objective * FbcModelPlugin::getObjective ( unsigned int  n) const

Get an Objective from the ListOfObjectives.

Parameters
nthe index number of the Objective to get.
Returns
the nth Objective in the ListOfObjectives within this FbcModelPlugin. If the index n is invalid, NULL is returned.
See also
getNumObjectives()
Objective * FbcModelPlugin::getObjective ( const std::string &  sid)

Get an Objective from the ListOfObjectives based on its identifier.

Parameters
sida string representing the identifier of the Objective to get.
Returns
the Objective in the ListOfObjectives with the given id or NULL if no such Objective exists.
See also
getObjective(unsigned int n)
getNumObjectives()
const Objective * FbcModelPlugin::getObjective ( const std::string &  sid) const

Get an Objective from the ListOfObjectives based on its identifier.

Parameters
sida string representing the identifier of the Objective to get.
Returns
the Objective in the ListOfObjectives with the given id or NULL if no such Objective exists.
See also
getObjective(unsigned int n)
getNumObjectives()
const std::string & SBasePlugin::getPackageName ( ) const
inherited

Returns the short-form name of the package to which this plugin object belongs.

Returns
the short-form package name (or nickname) of the SBML package implemented by this package extension.
unsigned int SBasePlugin::getPackageVersion ( ) const
inherited

Returns the package version of the package extension of this plugin object.

Returns
the package version of the package extension of this plugin object.
See also
getLevel()
getVersion()
SBase * SBasePlugin::getParentSBMLObject ( )
inherited

Returns the parent object to which this plugin object is connected.

Returns
the parent object of this object.
const SBase * SBasePlugin::getParentSBMLObject ( ) const
inherited

Returns the parent object to which this plugin object is connected.

Returns
the parent object of this object.
const std::string & SBasePlugin::getPrefix ( ) const
inherited

Returns the XML namespace prefix of the package to which this plugin object belongs.

Returns
the XML namespace prefix of the SBML Level 3 package implemented by this libSBML package extension.
SBMLDocument * SBasePlugin::getSBMLDocument ( )
inherited

Returns the SBMLDocument object containing this object instance.

LibSBML uses the class SBMLDocument as a top-level container for storing SBML content and data associated with it (such as warnings and error messages). An SBML model in libSBML is contained inside an SBMLDocument object. SBMLDocument corresponds roughly to the class SBML defined in the SBML Level 3 and Level 2 specifications, but it does not have a direct correspondence in SBML Level 1. (But, it is created by libSBML no matter whether the model is Level 1, Level 2 or Level 3.)

This method allows the caller to obtain the SBMLDocument for the current object.

Returns
the parent SBMLDocument object of this plugin object.
See also
getParentSBMLObject()
const SBMLDocument * SBasePlugin::getSBMLDocument ( ) const
inherited

Returns the SBMLDocument object containing this object instance.

LibSBML uses the class SBMLDocument as a top-level container for storing SBML content and data associated with it (such as warnings and error messages). An SBML model in libSBML is contained inside an SBMLDocument object. SBMLDocument corresponds roughly to the class SBML defined in the SBML Level 3 and Level 2 specifications, but it does not have a direct correspondence in SBML Level 1. (But, it is created by libSBML no matter whether the model is Level 1, Level 2 or Level 3.)

This method allows the caller to obtain the SBMLDocument for the current object.

Returns
the parent SBMLDocument object of this plugin object.
See also
getParentSBMLObject()
bool FbcModelPlugin::getStrict ( ) const
virtual

Returns the value of the "strict" attribute of this FbcModelPlugin.

Note
The 'strict' attribute of the FbcModelPlugin is only defined for version 2 of the "Flux Balance Constraints" specification, and has no equivalent in version 1 of the specification.
Returns
the value of the "strict" attribute of this FbcModelPlugin as a boolean.
std::string SBasePlugin::getURI ( ) const
inherited

Returns the XML namespace URI for the package to which this object belongs.

In the XML representation of an SBML document, XML namespaces are used to identify the origin of each XML construct used. XML namespaces are identified by their unique resource identifiers (URIs). The core SBML specifications stipulate the namespaces that must be used for core SBML constructs; for example, all XML elements that belong to SBML Level 3 Version 1 Core must be placed in the XML namespace identified by the URI "http://www.sbml.org/sbml/level3/version1/core". Individual SBML Level 3 packages define their own XML namespaces; for example, all elements belonging to the SBML Level 3 Layout Version 1 package must be placed in the XML namespace "http://www.sbml.org/sbml/level3/version1/layout/version1/".

This method first looks into the SBMLNamespaces object possessed by the parent SBMLDocument object of the current object. If this cannot be found, this method returns the result of getElementNamespace().

Returns
a string, the URI of the XML namespace to which this object belongs.
See also
getPackageName()
getElementNamespace()
getSBMLDocument()
unsigned int SBasePlugin::getVersion ( ) const
inherited

Returns the Version within the SBML Level of the package extension of this plugin object.

Returns
the SBML Version.
See also
getLevel()
bool FbcModelPlugin::isSetStrict ( ) const
virtual

Predicate returning true if this FbcModelPlugin's "strict" attribute is set.

Note
The 'strict' attribute of the FbcModelPlugin is only defined for version 2 of the "Flux Balance Constraints" specification, and has no equivalent in version 1 of the specification.
Returns
true if this FbcModelPlugin's "strict" attribute has been set, otherwise false is returned.
virtual bool SBasePlugin::isValidTypeForList ( SBase item) const
virtualinherited
FbcModelPlugin & FbcModelPlugin::operator= ( const FbcModelPlugin rhs)

Assignment operator for FbcModelPlugin.

Parameters
rhsthe object whose values are used as the basis of the assignment.
FluxBound * FbcModelPlugin::removeFluxBound ( unsigned int  n)

Removes the nth FluxBound object from this plugin object and returns a pointer to it.

The caller owns the returned object and is responsible for deleting it.

Note
FluxBound objects are only defined for version 1 of the "Flux Balance Constraints" specification, and are replaced in version 2 by the "upperFluxBound" and "lowerFluxBound" attributes of the FbcReactionPlugin.
Parameters
nthe index of the FluxBound object to remove.
Returns
the FluxBound object removed. As mentioned above, the caller owns the returned object. NULL is returned if the given index is out of range.
FluxBound * FbcModelPlugin::removeFluxBound ( const std::string &  sid)

Removes the FluxBound object with the given sid attribute from this plugin object and returns a pointer to it.

The caller owns the returned object and is responsible for deleting it.

Note
FluxBound objects are only defined for version 1 of the "Flux Balance Constraints" specification, and are replaced in version 2 by the "upperFluxBound" and "lowerFluxBound" attributes of the FbcReactionPlugin.
Parameters
sidthe id attribute of the FluxBound object to remove.
Returns
the FluxBound object removed. As mentioned above, the caller owns the returned object. NULL is returned if the given index is out of range.
GeneAssociation * FbcModelPlugin::removeGeneAssociation ( unsigned int  n)

Removes the nth GeneAssociation annotation object from this plugin object and returns a pointer to it.

The caller owns the returned object and is responsible for deleting it.

Note
GeneAssociation objects are not defined in any version of the "Flux Balance Constraints" specification, and can only be used for annotation purposes. Version 2 instead defines the GeneProduct and GeneProductAssociation classes to cover the information otherwise encoded here.
Parameters
nthe index of the GeneAssociation annotation object to remove.
Returns
the GeneAssociation annotation object removed. As mentioned above, the caller owns the returned object. NULL is returned if the given index is out of range.
GeneAssociation * FbcModelPlugin::removeGeneAssociation ( const std::string &  sid)

Removes the GeneAssociation annotation object with the given sid attribute from this plugin object and returns a pointer to it.

The caller owns the returned object and is responsible for deleting it.

Note
GeneAssociation objects are not defined in any version of the "Flux Balance Constraints" specification, and can only be used for annotation purposes. Version 2 instead defines the GeneProduct and GeneProductAssociation classes to cover the information otherwise encoded here.
Parameters
sidthe id attribute of the GeneAssociation annotation object to remove.
Returns
the GeneAssociation annotation object removed. As mentioned above, the caller owns the returned object. NULL is returned if the given index is out of range.
GeneProduct * FbcModelPlugin::removeGeneProduct ( unsigned int  n)

Removes the nth GeneProduct from the ListOfGeneProducts within this FbcModelPlugin.

and returns a pointer to it.

The caller owns the returned item and is responsible for deleting it.

Note
GeneProduct objects are only defined for version 2 of the "Flux Balance Constraints" specification, and have no equivalent in version 1 of the specification.
Parameters
nthe index of the GeneProduct to remove.
See also
getNumGeneProducts()
GeneProduct * FbcModelPlugin::removeGeneProduct ( const std::string &  sid)

Removes the GeneProduct with the given identifier from the ListOfGeneProducts within this FbcModelPlugin and returns a pointer to it.

The caller owns the returned item and is responsible for deleting it. If none of the items in this list have the identifier sid, then NULL is returned.

Note
GeneProduct objects are only defined for version 2 of the "Flux Balance Constraints" specification, and have no equivalent in version 1 of the specification.
Parameters
sidthe identifier of the GeneProduct to remove.
Returns
the GeneProduct removed. As mentioned above, the caller owns the returned item.
Objective * FbcModelPlugin::removeObjective ( unsigned int  n)

Removes the nth Objective from the ListOfObjectives within this FbcModelPlugin.

and returns a pointer to it.

The caller owns the returned item and is responsible for deleting it.

Parameters
nthe index of the Objective to remove.
See also
getNumObjectives()
Objective * FbcModelPlugin::removeObjective ( const std::string &  sid)

Removes the Objective with the given identifier from the ListOfObjectives within this FbcModelPlugin and returns a pointer to it.

The caller owns the returned item and is responsible for deleting it. If none of the items in this list have the identifier sid, then NULL is returned.

Parameters
sidthe identifier of the Objective to remove.
Returns
the Objective removed. As mentioned above, the caller owns the returned item.
virtual void SBasePlugin::renameMetaIdRefs ( const std::string &  oldid,
const std::string &  newid 
)
virtualinherited

Replaces all uses of a given meta identifier attribute value with another value.

In SBML, object "meta" identifiers are of the XML data type ID; the SBML object attribute itself is typically named metaid. All attributes that hold values referring to values of type ID are of the XML data type IDREF. They are also sometimes informally referred to as "metaid refs", in analogy to the SBML-defined type SIdRef.

This method works by looking at all meta-identifier attribute values, comparing the identifiers to the value of oldid. If any matches are found, the matching identifiers are replaced with newid. The method does not descend into child elements.

Parameters
oldidthe old identifier.
newidthe new identifier.
virtual void SBasePlugin::renameSIdRefs ( const std::string &  oldid,
const std::string &  newid 
)
virtualinherited

Replaces all uses of a given SIdRef type attribute value with another value.

In SBML, object identifiers are of a data type called SId. In SBML Level 3, an explicit data type called SIdRef was introduced for attribute values that refer to SId values; in previous Levels of SBML, this data type did not exist and attributes were simply described to as "referring to an identifier", but the effective data type was the same as SIdRef in Level 3. These and other methods of libSBML refer to the type SIdRef for all Levels of SBML, even if the corresponding SBML specification did not explicitly name the data type.

This method works by looking at all attributes and (if appropriate) mathematical formulas in MathML content, comparing the referenced identifiers to the value of oldid. If any matches are found, the matching values are replaced with newid. The method does not descend into child elements.

Parameters
oldidthe old identifier.
newidthe new identifier.

Reimplemented in FbcReactionPlugin.

virtual void SBasePlugin::renameUnitSIdRefs ( const std::string &  oldid,
const std::string &  newid 
)
virtualinherited

Replaces all uses of a given UnitSIdRef type attribute value with another value.

In SBML, unit definitions have identifiers of type UnitSId. In SBML Level 3, an explicit data type called UnitSIdRef was introduced for attribute values that refer to UnitSId values; in previous Levels of SBML, this data type did not exist and attributes were simply described to as "referring to a unit identifier", but the effective data type was the same as UnitSIdRef in Level 3. These and other methods of libSBML refer to the type UnitSIdRef for all Levels of SBML, even if the corresponding SBML specification did not explicitly name the data type.

This method works by looking at all unit identifier attribute values (including, if appropriate, inside mathematical formulas), comparing the referenced unit identifiers to the value of oldid. If any matches are found, the matching values are replaced with newid. The method does not descend into child elements.

Parameters
oldidthe old identifier.
newidthe new identifier.
int FbcModelPlugin::setActiveObjectiveId ( const std::string &  objectiveId)

Sets the id of the active objective.

Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:
Examples:
fbc_example1.cpp.
int SBasePlugin::setElementNamespace ( const std::string &  uri)
inherited

Sets the XML namespace to which this object belongs.

In the XML representation of an SBML document, XML namespaces are used to identify the origin of each XML construct used. XML namespaces are identified by their unique resource identifiers (URIs). The core SBML specifications stipulate the namespaces that must be used for core SBML constructs; for example, all XML elements that belong to SBML Level 3 Version 1 Core must be placed in the XML namespace identified by the URI "http://www.sbml.org/sbml/level3/version1/core". Individual SBML Level 3 packages define their own XML namespaces; for example, all elements belonging to the SBML Level 3 Layout Version 1 package must be placed in the XML namespace "http://www.sbml.org/sbml/level3/version1/layout/version1/".
Parameters
urithe URI to assign to this object.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. This particular function only does one thing irrespective of user input or object state, and thus will only return a single value:
See also
getElementNamespace()
Examples:
convertLayout.cpp.
int FbcModelPlugin::setStrict ( bool  strict)
virtual

Sets the value of the "strict" attribute of this FbcModelPlugin.

Note
The 'strict' attribute of the FbcModelPlugin is only defined for version 2 of the "Flux Balance Constraints" specification, and has no equivalent in version 1 of the specification.
Parameters
strictbool value of the "strict" attribute to be set.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:
int FbcModelPlugin::unsetActiveObjectiveId ( )

Unsets the "activeObjective" attribute of the ListOfObjectives.

Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:
success status
int FbcModelPlugin::unsetStrict ( )
virtual

Unsets the value of the "strict" attribute of this FbcModelPlugin.

Note
The 'strict' attribute of the FbcModelPlugin is only defined for version 2 of the "Flux Balance Constraints" specification, and has no equivalent in version 1 of the specification.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are: