Caffeine Effects#
Caffeine increase RyR opening sensitivity to luminal and subspace calcium In this model, we decrease the mid saturation sub-SR calcium concentration for the opening rate
using ModelingToolkit
using OrdinaryDiffEq, SteadyStateDiffEq, DiffEqCallbacks
using Plots
using CSV
using DataFrames
using Dates
using CaMKIIModel
using CaMKIIModel: second
Plots.default(lw=1.5)
sys = build_neonatal_ecc_sys(simplify=true, reduce_iso=true, reduce_camk=true)
tend = 500second
prob = ODEProblem(sys, [], tend)
stimstart = 100second
stimend = 300second
alg = KenCarp47()
function add_coffee_affect!(integrator)
integrator.ps[sys.RyRsensitivity] = 10
end
@unpack Istim = sys
callback = build_stim_callbacks(Istim, stimend; period=1second, starttime=stimstart)
SciMLBase.CallbackSet{Tuple{}, Tuple{SciMLBase.DiscreteCallback{DiffEqCallbacks.var"#111#113"{StepRange{Int64, Int64}}, CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}, DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, StepRange{Int64, Int64}, CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}}, typeof(SciMLBase.FINALIZE_DEFAULT), Nothing}, SciMLBase.DiscreteCallback{DiffEqCallbacks.var"#111#113"{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}, CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}, DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}}, typeof(SciMLBase.FINALIZE_DEFAULT), Nothing}}}((), (SciMLBase.DiscreteCallback{DiffEqCallbacks.var"#111#113"{StepRange{Int64, Int64}}, CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}, DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, StepRange{Int64, Int64}, CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}}, typeof(SciMLBase.FINALIZE_DEFAULT), Nothing}(DiffEqCallbacks.var"#111#113"{StepRange{Int64, Int64}}(100000:1000:300000), CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}(-80.0, 1, Istim), DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, StepRange{Int64, Int64}, CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}}(SciMLBase.INITIALIZE_DEFAULT, true, 100000:1000:300000, CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}(-80.0, 1, Istim)), SciMLBase.FINALIZE_DEFAULT, Bool[1, 1], nothing), SciMLBase.DiscreteCallback{DiffEqCallbacks.var"#111#113"{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}, CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}, DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}}, typeof(SciMLBase.FINALIZE_DEFAULT), Nothing}(DiffEqCallbacks.var"#111#113"{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}(100000.5:1000.0:300000.5), CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}(0.0, 1, Istim), DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}}(SciMLBase.INITIALIZE_DEFAULT, true, 100000.5:1000.0:300000.5, CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}(0.0, 1, Istim)), SciMLBase.FINALIZE_DEFAULT, Bool[1, 1], nothing)))
Add caffeine at t = 200 econd
callback_caf = CallbackSet(build_stim_callbacks(Istim, stimend; period=1second, starttime=stimstart), PresetTimeCallback(200.0second, add_coffee_affect!))
SciMLBase.CallbackSet{Tuple{}, Tuple{SciMLBase.DiscreteCallback{DiffEqCallbacks.var"#111#113"{StepRange{Int64, Int64}}, CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}, DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, StepRange{Int64, Int64}, CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}}, typeof(SciMLBase.FINALIZE_DEFAULT), Nothing}, SciMLBase.DiscreteCallback{DiffEqCallbacks.var"#111#113"{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}, CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}, DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}}, typeof(SciMLBase.FINALIZE_DEFAULT), Nothing}, SciMLBase.DiscreteCallback{DiffEqCallbacks.var"#111#113"{Vector{Float64}}, typeof(Main.var"##237".add_coffee_affect!), DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, Vector{Float64}, typeof(Main.var"##237".add_coffee_affect!)}, typeof(SciMLBase.FINALIZE_DEFAULT), Nothing}}}((), (SciMLBase.DiscreteCallback{DiffEqCallbacks.var"#111#113"{StepRange{Int64, Int64}}, CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}, DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, StepRange{Int64, Int64}, CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}}, typeof(SciMLBase.FINALIZE_DEFAULT), Nothing}(DiffEqCallbacks.var"#111#113"{StepRange{Int64, Int64}}(100000:1000:300000), CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}(-80.0, 1, Istim), DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, StepRange{Int64, Int64}, CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}}(SciMLBase.INITIALIZE_DEFAULT, true, 100000:1000:300000, CaMKIIModel.var"#13#15"{Float64, Int64, Symbolics.Num}(-80.0, 1, Istim)), SciMLBase.FINALIZE_DEFAULT, Bool[1, 1], nothing), SciMLBase.DiscreteCallback{DiffEqCallbacks.var"#111#113"{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}, CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}, DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}}, typeof(SciMLBase.FINALIZE_DEFAULT), Nothing}(DiffEqCallbacks.var"#111#113"{StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}(100000.5:1000.0:300000.5), CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}(0.0, 1, Istim), DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}}(SciMLBase.INITIALIZE_DEFAULT, true, 100000.5:1000.0:300000.5, CaMKIIModel.var"#14#16"{Float64, Int64, Symbolics.Num}(0.0, 1, Istim)), SciMLBase.FINALIZE_DEFAULT, Bool[1, 1], nothing), SciMLBase.DiscreteCallback{DiffEqCallbacks.var"#111#113"{Vector{Float64}}, typeof(Main.var"##237".add_coffee_affect!), DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, Vector{Float64}, typeof(Main.var"##237".add_coffee_affect!)}, typeof(SciMLBase.FINALIZE_DEFAULT), Nothing}(DiffEqCallbacks.var"#111#113"{Vector{Float64}}([200000.0]), Main.var"##237".add_coffee_affect!, DiffEqCallbacks.var"#112#114"{typeof(SciMLBase.INITIALIZE_DEFAULT), Bool, Vector{Float64}, typeof(Main.var"##237".add_coffee_affect!)}(SciMLBase.INITIALIZE_DEFAULT, true, [200000.0], Main.var"##237".add_coffee_affect!), SciMLBase.FINALIZE_DEFAULT, Bool[1, 1], nothing)))
@time sol = solve(prob, alg; callback)
@time sol_caf = solve(prob, alg; callback=callback_caf)
2.577012 seconds (134.33 k allocations: 455.922 MiB, 18.85% gc time)
4.511306 seconds (4.33 M allocations: 704.886 MiB, 2.43% gc time, 51.18% compilation time)
retcode: Success
Interpolation: 3rd order Hermite
t: 8895-element Vector{Float64}:
0.0
0.019333123284849308
0.09098129546757994
0.20735582943983855
0.45611910276862533
1.0472562928406122
2.0342667657223696
3.451776641148454
6.733792423912806
12.450117081023194
⋮
404642.83277566
414876.9573868354
425667.5596113841
437210.4237575505
449697.91725670267
462185.41075585486
477837.27038342203
495715.4103120649
500000.0
u: 8895-element Vector{Vector{Float64}}:
[0.0026, 830.0, 830.0, 0.00702, 0.966, 0.22156, 0.09243, 0.00188, 0.00977, 0.26081 … 0.12113, 0.12113, 0.12113, 0.12113, 0.12113, 0.12113, 0.12113, -68.79268, 13838.37602, 150952.75035000002]
[0.0025985659590295374, 829.9994975880693, 829.9999654017583, 0.007020208561323646, 0.9660018276402699, 0.2215639938807744, 0.09242766669618695, 0.001879826176081169, 0.009769882842069916, 0.2608055799112056 … 0.12113000000000405, 0.12113000000038378, 0.12113000001389383, 0.12113000037367234, 0.12113000811850358, 0.1211301421535992, 0.1211319185255175, -68.79732946186226, 13838.375711519551, 150952.7504077194]
[0.002593310524681686, 829.9976422525165, 829.9998348635061, 0.00702008986027517, 0.9660085993318799, 0.2215787945110049, 0.09241901973901424, 0.0018789042446514422, 0.009769459049732313, 0.26078941009382306 … 0.12113000089551408, 0.12113000693481112, 0.12113004704056851, 0.12113027926811751, 0.12113143375871602, 0.12113624253259858, 0.12115248970210647, -68.81607005265552, 13838.374513299192, 150952.75062244057]
[0.0025849478335103777, 829.9946506157202, 829.9996133960318, 0.007017234889558555, 0.9660195931792828, 0.22160283236040595, 0.09240497563401104, 0.0018766436937193197, 0.009768805322556195, 0.2607638707001999 … 0.12113010483012127, 0.12113038966346883, 0.12113131833063846, 0.12113403405679991, 0.12114109135582982, 0.12115723910142134, 0.12118951551963696, -68.84681913285226, 13838.372555328333, 150952.7509740238]
[0.00256770780104998, 829.9883445519497, 829.9990964774663, 0.0070030143052343926, 0.9660430731013478, 0.2216542075240971, 0.0923749578279845, 0.0018699196262940568, 0.00976754294689657, 0.2607122383588733 … 0.12113292110288301, 0.12113633873395535, 0.12114295934422187, 0.12115494411090462, 0.12117519662647316, 0.12120713813483534, 0.12125418995384041, -68.91207316777846, 13838.368384399068, 150952.7517373371]
[0.0025298083713907005, 829.9738229154025, 829.9976227528975, 0.006946470397388757, 0.9660987611411453, 0.22177624785138977, 0.09230364339951613, 0.001850533769446942, 0.009765228548607825, 0.26060507831375035 … 0.12115849269665879, 0.1211733598588045, 0.12119414515426227, 0.12122229800810434, 0.12125925929399752, 0.1213063255235844, 0.12136450208851983, -69.06429960994137, 13838.358559292059, 150952.75361533565]
[0.0024748079782158975, 829.9509077855928, 829.9944193668179, 0.0068337541728754475, 0.9661914345949096, 0.2219798989175973, 0.09218462776986637, 0.0018178174419014683, 0.009763403076884485, 0.26047114911179464 … 0.12122454121844703, 0.12125242557826561, 0.12128628091507473, 0.12132672249013034, 0.12137426379919634, 0.12142927821043337, 0.12149196513254239, -69.31024285744343, 13838.34240329337, 150952.75694915713]
[0.0024106893964811337, 829.9205247545176, 829.9883533251192, 0.006675512062656749, 0.9663239343003682, 0.22227216398019892, 0.09201383579531924, 0.001773815690753224, 0.009765046552800477, 0.2603648729749554 … 0.12132150441596078, 0.12135855488207913, 0.12140052118634269, 0.12144759471003595, 0.121499889830345, 0.12155743299711905, 0.12162015426876957, -69.64637448767432, 13838.319723120678, 150952.76215620188]
[0.0023106557277343394, 829.8589858006806, 829.9689941817725, 0.006355039713677859, 0.9666286957812559, 0.22294828828976576, 0.09161908329520764, 0.0016855899094922325, 0.009786689200123853, 0.26041507667541997 … 0.12150439833798571, 0.12154722283384205, 0.12159304920072048, 0.1216418099553358, 0.12169340184085986, 0.12174768443532376, 0.12180447948880598, -70.35063788657428, 13838.2694938995, 150952.77598869594]
[0.002228995040224517, 829.7704141396295, 829.923524981244, 0.005926150085676071, 0.9671554512230358, 0.22412560303273427, 0.09093422465365385, 0.0015688568862426045, 0.009873892913308327, 0.26104417804603025 … 0.12171274673876392, 0.1217515266716739, 0.12179171693004434, 0.12183318573340766, 0.12187579038290373, 0.1219193775332836, 0.121963783644082, -71.35304509818071, 13838.18882346682, 150952.80529264064]
⋮
[0.11477296407793763, 50.165799947088544, 51.46776113857806, 0.006580600194153001, 0.9997081294533993, 0.9997100452130584, 0.0016646983815690936, 0.002551091017092994, 0.0016480795536744555, 0.001238663326994638 … 0.13230521371591686, 0.13230522983497842, 0.13230524134628346, 0.13230524834493557, 0.13230525092226256, 0.13230524916600175, 0.1323052431604741, -69.75660133662998, 13242.932909119765, 151635.8517642994]
[0.11321979117288525, 50.46845568885001, 51.760492072718904, 0.0066206362528408065, 0.9997024615627135, 0.9997043491017422, 0.0016861437176744786, 0.002568053729578307, 0.001659042164778284, 0.0012559449976820597 … 0.13177128080186878, 0.13177129734035045, 0.13177130952704294, 0.1317713174520545, 0.13177132120190638, 0.13177132085970872, 0.1317713165053261, -69.66737704322618, 13197.792183866586, 151681.00196038032]
[0.1116916329185986, 50.77174638706606, 52.05396580496891, 0.006661615299415221, 0.9996965815017991, 0.999698437214312, 0.0017082448104923887, 0.0025854254297619002, 0.0016702674061820912, 0.001273700561727552 … 0.13124191489948292, 0.1312419318268677, 0.13124194462637595, 0.13124195338378059, 0.13124195818143708, 0.13124195909845118, 0.1312419562108365, -69.57660463229057, 13152.401390237163, 151726.40180533152]
[0.11017245071500106, 51.08003145950713, 52.3524445108456, 0.006704068673370932, 0.9996904063728238, 0.9996922269419058, 0.0017312934452534915, 0.002603431722232787, 0.0016819025451716991, 0.0012922420991555291 … 0.1307113977368176, 0.1307114145464924, 0.1307114274724555, 0.13071143659559867, 0.1307114419935881, 0.13071144374102261, 0.13071144190958264, -69.48314951069662, 13106.229742483347, 151772.58196969578]
[0.10865189850482834, 51.39580016599076, 52.65834940345336, 0.006748407518213786, 0.9996838655875542, 0.9996856471011689, 0.0017555295521273473, 0.002622247949659276, 0.001694062492133834, 0.001311810459164105 … 0.13017611108489247, 0.1301761274325402, 0.13017614014796733, 0.13017614930699012, 0.13017615498239601, 0.1301761572440921, 0.1301761561592448, -69.38616926488837, 13058.911144167054, 151819.9084317911]
[0.1072464985640657, 51.69232185228604, 52.94570272161974, 0.006791103717342215, 0.9996774770885762, 0.999679215416521, 0.0017790381067237027, 0.002640377373593538, 0.0017057757319697614, 0.0013307157859981376 … 0.12967755669767903, 0.12967757343208572, 0.12967758673934363, 0.1296775966911872, 0.12967760335649822, 0.12967760680144533, 0.12967760708961604, -69.29337826556234, 13014.180742507926, 151864.64616415394]
[0.1056350614641335, 52.04103726870083, 53.283854215296344, 0.006842367223606917, 0.9996696908730865, 0.999671374621324, 0.001807466530121753, 0.0026621569055250292, 0.0017198495406936763, 0.0013537053312061185 … 0.12910103233745981, 0.1291010489147294, 0.1291010623305084, 0.12910107265110585, 0.12910107994020542, 0.12910108425899391, 0.12910108566628245, -69.18273023960894, 12961.551304687686, 151917.28332369006]
[0.10397555004145233, 52.40885175170439, 53.64072566637212, 0.006897952772589172, 0.9996611034768826, 0.9996627216040298, 0.0018385490653550706, 0.0026857883113884807, 0.0017351204907156686, 0.0013788849913950116 … 0.12850186934324995, 0.12850188550685013, 0.12850189878773277, 0.1285019092465232, 0.1285019169414519, 0.12850192192847246, 0.12850192426137202, -69.06367777763383, 12905.767961358117, 151973.07403430092]
[0.10360449294121798, 52.49237572219526, 53.721793944393916, 0.0069108037347716976, 0.9996590963966571, 0.9996606997486567, 0.0018457731212245313, 0.0026912541618661326, 0.0017386526875651728, 0.001384744629344741 … 0.12836713297568889, 0.12836714897938203, 0.1283671621661385, 0.1283671725952772, 0.1283671803237699, 0.12836718540635644, 0.12836718789565305, -69.03628984950092, 12893.059355789474, 151985.78419638955]
i = (sys.t / 1000, sys.vm)
plot(sol, idxs=i, title="Action potential", lab="Ctl", tspan=(198second, 205second))
plot!(sol_caf, idxs=i, lab="Caf", tspan=(198second, 205second), ylabel="Voltage (mV)", xlabel="Time (s)")

