libSBML C++ API  5.20.4
SBMLRateRuleConverter Class Reference
Inheritance diagram for SBMLRateRuleConverter:
[legend]

Detailed Description

Converter that sorts SBML rules and assignments.

This class of objects is defined by libSBML only and has no direct equivalent in terms of SBML components. It is a class used in the implementation of extra functionality provided by libSBML.

This converter takes an SBML model that is defined using RateRules and uses the algorithm developed by Fages et al (see below) to convert the ODEs to a reaction network. The returned model will contain only Reactions in place of the original RateRules. Note the algorithm will detect any unspecified species that are needed to fully define the reaction network.

Configuration and use of SBMLRateRuleConverter

SBMLRateRuleConverter is enabled by creating a ConversionProperties object with the option "inferReactions", and passing this properties object to SBMLDocument::convert(). This converter offers no other options.

Implementation is based on the algorithm described in Fages et al, Theoretical Computer Science, 2015.

General information about the use of SBML converters

The use of all the converters follows a similar approach. First, one creates a ConversionProperties object and calls ConversionProperties::addOption() on this object with one argument: a text string that identifies the desired converter. (The text string is specific to each converter; consult the documentation for a given converter to find out how it should be enabled.)

Next, for some converters, the caller can optionally set some converter-specific properties using additional calls to ConversionProperties::addOption(). Many converters provide the ability to configure their behavior to some extent; this is realized through the use of properties that offer different options. The default property values for each converter can be interrogated using the method SBMLConverter::getDefaultProperties() on the converter class in question .

Finally, the caller should invoke the method SBMLDocument::convert() with the ConversionProperties object as an argument.

Example of invoking an SBML converter

The following code fragment illustrates an example using SBMLReactionConverter, which is invoked using the option string "replaceReactions":

props.addOption("replaceReactions");
Definition: ConversionProperties.h:84
virtual void addOption(const ConversionOption &option)
Adds a copy of the given option to this properties object.
Definition: ConversionProperties.cpp:232

In the case of SBMLReactionConverter, there are no options to affect its behavior, so the next step is simply to invoke the converter on an SBMLDocument object. Continuing the example code:

// Assume that the variable "document" has been set to an SBMLDocument object.
int status = document->convert(props);
{
cerr << "Unable to perform conversion due to the following:" << endl;
document->printErrors(cerr);
}
@ LIBSBML_OPERATION_SUCCESS
Definition: operationReturnValues.h:61

Here is an example of using a converter that offers an option. The following code invokes SBMLStripPackageConverter to remove the SBML Level 3 Layout package from a model. It sets the name of the package to be removed by adding a value for the option named "package" defined by that converter:

props.addOption("stripPackage");
props.addOption("package", "layout");
int status = document->convert(props);
{
cerr << "Unable to strip the Layout package from the model";
cerr << "Error returned: " << status;
}

Available SBML converters in libSBML

LibSBML provides a number of built-in converters; by convention, their names end in Converter. The following are the built-in converters provided by libSBML 5.20.4 :

Public Types

typedef std::vector< std::pair< std::string, ASTNode * > >::iterator odeIt
 
typedef std::pair< std::string, std::string > pairString
 
typedef std::vector< std::pair< ASTNode *, std::vector< double > > > setCoeff
 
typedef std::vector< std::pair< ASTNode *, std::vector< double > > >::iterator setCoeffIt
 
typedef std::vector< std::vector< double > > setRnCoeffs
 

Public Member Functions

virtual SBMLRateRuleConverterclone () const
 Creates and returns a deep copy of this SBMLLevelVersionConverter object. More...
 
virtual int convert ()
 Perform the conversion. More...
 
setCoeff getCoeff ()
 
virtual ConversionProperties getDefaultProperties () const
 Returns the default properties of this converter. More...
 
virtual SBMLDocumentgetDocument ()
 Returns the SBML document that is the subject of the conversions. More...
 
virtual const SBMLDocumentgetDocument () const
 Returns the SBML document that is the subject of the conversions. More...
 
bool getMathNotSupportedFlag () const
 
setRnCoeffs getModifiers ()
 
const std::string & getName () const
 Returns the name of this converter. More...
 
std::vector< std::vector< bool > > getNegDer ()
 
pairODEs getOde ()
 
std::vector< std::vector< bool > > getPosDer ()
 
setRnCoeffs getProducts ()
 
