## Documentation |

Find conserved moieties in SimBiology model

`[G, Sp]
= sbioconsmoiety(modelObj)`

G | An m-by-n matrix, where m is
the number of conserved quantities found and n is
the number of species in the model. Each row of specifies
a linear combination of species whose rate of change over time is
zero.G |

Sp | Cell array of species names that labels the columns of . GIf
the species are in multiple compartments, species names are qualified
with the compartment name in the form |

modelObj | Model object to be evaluated for conserved moieties. |

alg | Specify algorithm to use during evaluation of conserved moieties.
Valid values are 'qr', 'rreduce',
or 'semipos'. |

H | Cell array of strings containing the conserved moieties. |

p | Prints the output to a cell array of strings. |

FormatArg | Specifies formatting for the output . H should
either be a FormatArgC-style format string, or a positive
integer specifying the maximum number of digits of precision used. |

SI | Cell array containing the names of independent species in the model. |

SD | Cell array containing the names of dependent species in the model. |

L0 | Link matrix relating ND
= L0*NR. For the 'link' functionality,
species with their BoundaryCondition or
ConstantAmount properties
set to true are treated as having stoichiometry of zero in all reactions.
full function. |

NR | Reduced stoichiometry matrices containing one row for
each independent species. The concatenated matrix
full function. |

ND | Reduced stoichiometry matrices containing one row for
each dependent species. The concatenated matrix .modelObj
full function. |

` [G, Sp]
= sbioconsmoiety(modelObj)` calculates
a complete set of linear conservation relations for the species in
the SimBiology

`sbioconsmoiety` computes conservation relations
by analyzing the structure of the model object's stoichiometry matrix.
Thus, `sbioconsmoiety` does not include species that
are governed by algebraic or rate rules.

` [G, Sp] = sbioconsmoiety(modelObj, alg)` provides
an algorithm specification. For

When you specify

`'qr'`,`sbioconsmoiety`uses an algorithm based on`QR`factorization. From a numerical standpoint, this is the most efficient and reliable approach.When you specify

`'rreduce'`,`sbioconsmoiety`uses an algorithm based on row reduction, which yields better numbers for smaller models. This is the default.When you specify

`'semipos'`,`sbioconsmoiety`returns conservation relations in which all the coefficients are greater than or equal to 0, permitting a more transparent interpretation in terms of physical quantities.

For larger models, the `QR`-based method is
recommended. For smaller models, row reduction or the semipositive
algorithm may be preferable. For row reduction and `QR` factorization,
the number of conservation relations returned equals the row rank
degeneracy of the model object's stoichiometry matrix. The semipositive
algorithm may return a different number of relations. Mathematically
speaking, this algorithm returns a generating set of vectors for the
space of semipositive conservation relations.

`H = sbioconsmoiety(modelObj, alg,'p')` returns
a cell array of strings

`H = sbioconsmoiety(modelObj, alg,'p', FormatArg)` specifies
formatting for the output

` [SI, SD, L0, NR, ND]
= sbioconsmoiety(modelObj,'link')` uses
a

This example shows conserved moieties in a cycle.

Create a model with a cycle. For convenience use arbitrary reaction rates, as this will not affect the result.

modelObj = sbiomodel('cycle'); modelObj.addreaction('a -> b','ReactionRate','1'); modelObj.addreaction('b -> c','ReactionRate','b'); modelObj.addreaction('c -> a','ReactionRate','2*c');

Look for conserved moieties.

[g sp] = sbioconsmoiety(modelObj)

g = 1 1 1 sp = 'a' 'b' 'c'

Explore semipositive conservation relations in the `oscillator` model.

modelObj = sbmlimport('oscillator'); sbioconsmoiety(modelObj,'semipos','p')

ans = 'pol + pol_OpA + pol_OpB + pol_OpC' 'OpB + pol_OpB + pA_OpB1 + pA_OpB_pA + pA_OpB2' 'OpA + pol_OpA + pC_OpA1 + pC_OpA2 + pC_OpA_pC' 'OpC + pol_OpC + pB_OpC1 + pB_OpC2 + pB_OpC_pB'

Was this topic helpful?