Enzyme steady-state flux#

Quasi-steady state solutions of enzyme states from transition rates.

using Symbolics
using Groebner

SOD model#

Based on the McAdam, 1977 model

@variables k1 k3 k5 EA EB EC sox

eqs = let
    vAB = k1 * sox * EA - k1 * sox * EB
    vBC = k3 * sox * EB
    vCA = k5 * EC
    dA = -vAB + vCA
    dB = vAB - vBC
    [dA, dB, EA + EB + EC - 1]
end

@time sol = Symbolics.symbolic_solve(eqs, [EA, EB, EC])[1]
 16.498778 seconds (57.58 M allocations: 2.830 GiB, 3.78% gc time, 99.59% compilation time: 3% of which was recompilation)
Dict{Symbolics.Num, Any} with 3 entries:
  EA => (k1*k5 + k3*k5) / (2k1*k5 + k3*k5 + k1*k3*sox)
  EB => (k1*k5) / (2k1*k5 + k3*k5 + k1*k3*sox)
  EC => (k1*k3*sox) / (2k1*k5 + k3*k5 + k1*k3*sox)

Superoxide consumption rate

vSOD = sox * (k1 * (sol[EA] + sol[EB]) + k3 * sol[EB])

simplify(vSOD)
\[ \begin{equation} \frac{\left( 2 \mathtt{k1}^{2} \mathtt{k5} + 2 \mathtt{k1} \mathtt{k3} \mathtt{k5} \right) \mathtt{sox}}{2 \mathtt{k1} \mathtt{k5} + \mathtt{k3} \mathtt{k5} + \mathtt{k1} \mathtt{k3} \mathtt{sox}} \end{equation} \]

Complex I Gauthier model#

@variables a12 a21 a65 a56 a61 a16 a23 a32 a34 a43 a47 a74 a57 a75 a42 a24
@variables I1 I2 I3 I4 I5 I6 I7

eqs = let
    v12 = I1 * a12 - I2 * a21
    v23 = I2 * a23 - I3 * a32
    v34 = I3 * a34 - I4 * a43
    v47 = I4 * a47 - I7 * a74
    v75 = I7 * a75 - I5 * a57
    v56 = I5 * a56 - I6 * a65
    v61 = I6 * a61 - I1 * a16
    v42 = I4 * a42 - I2 * a24
    d1 = -v12 + v61
    d2 = v12 - v23 + v42
    d3 = v23 - v34
    d4 = v34 - v47 - v42
    d5 = v75 - v56
    d6 = v56 - v61
    d7 = v47 - v75
    @assert isequal(d1 + d2 + d3 + d4 + d5 + d6 + d7, 0)
    [d1, d2, d3, d4, d5, d6, I1 + I2 + I3 + I4 + I5 + I6 + I7 - 1]
end

@time sol = Symbolics.symbolic_solve(eqs, [I1, I2, I3, I4, I5, I6, I7])[1]
 18.017649 seconds (389.52 M allocations: 13.303 GiB, 8.55% gc time, 11.72% compilation time)
