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
 33.774092 seconds (17.55 M allocations: 969.823 MiB, 1.50% gc time, 25.72% compilation time)
sys.gssg_i => 0.6266485048275071,
sys.h2o2_i => 0.00021601093049525123,
sys.sox_i => 0.00028193442350450584,
sys.cytc_ox => 190.9903201686805,
sys.cytc1_ox => 243.39273317895325,
sys.fes_ox => 138.1209916884662,
sys.blo_bhr => 25.69332378721287,
sys.blr_bho => 67.38311339081238,
sys.blo_bho => 231.22615960303426,
sys.QH2_p => 0.530409064403493,
sys.QH2_n => 0.568126938455307,
sys.Q_n => 1972.1657466307868,
sys.SQn => 54.11028700330599,
sys.SQp => 0.4219759224039639,
sys.N2r_C1 => 16.962752913626485,
sys.oaa => 0.0034565339292543375,
sys.mal => 17.46177730957997,
sys.fum => 30.28428032846593,
sys.suc => 0.7824266336379635,
sys.scoa => 70.28220060253133,
sys.akg => 0.483756492978476,
sys.isoc => 808.1303501304549,
sys.j_na => 0.9785813134557223,
sys.h_na => 0.9700523870235357,
sys.m_na => 0.0014536901576709923,
sys.x_k => 0.002825680345259897,
sys.htr_ca => 137.68177843818987,
sys.ltr_ca => 23.565903216891847,
sys.x_n1 => 0.020515032950018264,
sys.x_p3 => 0.010594532597918219,
sys.x_p2 => 0.012141230995523885,
sys.x_p1 => 0.0064698437556523014,
sys.x_p0 => 0.00727590633630333,
sys.crp_ic => 16677.260290265833,
sys.crp_i => 16747.116809365325,
sys.adp_ic => 37.748666822300905,
sys.x_yca => 0.7245412128492645,
sys.cca4_lcc => 9.806252163775228e-23,
sys.cca3_lcc => 3.119442914709192e-17,
sys.cca2_lcc => 3.72117835025185e-12,
sys.cca1_lcc => 1.9728745474243374e-7,
sys.cca0_lcc => 0.003922359102155739,
sys.o_lcc => 1.4411487478248164e-23,
sys.c4_lcc => 9.726953877075017e-23,
sys.c3_lcc => 1.2377050556458878e-16,
sys.c2_lcc => 5.905888342168872e-11,
sys.c1_lcc => 1.252479994808198e-5,
sys.pc2_ryr => 0.12682911261082286,
sys.po2_ryr => 2.80840812120647e-9,
sys.po1_ryr => 0.00017254246969060553,
sys.O2 => 5.92015280805098,
sys.sox_m => 0.11424829460595995,
sys.dpsi => 171.47543371718447,
sys.nadh_m => 441.02853883784786,
sys.adp_m => 6.224895464638173,
sys.adp_i => 37.120364976127334,
sys.ca_m => 0.8517678350226103,
sys.ca_ss => 0.1979210800774621,
sys.ca_jsr => 1238.3688720650182,
sys.ca_nsr => 1242.3601904012212,
sys.ca_i => 0.19518420244591997,
sys.k_i => 144972.3306562517,
sys.na_i => 10213.483968167471,
sys.vm => -85.36727675443937,
plot(sol, idxs=sys.vm, legend=:right, tspan=(900second, 901second)) |> PNG
_images/1a71f97359b16dc99f3c42cecdc2d3e32267fd4b33a9d1924bd7bf93d2e696f1.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/90d15a300041d3dd5a061793511091d6f55add236a49eb24262f361341d0d8ef.png

CAC flux

@unpack vMDH, vAAT, vIDH = sys
plot(sol, idxs=[vMDH, vAAT, vIDH], legend=:right, title="CAC flux") |> PNG
_images/682410e1150eea33e13e1e2082b7c4bd519d2c2993168a2af31f4730a98f56ab.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/e26621b1da7a89c1b3d05bc3775a8bc15d3eff2cc8bb81b5e903002d90919a9d.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/d9aace9dabb2fbf716e77e483ec4ce8e503c5c7cde4c964f36f49ce593f83357.png
plot(sol, idxs = [sys.vHresC1, sys.vHresC3, sys.vHresC4], ylims=(0, 3)) |> PNG
_images/4e6e55365eef98ee735ba2b3c0e389b5bfef3e1349b4286b77f3b54c90bae737.png
plot(sol, idxs = [sys.sox_i, sys.sox_m], tspan=(900e3, 910e3)) |> PNG
_images/972cd336d0447800998fe6abfa9b0ee8acf0bc4634a4642b5ef0293027c916f8.png

ROS

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

O2 Shunt

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

MMP

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

ATP synthesis rate

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

This notebook was generated using Literate.jl.