i = (sys.t / 1000, sys.Cai_sub_SR * 1000)
plot(sol, idxs=i, title="Calcium transient (During caffeine addition)", lab="Ctl", tspan=(198second, 205second))
plot!(sol_caf, idxs=i, tspan=(198second, 205second), lab="Caf", ylabel="Subspace calcium (nM)", xlabel="Time (s)")

i = (sys.t / 1000, sys.PO1RyR)
plot(sol, idxs=i, title="RyR open (During caffeine addition)", lab="Ctl", tspan=(198second, 205second))
plot!(sol_caf, idxs=i, tspan=(198second, 205second), lab="Caf", ylabel="Open probability", ylims=(0, 1), xlabel="Time (s)")

i = (sys.t / 1000, sys.Cai_sub_SR * 1000)
plot(sol, idxs=i, title="Calcium transient (After caffeine addition)", lab="Ctl", ylabel="Subspace calcium (nM)", tspan=(198second, 205second))
plot!(sol_caf, idxs=i, lab="Caf", xlabel="Time (s)", tspan=(198second, 205second))

i = (sys.t / 1000, sys.CaJSR)
plot(sol, idxs=i, title="SR Calcium (During caffeine addition)", lab="Ctl", ylabel="SR calcium (μM)", tspan=(198second, 205second))
plot!(sol_caf, idxs=i, tspan=(198second, 205second), lab="Caf", ylims=(0, 850), xlabel="Time (s)")

