Initial conditions

Initial conditions#

1Hz pacing for 1000 seconds

using ProgressLogging
using OrdinaryDiffEq
using ModelingToolkit
using ECMEDox
using ECMEDox: second, mM, Hz, μM, mV
using Plots
using DisplayAs: PNG

tend = 1000.0second
bcl = 1.0second
@named sys = build_model()
u0 = build_u0(sys)
sts = unknowns(sys)
alg = KenCarp47()
@unpack iStim = sys
callback = build_stim_callbacks(iStim, tend; period=bcl)
prob = ODEProblem(sys, u0, tend)
ODEProblem with uType Vector{Float64} and tType Float64. In-place: true
Initialization status: FULLY_DETERMINED
Non-trivial mass matrix: false
timespan: (0.0, 1.0e6)
u0: 64-element Vector{Float64}:
      2.196435053752864
      0.0007273589705197244
      0.000981691808598968
    245.22202099807583
    281.0719264404058
    197.06621753790645
     34.41477140951692
     60.37913837798986
    229.2919970960533
     22.321405235243013
      ⋮
     23.148552252520883
      0.6928662120941113
      0.20648605639609985
   1295.5364065086924
   1299.7940884726063
      0.20381438659933854
 145551.11317854663
  10276.480036234318
    -85.29107641956527
@time sol = solve(prob, alg; reltol=1e-6, abstol=1e-6, progress=true, callback = callback)

for i in sts
    istr = replace(string(i), "(t)" => "")
    println("sys.", istr, " => ", sol[i][end], ",")
end
 20.469907 seconds (8.28 M allocations: 3.680 GiB, 2.61% gc time, 12.24% compilation time)
sys.gssg_i => 0.6266485048629427,
sys.h2o2_i => 0.0002160109305120311,
sys.sox_i => 0.00028193442352659245,
sys.cytc_ox => 190.99032016698382,
sys.cytc1_ox => 243.39273317769164,
sys.fes_ox => 138.12099168741568,
sys.blo_bhr => 25.693323786169316,
sys.blr_bho => 67.38311339022796,
sys.blo_bho => 231.22615960469963,
sys.QH2_p => 0.5304090644069537,
sys.QH2_n => 0.5681269384558159,
sys.Q_n => 1972.1657466314166,
sys.SQn => 54.11028700204462,
sys.SQp => 0.4219759224046464,
sys.N2r_C1 => 16.962752913631025,
sys.oaa => 0.0034565339290617797,
sys.mal => 17.461777311088888,
sys.fum => 30.284280329284,
sys.suc => 0.7824266335897897,
sys.scoa => 70.28220061404784,
sys.akg => 0.4837564931870146,
sys.isoc => 808.1303501210984,
sys.j_na => 0.9785813135724989,
sys.h_na => 0.9700523872313703,
sys.m_na => 0.001453690150356163,
sys.x_k => 0.0028256803347640196,
sys.htr_ca => 137.6817784377457,
sys.ltr_ca => 23.565903213334103,
sys.x_n1 => 0.020515032933281677,
sys.x_p3 => 0.010594532589095668,
sys.x_p2 => 0.01214123098542219,
sys.x_p1 => 0.006469843750282456,
sys.x_p0 => 0.00727590633038226,
sys.crp_ic => 16677.260291033977,
sys.crp_i => 16747.116810150023,
sys.adp_ic => 37.74866681710288,
sys.x_yca => 0.7245412129389334,
sys.cca4_lcc => 9.806251992166545e-23,
sys.cca3_lcc => 3.119442863967385e-17,
sys.cca2_lcc => 3.721178309622979e-12,
sys.cca1_lcc => 1.9728745364249864e-7,
sys.cca0_lcc => 0.00392235910123243,
sys.o_lcc => 1.4711284914459437e-23,
sys.c4_lcc => 9.727492988731676e-23,
sys.c3_lcc => 1.2377050359007134e-16,
sys.c2_lcc => 5.90588827911184e-11,
sys.c1_lcc => 1.2524799881224833e-5,
sys.pc2_ryr => 0.12682911264081026,
sys.po2_ryr => 2.8084081198505617e-9,
sys.po1_ryr => 0.0001725424697079885,
sys.O2 => 5.920152808057068,
sys.sox_m => 0.11424829460620131,
sys.dpsi => 171.47543371889324,
sys.nadh_m => 441.0285389318614,
sys.adp_m => 6.224895463254149,
sys.adp_i => 37.12036497085859,
sys.ca_m => 0.851767834462317,
sys.ca_ss => 0.1979210800388898,
sys.ca_jsr => 1238.368871750374,
sys.ca_nsr => 1242.3601900850263,
sys.ca_i => 0.19518420240776727,
sys.k_i => 144972.33082726505,
sys.na_i => 10213.483972685903,
sys.vm => -85.36727678461618,
plot(sol, idxs=sys.vm, legend=:right, tspan=(900second, 901second)) |> PNG
_images/16a0cc9244a67e6169475a648c935e6f62981d5996510130c3b6169ea530ad24.png

