Generate the conservation equations using the stoichiometric subspace. Before any equations can be created, you must invoke the createRing function, which creates the reaction network ring. If you do not create the ring, you will receive an error message.
i1 : N = reactionNetwork "A <--> 2B, A + C <--> D, B + E --> A + C, D --> B+E" o1 = A-->2B 2B-->A A+C-->D D-->A+C D-->B+E B+E-->A+C o1 : ReactionNetwork |
i2 : R = createRing(N, QQ) o2 = R o2 : PolynomialRing |
i3 : conservationEquations N o3 = {2xx + xx - xx + xx - 2cc - cc + cc - cc , - 2xx - xx + 2xx + xx + 2cc + cc - 2cc - cc } A B C D A B C D A B C E A B C E o3 : List |
Obtain the conservation equations for a motif and display equations.
i4 : N = modificationOfTwoSubstratesI() o4 = S_0+E-->X_1 X_1-->S_0+E X_1-->E+S_1 S_1+F-->Y_1 Y_1-->S_1+F Y_1-->S_0+F E+P_0-->X_2 X_2-->E+P_0 X_2-->E+P_1 F+P_1-->Y_2 Y_2-->F+P_1 Y_2-->F+P_0 o4 : ReactionNetwork |
i5 : createRing(N,QQ) o5 = QQ[xx , xx , xx , xx , xx , xx , xx , xx , xx , xx , cc , cc , cc , cc , cc , cc , cc , cc , cc , cc , kk , kk , kk , kk , kk , kk , kk , kk , kk , kk , kk , kk ] S_0 E X_1 S_1 F Y_1 P_0 X_2 P_1 Y_2 S_0 E X_1 S_1 F Y_1 P_0 X_2 P_1 Y_2 {0, 1} {1, 0} {1, 2} {3, 4} {4, 3} {4, 5} {6, 7} {7, 6} {7, 8} {9, 10} {10, 9} {10, 11} o5 : PolynomialRing |
i6 : netList conservationEquations N +-------------------------------------------------------------------------------------+ o6 = |xx + xx + xx + xx - cc - cc - cc - cc | | S_0 X_1 S_1 Y_1 S_0 X_1 S_1 Y_1 | +-------------------------------------------------------------------------------------+ |xx + xx + xx - cc - cc - cc | | E X_1 X_2 E X_1 X_2 | +-------------------------------------------------------------------------------------+ |xx - xx + xx - xx + xx + xx - cc + cc - cc + cc - cc - cc | | S_0 E S_1 F P_0 P_1 S_0 E S_1 F P_0 P_1| +-------------------------------------------------------------------------------------+ |- xx - xx - xx + xx + xx + cc + cc + cc - cc - cc | | S_0 X_1 S_1 F Y_2 S_0 X_1 S_1 F Y_2 | +-------------------------------------------------------------------------------------+ |
Generate the conservation equations in a specific ring.
i7 : N = twoLayerCascadeL() o7 = S_0+E-->X_1 X_1-->S_0+E X_1-->E+S_1 S_1+P_0-->X_2 X_2-->S_1+P_0 X_2-->S_1+P_1 E+P_0-->X_3 X_3-->E+P_0 X_3-->E+P_1 S_1+F_1-->Y_1 Y_1-->S_1+F_1 Y_1-->S_0+F_1 P_1+F_2-->Y_2 Y_2-->P_1+F_2 Y_2-->P_0+F_2 o7 : ReactionNetwork |
i8 : R = createRing(N, ZZ/2) o8 = R o8 : PolynomialRing |
i9 : G = conservationEquations(N, ZZ/2) o9 = {xx + xx + xx + cc + cc + cc , xx + xx + xx + xx + xx + cc + cc + cc + cc + cc , E X_1 X_3 E X_1 X_3 S_0 X_1 S_1 X_2 F_1 S_0 X_1 S_1 X_2 F_1 ---------------------------------------------------------------------------------------------------------------------------- xx + xx + xx + xx + xx + cc + cc + cc + cc + cc , xx + xx + xx + xx + xx + xx + S_0 X_1 S_1 X_2 Y_1 S_0 X_1 S_1 X_2 Y_1 E X_1 P_0 X_2 P_1 F_2 ---------------------------------------------------------------------------------------------------------------------------- cc + cc + cc + cc + cc + cc , xx + xx + xx + xx + xx + xx + cc + cc + cc + cc + E X_1 P_0 X_2 P_1 F_2 E X_1 P_0 X_2 P_1 Y_2 E X_1 P_0 X_2 ---------------------------------------------------------------------------------------------------------------------------- cc + cc } P_1 Y_2 o9 : List |
The conservation equations describe a linear subspace going through the origin. To translate the subspace, the user may choose to use random values for the parameters, or enter specific values, such as initial conditions.
i10 : N = twoLayerCascadeL() o10 = S_0+E-->X_1 X_1-->S_0+E X_1-->E+S_1 S_1+P_0-->X_2 X_2-->S_1+P_0 X_2-->S_1+P_1 E+P_0-->X_3 X_3-->E+P_0 X_3-->E+P_1 S_1+F_1-->Y_1 Y_1-->S_1+F_1 Y_1-->S_0+F_1 P_1+F_2-->Y_2 Y_2-->P_1+F_2 Y_2-->P_0+F_2 o10 : ReactionNetwork |
i11 : N.Species o11 = {S_0, E, X_1, S_1, P_0, X_2, P_1, X_3, F_1, Y_1, F_2, Y_2} o11 : List |
i12 : R = createRing(N,QQ) o12 = R o12 : PolynomialRing |
i13 : G = conservationEquations(N, QQ) o13 = {xx + xx + xx - cc - cc - cc , - xx - xx - xx - xx + xx + cc + cc + cc + cc - E X_1 X_3 E X_1 X_3 S_0 X_1 S_1 X_2 F_1 S_0 X_1 S_1 X_2 --------------------------------------------------------------------------------------------------------------------------- cc , xx + xx + xx + xx + xx - cc - cc - cc - cc - cc , xx + xx - xx - xx - xx + F_1 S_0 X_1 S_1 X_2 Y_1 S_0 X_1 S_1 X_2 Y_1 E X_1 P_0 X_2 P_1 --------------------------------------------------------------------------------------------------------------------------- xx - cc - cc + cc + cc + cc - cc , - xx - xx + xx + xx + xx + xx + cc + cc - cc - F_2 E X_1 P_0 X_2 P_1 F_2 E X_1 P_0 X_2 P_1 Y_2 E X_1 P_0 --------------------------------------------------------------------------------------------------------------------------- cc - cc - cc } X_2 P_1 Y_2 o13 : List |
Substitute InitialValues
The example below demonstrates how to substitue specific values for the initial values in a reaction network. The list of desired values must be input in the order of the initial values; for that order use N.InitialValues, where N is the name of the reaction network. To substitute random values refer to the example at the end of steadyStateEquations.
i14 : N = reactionNetwork("A --> 2B, A + C --> D, D --> 0", NullSymbol => "0") o14 = A-->2B A+C-->D D-->0 o14 : ReactionNetwork |
i15 : R = createRing N o15 = R o15 : PolynomialRing |
i16 : CE = conservationEquations N o16 = {- 2xx - xx + 2xx + 2cc + cc - 2cc } A B C A B C o16 : List |
i17 : L = {1,2,3,4} o17 = {1, 2, 3, 4} o17 : List |
i18 : Iv = toList(apply(0..length N.InitialValues-1, i-> value(N.InitialValues#i))) o18 = {cc , cc , cc , cc } A B C D o18 : List |
i19 : S=toList(apply(0..length Iv-1, i-> Iv#i=>L#i)) o19 = {cc => 1, cc => 2, cc => 3, cc => 4} A B C D o19 : List |
i20 : toList apply(0..length CE-1, i-> sub(CE#i,S)) o20 = {- 2xx - xx + 2xx - 2} A B C o20 : List |
The object conservationEquations is a method function.