virtual ConversionPropertiesgetProperties () const
 Returns the current properties in effect for this converter. More...
 
setRnCoeffs getReactants ()
 
virtual SBMLNamespacesgetTargetNamespaces ()
 Returns the target SBML namespaces of the currently set properties. More...
 
virtual bool matchesProperties (const ConversionProperties &props) const
 Returns true if this converter object's properties match the given properties. More...
 
SBMLRateRuleConverteroperator= (const SBMLRateRuleConverter &rhs)
 Assignment operator for SBMLInferUnitsConverter. More...
 
 SBMLRateRuleConverter ()
 Creates a new SBMLLevelVersionConverter object. More...
 
 SBMLRateRuleConverter (const SBMLRateRuleConverter &obj)
 Copy constructor; creates a copy of an SBMLLevelVersionConverter object. More...
 
virtual int setDocument (const SBMLDocument *doc)
 Sets the SBML document to be converted. More...
 
virtual int setDocument (SBMLDocument *doc)
 Sets the SBML document to be converted. More...
 
virtual int setProperties (const ConversionProperties *props)
 Sets the configuration properties to be used by this converter. More...
 
virtual ~SBMLRateRuleConverter ()
 Destroy this SBMLRateRuleConverter object. More...
 

Member Typedef Documentation

◆ odeIt

typedef std::vector< std::pair< std::string, ASTNode*> >::iterator SBMLRateRuleConverter::odeIt

◆ pairString

typedef std::pair<std::string, std::string > SBMLRateRuleConverter::pairString

◆ setCoeff

typedef std::vector<std::pair<ASTNode*, std::vector<double> > > SBMLRateRuleConverter::setCoeff

◆ setCoeffIt

typedef std::vector<std::pair<ASTNode*, std::vector<double> > >::iterator SBMLRateRuleConverter::setCoeffIt

◆ setRnCoeffs

typedef std::vector< std::vector<double> > SBMLRateRuleConverter::setRnCoeffs

Constructor & Destructor Documentation

◆ SBMLRateRuleConverter() [1/2]

SBMLRateRuleConverter::SBMLRateRuleConverter ( )

Creates a new SBMLLevelVersionConverter object.

◆ SBMLRateRuleConverter() [2/2]

SBMLRateRuleConverter::SBMLRateRuleConverter ( const SBMLRateRuleConverter obj)

Copy constructor; creates a copy of an SBMLLevelVersionConverter object.

Parameters
objthe SBMLLevelVersionConverter object to copy.

◆ ~SBMLRateRuleConverter()

SBMLRateRuleConverter::~SBMLRateRuleConverter ( )
virtual

Destroy this SBMLRateRuleConverter object.

Member Function Documentation

◆ clone()

SBMLRateRuleConverter * SBMLRateRuleConverter::clone ( ) const
virtual

Creates and returns a deep copy of this SBMLLevelVersionConverter object.

Returns
a (deep) copy of this converter.

Reimplemented from SBMLConverter.

◆ convert()

int SBMLRateRuleConverter::convert ( )
virtual

Perform the conversion.

This method causes the converter to do the actual conversion work, that is, to convert the SBMLDocument object set by SBMLConverter::setDocument() and with the configuration options set by SBMLConverter::setProperties().

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:

Reimplemented from SBMLConverter.

◆ getCoeff()

setCoeff SBMLRateRuleConverter::getCoeff ( )
inline

◆ getDefaultProperties()

ConversionProperties SBMLRateRuleConverter::getDefaultProperties ( ) const
virtual

Returns the default properties of this converter.

A given converter exposes one or more properties that can be adjusted in order to influence the behavior of the converter. This method returns the default property settings for this converter. It is meant to be called in order to discover all the settings for the converter object.

Returns
the ConversionProperties object describing the default properties for this converter.

Reimplemented from SBMLConverter.

◆ getDocument() [1/2]

SBMLDocument * SBMLConverter::getDocument ( )
virtualinherited

Returns the SBML document that is the subject of the conversions.

Returns
the current SBMLDocument object.

◆ getDocument() [2/2]

const SBMLDocument * SBMLConverter::getDocument ( ) const
virtualinherited

Returns the SBML document that is the subject of the conversions.

Returns
the current SBMLDocument object.

◆ getMathNotSupportedFlag()

bool SBMLRateRuleConverter::getMathNotSupportedFlag ( ) const

◆ getModifiers()

setRnCoeffs SBMLRateRuleConverter::getModifiers ( )
inline

