Derived Markov chains#

%%capture
%run receptor_tools_cycle_fluxes.ipynb

Example 1 - Cycle fluxes in the graph C3#

dG = dG_c3
G, Vg = graph_and_edge_ring_from_dict(dG)
nvG, neG, betaG, Tg, TG, cycleG_p, cycleG_m, cycleG_2, cycleG, Jg, dict_vG, inverted_dict_vG, d_cycleG, inverted_d_cycleG =  cycle_flux_analysis(G,str='G')

_images/815defd43bce0880c195e2f815dfb086f9099635344a5946cbab10c20fabe924.png
[-C - a      a      C]
[     A -b - A      b]
[     c      B -B - c]

For root/cycle [0] : A*B + b*c + A*c 

For root/cycle [1] : C*B + a*B + a*c 

For root/cycle [2] : C*b + a*b + C*A 

G cycles p: [(0, 1, 2, 0)] 

G cycles m: [(0, 2, 1, 0)] 

G cycles 2: [(0, 1, 0), (0, 2, 0), (1, 2, 1)] 


G cycle flux 0 : a * b * c

G cycle flux 1 : C * A * B

G cycle flux 2 : a * A * (B + c)

G cycle flux 3 : C * (b + A) * c

G cycle flux 4 : (C + a) * b * B
DerG = derived_graph(G)
DerG.show(edge_labels=True,figsize=8,graph_border=True,title='DerG')
_images/d1b3904e2b49ed9291f769a87cbbc0b10ec00ece387211ffc5406b5fda07255b.png
dict_Jg = cycle_fluxes_from_derived_graph(DerG,verbose=True)
rooted spanning tree of derived graph T(0,0) = (A*B + b*c + A*c) * (A*B + C*B + a*B + b*c + A*c + a*c + C*b + a*b + C*A) 

J (0, 1, 0) = a * A * (B + c) * (A*B + b*c + A*c) 

J (0, 1, 2, 0) = a * b * c * (A*B + b*c + A*c) 

J (1, 2, 1) = a * b * B * (A*B + b*c + A*c) 

J (0, 2, 0) = C * (b + A) * c * (A*B + b*c + A*c) 

J (0, 2, 1, 0) = C * A * B * (A*B + b*c + A*c) 

J (2, 1, 2) = C * b * B * (A*B + b*c + A*c) 

Example 2 - Cycle fluxes in the House graph#

G, Vg = graph_and_edge_ring_from_dict(dG_house)
nvG, neG, betaG, Tg, TG, cycleG_p, cycleG_m, cycleG_2, cycleG, Jg, dict_vG, inverted_dict_vG, d_cycleG, inverted_d_cycleG =  cycle_flux_analysis(G,str='G')

_images/0b7866f0b9dd1e0d81a90a2b8a265924ad5a9c651b3b4fe5e20625e9e31c3079.png
[-f - c - a          a          c          0          f]
[         A     -b - A          b          0          0]
[         C          B -d - B - C          d          0]
[         0          0          D     -e - D          e]
[         F          0          0          E     -E - F]

For root/cycle [0] : A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F 

For root/cycle [1] : f*B*D*E + c*B*D*E + a*B*D*E + a*C*D*E + a*d*e*F + c*B*e*F + a*B*e*F + a*C*e*F + c*B*D*F + a*B*D*F + a*C*D*F 

For root/cycle [2] : f*b*D*E + c*b*D*E + a*b*D*E + f*A*D*E + c*A*D*E + c*b*e*F + a*b*e*F + c*A*e*F + c*b*D*F + a*b*D*F + c*A*D*F 

For root/cycle [3] : f*b*d*E + c*b*d*E + a*b*d*E + f*A*d*E + c*A*d*E + f*A*B*E + f*b*C*E + f*A*C*E + c*b*d*F + a*b*d*F + c*A*d*F 

For root/cycle [4] : f*b*d*e + c*b*d*e + a*b*d*e + f*A*d*e + c*A*d*e + f*A*B*e + f*b*C*e + f*A*C*e + f*A*B*D + f*b*C*D + f*A*C*D 

G cycles p: [(0, 1, 2, 0), (0, 2, 3, 4, 0), (0, 1, 2, 3, 4, 0)] 

G cycles m: [(0, 2, 1, 0), (0, 4, 3, 2, 0), (0, 4, 3, 2, 1, 0)] 

G cycles 2: [(0, 1, 0), (0, 2, 0), (0, 4, 0), (1, 2, 1), (2, 3, 2), (3, 4, 3)] 