i = (sys.t / 1000, sys.Jrel)
plot(sol, idxs=sys.Jrel, title="Ca flux", lab="Ctl (Jrel)", tspan=(198second, 205second))
plot!(sol_caf, idxs=sys.Jrel, lab="Caf (Jrel)", tspan=(198second, 205second), ylabel="μM/ms", xlabel="Time (s)")

i = (sys.t / 1000, sys.CaMKAct * 100)
plot(sol, idxs=i, title="Active CaMKII", lab="Ctl")
plot!(sol_caf, idxs=i, lab="Caf", ylabel="CaMKII activity (%)", xlabel="Time (s)")

Simulation vs experimental data#
Add caffeine in the beginning of the simulation Add caffeine and nifedipine in the beginning of the simulation (nifedipine blocks 90% of L-type calcium channel)
sys = build_neonatal_ecc_sys(simplify=true, reduce_iso=true, reduce_camk=true)
tend = 205second
stimstart = 30second
stimend = 120second
alg = KenCarp47()
@unpack Istim = sys
callback = build_stim_callbacks(Istim, stimend; period=1second, starttime=stimstart)
prob = ODEProblem(sys, [], tend)
prob_caf = ODEProblem(sys, [sys.RyRsensitivity => 10], tend)
gCaL = prob.ps[sys.GCaL]
prob_nif_caf = ODEProblem(sys, [sys.RyRsensitivity => 10, sys.GCaL => 0.1 * gCaL], tend)
ssalg = DynamicSS(alg)
sprob_caf = SteadyStateProblem(prob_caf)
sssol = solve(sprob_caf, ssalg; abstol=1e-10, reltol=1e-10)
@time sol = solve(prob, alg; callback)
@time sol_caf = solve(remake(prob_caf, u0=sssol.u), alg; callback)
@time sol_nif_caf = solve(remake(prob_nif_caf, u0=sssol.u), alg; callback)
1.028423 seconds (65.98 k allocations: 212.864 MiB, 6.57% gc time)
1.681251 seconds (1.06 M allocations: 267.697 MiB, 3.17% gc time, 37.84% compilation time)
0.693741 seconds (88.91 k allocations: 147.626 MiB, 2.55% gc time)
retcode: Success
Interpolation: 3rd order Hermite
t: 2868-element Vector{Float64}:
0.0
0.1842516287447695
0.9881966448057977
4.071268999551245
11.46889157287161
25.163122653031543
49.58619716095024
83.3637857270135
137.50354444126134
206.1830437721704
⋮
144682.17515901334
149346.25860848115
154988.35512024
161140.21728263333
169117.5486088547
177094.87993507608
185072.21126129746
197681.0658829473
205000.0
u: 2868-element Vector{Vector{Float64}}:
[0.0879377467041733, 56.49678557554459, 57.6191126454815, 0.007684701064551206, 0.9995225397670662, 0.9995225538543078, 0.002307172965885684, 0.0030219054392646143, 0.0019523485208113316, 0.0017638636651396073 … 0.12238770302360213, 0.12238770312184905, 0.1223877032089133, 0.1223877032850374, 0.1223877033504543, 0.12238770340538783, 0.12238770345005306, -67.47379943702636, 12238.880616641274, 152640.00975396333]
[0.08793774665244511, 56.49678559051796, 57.61911266008905, 0.007684505973070228, 0.999522539831055, 0.9995225538595655, 0.002307172872470502, 0.0030217698963818113, 0.0019523483503708725, 0.0017638640361971006 … 0.12238769634655143, 0.12238767629971849, 0.12238760509492766, 0.12238737809392339, 0.12238673642392596, 0.12238515317464507, 0.12238177669656981, -67.47618005521412, 12238.880613876872, 152640.00975680666]
[0.08793774642674002, 56.49678565585112, 57.61911272382601, 0.0076810592862655465, 0.999522541609938, 0.9995225540221065, 0.0023071702431384953, 0.003019892311057227, 0.001952330633936249, 0.0017638739820707362 … 0.12238484309419362, 0.12238326473281298, 0.12238101706206037, 0.12237792193353847, 0.12237379866799226, 0.12236847825895254, 0.12236181294309259, -67.4864380065075, 12238.880604903456, 152640.00977146564]
[0.08793774556861038, 56.49678590637692, 57.61911296829147, 0.007661825630969811, 0.9995225700910335, 0.999522556670023, 0.002307127938695551, 0.0030114932849848192, 0.0019519097772159144, 0.001764019632118421 … 0.12235928936784267, 0.12235426703339233, 0.12234861288843461, 0.12234229205712109, 0.12233527447004913, 0.12232753552946413, 0.1223190559166152, -67.52385290623891, 12238.880637787443, 152640.00986184733]
[0.08793680877360872, 56.49678674303339, 57.61911144082425, 0.0076203312229761715, 0.9995227632417734, 0.9995225748310365, 0.002306838628435598, 0.002993780855154623, 0.0019490582563857705, 0.0017648102523076213 … 0.12230185731359682, 0.12229429197776666, 0.12228626598190269, 0.12227776981555753, 0.12226879515825179, 0.1222593348891063, 0.12224938303330268, -67.60276191039242, 12238.881158585114, 152640.0102822115]
[0.0879019270521783, 56.49681495163593, 57.619014070948296, 0.007561683319131569, 0.9995234842093323, 0.9995226438367595, 0.0023057424686542837, 0.0029687257160485292, 0.0019399611840399463, 0.0017666981534737176 … 0.12220716206480889, 0.1221974892911614, 0.12218746008331925, 0.12217707097253457, 0.12216631886639166, 0.12215520105380646, 0.12214371520846243, -67.71497222599726, 12238.883509472675, 152640.01168482352]
[0.08768551452029787, 56.49723087486374, 57.6182578311866, 0.007498443263154539, 0.9995254910940814, 0.99952284236113, 0.00230261384852389, 0.0029416683232199657, 0.0019217264902047237, 0.0017687779468804755 … 0.12205028806463429, 0.12203893528929906, 0.12202729795493707, 0.1220153763814836, 0.12200317096599506, 0.12199068219076756, 0.1219779106315186, -67.83689427215597, 12238.890659985442, 152640.01556197117]
[0.08722173213717814, 56.49897409984516, 57.616706783096994, 0.00745841561007494, 0.9995289047861385, 0.999523199075592, 0.002297093376228226, 0.002924505868872296, 0.001903590783899522, 0.0017684068680331865 … 0.12184354672680937, 0.12183161284174195, 0.12181942925995753, 0.12180699832995698, 0.12179432235310977, 0.12178140359026648, 0.12176824426804823, -67.91462361255311, 12238.90344017452, 152640.0224726735]
[0.08638445707685484, 56.50459982649832, 57.61562855586652, 0.0074354688461075544, 0.9995345257873031, 0.9995238438373651, 0.0022874688187608993, 0.002914652593594106, 0.001890575938442684, 0.0017641727355062905 … 0.12152595808608703, 0.12151435719598865, 0.12150252253270205, 0.1214904572546352, 0.1214781644250219, 0.12146564701754091, 0.12145290792160643, -67.95952007360152, 12238.925109041162, 152640.0349690075]
[0.08533669443944444, 56.51634249900495, 57.618702363253036, 0.007422392906789618, 0.9995410407736308, 0.9995247024197682, 0.0022753564530229994, 0.0029090514165150913, 0.0018848769631887598, 0.0017572770741466589 … 0.12114179064852001, 0.12113100302252011, 0.12111998799372103, 0.12110874886997562, 0.12109728885386215, 0.12108561104821022, 0.12107371846131901, -67.98533342829697, 12238.950547171864, 152640.05164513522]
⋮
[0.07225752311307783, 61.641746628565926, 62.648255999289965, 0.0073734699456903, 0.9995813037545083, 0.9990203612478684, 0.0021160188032108467, 0.0028885852745851063, 0.001866218232650085, 0.001606001913538309 … 0.11570194519136875, 0.11570194976729002, 0.11570195437211205, 0.11570195900581495, 0.11570196366836182, 0.11570196835969918, 0.11570197307975794, -68.0825118601781, 12186.084017817278, 152692.66556888563]
[0.07226610104786485, 61.64185043650706, 62.648431094226595, 0.007373195363583537, 0.9995810128185306, 0.9994192210668104, 0.0021158214113820933, 0.002888445586188183, 0.0018661257353459989, 0.0016057930485284975 … 0.11570574830901148, 0.11570574898553969, 0.11570574967341117, 0.11570575037263872, 0.115705751083233, 0.11570575180520241, 0.1157057525385538, -68.0831709115828, 12186.35862578315, 152692.39049378212]
[0.07227573390813279, 61.639469891700905, 62.64612932043209, 0.007372777161837828, 0.9995809873448486, 0.9995452261754372, 0.0021156072217707505, 0.00288829363760657, 0.0018660287866015268, 0.0016056559148456642 … 0.11570947963798431, 0.11570947898435704, 0.11570947839574468, 0.11570947787104714, 0.11570947740922831, 0.11570947700931322, 0.11570947667038559, -68.08387957484054, 12186.683552900831, 152692.06551852543]
[0.0722836260131651, 61.63631027858222, 62.64303136286473, 0.00737237785613316, 0.9995812566932646, 0.9995742641921231, 0.002115371159681864, 0.0028881309058304936, 0.0018659228721151027, 0.001605431849563187 … 0.11571308932546158, 0.11571308839775853, 0.11571308752895387, 0.1157130867177962, 0.1157130859630916, 0.11571308526370097, 0.11571308461853735, -68.08464282772229, 12187.029300960212, 152691.7198597396]
[0.07229376181864537, 61.632335763226415, 62.63913262570534, 0.007371941828754914, 0.999582017461575, 0.9995804791112105, 0.0021150763631188887, 0.0028879240398379936, 0.0018657843177300485, 0.001605170865688019 … 0.11571728818808698, 0.11571728724633132, 0.11571728638958156, 0.11571728561611419, 0.11571728492428081, 0.11571728431250411, 0.11571728377927384, -68.0856315573395, 12187.463667521422, 152691.2856198893]
[0.07230295718913934, 61.629245127694595, 62.63611562480235, 0.007371422387154058, 0.9995812942954885, 0.9995815599738765, 0.002114802327516525, 0.0028877209116763658, 0.0018656596985823439, 0.0016050077212508367 … 0.11572184520071938, 0.1157218437630925, 0.11572184238193224, 0.11572184105625775, 0.11572183978513363, 0.11572183856766799, 0.11572183740301058, -68.08654876151375, 12187.883044817885, 152690.8662189738]
[0.07231105628049837, 61.625775757057696, 62.6327072285656, 0.007370996559312131, 0.9995817468896804, 0.9995815744460438, 0.0021145204201977207, 0.002887523435358469, 0.0018655308938782663, 0.0016047501160070315 … 0.1157255427330791, 0.11572554210505394, 0.11572554153258295, 0.11572554101439961, 0.11572554054928551, 0.11572554013606784, 0.11572553977361705, -68.08747690903375, 12188.288213938344, 152690.46118578856]
[0.07232444112782753, 61.62052333669329, 62.627558311383034, 0.007370323357909433, 0.9995817937768959, 0.9995816645844348, 0.00211410624173125, 0.0028872289139280226, 0.0018653407791542908, 0.0016044095532906652 … 0.11573168052967356, 0.11573167988443538, 0.11573167929087094, 0.11573167874780127, 0.11573167825409443, 0.11573167780866331, 0.11573167741046335, -68.08885042957982, 12188.900467406307, 152689.84908301404]
[0.0723320414011416, 61.617655798164535, 62.624748939177664, 0.007369905278387516, 0.9995818807653032, 0.9995817293542665, 0.002113876138980706, 0.0028870661438430926, 0.0018652352712051781, 0.0016042106476801814 … 0.11573511255024987, 0.11573511188887188, 0.11573511127682563, 0.11573511071298648, 0.11573511019627439, 0.11573510972565149, 0.11573510930012011, -68.08961046490842, 12189.240662689726, 152689.5089558723]
i = (sys.t / 1000, sys.vm)
tspan = (100second, 102second)
plot(sol, idxs=i, title="Action potential", lab="Ctl"; tspan)
plot!(sol_caf, idxs=i, lab="Caf"; tspan)
plot!(sol_nif_caf, idxs=i, lab="Caf + Nif", tspan=tspan, ylabel="Voltage (mV)", xlabel="Time (s)")

