
A species refers to a pool of reacting entities of a specific species type that take part in reactions and are located in a specific compartment. The Species data structure is intended to represent these pools. A Species definition has several parts: an optional identifier (defined by the attribute 'id'), an optional name (defined by the attribute 'name'), a required attribute 'compartment', and optional attributes 'speciesType', 'initialAmount', 'initialConcentration', 'substanceUnits', 'hasOnlySubstanceUnits', 'boundaryCondition', 'charge' and 'constant'. These various parts are described next.
As with other major structures in SBML, Species has a mandatory attribute, 'id', used to give the species type an identifier in the model. The identifier must be a text string conforming to the identifer syntax permitted in SBML. Species also has an optional 'name' attribute, of type string. The 'id' and 'name' must be used according to the guidelines described in the SBML specification (e.g., Section 3.3 in the Level 2 Version 4 specification).
The required attribute 'compartment' is used to identify the compartment in which the species is located. The attribute's value must be the identifier of an existing Compartment structure. It is important to note that there is no default value for the 'compartment' attribute on Species; every species in an SBML model must be assigned a compartment, and consequently, a model must define at least one compartment if that model contains any species.
Each species in a model may optionally be designated as belonging to a particular species type. The optional attribute 'speciesType' is used to identify the species type of the chemical entities that make up the pool represented by the Species structure. The attribute's value must be the identifier of an existing SpeciesType structure. If the 'speciesType' attribute is not present on a particular species definition, it means the pool contains chemical entities of a type unique to that pool; in effect, a virtual species type is assumed for that species, and no other species can belong to that species type. The value of 'speciesType' attributes on species have no effect on the numerical interpretation of a model; simulators and other numerical analysis software may ignore 'speciesType' attributes.
There can be only one species of a given species type in any given compartment of a model. More specifically, for all Species structures having a value for the 'speciesType' attribute, the pair
must be unique across the set of all Species structures in a model.
float, are used to set the initial quantity of the species in the compartment where the species is located. These attributes are mutually exclusive; i.e., only one can have a value on any given instance of a Species structure. Missing 'initialAmount' and 'initialConcentration' values implies that their values either are unknown, or to be obtained from an external source, or determined by an InitialAssignment or Rule object elsewhere in the model. In the case where a species' compartment has a 'spatialDimensions' value of 0 (zero), the species cannot have a value for 'initialConcentration' because the concepts of concentration and density break down when a container has zero dimensions.
A species' initial quantity is set by the 'initialAmount' or 'initialConcentration' attributes exactly once. If the species' 'constant' attribute is true (the default), then the size is fixed and cannot be changed except by an InitialAssignment. These methods differ in that the 'initialAmount' and 'initialConcentration' attributes can only be used to set the species quantity to a literal scalar value, whereas InitialAssignment allows the value to be set using an arbitrary mathematical expression. If the species' 'constant' attribute is false, the species' quantity value may be overridden by an InitialAssignment or changed by AssignmentRule or AlgebraicRule, and in addition, for t < 0, it may also be changed by a RateRule or Event. (However, some constructs are mutually exclusive; see the SBML specification for more details.) It is not an error to define 'initialAmount' or 'initialConcentration' on a species and also redefine the value using an InitialAssignment, but the 'initialAmount' or 'initialConcentration' setting in that case is ignored.
The units of the value in the 'initialConcentration' attribute are substance/size units, where the units of substance are those defined by the 'substanceUnits' attribute and the size units are those given in the definition of the size of the Compartment in which the species is located. The units of the value in the 'initialAmount' attribute are determined by the 'substanceUnits' attribute of the species structure. The role of the attribute 'hasOnlySubstanceUnits' is to indicate whether the units of the species, when the species identifier appears in mathematical formulas, are intended to be concentration or amount. The attribute takes on boolean values and defaults to false. Although it may seem as though this intention could be determined based on whether 'initialConcentration' or 'initialAmount' is set, the fact that these two attributes are optional means that a separate flag is needed. (Consider the situation where neither is set, and instead the species' quantity is established by an InitialAssignment or AssignmentRule.)
The possible values of units of the species are summarized in the following table. (The dependence on the number of spatial dimensions of the compartment is due to the fact that a zero-dimensional compartment cannot support concentrations or densities.)
Value ofhasOnlySubstanceUnits
|
Units of the species whenspatialDimensions is greater than 0
|
Units of the species whenspatialDimensions is 0
|
|---|---|---|
false (default) |
substance/size | substance |
true (default) |
substance | substance |
The value assigned to 'substanceUnits' must be chosen from one of the following possibilities: one of the base unit identifiers defined in SBML; the built-in unit identifier 'substance'; or the identifier of a new unit defined in the list of unit definitions in the enclosing Model structure. The chosen units for 'substanceUnits' must be be 'dimensionless', 'mole', 'item', 'kilogram', 'gram', or units derived from these. The 'substanceUnits' attribute defaults to the the built-in unit 'substance'.
The units of the species are used in the following ways:
constantvalue |
boundaryConditionvalue |
Can have assignment or rate rule? |
Can be reactant or product? |
Species' quantity can be changed by |
|---|---|---|---|---|
true |
true |
no | yes | (never changes) |
false |
true |
yes | yes | rules and events |
true |
false |
no | no | (never changes) |
false |
false |
yes | yes | reactions or rules (but not both at the same time), and events |
By default, when a species is a product or reactant of one or more reactions, its quantity is determined by those reactions. In SBML, it is possible to indicate that a given species' quantity is not determined by the set of reactions even when that species occurs as a product or reactant; i.e., the species is on the boundary of the reaction system, and its quantity is not determined by the reactions. The boolean attribute 'boundaryCondition' can be used to indicate this. The value of the attribute defaults to false, indicating the species is part of the reaction system.
The 'constant' attribute indicates whether the species' quantity can be changed at all, regardless of whether by reactions, rules, or constructs other than InitialAssignment. The default value is false, indicating that the species' quantity can be changed, since the purpose of most simulations is precisely to calculate changes in species quantities. Note that the initial quantity of a species can be set by an InitialAssignment irrespective of the value of the 'constant' attribute.
In practice, a 'boundaryCondition' value of true means a differential equation derived from the reaction definitions should not be generated for the species. However, the species' quantity may still be changed by AssignmentRule, RateRule, AlgebraicRule, Event, and InitialAssignment constructs if its 'constant' attribute is false. Conversely, if the species' 'constant' attribute is true, then its value cannot be changed by anything except InitialAssignment.
A species having 'boundaryCondition'=false and 'constant'=false can appear as a product and/or reactant of one or more reactions in the model. If the species is a reactant or product of a reaction, it must not also appear as the target of any AssignmentRule or RateRule structure in the model. If instead the species has 'boundaryCondition'=false and 'constant'=true, then it cannot appear as a reactant or product, or as the target of any AssignmentRule, RateRule or EventAssignment structure in the model.
Definition at line 13089 of file libsbml.py.
| def libsbml.SBase.__eq__ | ( | self, | ||
| rhs | ||||
| ) | [inherited] |
Definition at line 3296 of file libsbml.py.
| def libsbml.SBase.__init__ | ( | self, | ||
| args, | ||||
| kwargs | ||||
| ) | [inherited] |
| def libsbml.Species.__init__ | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
__init__(self, unsigned int level, unsigned int version)Species __init__(self, SBMLNamespaces sbmlns)
Species __init__(self, Species orig)
Species
Predicate returning true or false depending on whether all the required attributes for this Species object have been set.
Definition at line 13292 of file libsbml.py.
| def libsbml.SBase.__ne__ | ( | self, | ||
| rhs | ||||
| ) | [inherited] |
Definition at line 3303 of file libsbml.py.
| def libsbml.SBase.addCVTerm | ( | self, | ||
| args | ||||
| ) | [inherited] |
Python method signature(s):
addCVTerm(self, CVTerm term)int
Adds a copy of the given CVTerm to this SBML object.
| term | the CVTerm to assign |
Definition at line 2974 of file libsbml.py.
| def libsbml.SBase.appendAnnotation | ( | self, | ||
| args | ||||
| ) | [inherited] |
Python method signature(s):
appendAnnotation(self, XMLNode annotation)int appendAnnotation(self, string annotation)
int
Appends the annotation content given by annotation to any existing content in the 'annotation' subelement of this object.
Whereas the SBase 'notes' subelement is a container for content to be shown directly to humans, the 'annotation' element is a container for optional software-generated content not meant to be shown to humans. Every object derived from SBase can have its own value for 'annotation'. The element's content type is XML type any, allowing essentially arbitrary well-formed XML data content.
SBML places a few restrictions on the organization of the content of annotations; these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
Unlike SBase.setAnnotation(const XMLNode* annotation) or SBase.setAnnotation(const std.string& annotation), this method allows other annotations to be preserved when an application adds its own data.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| annotation | an XML string that is to be copied and appended to the content of the 'annotation' subelement of this object |
setAnnotation(const XMLNode* annotation)
setAnnotation(const std.string& annotation)
appendAnnotation(const XMLNode* annotation)
Reimplemented in libsbml.Model, and libsbml.SpeciesReference.
Definition at line 2624 of file libsbml.py.
| def libsbml.SBase.appendNotes | ( | self, | ||
| args | ||||
| ) | [inherited] |
Python method signature(s):
appendNotes(self, XMLNode notes)int appendNotes(self, string notes)
int
Appends notes content to the 'notes' element attached to this object.
The content in notes is copied.
The optional element named 'notes', present on every major SBML component type, is intended as a place for storing optional information intended to be seen by humans. An example use of the 'notes' element would be to contain formatted user comments about the model element in which the 'notes' element is enclosed. Every object derived directly or indirectly from type SBase can have a separate value for 'notes', allowing users considerable freedom when adding comments to their models. The format of 'notes' elements must be XHTML 1.0. The SBML Level 2 specification has considerable detail about how 'notes' element content must be handled; please refer to the specifications.
| notes | an XML string that is to appended to the content of the 'notes' subelement of this object |
setNotes(const XMLNode* notes)
setNotes(const std.string& notes)
appendNotes(const XMLNode* notes)
Definition at line 2726 of file libsbml.py.
| def libsbml.Species.clone | ( | self | ) |
Python method signature(s):
clone(self)Species
Creates and returns a deep copy of this Species.
Reimplemented from libsbml.SBase.
Definition at line 13317 of file libsbml.py.
| def libsbml.SBase.getAncestorOfType | ( | self, | ||
| args | ||||
| ) | [inherited] |
Python method signature(s):
getAncestorOfType(self, SBMLTypeCode_t type)SBase
Returns the ancestor SBML object that corresponds to the given SBMLTypeCode_t.
This function allows any object to determine its exact location/function within a model. For example a StoichiometryMath object has ancestors of type SpeciesReference, ListOfProducts/ListOfReactants/ListOfModifiers, Reaction, ListOfReactions and Model; any of which can be accessed via this function.
| type | the SBMLTypeCode_t of the ancestor to be returned. |
Definition at line 2115 of file libsbml.py.
| def libsbml.SBase.getAnnotation | ( | self | ) | [inherited] |
Python method signature(s):
getAnnotation(self)XMLNode
Returns the content of the 'annotation' subelement of this object as an XML node tree.
Whereas the SBase 'notes' subelement is a container for content to be shown directly to humans, the 'annotation' element is a container for optional software-generated content not meant to be shown to humans. Every object derived from SBase can have its own value for 'annotation'. The element's content type is XML type any, allowing essentially arbitrary well-formed XML data content.
SBML places a few restrictions on the organization of the content of annotations; these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
The annotations returned by this method will be in XML form. LibSBML provides an object model and related interfaces for certain specific kinds of annotations, namely model history information and RDF content. See the ModelHistory, CVTerm and RDFAnnotationParser classes for more information about the facilities available.
setAnnotation(const XMLNode* annotation)
setAnnotation(const std.string& annotation)
appendAnnotation(const XMLNode* annotation)
appendAnnotation(const std.string& annotation)
Definition at line 1971 of file libsbml.py.
| def libsbml.SBase.getAnnotationString | ( | self | ) | [inherited] |
Python method signature(s):
getAnnotationString(self)string
Returns the content of the 'annotation' subelement of this object as a character string.
Whereas the SBase 'notes' subelement is a container for content to be shown directly to humans, the 'annotation' element is a container for optional software-generated content not meant to be shown to humans. Every object derived from SBase can have its own value for 'annotation'. The element's content type is XML type any, allowing essentially arbitrary well-formed XML data content.
SBML places a few restrictions on the organization of the content of annotations; these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
The annotations returned by this method will be in string form.
setAnnotation(const XMLNode* annotation)
setAnnotation(const std.string& annotation)
appendAnnotation(const XMLNode* annotation)
appendAnnotation(const std.string& annotation)
Definition at line 2014 of file libsbml.py.
| def libsbml.Species.getBoundaryCondition | ( | self | ) |
Python method signature(s):
getBoundaryCondition(self)bool
Get the value of the 'boundaryCondition' attribute.
true if this Species' 'boundaryCondition' attribute value is nonzero, false otherwise. Definition at line 13514 of file libsbml.py.
| def libsbml.Species.getCharge | ( | self | ) |
Python method signature(s):
getCharge(self)int
Get the value of the 'charge' attribute.
Definition at line 13530 of file libsbml.py.
| def libsbml.SBase.getColumn | ( | self | ) | [inherited] |
Python method signature(s):
getColumn(self)unsigned int
Returns the column number on which this object first appears in the XML representation of the SBML document.
Definition at line 2217 of file libsbml.py.
| def libsbml.Species.getCompartment | ( | self | ) |
Python method signature(s):
getCompartment(self)string
Get the compartment in which this species is located.
Definition at line 13398 of file libsbml.py.
| def libsbml.Species.getConstant | ( | self | ) |
Python method signature(s):
getConstant(self)bool
Get the value of the 'constant' attribute.
true if this Species's 'constant' attribute value is nonzero, false otherwise. Definition at line 13557 of file libsbml.py.
| def libsbml.SBase.getCVTerm | ( | self, | ||
| args | ||||
| ) | [inherited] |
Python method signature(s):
getCVTerm(self, unsigned int n)CVTerm
Returns the nth CVTerm in the list of CVTerms of this SBML object.
| n | unsigned int the index of the CVTerm to retrieve |
Definition at line 3042 of file libsbml.py.
| def libsbml.SBase.getCVTerms | ( | self | ) | [inherited] |
Python method signature(s):
getCVTerms(self)CVTermList
Get the CVTermList of CVTerm objects in this SBase.
Definition at line 3010 of file libsbml.py.
| def libsbml.Species.getDerivedUnitDefinition | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
getDerivedUnitDefinition(self)UnitDefinition getDerivedUnitDefinition(self)
UnitDefinition
Constructs and returns a UnitDefinition that corresponds to the units of this Species' amount or concentration.
Species in SBML have an attribute ('substanceUnits') for declaring the units of measurement intended for the species' amount or concentration (depending on which one applies). In the absence of a value given for 'substanceUnits', the units are taken from the enclosing Model's definition of 'substance' or 'substance'/(size of the compartment) in which the species is located, or finally, if these are not redefined by the Model, the relevant SBML default units for those quantities. Following that procedure, the method getDerivedUnitDefinition() returns a UnitDefinition based on the interpreted units of this species's amount or concentration.
Note that the functionality that facilitates unit analysis depends on the model as a whole. Thus, in cases where the object has not been added to a model or the model itself is incomplete, unit analysis is not possible and this method will return NULL.
Note also that unit declarations for Species are in terms of the identifier of a unit, but this method returns a UnitDefinition object, not a unit identifier. It does this by constructing an appropriate UnitDefinition. Callers may find this particularly useful when used in conjunction with the helper methods on UnitDefinition for comparing different UnitDefinition objects.
In SBML Level 2 specifications prior to Version 3, Species includes an additional attribute named 'spatialSizeUnits', which allows explicitly setting the units of size for initial concentration. The getDerivedUnitDefinition() takes this into account for models expressed in SBML Level 2 Versions 1 and 2.
Definition at line 14343 of file libsbml.py.
| def libsbml.Species.getElementName | ( | self | ) |
Python method signature(s):
getElementName(self)string
Returns the XML element name of this object, which for Species, is always 'species'.
'species'. Reimplemented from libsbml.SBase.
Definition at line 14421 of file libsbml.py.
| def libsbml.Species.getHasOnlySubstanceUnits | ( | self | ) |
Python method signature(s):
getHasOnlySubstanceUnits(self)bool
Get the value of the 'hasOnlySubstanceUnits' attribute.
true if this Species' 'hasOnlySubstanceUnits' attribute value is nonzero, false otherwise. Definition at line 13498 of file libsbml.py.
| def libsbml.Species.getId | ( | self | ) |
Python method signature(s):
getId(self)string
Returns the value of the 'id' attribute of this Species.
Reimplemented from libsbml.SBase.
Definition at line 13351 of file libsbml.py.
| def libsbml.Species.getInitialAmount | ( | self | ) |
Python method signature(s):
getInitialAmount(self)float
Get the value of the 'initialAmount' attribute.
Definition at line 13414 of file libsbml.py.
| def libsbml.Species.getInitialConcentration | ( | self | ) |
Python method signature(s):
getInitialConcentration(self)float
Get the value of the 'initialConcentration' attribute.
Definition at line 13429 of file libsbml.py.
| def libsbml.SBase.getLevel | ( | self | ) | [inherited] |
Python method signature(s):
getLevel(self)unsigned int
Returns the SBML Level of the overall SBML document.
Definition at line 3134 of file libsbml.py.
| def libsbml.SBase.getLine | ( | self | ) | [inherited] |
Python method signature(s):
getLine(self)unsigned int
Returns the line number on which this object first appears in the XML representation of the SBML document.
Definition at line 2199 of file libsbml.py.
| def libsbml.SBase.getMetaId | ( | self | ) | [inherited] |
Python method signature(s):
getMetaId(self)string
Returns the value of the 'metaid' attribute of this object.
The optional attribute named 'metaid', present on every major SBML component type, is for supporting metadata annotations using RDF (Resource Description Format). The attribute value has the data type XML ID, the XML identifier type, which means each 'metaid' value must be globally unique within an SBML file. (Importantly, this uniqueness criterion applies across any attribute with type XML ID, not just the 'metaid' attribute used by SBML—something to be aware of if your application-specific XML content inside the 'annotation' subelement happens to use XML ID.) The 'metaid' value serves to identify a model component for purposes such as referencing that component from metadata placed within 'annotation' subelements.
setMetaId(const std.string& metaid)
Definition at line 1790 of file libsbml.py.
| def libsbml.SBase.getModel | ( | self | ) | [inherited] |
Python method signature(s):
getModel(self)Model
Returns the Model object in which the current object is located.
Definition at line 3119 of file libsbml.py.
| def libsbml.Species.getName | ( | self | ) |
Python method signature(s):
getName(self)string
Returns the value of the 'name' attribute of this Species.
Reimplemented from libsbml.SBase.
Definition at line 13366 of file libsbml.py.
| def libsbml.SBase.getNamespaces | ( | self | ) | [inherited] |
Python method signature(s):
getNamespaces(self)XMLNamespaces
Returns a list of the XML Namespaces declared on this SBML document.
Reimplemented in libsbml.SBMLDocument.
Definition at line 2053 of file libsbml.py.
| def libsbml.SBase.getNotes | ( | self | ) | [inherited] |
Python method signature(s):
getNotes(self)XMLNode
Returns the content of the 'notes' subelement of this object as a tree of XML nodes.
The optional element named 'notes', present on every major SBML component type, is intended as a place for storing optional information intended to be seen by humans. An example use of the 'notes' element would be to contain formatted user comments about the model element in which the 'notes' element is enclosed. Every object derived directly or indirectly from type SBase can have a separate value for 'notes', allowing users considerable freedom when adding comments to their models. The format of 'notes' elements must be XHTML 1.0. The SBML Level 2 specification has considerable detail about how 'notes' element content must be handled; please refer to the specifications.
The 'notes' element content returned by this method will be in XML form, but libSBML does not provide an object model specifically for the content of notes. Callers will need to traverse the XML tree structure using the facilities available on XMLNode and related objects.
setNotes(const XMLNode* notes)
setNotes(const std.string& notes)
appendNotes(const XMLNode* notes)
appendNotes(const std.string& notes)
Definition at line 1891 of file libsbml.py.
| def libsbml.SBase.getNotesString | ( | self | ) | [inherited] |
Python method signature(s):
getNotesString(self)string
Returns the content of the 'notes' subelement of this object as a string.
The optional element named 'notes', present on every major SBML component type, is intended as a place for storing optional information intended to be seen by humans. An example use of the 'notes' element would be to contain formatted user comments about the model element in which the 'notes' element is enclosed. Every object derived directly or indirectly from type SBase can have a separate value for 'notes', allowing users considerable freedom when adding comments to their models. The format of 'notes' elements must be XHTML 1.0. The SBML Level 2 specification has considerable detail about how 'notes' element content must be handled; please refer to the specifications.
setNotes(const XMLNode* notes)
setNotes(const std.string& notes)
appendNotes(const XMLNode* notes)
appendNotes(const std.string& notes)
Definition at line 1934 of file libsbml.py.
| def libsbml.SBase.getNumCVTerms | ( | self | ) | [inherited] |
Python method signature(s):
getNumCVTerms(self)unsigned int
Returns the number of CVTerm objects in the annotations of this SBML object.
Definition at line 3026 of file libsbml.py.
| def libsbml.SBase.getParentSBMLObject | ( | self | ) | [inherited] |
Python method signature(s):
getParentSBMLObject(self)SBase
Returns the parent SBML object.
This method is convenient when holding an object nested inside other objects in an SBML model. It allows direct access to the <model> element containing it.
Definition at line 2096 of file libsbml.py.
| def libsbml.SBase.getResourceBiologicalQualifier | ( | self, | ||
| args | ||||
| ) | [inherited] |
Python method signature(s):
getResourceBiologicalQualifier(self, string resource)BiolQualifierType_t
Returns the BiologicalQualifier associated with this resource, or BQB_UNKNOWN if the resource does not exist.
| resource | string representing the resource; e.g., 'http://www.geneontology.org/GO:0005892' |
Definition at line 3081 of file libsbml.py.
| def libsbml.SBase.getResourceModelQualifier | ( | self, | ||
| args | ||||
| ) | [inherited] |
Python method signature(s):
getResourceModelQualifier(self, string resource)ModelQualifierType_t
Returns the ModelQualifier associated with this resource, or BQM_UNKNOWN if the resource does not exist.
| resource | string representing the resource; e.g., 'http://www.geneontology.org/GO:0005892' |
Definition at line 3100 of file libsbml.py.
| def libsbml.SBase.getSBMLDocument | ( | self, | ||
| args | ||||
| ) | [inherited] |
Python method signature(s):
getSBMLDocument(self)SBMLDocument getSBMLDocument(self)
SBMLDocument
Returns the parent SBMLDocument object.
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 2 specification, 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 or Level 2.)
This method allows the SBMLDocument for the current object to be retrieved.
Definition at line 2068 of file libsbml.py.
| def libsbml.SBase.getSBOTerm | ( | self | ) | [inherited] |
Python method signature(s):
getSBOTerm(self)int
Returns the integer portion of the value of the 'sboTerm' attribute of this object.
In SBML Level 2 Versions 2, 3 and 4, the data type of the attribute is a string of the form SBO:NNNNNNN, where NNNNNNN is a seven digit integer number; libSBML simplifies the representation by only storing the NNNNNNN integer portion. Thus, in libSBML, the 'sboTerm' attribute on SBase has data type int, and SBO identifiers are stored simply as integers. SBO terms are a type of optional annotation, and each different class of SBML object derived from SBase imposes its own requirements about the values permitted for 'sboTerm'. Please consult the SBML Level 2 Version 4 specification for more information about the use of SBO and the 'sboTerm' attribute.
-1 if the value is not set. Definition at line 2141 of file libsbml.py.
| def libsbml.SBase.getSBOTermID | ( | self | ) | [inherited] |
Python method signature(s):
getSBOTermID(self)string
Returns the string representation of the 'sboTerm' attribute of this object.
In SBML Level 2 Versions 2, 3 and 4, the data type of the attribute is a string of the form SBO:NNNNNNN, where NNNNNNN is a seven digit integer number; libSBML simplifies the representation by only storing the NNNNNNN integer portion. Thus, in libSBML, the 'sboTerm' attribute on SBase has data type int, and SBO identifiers are stored simply as integers. This function recreates the string representation from the stored value. SBO terms are a type of optional annotation, and each different class of SBML object derived from SBase imposes its own requirements about the values permitted for 'sboTerm'. Please consult the SBML Level 2 Version 4 specification for more information about the use of SBO and the 'sboTerm' attribute.
Definition at line 2169 of file libsbml.py.
| def libsbml.Species.getSpatialSizeUnits | ( | self | ) |
Python method signature(s):
getSpatialSizeUnits(self)string
Get the value of the 'spatialSizeUnits' attribute.
Definition at line 13460 of file libsbml.py.
| def libsbml.Species.getSpeciesType | ( | self | ) |
| def libsbml.Species.getSubstanceUnits | ( | self | ) |
Python method signature(s):
getSubstanceUnits(self)string
Get the value of the 'substanceUnit' attribute.
Definition at line 13445 of file libsbml.py.
| def libsbml.Species.getTypeCode | ( | self | ) |
Python method signature(s):
getTypeCode(self)SBMLTypeCode_t
Returns the libSBML type code for this SBML object.
SBML_UNKNOWN (default).Reimplemented from libsbml.SBase.
Definition at line 14392 of file libsbml.py.
| def libsbml.Species.getUnits | ( | self | ) |
Python method signature(s):
getUnits(self)string
(SBML Level 1 only) Get the value of the 'units' attribute.
Definition at line 13483 of file libsbml.py.
| def libsbml.SBase.getVersion | ( | self | ) | [inherited] |
Python method signature(s):
getVersion(self)unsigned int
Returns the Version within the SBML Level of the overall SBML document.
Definition at line 3151 of file libsbml.py.
| def libsbml.Species.hasRequiredAttributes | ( | self | ) |
Python method signature(s):
hasRequiredAttributes(self)bool
Predicate returning true or false depending on whether all the required attributes for this Species object have been set.
Reimplemented from libsbml.SBase.
Definition at line 14437 of file libsbml.py.
| def libsbml.SBase.hasRequiredElements | ( | self | ) | [inherited] |
Python method signature(s):
hasRequiredElements(self)bool
Subclasses should override this method to write out their contained SBML objects as XML elements. Be sure to call your parents implementation of this method as well. For example:
SBase.writeElements(stream); mReactans.write(stream); mProducts.write(stream); ...
Reimplemented in libsbml.Model, libsbml.FunctionDefinition, libsbml.UnitDefinition, libsbml.InitialAssignment, libsbml.Rule, libsbml.Constraint, libsbml.KineticLaw, libsbml.Event, libsbml.EventAssignment, libsbml.Trigger, libsbml.Delay, and libsbml.StoichiometryMath.
Definition at line 3275 of file libsbml.py.
| def libsbml.SBase.hasValidLevelVersionNamespaceCombination | ( | self | ) | [inherited] |
Python method signature(s):
hasValidLevelVersionNamespaceCombination(self)bool
Predicate returning true or false depending on whether this object's level/version and namespace values correspond to a valid SBML specification.
The valid combinations of SBML Level, Version and Namespace as of this release of libSBML are the following:
true if the level, version and namespace values of this SBML object correspond to a valid set of values, false otherwise. Definition at line 3192 of file libsbml.py.
| def libsbml.Species.initDefaults | ( | self | ) |
Python method signature(s):
initDefaults(self)
Initializes the fields of this Species to the defaults defined in the specification of the relevant Level/Version of SBML.
1 (true) 0 (false) 0 (false) Definition at line 13332 of file libsbml.py.
| def libsbml.SBase.isSetAnnotation | ( | self | ) | [inherited] |
Python method signature(s):
isSetAnnotation(self)bool
Predicate returning true or false depending on whether this object's 'annotation' subelement exists and has content.
Whereas the SBase 'notes' subelement is a container for content to be shown directly to humans, the 'annotation' element is a container for optional software-generated content not meant to be shown to humans. Every object derived from SBase can have its own value for 'annotation'. The element's content type is XML type any, allowing essentially arbitrary well-formed XML data content.
SBML places a few restrictions on the organization of the content of annotations; these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if a 'annotation' subelement exists, false otherwise.setAnnotation(const XMLNode* annotation)
setAnnotation(const std.string& annotation)
appendAnnotation(const XMLNode* annotation)
appendAnnotation(const std.string& annotation)
Definition at line 2387 of file libsbml.py.
| def libsbml.Species.isSetCharge | ( | self | ) |
Python method signature(s):
isSetCharge(self)bool
Predicate returning true or false depending on whether this Species's 'charge' attribute has been set.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if the 'charge' attribute of this Species has been set, false otherwise.Definition at line 13758 of file libsbml.py.
| def libsbml.Species.isSetCompartment | ( | self | ) |
Python method signature(s):
isSetCompartment(self)bool
Predicate returning true or false depending on whether this Species's 'compartment' attribute has been set.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if the 'compartment' attribute of this Species has been set, false otherwise. Definition at line 13630 of file libsbml.py.
| def libsbml.Species.isSetId | ( | self | ) |
Python method signature(s):
isSetId(self)bool
Predicate returning true or false depending on whether this Species's 'id' attribute has been set.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if the 'id' attribute of this Species has been set, false otherwise. Reimplemented from libsbml.SBase.
Definition at line 13573 of file libsbml.py.
| def libsbml.Species.isSetInitialAmount | ( | self | ) |
Python method signature(s):
isSetInitialAmount(self)bool
Predicate returning true or false depending on whether this Species's 'initialAmount' attribute has been set.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if the 'initialAmount' attribute of this Species has been set, false otherwise.true until a value has been assigned.) In SBML Level 2, 'initialAmount' is optional and as such may or may not be set. Definition at line 13649 of file libsbml.py.
| def libsbml.Species.isSetInitialConcentration | ( | self | ) |
Python method signature(s):
isSetInitialConcentration(self)bool
Predicate returning true or false depending on whether this Species's 'initialConcentration' attribute has been set.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if the 'initialConcentration' attribute of this Species has been set, false otherwise. Definition at line 13674 of file libsbml.py.
| def libsbml.SBase.isSetMetaId | ( | self | ) | [inherited] |
Python method signature(s):
isSetMetaId(self)bool
Predicate returning true or false depending on whether this object's 'metaid' attribute has been set.
The optional attribute named 'metaid', present on every major SBML component type, is for supporting metadata annotations using RDF (Resource Description Format). The attribute value has the data type XML ID, the XML identifier type, which means each 'metaid' value must be globally unique within an SBML file. (Importantly, this uniqueness criterion applies across any attribute with type XML ID, not just the 'metaid' attribute used by SBML—something to be aware of if your application-specific XML content inside the 'annotation' subelement happens to use XML ID.) The 'metaid' value serves to identify a model component for purposes such as referencing that component from metadata placed within 'annotation' subelements.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if the 'metaid' attribute of this SBML object has been set, false otherwise.setMetaId(const std.string& metaid)
Definition at line 2235 of file libsbml.py.
| def libsbml.Species.isSetName | ( | self | ) |
Python method signature(s):
isSetName(self)bool
Predicate returning true or false depending on whether this Species's 'name' attribute has been set.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if the 'name' attribute of this Species has been set, false otherwise. Reimplemented from libsbml.SBase.
Definition at line 13592 of file libsbml.py.
| def libsbml.SBase.isSetNotes | ( | self | ) | [inherited] |
Python method signature(s):
isSetNotes(self)bool
Predicate returning true or false depending on whether this object's 'notes' subelement exists and has content.
The optional element named 'notes', present on every major SBML component type, is intended as a place for storing optional information intended to be seen by humans. An example use of the 'notes' element would be to contain formatted user comments about the model element in which the 'notes' element is enclosed. Every object derived directly or indirectly from type SBase can have a separate value for 'notes', allowing users considerable freedom when adding comments to their models. The format of 'notes' elements must be XHTML 1.0. The SBML Level 2 specification has considerable detail about how 'notes' element content must be handled; please refer to the specifications.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if a 'notes' subelement exists, false otherwise.setNotes(const XMLNode* notes)
setNotes(const std.string& notes)
appendNotes(const XMLNode* notes)
appendNotes(const std.string& notes)
Definition at line 2348 of file libsbml.py.
| def libsbml.SBase.isSetSBOTerm | ( | self | ) | [inherited] |
Python method signature(s):
isSetSBOTerm(self)bool
Predicate returning true or false depending on whether this object's 'sboTerm' attribute has been set.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if the 'sboTerm' attribute of this SBML object has been set, false otherwise. Definition at line 2427 of file libsbml.py.
| def libsbml.Species.isSetSpatialSizeUnits | ( | self | ) |
Python method signature(s):
isSetSpatialSizeUnits(self)bool
Predicate returning true or false depending on whether this Species's 'spatialSizeUnits' attribute has been set.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if the 'spatialSizeUnits' attribute of this Species has been set, false otherwise.Definition at line 13712 of file libsbml.py.
| def libsbml.Species.isSetSpeciesType | ( | self | ) |
Python method signature(s):
isSetSpeciesType(self)bool
Predicate returning true or false depending on whether this Species's 'speciesType' attribute has been set.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if the 'speciesType' attribute of this Species has been set, false otherwise. Definition at line 13611 of file libsbml.py.
| def libsbml.Species.isSetSubstanceUnits | ( | self | ) |
Python method signature(s):
isSetSubstanceUnits(self)bool
Predicate returning true or false depending on whether this Species's 'substanceUnits' attribute has been set.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if the 'substanceUnits' attribute of this Species has been set, false otherwise. Definition at line 13693 of file libsbml.py.
| def libsbml.Species.isSetUnits | ( | self | ) |
Python method signature(s):
isSetUnits(self)bool
(SBML Level 1 only) Predicate returning true or false depending on whether this Species's 'units' attribute has been set.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
true if the 'units' attribute of this Species has been set, false otherwise. Definition at line 13739 of file libsbml.py.
| def libsbml.SBase.setAnnotation | ( | self, | ||
| args | ||||
| ) | [inherited] |
Python method signature(s):
setAnnotation(self, XMLNode annotation)int setAnnotation(self, string annotation)
int
Sets the value of the 'annotation' subelement of this SBML object to a copy of annotation given as a character string.
Whereas the SBase 'notes' subelement is a container for content to be shown directly to humans, the 'annotation' element is a container for optional software-generated content not meant to be shown to humans. Every object derived from SBase can have its own value for 'annotation'. The element's content type is XML type any, allowing essentially arbitrary well-formed XML data content.
SBML places a few restrictions on the organization of the content of annotations; these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
Call this method will result in any existing content of the 'annotation' subelement to be discarded. Unless you have taken steps to first copy and reconstitute any existing annotations into the annotation that is about to be assigned, it is likely that performing such wholesale replacement is unfriendly towards other software applications whose annotations are discarded. An alternative may be to use SBase.appendAnnotation(const XMLNode* annotation) or SBase.appendAnnotation(const std.string& annotation).
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| annotation | an XML string that is to be used as the content of the 'annotation' subelement of this object |
setAnnotation(const XMLNode* annotation)
appendAnnotation(const XMLNode* annotation)
appendAnnotation(const std.string& annotation)
Reimplemented in libsbml.Model, and libsbml.SpeciesReference.
Definition at line 2568 of file libsbml.py.
| def libsbml.Species.setBoundaryCondition | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
setBoundaryCondition(self, bool value)int
Sets the 'boundaryCondition' attribute of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| value | boolean value for the 'boundaryCondition' attribute. |
Definition at line 14066 of file libsbml.py.
| def libsbml.Species.setCharge | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
setCharge(self, int value)int
Sets the 'charge' attribute of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| value | an integer to which to set the 'charge' to. |
Definition at line 14089 of file libsbml.py.
| def libsbml.Species.setCompartment | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
setCompartment(self, string sid)int
Sets the 'compartment' attribute of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| sid | the identifier of a Compartment object defined elsewhere in this Model. |
Definition at line 13881 of file libsbml.py.
| def libsbml.Species.setConstant | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
setConstant(self, bool value)int
Sets the 'constant' attribute of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| value | a boolean value for the 'constant' attribute |
Definition at line 14125 of file libsbml.py.
| def libsbml.Species.setHasOnlySubstanceUnits | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
setHasOnlySubstanceUnits(self, bool value)int
Sets the 'hasOnlySubstanceUnits' attribute of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| value | boolean value for the 'hasOnlySubstanceUnits' attribute. |
Definition at line 14042 of file libsbml.py.
| def libsbml.Species.setId | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
setId(self, string sid)int
Sets the value of the 'id' attribute of this Species.
The string sid is copied. Note that SBML has strict requirements for the syntax of identifiers. The following is summary of the definition of the SBML identifier type SId (here expressed in an extended form of BNF notation):
letter ::= 'a'..'z','A'..'Z' digit ::= '0'..'9' idChar ::= letter | digit | '_' SId ::= ( letter | '_' ) idChar*
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
Reimplemented from libsbml.SBase.
Definition at line 13789 of file libsbml.py.
| def libsbml.Species.setInitialAmount | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
setInitialAmount(self, float value)int
Sets the 'initialAmount' attribute of this Species and marks the field as set.
This method also unsets the 'initialConcentration' attribute.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| value | the value to which the 'initialAmount' attribute should be set. |
Definition at line 13906 of file libsbml.py.
| def libsbml.Species.setInitialConcentration | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
setInitialConcentration(self, float value)int
Sets the 'initialConcentration' attribute of this Species and marks the field as set.
This method also unsets the 'initialAmount' attribute.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| value | the value to which the 'initialConcentration' attribute should be set. |
Definition at line 13933 of file libsbml.py.
| def libsbml.SBase.setMetaId | ( | self, | ||
| args | ||||
| ) | [inherited] |
Python method signature(s):
setMetaId(self, string metaid)int
Sets the value of the 'metaid' attribute of this object.
The string metaid is copied. The value of metaid must be an identifier conforming to the syntax defined by the XML 1.0 data type ID. Among other things, this type requires that a value is unique among all the values of type XML ID in an SBMLDocument. Although SBML only uses XML ID for the 'metaid' attribute, callers should be careful if they use XML ID's in XML portions of a model that are not defined by SBML, such as in the application-specific content of the 'annotation' subelement.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| metaid | the identifier string to use as the value of the 'metaid' attribute |
Definition at line 2446 of file libsbml.py.
| def libsbml.Species.setName | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
setName(self, string name)int
Sets the value of the 'name' attribute of this Species.
The string in name is copied.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| name | the new name for the Species |
Reimplemented from libsbml.SBase.
Definition at line 13829 of file libsbml.py.
| def libsbml.SBase.setNamespaces | ( | self, | ||
| args | ||||
| ) | [inherited] |
Python method signature(s):
setNamespaces(self, XMLNamespaces xmlns)int
Sets the namespaces relevant of this SBML object.
| xmlns | the namespaces to set |
Definition at line 2811 of file libsbml.py.
| def libsbml.SBase.setNotes | ( | self, | ||
| args | ||||
| ) | [inherited] |
Python method signature(s):
setNotes(self, XMLNode notes)int setNotes(self, string notes)
int
Sets the value of the 'notes' subelement of this SBML object to a copy of the string notes.
Any existing content of the 'notes' subelement is discarded.
The optional element named 'notes', present on every major SBML component type, is intended as a place for storing optional information intended to be seen by humans. An example use of the 'notes' element would be to contain formatted user comments about the model element in which the 'notes' element is enclosed. Every object derived directly or indirectly from type SBase can have a separate value for 'notes', allowing users considerable freedom when adding comments to their models. The format of 'notes' elements must be XHTML 1.0. The SBML Level 2 specification has considerable detail about how 'notes' element content must be handled; please refer to the specifications.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| notes | an XML string that is to be used as the content of the 'notes' subelement of this object |
setNotes(const XMLNode* notes)
appendNotes(const XMLNode* notes)
appendNotes(const std.string& notes)
Definition at line 2676 of file libsbml.py.
| def libsbml.SBase.setSBOTerm | ( | self, | ||
| args | ||||
| ) | [inherited] |
Python method signature(s):
setSBOTerm(self, int value)int setSBOTerm(self, string sboid)
int
Sets the value of the 'sboTerm' attribute.
In SBML Level 2 Versions 2, 3 and 4, the data type of the SBML 'sboTerm' attribute is a string of the form SBO:NNNNNNN, where NNNNNNN is a seven digit integer number; libSBML simplifies the representation by only storing the NNNNNNN integer portion. Thus, in libSBML, the 'sboTerm' attribute on SBase has data type int, and SBO identifiers are stored simply as integers. SBO terms are a type of optional annotation, and each different class of SBML object derived from SBase imposes its own requirements about the values permitted for 'sboTerm'. Please consult the SBML Level 2 Version 4 specification for more information about the use of SBO and the 'sboTerm' attribute.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| value | the NNNNNNN integer portion of the SBO identifier |
Definition at line 2774 of file libsbml.py.
| def libsbml.Species.setSpatialSizeUnits | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
setSpatialSizeUnits(self, string sid)int
Sets the 'spatialSizeUnits' attribute of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| sid | the identifier of the unit to use. |
Definition at line 13985 of file libsbml.py.
| def libsbml.Species.setSpeciesType | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
setSpeciesType(self, string sid)int
Sets the 'speciesType' attribute of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| sid | the identifier of a SpeciesType object defined elsewhere in this Model. |
Definition at line 13855 of file libsbml.py.
| def libsbml.Species.setSubstanceUnits | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
setSubstanceUnits(self, string sid)int
Sets the 'substanceUnits' attribute of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| sid | the identifier of the unit to use. |
Definition at line 13961 of file libsbml.py.
| def libsbml.Species.setUnits | ( | self, | ||
| args | ||||
| ) |
Python method signature(s):
setUnits(self, string sname)int
(SBML Level 1 only) Sets the units of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
| sname | the identifier of the unit to use. |
Definition at line 14018 of file libsbml.py.
| def libsbml.SBase.toSBML | ( | self | ) | [inherited] |
Python method signature(s):
toSBML(self)char
Returns a string that consists of the partial SBML describing this object. This is primarily provided for testing and debugging purposes. It may be removed in a future version of libSBML.
Definition at line 3237 of file libsbml.py.
| def libsbml.SBase.unsetAnnotation | ( | self | ) | [inherited] |
Python method signature(s):
unsetAnnotation(self)int
Unsets the value of the 'annotation' subelement of this SBML object.
Whereas the SBase 'notes' subelement is a container for content to be shown directly to humans, the 'annotation' element is a container for optional software-generated content not meant to be shown to humans. Every object derived from SBase can have its own value for 'annotation'. The element's content type is XML type any, allowing essentially arbitrary well-formed XML data content.
SBML places a few restrictions on the organization of the content of annotations; these are intended to help software tools read and write the data as well as help reduce conflicts between annotations added by different tools. Please see the SBML specifications for more details.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
setAnnotation(const XMLNode* annotation)
setAnnotation(const std.string& annotation)
appendAnnotation(const XMLNode* annotation)
appendAnnotation(const std.string& annotation)
Definition at line 2910 of file libsbml.py.
| def libsbml.Species.unsetCharge | ( | self | ) |
Python method signature(s):
unsetCharge(self)int
Unsets the 'charge' attribute value of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
Definition at line 14309 of file libsbml.py.
| def libsbml.SBase.unsetCVTerms | ( | self | ) | [inherited] |
Python method signature(s):
unsetCVTerms(self)int
Clears the list of CVTerms of this SBML object.
Definition at line 3060 of file libsbml.py.
| def libsbml.Species.unsetInitialAmount | ( | self | ) |
Python method signature(s):
unsetInitialAmount(self)int
Unsets the 'initialAmount' attribute value of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
Definition at line 14193 of file libsbml.py.
| def libsbml.Species.unsetInitialConcentration | ( | self | ) |
Python method signature(s):
unsetInitialConcentration(self)int
Unsets the 'initialConcentration' attribute value of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
Definition at line 14214 of file libsbml.py.
| def libsbml.SBase.unsetMetaId | ( | self | ) | [inherited] |
Python method signature(s):
unsetMetaId(self)int
Unsets the value of the 'metaid' attribute of this SBML object.
The optional attribute named 'metaid', present on every major SBML component type, is for supporting metadata annotations using RDF (Resource Description Format). The attribute value has the data type XML ID, the XML identifier type, which means each 'metaid' value must be globally unique within an SBML file. (Importantly, this uniqueness criterion applies across any attribute with type XML ID, not just the 'metaid' attribute used by SBML—something to be aware of if your application-specific XML content inside the 'annotation' subelement happens to use XML ID.) The 'metaid' value serves to identify a model component for purposes such as referencing that component from metadata placed within 'annotation' subelements.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
Definition at line 2832 of file libsbml.py.
| def libsbml.Species.unsetName | ( | self | ) |
Python method signature(s):
unsetName(self)int
Unsets the value of the 'name' attribute of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
Definition at line 14149 of file libsbml.py.
| def libsbml.SBase.unsetNotes | ( | self | ) | [inherited] |
Python method signature(s):
unsetNotes(self)int
Unsets the value of the 'notes' subelement of this SBML object.
The optional element named 'notes', present on every major SBML component type, is intended as a place for storing optional information intended to be seen by humans. An example use of the 'notes' element would be to contain formatted user comments about the model element in which the 'notes' element is enclosed. Every object derived directly or indirectly from type SBase can have a separate value for 'notes', allowing users considerable freedom when adding comments to their models. The format of 'notes' elements must be XHTML 1.0. The SBML Level 2 specification has considerable detail about how 'notes' element content must be handled; please refer to the specifications.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
setNotes(const XMLNode* notes)
setNotes(const std.string& notes)
appendNotes(const XMLNode* notes)
appendNotes(const std.string& notes)
Definition at line 2869 of file libsbml.py.
| def libsbml.SBase.unsetSBOTerm | ( | self | ) | [inherited] |
Python method signature(s):
unsetSBOTerm(self)int
Unsets the value of the 'sboTerm' attribute of this SBML object.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
Definition at line 2952 of file libsbml.py.
| def libsbml.Species.unsetSpatialSizeUnits | ( | self | ) |
Python method signature(s):
unsetSpatialSizeUnits(self)int
Unsets the 'spatialSizeUnits' attribute value of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
Definition at line 14257 of file libsbml.py.
| def libsbml.Species.unsetSpeciesType | ( | self | ) |
Python method signature(s):
unsetSpeciesType(self)int
Unsets the 'speciesType' attribute value of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
Definition at line 14171 of file libsbml.py.
| def libsbml.Species.unsetSubstanceUnits | ( | self | ) |
Python method signature(s):
unsetSubstanceUnits(self)int
Unsets the 'substanceUnits' attribute value of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
Definition at line 14235 of file libsbml.py.
| def libsbml.Species.unsetUnits | ( | self | ) |
Python method signature(s):
unsetUnits(self)int
(SBML Level 1 only) Unsets the 'units' attribute value of this Species.
Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.
Definition at line 14287 of file libsbml.py.