Citric acid cycle metabolites Citrate and isocitrate have the highest concentrations

@unpack cit, isoc, oaa, akg, scoa, suc, fum, mal = sys
plot(sol, idxs=[cit, isoc, oaa, akg, scoa, suc, fum, mal], legend=:right, title="CAC metabolites") |> PNG
_images/0b27d36f8f32f61d4b11aed0b5e373513be9fff0a911693fdd9d07f445da5aa7.png

CAC flux

@unpack vMDH, vAAT, vIDH = sys
plot(sol, idxs=[vMDH, vAAT, vIDH], legend=:right, title="CAC flux") |> PNG
_images/5b99758fd3206f0aab00399efc43862fcbcdac1dc08bef52d265fba61d5223d1.png

Q cycle

@unpack Q_n, SQn, QH2_n, QH2_p, Q_p, SQp, fes_ox, fes_rd, cytc_ox, cytc_rd = sys
plot(sol, idxs=[Q_n + Q_p, SQn, QH2_n + QH2_p, SQp], title="Q cycle", legend=:left, xlabel="Time (ms)", ylabel="Conc. (μM)") |> PNG
_images/bf788fd8415c6435861746cc6294ca17b22b80c2350391a8f0aed377cece0bc8.png

Q cycle downstream

plot(sol, idxs=[fes_ox, fes_rd, cytc_ox, cytc_rd], title="Q cycle (downstream)", legend=:left, xlabel="Time (ms)", ylabel="Conc. (μM)") |> PNG
_images/c9f1c985ebd3eb2911312e1459357c35e8fe431784aa17a93d68c54b6528e11e.png
plot(sol, idxs = [sys.vHresC1, sys.vHresC3, sys.vHresC4], ylims=(0, 3)) |> PNG
_images/8db8f968b29f140108536e202367e9312b584761af03b8ff39b2ec3e9e122c7e.png
plot(sol, idxs = [sys.sox_i, sys.sox_m], tspan=(900e3, 910e3)) |> PNG
_images/d72ae9cdaace7bbf757523bc13bf88a846d841f51226b6ca6dc55a4a227816ae.png

ROS

plot(sol, idxs = [sys.vROSIf, sys.vROSIq, sys.vROSC1, sys.vROSC3], tspan=(900e3, 910e3)) |> PNG
_images/ef2eae03309730e428ae48195e70be75c2d0f18343de57a2992dc9464e1b9736.png

O2 Shunt

plot(sol, idxs=100 * sys.vROS / (sys.vO2 + sys.vROS), title="O2 Shunt", tspan=(900e3, 910e3)) |> PNG
_images/28028472e71c0cf7a94c7f5990406acfc696fb27f69f65d44f4b9f4b1e9732c9.png

MMP

plot(sol, idxs = [sys.dpsi], tspan=(900e3, 910e3)) |> PNG
_images/dfb166275ff075f943ca66d9079265b40dc1b213c7b4038a27170fde58cfdaa8.png

ATP synthesis rate

plot(sol, idxs = [sys.vC5], tspan=(900e3, 910e3)) |> PNG
_images/fac5711a6dea87899b4989228853a54296dbba36038d3d9ac587bd4d0acb4821.png

This notebook was generated using Literate.jl.