savefig("caf-ap.pdf")
savefig("caf-ap.png")
"/home/runner/work/camkii-cardiomyocyte-model/camkii-cardiomyocyte-model/.cache/docs/caf-ap.png"
i = (sys.t / 1000, sys.Cai_sub_SR * 1000)
tspan = (100second, 102second)
plot(sol, idxs=i, title="Calcium transient", lab="Ctl"; tspan)
plot!(sol_caf, idxs=i, lab="Caf"; tspan)
plot!(sol_nif_caf, idxs=i, lab="Caf + Nif", ylabel="Subspace calcium (nM)", xlabel="Time (s)"; tspan)
savefig("caf-cat.pdf")
savefig("caf-cat.png")
"/home/runner/work/camkii-cardiomyocyte-model/camkii-cardiomyocyte-model/.cache/docs/caf-cat.png"
i = (sys.t / 1000, sys.CaJSR)
tspan = (100second, 102second)
plot(sol, idxs=i, title="SR Calcium", lab="Ctl", ylabel="SR calcium (μM)"; tspan)
plot!(sol_caf, idxs=i, lab="Caf"; tspan)
plot!(sol_nif_caf, idxs=i, lab="Caf + Nif", ylims=(0, 850), xlabel="Time (s)"; tspan)

i = (sys.t / 1000, sys.CaMKAct * 100)
plot(sol, idxs=i, title="Simulation", lab="Ctl")
plot!(sol_caf, idxs=i, lab="Caf")
plot!(sol_nif_caf, idxs=i, lab="Caf + Nif", ylabel="CaMKII active fraction (%)", xlabel="Time (s)")

