FluxObjective¶
One term of an objective: a reaction weighted by a coefficient.
A flux objective names the reaction whose flux enters the objective function and the number the flux is multiplied with. An objective is the sum of its flux objectives, so a genome scale model usually carries one term of coefficient one on its biomass reaction.
It is an element of the report and not a row of its objective, because the specification derives it from SBase: it may carry an identifier, a name, an SBO term, notes and annotations, and the reference to its reaction starts here, not at the objective around it.
Attributes¶
| attribute | type | required | meaning | specification |
|---|---|---|---|---|
| reaction | SIdRef |
required | the reaction whose flux this term of the objective weighs | fbc v3 3.7 |
| reaction2 | SIdRef |
optional | the second reaction of a mixed quadratic term, from Version 3 on | fbc v3 3.7 |
| coefficient | double |
required | the number the flux of the reaction is multiplied with | fbc v3 3.7 |
| variableType | FbcVariableType |
required | whether the flux enters the objective linearly or quadratically | fbc v3 3.7 |
Every element of a model also carries the common attributes of SBase.
reaction
The attribute is required and names a reaction of the model. The report links it, and the inspector of that reaction shows the flux objective under "referenced by", which is how the reactions an analysis optimises are found.
2020605(error): The value of the attribute 'fbc:reaction' of a <fluxObjective> object must conform to the syntax of the SBML data type 'SIdRef'.2020606(error): The value of the attribute 'fbc:reaction' of a <fluxObjective> object must be the identifier of an existing <reaction> object defined in the enclosing <model> object.
reaction2
A quadratic flux objective which names a second reaction weighs the product of the two fluxes, coefficient * J1 * J2, instead of the square of one. The attribute exists from Version 3 of the package on and is empty in every earlier document.
The report links the reaction next to the first one.
Default: a quadratic term is the square of the flux of the first reaction.
2020610(error): The value of the attribute 'fbc:reaction2' of a <fluxObjective> object must conform to the syntax of the SBML data type 'SIdRef'.2020611(error): The value of the attribute 'fbc:reaction2' of a <fluxObjective> object must be the identifier of an existing <reaction> object defined in the enclosing <model> object.
coefficient
The coefficient is a signed number and carries no units, since the term takes the units of the flux, extent per time. A negative coefficient turns a term of a maximisation into one which is pushed down, which is how one objective can trade growth against the uptake of a substrate.
In a strict model the coefficient has to be a finite number. The report shows it next to the reaction.
2020607(error): The value of the attribute 'fbc:coefficient' of a <fluxObjective> object must conform to the syntax of the SBML data type 'double'.2020608(error): When the value of the <model> 'fbc:strict' attribute is true, the value of the attribute 'fbc:coefficient' of a <fluxObjective> object must not be set to 'NaN', 'INF' or '-INF'.
variableType
The type is linear, the classical case in which the flux appears as it is, or quadratic, in which it appears squared or multiplied by the flux of the second reaction. Without it a quadratic term reads like a linear one, and Minimize: 1 R1 + [4 R2^2]/2 and Minimize: 1 R1 + 4 R2 cannot be told apart.
The attribute is required from Version 3 of the package on and does not exist before it, so a Version 1 or Version 2 document leaves it empty and every term of its objectives is linear.
2020609(error): The value of the attribute 'fbc:variableType' of a <fluxObjective> object must conform to the syntax of SBML data type 'FbcVariableType' and may only take on the allowed values of 'FbcVariableType' defined in SBML; that is, the value must be one of the following: 'linear' or 'quadratic'.
Validation rules¶
2010301(error): (Extends validation rule #10301 in the SBML Level 3 Version 1 Core specification.) Within a <model> object the values of the attributes id and fbc:id on every instance of the following classes of objects must be unique across the set of all id and fbc:id attribute values of all such objects in a model: the model itself, plus all contained <functionDefinition>, <compartment>, <species>, <reaction>, <speciesReference>, <modifierSpeciesReference>, <event>, and <parameter> objects, plus the <fluxBound>, <objective>, <fluxObjective>, <geneProduct> and <geneProductAssociation> objects defined by the Flux Balance Constraints package.2020601(error): A <fluxObjective> object may have the optional SBML Level 3 Core attributes 'metaid' and 'sboTerm'. No other attributes from the SBML Level 3 Core namespace are permitted on a <fluxObjective>.2020602(error): A <fluxObjective> object may have the optional SBML Level 3 Core subobjects for notes and annotations. No other elements from the SBML Level 3 Core namespace are permitted on a <fluxObjective>.2020603(error): A <fluxObjective> object must have the required attributes 'fbc:reaction' and 'fbc:coefficient', and may have the optional attributes 'fbc:id' and 'fbc:name'. No other attributes from the SBML Level 3 Flux Balance Constraints namespace are permitted on a <fluxObjective> object.
Related elements¶
- Objective: the function a flux balance analysis maximises or minimises
- Reaction: a process which changes the quantities of species
- Flux Balance Constraints (fbc): the package which describes a constraint based model
Specification¶
SBML Level 3 Package: Flux Balance Constraints, Version 3 Release 1, Section 3.7 (Olivier and Bergmann, COMBINE specification).