◆ getName()

const std::string & SBMLConverter::getName ( ) const
inherited

Returns the name of this converter.

Returns
a string, the name of this converter.

◆ getNegDer()

std::vector< std::vector<bool> > SBMLRateRuleConverter::getNegDer ( )
inline

◆ getOde()

pairODEs SBMLRateRuleConverter::getOde ( )
inline

◆ getPosDer()

std::vector< std::vector<bool> > SBMLRateRuleConverter::getPosDer ( )
inline

◆ getProducts()

setRnCoeffs SBMLRateRuleConverter::getProducts ( )
inline

◆ getProperties()

ConversionProperties * SBMLConverter::getProperties ( ) const
virtualinherited

Returns the current properties in effect for this converter.

A given converter exposes one or more properties that can be adjusted in order to influence the behavior of the converter. This method returns the current properties for this converter; in other words, the settings in effect at this moment. To change the property values, you can use SBMLConverter::setProperties(const ConversionProperties *props).

Returns
the currently set configuration properties.
See also
setProperties()
matchesProperties()

◆ getReactants()

setRnCoeffs SBMLRateRuleConverter::getReactants ( )
inline

◆ getTargetNamespaces()

SBMLNamespaces * SBMLConverter::getTargetNamespaces ( )
virtualinherited

Returns the target SBML namespaces of the currently set properties.

SBML namespaces are used by libSBML to express the Level+Version of the SBML document (and, possibly, any SBML Level 3 packages in use). Some converters' behavior is affected by the SBML namespace configured in the converter. For example, in SBMLLevelVersionConverter (the converter for converting SBML documents from one Level+Version combination to another), the actions are fundamentally dependent on the SBML namespaces targeted.

Returns
the SBMLNamespaces object that describes the SBML namespaces in effect, or NULL if none are set.

◆ matchesProperties()

bool SBMLRateRuleConverter::matchesProperties ( const ConversionProperties props) const
virtual

Returns true if this converter object's properties match the given properties.

A typical use of this method involves creating a ConversionProperties object, setting the options desired, and then calling this method on an SBMLLevelVersionConverter object to find out if the object's property values match the given ones. This method is also used by SBMLConverterRegistry::getConverterFor() to search across all registered converters for one matching particular properties.

Parameters
propsthe properties to match.
Returns
true if this converter's properties match, false otherwise.

Reimplemented from SBMLConverter.

◆ operator=()

SBMLRateRuleConverter & SBMLRateRuleConverter::operator= ( const SBMLRateRuleConverter rhs)

Assignment operator for SBMLInferUnitsConverter.

Parameters
rhsthe object whose values are used as the basis of the assignment.

◆ setDocument() [1/2]

int SBMLConverter::setDocument ( const SBMLDocument doc)
virtualinherited

Sets the SBML document to be converted.

Parameters
docthe document to use for this conversion.
Returns
integer value indicating the success/failure of the operation. The value is drawn from the enumeration OperationReturnValues_t. The set of possible values that may be returned ultimately depends on the specific subclass of SBMLConverter being used, but the default method can return the following:
Warning
Even though the argument doc is 'const', it is immediately cast to a non-const version, which is then usually changed by the converter upon a successful conversion. This variant of the setDocument() method is here solely to preserve backwards compatibility.

Reimplemented in SBMLReactionConverter, and SBMLRateOfConverter.

Examples
flattenModel.cpp.

◆ setDocument() [2/2]

int SBMLConverter::setDocument ( SBMLDocument doc)
virtualinherited

Sets the SBML document to be converted.

Parameters
docthe document to use for this conversion.
Returns
integer value indicating the success/failure of the operation. The value is drawn from the enumeration OperationReturnValues_t. The set of possible values that may be returned ultimately depends on the specific subclass of SBMLConverter being used, but the default method can return the following:

Reimplemented in SBMLReactionConverter, and SBMLRateOfConverter.

◆ setProperties()

int SBMLConverter::setProperties ( const ConversionProperties props)
virtualinherited

Sets the configuration properties to be used by this converter.

Parameters
propsthe ConversionProperties object defining the properties to set.
Returns
integer value indicating the success/failure of the operation. The value is drawn from the enumeration OperationReturnValues_t. The set of possible values that may be returned ultimately depends on the specific subclass of SBMLConverter being used, but the default method can return the following values:
See also
getProperties()
matchesProperties()