savefig("caf-camkact.pdf")
savefig("caf-camkact.png")
"/home/runner/work/camkii-cardiomyocyte-model/camkii-cardiomyocyte-model/.cache/docs/caf-camkact.png"
experiments
chemicaldf = CSV.read(joinpath(@__DIR__, "data/CaMKAR-chemical.csv"), DataFrame)
ts = Dates.value.(chemicaldf[!, "Time"]) ./ 10^9
ctl = chemicaldf[!, "Ctrl Mean"]
ctl_error = chemicaldf[!, "Ctrl SD"] ./ sqrt.(chemicaldf[!, "Ctrl N"])
caf = chemicaldf[!, "caffeine 20mM Mean"]
caf_error = chemicaldf[!, "caffeine 20mM SD"] ./ sqrt.(chemicaldf[!, "caffeine 20mM N"])
plot(ts, ctl, yerr=ctl_error, lab="Control", color=:blue, markerstrokecolor=:blue)
plot!(ts, caf, yerr=caf_error, lab="Caffeine 20mM", color=:red, markerstrokecolor=:red)
plot!(xlabel="Time (s)", ylabel="CaMKII activity (A.U.)", title= "Experiment")

savefig("caf-exp.pdf")
"/home/runner/work/camkii-cardiomyocyte-model/camkii-cardiomyocyte-model/.cache/docs/caf-exp.pdf"
This notebook was generated using Literate.jl.