Create a reaction network from a string.
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
|
Create a reaction network from a list.
i2 : N = reactionNetwork {"S_0+E <--> X_1", "X_1 --> S_1+E",
"S_1+E <--> X_2", "X_2 --> S_2+E",
"S_1+F <--> Y_1", "Y_1 --> S_0+F",
"S_2+F <--> Y_2", "Y_2 --> S_1+F"}
o2 = S_0+E-->X_1
X_1-->S_0+E
X_1-->E+S_1
E+S_1-->X_2
X_2-->E+S_1
X_2-->E+S_2
S_1+F-->Y_1
Y_1-->S_1+F
Y_1-->S_0+F
S_2+F-->Y_2
Y_2-->S_1+F
Y_2-->S_2+F
o2 : ReactionNetwork
|
Create a reaction network including the empty set.
i3 : N = reactionNetwork ({"A --> 0", "0 --> A"}, NullSymbol => "0")
o3 = A-->0
0-->A
o3 : ReactionNetwork
|
The user may view specific information stored in the reaction network, such as species, complexes, etc.
i4 : N = reactionNetwork "A <--> 2B, A + C <--> D, B + E --> A + C, D --> B+E"
o4 = A-->2B
2B-->A
A+C-->D
D-->A+C
D-->B+E
B+E-->A+C
o4 : ReactionNetwork
|
i5 : N.Species
o5 = {A, B, C, D, E}
o5 : List
|
i6 : N.Complexes
o6 = {| 1 0 0 0 0 |, | 0 2 0 0 0 |, | 1 0 1 0 0 |, | 0 0 0 1 0 |, | 0 1 0 0 1 |}
o6 : List
|
i7 : N.ReactionGraph
o7 = Digraph{0 => {1} }
1 => {0}
2 => {3}
3 => {2, 4}
4 => {2}
o7 : Digraph
|
Or the user may view all stored information about a reaction network:
i8 : N = reactionNetwork "A <--> 2B, A + C <--> D, B + E --> A + C, D --> B + E"
o8 = A-->2B
2B-->A
A+C-->D
D-->A+C
D-->B+E
B+E-->A+C
o8 : ReactionNetwork
|
i9 : peek N
o9 = ReactionNetwork{Complexes => {| 1 0 0 0 0 |, | 0 2 0 0 0 |, | 1 0 1 0 0 |, | 0 0 0 1 0 |, | 0 1 0 0 1 |}}
ConcentrationRates => null
InitialValues => null
NullIndex => -1
NullSymbol =>
ReactionGraph => Digraph{0 => {1} }
1 => {0}
2 => {3}
3 => {2, 4}
4 => {2}
ReactionRates => null
ReactionRing => null
Species => {A, B, C, D, E}
|
Create a reaction network from a negative Laplacian matrix (or adjacency matrix) and the complexes.
i10 : L = matrix{{-1,1,0,0,0},{1,-1,0,0,0},{0,0,-1,1,0},{0,0,1,-2,1},{0,0,1,0,-1}}
o10 = | -1 1 0 0 0 |
| 1 -1 0 0 0 |
| 0 0 -1 1 0 |
| 0 0 1 -2 1 |
| 0 0 1 0 -1 |
5 5
o10 : Matrix ZZ <--- ZZ
|
i11 : Comp = transpose matrix{{1,0,0,0,0},{0,2,0,0,0},{1,0,1,0,0},{0,0,0,1,0},{0,1,0,0,1}}
o11 = | 1 0 1 0 0 |
| 0 2 0 0 1 |
| 0 0 1 0 0 |
| 0 0 0 1 0 |
| 0 0 0 0 1 |
5 5
o11 : Matrix ZZ <--- ZZ
|
i12 : N = reactionNetwork({Comp,L},Input=>"Laplacian")
o12 = X_1-->2X_2
2X_2-->X_1
X_1+X_3-->X_4
X_4-->X_1+X_3
X_4-->X_2+X_5
X_2+X_5-->X_1+X_3
o12 : ReactionNetwork
|
i13 : peek N
o13 = ReactionNetwork{Complexes => {| 1 0 0 0 0 |, | 0 2 0 0 0 |, | 1 0 1 0 0 |, | 0 0 0 1 0 |, | 0 1 0 0 1 |}}
ConcentrationRates => null
InitialValues => null
NullIndex => -1
NullSymbol =>
ReactionGraph => Digraph{0 => {1} }
1 => {0}
2 => {3}
3 => {2, 4}
4 => {2}
ReactionRates => null
ReactionRing => null
Species => {X_1, X_2, X_3, X_4, X_5}
|
The input can also be a weighted negative Laplacian matrix (or weighted adjacency matrix) and the complexes.
i14 : R = QQ[k_1..k_6,x_1..x_5] o14 = R o14 : PolynomialRing |
i15 : A = matrix{{-k_1,k_1,0,0,0},{k_2,-k_2,0,0,0},{0,0,-k_3,k_3,0},{0,0,k_4,-k_4-k_5,k_5},{0,0,k_6,0,-k_6}}
o15 = | -k_1 k_1 0 0 0 |
| k_2 -k_2 0 0 0 |
| 0 0 -k_3 k_3 0 |
| 0 0 k_4 -k_4-k_5 k_5 |
| 0 0 k_6 0 -k_6 |
5 5
o15 : Matrix R <--- R
|
i16 : Comp = transpose matrix{{1,0,0,0,0},{0,2,0,0,0},{1,0,1,0,0},{0,0,0,1,0},{0,1,0,0,1}}
o16 = | 1 0 1 0 0 |
| 0 2 0 0 1 |
| 0 0 1 0 0 |
| 0 0 0 1 0 |
| 0 0 0 0 1 |
5 5
o16 : Matrix ZZ <--- ZZ
|
i17 : N = reactionNetwork({Comp,A},Input=>"Laplacian")
o17 = X_1-->2X_2
2X_2-->X_1
X_1+X_3-->X_4
X_4-->X_1+X_3
X_4-->X_2+X_5
X_2+X_5-->X_1+X_3
o17 : ReactionNetwork
|
i18 : peek N
o18 = ReactionNetwork{Complexes => {| 1 0 0 0 0 |, | 0 2 0 0 0 |, | 1 0 1 0 0 |, | 0 0 0 1 0 |, | 0 1 0 0 1 |}}
ConcentrationRates => null
InitialValues => null
NullIndex => -1
NullSymbol =>
ReactionGraph => Digraph{0 => {1} }
1 => {0}
2 => {3}
3 => {2, 4}
4 => {2}
ReactionRates => null
ReactionRing => null
Species => {X_1, X_2, X_3, X_4, X_5}
|
Create a reaction network from a stoichiometric matrix and a flux vector.
i19 : R = QQ[k_1..k_6,x_1..x_5] o19 = R o19 : PolynomialRing |
i20 : StoichM = matrix{{-1,1,-1,1,0,1},{2,-2,0,0,1,-1},{0,0,-1,1,0,1},{0,0,1,-1,-1,0},{0,0,0,0,1,-1}}
o20 = | -1 1 -1 1 0 1 |
| 2 -2 0 0 1 -1 |
| 0 0 -1 1 0 1 |
| 0 0 1 -1 -1 0 |
| 0 0 0 0 1 -1 |
5 6
o20 : Matrix ZZ <--- ZZ
|
i21 : FluxV = transpose matrix{{k_1*x_1,k_2*x_2^2,k_3*x_1*x_3,k_4*x_4,k_5*x_4,k_6*x_2*x_5}}
o21 = {-2} | k_1x_1 |
{-3} | k_2x_2^2 |
{-3} | k_3x_1x_3 |
{-2} | k_4x_4 |
{-2} | k_5x_4 |
{-3} | k_6x_2x_5 |
6 1
o21 : Matrix R <--- R
|
i22 : N = reactionNetwork({StoichM,FluxV},Input=>"Stoichiometric")
o22 = X_1-->2X_2
2X_2-->X_1
X_1+X_3-->X_4
X_4-->X_1+X_3
X_4-->X_2+X_5
X_2+X_5-->X_1+X_3
o22 : ReactionNetwork
|
i23 : peek N
o23 = ReactionNetwork{Complexes => {| 0 1 0 0 1 |, | 0 0 0 1 0 |, | 1 0 1 0 0 |, | 1 0 0 0 0 |, | 0 2 0 0 0 |}}
ConcentrationRates => null
InitialValues => null
NullIndex => -1
NullSymbol =>
ReactionGraph => Digraph{0 => {2} }
1 => {2, 0}
2 => {1}
3 => {4}
4 => {3}
ReactionRates => null
ReactionRing => null
Species => {X_1, X_2, X_3, X_4, X_5}
|
Create a reaction network from a steady state ideal in R =QQ[k_1..k_m,x_1..x_n]. Note that the ideal needs to be unreduced with generator coming from a mass action dynamical system.
i24 : R = QQ[k_1..k_6,x_1..x_5] o24 = R o24 : PolynomialRing |
i25 : I = ideal(k_2*x_2^2-k_3*x_1*x_3+k_6*x_2*x_5-k_1*x_1+k_4*x_4,
-2*k_2*x_2^2-k_6*x_2*x_5+2*k_1*x_1+k_5*x_4,
-k_3*x_1*x_3+k_6*x_2*x_5+k_4*x_4,
k_3*x_1*x_3-k_4*x_4-k_5*x_4,
-k_6*x_2*x_5+k_5*x_4)
2 2
o25 = ideal (k x - k x x + k x x - k x + k x , - 2k x - k x x + 2k x + k x , - k x x + k x x + k x , k x x - k x -
2 2 3 1 3 6 2 5 1 1 4 4 2 2 6 2 5 1 1 5 4 3 1 3 6 2 5 4 4 3 1 3 4 4
---------------------------------------------------------------------------------------------------------------------------
k x , - k x x + k x )
5 4 6 2 5 5 4
o25 : Ideal of R
|
i26 : N = reactionNetwork I
o26 = 2X_2-->X_1
X_1-->2X_2
X_1+X_3-->X_4
X_4-->X_1+X_3
X_4-->X_2+X_5
X_2+X_5-->X_1+X_3
o26 : ReactionNetwork
|
i27 : peek N
o27 = ReactionNetwork{Complexes => {| 0 0 0 1 0 |, | 1 0 0 0 0 |, | 0 1 0 0 1 |, | 1 0 1 0 0 |, | 0 2 0 0 0 |}}
ConcentrationRates => null
InitialValues => null
NullIndex => -1
NullSymbol =>
ReactionGraph => Digraph{0 => {3, 2}}
1 => {4}
2 => {3}
3 => {0}
4 => {1}
ReactionRates => null
ReactionRing => null
Species => {X_1, X_2, X_3, X_4, X_5}
|
The object reactionNetwork is a method function with options.