G cycle flux 0 : a * b * C * (D*E + e*F + D*F)

G cycle flux 1 : c * (b + A) * d * e * F

G cycle flux 2 : a * b * d * e * F

G cycle flux 3 : c * A * B * (D*E + e*F + D*F)

G cycle flux 4 : f * (b + A) * C * D * E

G cycle flux 5 : f * A * B * D * E

G cycle flux 6 : a * A * (B*D*E + C*D*E + d*e*F + B*e*F + C*e*F + B*D*F + C*D*F)

G cycle flux 7 : c * (b + A) * C * (D*E + e*F + D*F)

G cycle flux 8 : f * F * (b*d*e + A*d*e + A*B*e + b*C*e + A*C*e + A*B*D + b*C*D + A*C*D)

G cycle flux 9 : b * B * (f*D*E + c*D*E + a*D*E + c*e*F + a*e*F + c*D*F + a*D*F)

G cycle flux 10 : d * D * (f*b*E + c*b*E + a*b*E + f*A*E + c*A*E + c*b*F + a*b*F + c*A*F)

G cycle flux 11 : e * E * (f*b*d + c*b*d + a*b*d + f*A*d + c*A*d + f*A*B + f*b*C + f*A*C)
DerG = derived_graph(G)
DerG.show(edge_labels=True,figsize=8,graph_border=True,title='DerG')
_images/83c4c2141cd1114a705db63004dbb220236ca3510cc071613cbcbfbdc5fa359a.png
dict_Jg = cycle_fluxes_from_derived_graph(DerG,verbose=True)
rooted spanning tree of derived graph T(0,0) = (A*B*D*E + f*B*D*E + c*B*D*E + a*B*D*E + b*C*D*E + A*C*D*E + a*C*D*E + f*b*D*E + c*b*D*E + a*b*D*E + f*A*D*E + c*A*D*E + f*b*d*E + c*b*d*E + a*b*d*E + f*A*d*E + c*A*d*E + f*A*B*E + f*b*C*E + f*A*C*E + b*d*e*F + A*d*e*F + a*d*e*F + A*B*e*F + c*B*e*F + a*B*e*F + b*C*e*F + A*C*e*F + a*C*e*F + c*b*e*F + a*b*e*F + c*A*e*F + A*B*D*F + c*B*D*F + a*B*D*F + b*C*D*F + A*C*D*F + a*C*D*F + c*b*D*F + a*b*D*F + c*A*D*F + c*b*d*F + a*b*d*F + c*A*d*F + f*b*d*e + c*b*d*e + a*b*d*e + f*A*d*e + c*A*d*e + f*A*B*e + f*b*C*e + f*A*C*e + f*A*B*D + f*b*C*D + f*A*C*D) * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (0, 1, 0) = a * A * (B*D*E + C*D*E + d*e*F + B*e*F + C*e*F + B*D*F + C*D*F) * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (0, 1, 2, 0) = a * b * C * (D*E + e*F + D*F) * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (1, 2, 1) = a * b * B * (D*E + e*F + D*F) * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (2, 3, 2) = a * b * d * D * (E + F) * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (0, 1, 2, 3, 4, 0) = a * b * d * e * F * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (3, 4, 3) = a * b * d * e * E * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (0, 2, 0) = c * (b + A) * C * (D*E + e*F + D*F) * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (0, 2, 1, 0) = c * A * B * (D*E + e*F + D*F) * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (2, 1, 2) = c * b * B * (D*E + e*F + D*F) * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (2, 3, 2) = c * (b + A) * d * D * (E + F) * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (0, 2, 3, 4, 0) = c * (b + A) * d * e * F * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (3, 4, 3) = c * (b + A) * d * e * E * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (0, 4, 0) = f * F * (b*d*e + A*d*e + A*B*e + b*C*e + A*C*e + A*B*D + b*C*D + A*C*D) * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (4, 3, 4) = f * e * E * (b*d + A*d + A*B + b*C + A*C) * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (0, 4, 3, 2, 0) = f * (b + A) * C * D * E * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (3, 2, 3) = f * (b + A) * d * D * E * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (0, 4, 3, 2, 1, 0) = f * A * B * D * E * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2 

J (2, 1, 2) = f * b * B * D * E * (A*B*D*E + b*C*D*E + A*C*D*E + b*d*e*F + A*d*e*F + A*B*e*F + b*C*e*F + A*C*e*F + A*B*D*F + b*C*D*F + A*C*D*F)^2