Dict{Symbolics.Num, Any} with 7 entries:
  I4 => (a12*a23*a34*a56*a61*a74 + a12*a23*a34*a56*a61*a75 + a12*a23*a34*a57*a6…
  I1 => (a21*a32*a42*a56*a61*a74 + a21*a32*a42*a56*a61*a75 + a21*a32*a42*a57*a6…
  I6 => (a12*a23*a34*a47*a56*a75 + a12*a24*a32*a47*a56*a75 + a12*a24*a34*a47*a5…
  I3 => (a12*a23*a42*a56*a61*a74 + a12*a23*a42*a56*a61*a75 + a12*a23*a42*a57*a6…
  I5 => (a12*a23*a34*a47*a61*a75 + a12*a23*a34*a47*a65*a75 + a12*a24*a32*a47*a6…
  I7 => (a12*a23*a34*a47*a56*a61 + a12*a23*a34*a47*a57*a61 + a12*a23*a34*a47*a5…
  I2 => (a12*a32*a42*a56*a61*a74 + a12*a32*a42*a56*a61*a75 + a12*a32*a42*a57*a6…

Weights of all 7 states

for k in (I1, I2, I3, I4, I5, I6, I7)
    println(k, " = ", numerator(sol[k]))
end
I1 = a21*a32*a42*a56*a61*a74 + a21*a32*a42*a56*a61*a75 + a21*a32*a42*a57*a61*a74 + a21*a32*a42*a57*a65*a74 + a21*a32*a43*a56*a61*a74 + a21*a32*a43*a56*a61*a75 + a21*a32*a43*a57*a61*a74 + a21*a32*a43*a57*a65*a74 + a21*a32*a47*a56*a61*a75 + a21*a34*a42*a56*a61*a74 + a21*a34*a42*a56*a61*a75 + a21*a34*a42*a57*a61*a74 + a21*a34*a42*a57*a65*a74 + a21*a34*a47*a56*a61*a75 + a23*a34*a47*a56*a61*a75 + a24*a32*a47*a56*a61*a75 + a24*a34*a47*a56*a61*a75
I2 = a12*a32*a42*a56*a61*a74 + a12*a32*a42*a56*a61*a75 + a12*a32*a42*a57*a61*a74 + a12*a32*a42*a57*a65*a74 + a12*a32*a43*a56*a61*a74 + a12*a32*a43*a56*a61*a75 + a12*a32*a43*a57*a61*a74 + a12*a32*a43*a57*a65*a74 + a12*a32*a47*a56*a61*a75 + a12*a34*a42*a56*a61*a74 + a12*a34*a42*a56*a61*a75 + a12*a34*a42*a57*a61*a74 + a12*a34*a42*a57*a65*a74 + a12*a34*a47*a56*a61*a75 + a16*a32*a42*a57*a65*a74 + a16*a32*a43*a57*a65*a74 + a16*a34*a42*a57*a65*a74
I3 = a12*a23*a42*a56*a61*a74 + a12*a23*a42*a56*a61*a75 + a12*a23*a42*a57*a61*a74 + a12*a23*a42*a57*a65*a74 + a12*a23*a43*a56*a61*a74 + a12*a23*a43*a56*a61*a75 + a12*a23*a43*a57*a61*a74 + a12*a23*a43*a57*a65*a74 + a12*a23*a47*a56*a61*a75 + a12*a24*a43*a56*a61*a74 + a12*a24*a43*a56*a61*a75 + a12*a24*a43*a57*a61*a74 + a12*a24*a43*a57*a65*a74 + a16*a21*a43*a57*a65*a74 + a16*a23*a42*a57*a65*a74 + a16*a23*a43*a57*a65*a74 + a16*a24*a43*a57*a65*a74
I4 = a12*a23*a34*a56*a61*a74 + a12*a23*a34*a56*a61*a75 + a12*a23*a34*a57*a61*a74 + a12*a23*a34*a57*a65*a74 + a12*a24*a32*a56*a61*a74 + a12*a24*a32*a56*a61*a75 + a12*a24*a32*a57*a61*a74 + a12*a24*a32*a57*a65*a74 + a12*a24*a34*a56*a61*a74 + a12*a24*a34*a56*a61*a75 + a12*a24*a34*a57*a61*a74 + a12*a24*a34*a57*a65*a74 + a16*a21*a32*a57*a65*a74 + a16*a21*a34*a57*a65*a74 + a16*a23*a34*a57*a65*a74 + a16*a24*a32*a57*a65*a74 + a16*a24*a34*a57*a65*a74
I5 = a12*a23*a34*a47*a61*a75 + a12*a23*a34*a47*a65*a75 + a12*a24*a32*a47*a61*a75 + a12*a24*a32*a47*a65*a75 + a12*a24*a34*a47*a61*a75 + a12*a24*a34*a47*a65*a75 + a16*a21*a32*a42*a65*a74 + a16*a21*a32*a42*a65*a75 + a16*a21*a32*a43*a65*a74 + a16*a21*a32*a43*a65*a75 + a16*a21*a32*a47*a65*a75 + a16*a21*a34*a42*a65*a74 + a16*a21*a34*a42*a65*a75 + a16*a21*a34*a47*a65*a75 + a16*a23*a34*a47*a65*a75 + a16*a24*a32*a47*a65*a75 + a16*a24*a34*a47*a65*a75
I6 = a12*a23*a34*a47*a56*a75 + a12*a24*a32*a47*a56*a75 + a12*a24*a34*a47*a56*a75 + a16*a21*a32*a42*a56*a74 + a16*a21*a32*a42*a56*a75 + a16*a21*a32*a42*a57*a74 + a16*a21*a32*a43*a56*a74 + a16*a21*a32*a43*a56*a75 + a16*a21*a32*a43*a57*a74 + a16*a21*a32*a47*a56*a75 + a16*a21*a34*a42*a56*a74 + a16*a21*a34*a42*a56*a75 + a16*a21*a34*a42*a57*a74 + a16*a21*a34*a47*a56*a75 + a16*a23*a34*a47*a56*a75 + a16*a24*a32*a47*a56*a75 + a16*a24*a34*a47*a56*a75
I7 = a12*a23*a34*a47*a56*a61 + a12*a23*a34*a47*a57*a61 + a12*a23*a34*a47*a57*a65 + a12*a24*a32*a47*a56*a61 + a12*a24*a32*a47*a57*a61 + a12*a24*a32*a47*a57*a65 + a12*a24*a34*a47*a56*a61 + a12*a24*a34*a47*a57*a61 + a12*a24*a34*a47*a57*a65 + a16*a21*a32*a42*a57*a65 + a16*a21*a32*a43*a57*a65 + a16*a21*a32*a47*a57*a65 + a16*a21*a34*a42*a57*a65 + a16*a21*a34*a47*a57*a65 + a16*a23*a34*a47*a57*a65 + a16*a24*a32*a47*a57*a65 + a16*a24*a34*a47*a57*a65

Complex I simplified Markevich model#

@variables b12 b21 b23 b32 b34 b43 b41 b14
@variables C1 C1_Q C1_SQ C1_QH2

eqs = let
    v12 = C1 * b12 - C1_Q * b21
    v23 = C1_Q * b23 - C1_SQ * b32
    v34 = C1_SQ * b34 - C1_QH2 * b43
    v41 = C1_QH2 * b41 - C1 * b14

    d1 = -v12 + v41
    d2 = v12 - v23
    d3 = v23 - v34
    d4 = v34 - v41

    @assert isequal(sum([d1, d2, d3, d4]), 0)

    [d1, d2, d3, d4, sum([C1, C1_Q, C1_SQ, C1_QH2]) - 1]
end

@time sol = Symbolics.symbolic_solve(eqs, [C1, C1_Q, C1_SQ, C1_QH2])[1]
  0.800344 seconds (4.87 M allocations: 209.721 MiB, 3.24% gc time, 77.64% compilation time)
Dict{Symbolics.Num, Any} with 4 entries:
  C1_QH2 => (b12*b23*b34 + b14*b21*b32 + b14*b21*b34 + b14*b23*b34) / (b12*b23*…
  C1_SQ  => (b12*b23*b41 + b12*b23*b43 + b14*b21*b43 + b14*b23*b43) / (b12*b23*…
  C1_Q   => (b12*b32*b41 + b12*b32*b43 + b12*b34*b41 + b14*b32*b43) / (b12*b23*…
  C1     => (b21*b32*b41 + b21*b32*b43 + b21*b34*b41 + b23*b34*b41) / (b12*b23*…

Weights of all 7 states

for k in [C1, C1_Q, C1_SQ, C1_QH2]
    println(k, " = ", numerator(sol[k]))
end
C1 = b21*b32*b41 + b21*b32*b43 + b21*b34*b41 + b23*b34*b41
C1_Q = b12*b32*b41 + b12*b32*b43 + b12*b34*b41 + b14*b32*b43
C1_SQ = b12*b23*b41 + b12*b23*b43 + b14*b21*b43 + b14*b23*b43
C1_QH2 = b12*b23*b34 + b14*b21*b32 + b14*b21*b34 + b14*b23*b34

This notebook was generated using Literate.jl.