//Created by libAntimony v2.4 model FINAL__SAmembrane(V, R, T, F, Cm, time_, i_Na, i_K1, i_to, i_Kur, i_Kr, i_Ks, i_Ca_L, i_CaP, i_NaK, i_NaCa, i_B_Na, i_B_Ca, i_Ca_T, i_f, i_KACh, ISAout, ISAout_atrium) // Assignment Rules: Total_current := i_Na + i_K1 + i_to + i_Kur + i_Kr + i_Ks + i_B_Na + i_B_Ca + i_NaK + i_CaP + i_NaCa + i_Ca_L + i_Ca_T + i_f + i_KACh; ISAout := piecewise( -(0.5) , Total_current < -(20) , 0 ); ISAout_atrium := piecewise( -(0.5) , (( Total_current < -(2)) && (Total_current > -(3)) && (V < 0 )), 0 ); // Rate Rules: V' = - Total_current / Cm; // Variable initializations: V = -25.9148656754081; R = 8.3143; T = 310; F = 96.4867; Cm = 56; time_ = ; i_Na = ; i_K1 = ; i_to = ; i_Kur = ; i_Kr = ; i_Ks = ; i_Ca_L = ; i_CaP = ; i_NaK = ; i_NaCa = ; i_B_Na = ; i_B_Ca = ; i_Ca_T = ; i_f = ; i_KACh = ; end model FINAL__fast_sodium_current_m_gate(m, V, time_) // Assignment Rules: alpha_m := piecewise( 3.2 , V == -(47.13) , (0.32 * (V + 47.13)) / (1 - exp(-(0.1) * (V + 47.13))) ); beta_m := 0.08 * exp(- V / 11); m_inf := alpha_m / (alpha_m + beta_m); tau_m := 1 / (alpha_m + beta_m); // Rate Rules: m' = (m_inf - m) / tau_m; // Variable initializations: m = 0.901589232313455; V = ; time_ = ; end model FINAL__fast_sodium_current_h_gate(h, V, time_) // Assignment Rules: alpha_h := piecewise( 0.135 * exp((V + 80) / -(6.8)) , V < -(40) , 0 ); beta_h := piecewise( 3.56 * exp(0.079 * V) + 3.1E5 * exp(0.35 * V) , V < -(40) , 1 / (0.13 * (1 + exp((V + 10.66) / -(11.1)))) ); h_inf := alpha_h / (alpha_h + beta_h); tau_h := 1 / (alpha_h + beta_h); // Rate Rules: h' = (h_inf - h) / tau_h; // Variable initializations: h = 0; V = ; time_ = ; end model FINAL__fast_sodium_current_j_gate(j, V, time_) // Assignment Rules: alpha_j := piecewise( ((-(1.2714E5) * exp(0.2444 * V) - 3.474E-5 * exp(-(0.04391) * V)) * (V + 37.78)) / (1 + exp(0.311 * (V + 79.23))) , V < -(40) , 0 ); beta_j := piecewise( (0.1212 * exp(-(0.01052) * V)) / (1 + exp(-(0.1378) * (V + 40.14))) , V < -(40) , (0.3 * exp(-(2.535E-7) * V)) / (1 + exp(-(0.1) * (V + 32))) ); j_inf := alpha_j / (alpha_j + beta_j); tau_j := 1 / (alpha_j + beta_j); // Rate Rules: j' = (j_inf - j) / tau_j; // Variable initializations: j = 5.85587871502196e-69; V = ; time_ = ; end model FINAL__fast_sodium_current(i_Na, E_Na, Cm, time_, V, Na_i, Na_o, R, F, T, m, h, j) // Sub-modules, and any changes to those submodules: fast_sodium_current_m_gate: FINAL__fast_sodium_current_m_gate(m, V, time_); fast_sodium_current_h_gate: FINAL__fast_sodium_current_h_gate(h, V, time_); fast_sodium_current_j_gate: FINAL__fast_sodium_current_j_gate(j, V, time_); // Assignment Rules: i_Na := Cm * g_Na * power(m, 3) * h * j * (V - E_Na); E_Na := ((R * T) / F) * ln(Na_o / Na_i); // Variable initializations: g_Na = 0.234; Cm = ; Na_i = ; Na_o = ; R = ; F = ; T = ; end model FINAL__time_independent_potassium_current(i_K1, E_K, Cm, V, K_o, R, F, T, K_i) // Assignment Rules: i_K1 := (Cm * g_K1 * (V - E_K)) / (1 + exp(0.07 * (V + 80))); E_K := ((R * T) / F) * ln(K_o / K_i); // Variable initializations: g_K1 = 0.01665; Cm = ; V = ; K_o = ; R = ; F = ; T = ; K_i = ; end model FINAL__transient_outward_K_current_oa_gate(oa, K_Q10, V, time_) // Assignment Rules: alpha_oa := 0.65 * power(exp((V - -(10)) / -(8.5)) + exp(((V - -(10)) - 40) / -(59)), -(1)); beta_oa := 0.65 * power(2.5 + exp(((V - -(10)) + 72) / 17), -(1)); tau_oa := power(alpha_oa + beta_oa, -(1)) / K_Q10; oa_infinity := power(1 + exp(((V - -(10)) + 10.47) / -(17.54)), -(1)); // Rate Rules: oa' = (oa_infinity - oa) / tau_oa; // Variable initializations: oa = 0.430553108241678; K_Q10 = ; V = ; time_ = ; end model FINAL__transient_outward_K_current_oi_gate(oi, K_Q10, V, time_) // Assignment Rules: alpha_oi := power(18.53 + 1 * exp(((V - -(10)) + 103.7) / 10.95), -(1)); beta_oi := power(35.56 + 1 * exp(((V - -(10)) - 8.74) / -(7.44)), -(1)); tau_oi := power(alpha_oi + beta_oi, -(1)) / K_Q10; oi_infinity := power(1 + exp(((V - -(10)) + 33.1) / 5.3), -(1)); // Rate Rules: oi' = (oi_infinity - oi) / tau_oi; // Variable initializations: oi = 0.0242020122101775; K_Q10 = ; V = ; time_ = ; end model FINAL__transient_outward_K_current(i_to, K_Q10, Cm, E_K, time_, V, oa, oi) // Sub-modules, and any changes to those submodules: transient_outward_K_current_oa_gate: FINAL__transient_outward_K_current_oa_gate(oa, K_Q10, V, time_); transient_outward_K_current_oi_gate: FINAL__transient_outward_K_current_oi_gate(oi, K_Q10, V, time_); // Assignment Rules: i_to := Cm * g_to * power(oa, 3) * oi * (V - E_K); // Variable initializations: K_Q10 = 3; g_to = 0.009912; Cm = ; E_K = ; end model FINAL__ultrarapid_delayed_rectifier_K_current_ua_gate(ua, K_Q10, V, time_) // Assignment Rules: alpha_ua := 0.65 * power(exp((V - -(10)) / -(8.5)) + exp(((V - -(10)) - 40) / -(59)), -(1)); beta_ua := 0.65 * power(2.5 + exp(((V - -(10)) + 72) / 17), -(1)); tau_ua := power(alpha_ua + beta_ua, -(1)) / K_Q10; ua_infinity := power(1 + exp(((V - -(10)) + 20.3) / -(9.6)), -(1)); // Rate Rules: ua' = (ua_infinity - ua) / tau_ua; // Variable initializations: ua = 0.625416278545545; K_Q10 = ; V = ; time_ = ; end model FINAL__ultrarapid_delayed_rectifier_K_current_ui_gate(ui, K_Q10, V, time_) // Assignment Rules: alpha_ui := power(21 + 1 * exp(((V - -(10)) - 195) / -(28)), -(1)); beta_ui := 1 / exp(((V - -(10)) - 168) / -(16)); tau_ui := power(alpha_ui + beta_ui, -(1)) / K_Q10; ui_infinity := power(1 + exp(((V - -(10)) - 109.45) / 27.48), -(1)); // Rate Rules: ui' = (ui_infinity - ui) / tau_ui; // Variable initializations: ui = 0.976295453694032; K_Q10 = ; V = ; time_ = ; end model FINAL__ultrarapid_delayed_rectifier_K_current(i_Kur, Cm, time_, V, E_K, K_Q10, ua, ui) // Sub-modules, and any changes to those submodules: ultrarapid_delayed_rectifier_K_current_ua_gate: FINAL__ultrarapid_delayed_rectifier_K_current_ua_gate(ua, K_Q10, V, time_); ultrarapid_delayed_rectifier_K_current_ui_gate: FINAL__ultrarapid_delayed_rectifier_K_current_ui_gate(ui, K_Q10, V, time_); // Assignment Rules: i_Kur := Cm * g_Kur * power(ua, 3) * ui * (V - E_K); g_Kur := (0.005 + 0.05 / (1 + exp((V - 15) / -(13)))) * 0.13; // Variable initializations: Cm = ; E_K = ; end model FINAL__rapid_delayed_rectifier_K_current_xr_gate(xr, V, time_) // Assignment Rules: alpha_xr := piecewise( 0.0015 , abs(V + 14.1) < 1E-10 , (0.0003 * (V + 14.1)) / (1 - exp((V + 14.1) / -(5))) ); beta_xr := piecewise( 3.7836118E-4 , abs(V - 3.3328) < 1E-10 , (0.000073898 * (V - 3.3328)) / (exp((V - 3.3328) / 5.1237) - 1) ); tau_xr := power(alpha_xr + beta_xr, -(1)); xr_infinity := power(1 + exp((V + 14.1) / -(6.5)), -(1)); // Rate Rules: xr' = (xr_infinity - xr) / tau_xr; // Variable initializations: xr = 0.675224460789614; V = ; time_ = ; end model FINAL__rapid_delayed_rectifier_K_current(i_Kr, Cm, time_, V, E_K, xr) // Sub-modules, and any changes to those submodules: rapid_delayed_rectifier_K_current_xr_gate: FINAL__rapid_delayed_rectifier_K_current_xr_gate(xr, V, time_); // Assignment Rules: i_Kr := (Cm * g_Kr * xr * (V - E_K)) / (1 + exp((V + 15) / 22.4)); // Variable initializations: g_Kr = 0.0057615; Cm = ; E_K = ; end model FINAL__slow_delayed_rectifier_K_current_xs_gate(xs, V, time_) // Assignment Rules: alpha_xs := piecewise( 0.00068 , abs(V - 19.9) < 1E-10 , (0.00004 * (V - 19.9)) / (1 - exp((V - 19.9) / -(17))) ); beta_xs := piecewise( 0.000315 , abs(V - 19.9) < 1E-10 , (0.000035 * (V - 19.9)) / (exp((V - 19.9) / 9) - 1) ); tau_xs := 0.5 * power(alpha_xs + beta_xs, -(1)); xs_infinity := power(1 + exp((V - 19.9) / -(12.7)), -(0.5)); // Rate Rules: xs' = (xs_infinity - xs) / tau_xs; // Variable initializations: xs = 0.266144350665511; V = ; time_ = ; end model FINAL__slow_delayed_rectifier_K_current(i_Ks, Cm, time_, V, E_K, xs) // Sub-modules, and any changes to those submodules: slow_delayed_rectifier_K_current_xs_gate: FINAL__slow_delayed_rectifier_K_current_xs_gate(xs, V, time_); // Assignment Rules: i_Ks := Cm * g_Ks * power(xs, 2) * (V - E_K); // Variable initializations: g_Ks = 0.0064505; Cm = ; E_K = ; end model FINAL__L_type_Ca_channel_d_gate(d, V, time_) // Assignment Rules: d_infinity := power(1 + exp((V + 10) / -(8)), -(1)); tau_d := piecewise( 4.579 / (1 + exp((V + 10) / -(6.24))) , abs(V + 10) < 1E-10 , (1 - exp((V + 10) / -(6.24))) / (0.035 * (V + 10) * (1 + exp((V + 10) / -(6.24)))) ); // Rate Rules: d' = (d_infinity - d) / tau_d; // Variable initializations: d = 0.123573126723491; V = ; time_ = ; end model FINAL__L_type_Ca_channel_f_gate(f, V, time_) // Assignment Rules: f_infinity := exp(-(V + 28) / 6.9) / (1 + exp(-(V + 28) / 6.9)); tau_f := 9 * power(0.0197 * exp(-power(0.0337, 2) * power(V + 10, 2)) + 0.02, -(1)); // Rate Rules: f' = (f_infinity - f) / tau_f; // Variable initializations: f = 0.202169843956322; V = ; time_ = ; end model FINAL__L_type_Ca_channel_f_Ca_gate(f_Ca, Ca_i, V, time_) // Assignment Rules: f_Ca_infinity := power(1 + Ca_i / 0.00035, -(1)); tau_f_Ca := 2; // Rate Rules: f_Ca' = (f_Ca_infinity - f_Ca) / tau_f_Ca; // Variable initializations: f_Ca = 0.331673604593916; Ca_i = ; V = ; time_ = ; end model FINAL__L_type_Ca_channel(i_Ca_L, Cm, time_, V, Ca_i, d, f, f_Ca) // Sub-modules, and any changes to those submodules: L_type_Ca_channel_d_gate: FINAL__L_type_Ca_channel_d_gate(d, V, time_); L_type_Ca_channel_f_gate: FINAL__L_type_Ca_channel_f_gate(f, V, time_); L_type_Ca_channel_f_Ca_gate: FINAL__L_type_Ca_channel_f_Ca_gate(f_Ca, Ca_i, V, time_); // Assignment Rules: i_Ca_L := Cm * g_Ca_L * d * f * f_Ca * (V - 65); // Variable initializations: g_Ca_L = 0.085; Cm = ; end model FINAL__sodium_potassium_pump(i_NaK, Cm, K_o, Na_i, Na_o, V, R, T, F) // Assignment Rules: i_NaK := (((Cm * i_NaK_max * f_NaK * 1) / (1 + power(Km_Na_i / Na_i, 1.5))) * K_o) / (K_o + Km_K_o); f_NaK := power(1 + 0.1245 * exp((-(0.1) * F * V) / (R * T)) + 0.0365 * sigma * exp((- F * V) / (R * T)), -(1)); sigma := (1 / 7) * (exp(Na_o / 67.3) - 1); // Variable initializations: Km_Na_i = 10; Km_K_o = 1.5; i_NaK_max = 0.3; Cm = ; K_o = ; Na_i = ; Na_o = ; V = ; R = ; T = ; F = ; end model FINAL__background_currents(i_B_Na, i_B_Ca, i_B_K, Cm, E_K, E_Na, V, Ca_i, Ca_o, R, F, T) // Assignment Rules: i_B_Na := Cm * g_B_Na * (V - E_Na); i_B_Ca := Cm * g_B_Ca * (V - E_Ca); i_B_K := Cm * g_B_K * (V - E_K); E_Ca := ((R * T) / (2 * F)) * ln(Ca_o / Ca_i); // Variable initializations: g_B_Na = 0.000335; g_B_Ca = 0.0004565; g_B_K = 1e-5; Cm = ; E_K = ; E_Na = ; V = ; Ca_i = ; Ca_o = ; R = ; F = ; T = ; end model FINAL__Na_Ca_exchanger_current(i_NaCa, Cm, V, R, T, F, Na_i, Na_o, Ca_i, Ca_o) // Assignment Rules: i_NaCa := (Cm * I_NaCa_max * (exp((gamma * F * V) / (R * T)) * power(Na_i, 3) * Ca_o - exp(((gamma - 1) * F * V) / (R * T)) * power(Na_o, 3) * Ca_i)) / ((power(K_mNa, 3) + power(Na_o, 3)) * (K_mCa + Ca_o) * (1 + K_sat * exp(((gamma - 1) * V * F) / (R * T)))); // Variable initializations: I_NaCa_max = 588.8; Cm = ; K_mNa = 87.5; K_mCa = 1.38; K_sat = 0.1; gamma = 0.35; V = ; R = ; T = ; F = ; Na_i = ; Na_o = ; Ca_i = ; Ca_o = ; end model FINAL__sarcolemmal_calcium_pump_current(i_CaP, Cm, Ca_i) // Assignment Rules: i_CaP := (Cm * i_CaP_max * Ca_i) / (0.0005 + Ca_i); // Variable initializations: i_CaP_max = 0.1375; Cm = ; Ca_i = ; end model FINAL__Ca_release_current_from_JSR_u_gate(u, V, time_, Fn) // Assignment Rules: tau_u := 8; u_infinity := power(1 + exp(-(Fn - 3.4175E-13) / 13.67E-16), -(1)); // Rate Rules: u' = (u_infinity - u) / tau_u; // Variable initializations: u = -2.2569975184225e-35; V = ; time_ = ; Fn = ; end model FINAL__Ca_release_current_from_JSR_v_gate(v, V, time_, Fn) // Assignment Rules: tau_v := 1.91 + 2.09 * power(1 + exp(-(Fn - 3.4175E-13) / 13.67E-16), -(1)); v_infinity := 1 - power(1 + exp(-(Fn - 6.835E-14) / 13.67E-16), -(1)); // Rate Rules: v' = (v_infinity - v) / tau_v; // Variable initializations: v = 0.999999999999999; V = ; time_ = ; Fn = ; end model FINAL__Ca_release_current_from_JSR_w_gate(w, V, time_) // Assignment Rules: tau_w := piecewise( (6 * 0.2) / 1.3 , abs(V - 7.9) < 1E-10 , (6 * (1 - exp(-(V - 7.9) / 5))) / ((1 + 0.3 * exp(-(V - 7.9) / 5)) * 1 * (V - 7.9)) ); w_infinity := 1 - power(1 + exp(-(V - 40) / 17), -(1)); // Rate Rules: w' = (w_infinity - w) / tau_w; // Variable initializations: w = 0.979607422520652; V = ; time_ = ; end model FINAL__Ca_release_current_from_JSR(i_rel, Fn, V_rel, time_, V, Ca_i, Ca_rel, i_Ca_L, i_NaCa, F, u, v, w) // Sub-modules, and any changes to those submodules: Ca_release_current_from_JSR_u_gate: FINAL__Ca_release_current_from_JSR_u_gate(u, V, time_, Fn); Ca_release_current_from_JSR_v_gate: FINAL__Ca_release_current_from_JSR_v_gate(v, V, time_, Fn); Ca_release_current_from_JSR_w_gate: FINAL__Ca_release_current_from_JSR_w_gate(w, V, time_); // Assignment Rules: i_rel := K_rel * power(u, 2) * v * w * (Ca_rel - Ca_i); Fn := 1E3 * (1E-15 * V_rel * i_rel - (1E-15 / (2 * F)) * (0.5 * i_Ca_L - 0.2 * i_NaCa)); // Variable initializations: K_rel = 9.33; V_rel = ; Ca_i = ; Ca_rel = ; i_Ca_L = ; i_NaCa = ; F = ; end model FINAL__transfer_current_from_NSR_to_JSR(i_tr, time_, Ca_rel, Ca_up) // Assignment Rules: i_tr := (Ca_up - Ca_rel) / tau_tr; // Variable initializations: tau_tr = 180; time_ = ; Ca_rel = ; Ca_up = ; end model FINAL__Ca_uptake_current_by_the_NSR(I_up_max, i_up, time_, Ca_i) // Assignment Rules: i_up := I_up_max / (1 + K_up / Ca_i); // Variable initializations: I_up_max = 0.00152; K_up = 0.00092; time_ = ; Ca_i = ; end model FINAL__Ca_leak_current_by_the_NSR(i_up_leak, time_, Ca_up, I_up_max) // Assignment Rules: i_up_leak := (I_up_max * Ca_up) / Ca_up_max; // Variable initializations: Ca_up_max = 15; time_ = ; Ca_up = ; I_up_max = ; end model FINAL__Ca_buffers(CMDN_max, TRPN_max, CSQN_max, Km_CMDN, Km_TRPN, Km_CSQN, time_, Ca_i, Ca_rel) // Assignment Rules: Ca_CMDN := (CMDN_max * Ca_i) / (Ca_i + Km_CMDN); Ca_TRPN := (TRPN_max * Ca_i) / (Ca_i + Km_TRPN); Ca_CSQN := (CSQN_max * Ca_rel) / (Ca_rel + Km_CSQN); // Variable initializations: CMDN_max = 0.05; TRPN_max = 0.07; CSQN_max = 10; Km_CMDN = 0.00238; Km_TRPN = 0.0005; Km_CSQN = 0.8; time_ = ; Ca_i = ; Ca_rel = ; end model FINAL__intracellular_ion_concentrations(Na_i, Ca_i, K_i, Ca_rel, Ca_up, V_rel, time_, F, i_NaK, i_NaCa, i_B_Na, i_Na, i_K1, i_to, i_Kur, i_Kr, i_Ks, i_CaP, i_Ca_L, i_B_Ca, i_B_K, i_up, i_up_leak, i_tr, i_rel, Km_CMDN, Km_CSQN, Km_TRPN, CMDN_max, CSQN_max, TRPN_max) // Assignment Rules: V_i := V_cell * 0.68; V_rel := 0.0048 * V_cell; V_up := 0.0552 * V_cell; B1 := (2 * i_NaCa - (i_CaP + i_Ca_L + i_B_Ca)) / (2 * V_i * F) + (V_up * (i_up_leak - i_up) + i_rel * V_rel) / V_i; B2 := 1 + (TRPN_max * Km_TRPN) / power(Ca_i + Km_TRPN, 2) + (CMDN_max * Km_CMDN) / power(Ca_i + Km_CMDN, 2); // Rate Rules: Na_i' = (-(3) * i_NaK - (3 * i_NaCa + i_B_Na + i_Na)) / (V_i * F); Ca_i' = B1 / B2; K_i' = (2 * i_NaK - (i_K1 + i_to + i_Kur + i_Kr + i_Ks + i_B_K)) / (V_i * F); Ca_rel' = (i_tr - i_rel) * power(1 + (CSQN_max * Km_CSQN) / power(Ca_rel + Km_CSQN, 2), -(1)); Ca_up' = i_up - (i_up_leak + (i_tr * V_rel) / V_up); // Variable initializations: Na_i = 10.4206812143853; Ca_i = 0.00070499338653051; K_i = 167.146227880574; Ca_rel = 6.3028172139674; Ca_up = 6.30546055912018; V_cell = 20100; time_ = ; F = ; i_NaK = ; i_NaCa = ; i_B_Na = ; i_Na = ; i_K1 = ; i_to = ; i_Kur = ; i_Kr = ; i_Ks = ; i_CaP = ; i_Ca_L = ; i_B_Ca = ; i_B_K = ; i_up = ; i_up_leak = ; i_tr = ; i_rel = ; Km_CMDN = ; Km_CSQN = ; Km_TRPN = ; CMDN_max = ; CSQN_max = ; TRPN_max = ; end model FINAL__funny_current(V, time_, i_f) // Assignment Rules: alpha_d_f := (0.36 * (V + 148.8)) / (exp(0.066 * (V + 148.8)) - 1); beta_d_f := (0.1 * (V + 87.3)) / (1 - exp(-(0.21) * (V + 87.3))); d_f_infinity := 1 / (alpha_d_f + beta_d_f); tau_d_f := 1 / (alpha_d_f + beta_d_f) - 0.054; i_f := g_f * d_f * (V - E_f); // Rate Rules: d_f' = (d_f_infinity - d_f) / tau_d_f; // Variable initializations: d_f = 0.162509736186646; V = ; time_ = ; g_f = 0.075; E_f = -22; end model FINAL__T_type_Ca_channel_d_gate(d_T, V, time_) // Assignment Rules: alpha_d_T := 1068 * exp((V + 26.3) / 30); beta_d_T := 1068 * exp((V + 26.3) / -(30)); d_T_infinity := 1 / (1 + exp((V + 26.3) / -(6))); tau_d_T := 1 / (alpha_d_T + beta_d_T); // Rate Rules: d_T' = (d_T_infinity - d_T) / tau_d_T; // Variable initializations: d_T = 0.516044748800944; V = ; time_ = ; end model FINAL__T_type_Ca_channel_f_gate(f_T, V, time_) // Assignment Rules: alpha_f_T := 15.3 * exp((V + 61.7) / -(83.3)); beta_f_T := 15 * exp((V + 61.7) / 15.38); f_T_infinity := 1 / (1 + exp((V + 61.7) / 5.6)); tau_f_T := 1 / (alpha_f_T + beta_f_T); // Rate Rules: f_T' = (f_T_infinity - f_T) / tau_f_T; // Variable initializations: f_T = 0.00167482510001593; V = ; time_ = ; end model FINAL__T_type_Ca_channel(i_Ca_T, time_, V, d_T, f_T) // Sub-modules, and any changes to those submodules: T_type_Ca_channel_d_gate: FINAL__T_type_Ca_channel_d_gate(d_T, V, time_); T_type_Ca_channel_f_gate: FINAL__T_type_Ca_channel_f_gate(f_T, V, time_); // Assignment Rules: i_Ca_T := g_Ca_T * d_T * f_T * (V - E_Ca_T); // Variable initializations: g_Ca_T = 0.10914; E_Ca_T = 45; end model FINAL__standard_ionic_concentrations(Na_o, Ca_o, K_o) // Variable initializations: Na_o = 140; Ca_o = 1.8; K_o = 5.4; end model FINAL__ACh_dependent_potassium_current_y_gate(y, Vm, time_) // Assignment Rules: alpha_y := piecewise( 0.0002475 , ACh == 0 , 0.01232 / (1 + Km_ACh / ACh) + 0.0002475 ); beta_y := 0.01 * exp(0.0133 * (Vm + 40)); // Rate Rules: y' = alpha_y * (1 - y) - beta_y * y; // Variable initializations: y = 0.0174987351079082; Vm = ; ACh = 0; Km_ACh = 0.0042; time_ = ; end model FINAL__ACh_dependent_potassium_current(i_KACh, time_, Vm, E_K, Cm, y) // Sub-modules, and any changes to those submodules: ACh_dependent_potassium_current_y_gate: FINAL__ACh_dependent_potassium_current_y_gate(y, Vm, time_); // Assignment Rules: i_KACh := ((g_ACh * (Vm - E_K)) / (1 + exp((Vm + 20) / 20))) * y; // Variable initializations: E_K = ; Cm = ; g_ACh = 0.25; end model FINAL__environment(time_, HR, hrf) // Assignment Rules: hrf := 1000 / (HR / 60); // Variable initializations: time_ = ; HR = 60; end model FINAL__LATiming(realtime, HR, beattime, hrf, ISAin) // Assignment Rules: beattime := ((realtime - start) - floor((realtime - start) / hrf) * hrf) / 1000; start := piecewise( realtime , ISAin < 0 ); // Variable initializations: realtime = ; HR = ; hrf = ; ISAin = ; end model FINAL__LAElastanceFunction(time_, hrf, E_LA) // Assignment Rules: Ts := TsK * root(hrf / 1000); E_LA := piecewise( Edia + ((Esys - Edia) * (1 - cos((pi * time_) / Ts))) / 2 , ( geq(time_, 0)) && (time_ <= Ts ), Edia + ((Esys - Edia) * (1 + cos((2 * pi * (time_ - Ts)) / Ts))) / 2 , ( time_ < 1.5 * Ts) && (geq(time_, Ts) ), Edia ); // Variable initializations: time_ = ; Esys = 0.365; Edia = 0.231; TsK = 0.2; hrf = ; end model FINAL__LeftAtrium(time_, E_LA, P_PV, F_LV, V_LA, P_LA, F_LA, conc_X_LA, conc_X_PV) // Assignment Rules: P_LA := E_LA * (V_LA - V_LA_0) + P_LA_ext; F_LA := (P_PV - P_LA) / R_LA; conc_X_LA := sub_X_LA / V_LA; // Rate Rules: V_LA' = (F_LA - F_LV) / 1000; sub_X_LA' = (conc_X_PV * F_LA - conc_X_LA * F_LV) / 1000; // Variable initializations: time_ = ; E_LA = ; P_PV = ; F_LV = ; P_LA_ext = 0; V_LA = 114.382943360704; V_LA_0 = 100; R_LA = 0.01; conc_X_PV = ; sub_X_LA = 0; end model FINAL__LeftVentricle(time_, F_AO, F_CO, P_LA, V_LV, P_LVin, F_LV, conc_X_LV, conc_X_LA) // Assignment Rules: F_LV := piecewise( (P_LA - P_LV) / R_LV , P_LA > P_LV , 0 ); conc_X_LV := sub_X_LV / V_LV; P_LV := P_LVin + P_LA_ext; // Rate Rules: V_LV' = ((F_LV - F_AO) - F_CO) / 1000; sub_X_LV' = (conc_X_LA * F_LV - conc_X_LV * (F_AO + F_CO)) / 1000; // Variable initializations: time_ = ; F_AO = ; F_CO = ; P_LA = ; pLVPext = 0; V_LV = 46.5361989930178; V_LV_0 = 30; P_LVin = ; R_LV = 0.01; conc_X_LA = ; sub_X_LV = 0; P_LA_ext = 0; end model FINAL__Aorta(time_, F_CR, P_LV, F_AR, V_AO, F_AO, P_AO, conc_X_AO, conc_X_LV) // Assignment Rules: F_AO := piecewise( F_AOalways , P_LV > P_AO , 0 ); P_AO := (1 / C_AO) * (V_AO - V_AO_0); conc_X_AO := sub_X_AO / V_AO; // Rate Rules: V_AO' = ((F_AO - F_AR) - F_CR) / 1000; F_AOalways' = ((1 / L_AO) * (P_LV - P_AO) - (R_AO / L_AO) * F_AOalways) / 1000; sub_X_AO' = (conc_X_LV * F_AO - conc_X_AO * (F_CR + F_AR)) / 1000; // Variable initializations: time_ = ; F_CR = ; P_LV = ; F_AR = ; C_AO = 1; L_AO = 5e-5; R_AO = 0.15; V_AO_0 = 100; V_AO = 177.532128748274; F_AOalways = -504.430041148081; conc_X_LV = ; sub_X_AO = 0; end model FINAL__CoronaryCirc(time_, P_LV, P_RA, F_CO, F_COV, V_CO, P_CO, conc_X_CO, conc_X_LV) // Assignment Rules: F_CO := piecewise( (P_LV - P_CO) / R_CO , P_LV > P_CO , 0 ); F_COV := (P_CO - P_RA) / R_COV; P_CO := (1 / C_CO) * (V_CO - V_CO_0); conc_X_CO := sub_X_CO / V_CO; // Rate Rules: V_CO' = (F_CO - F_COV) / 1000; sub_X_CO' = (conc_X_LV * F_CO - conc_X_CO * F_COV) / 1000; // Variable initializations: time_ = ; P_LV = ; P_RA = ; R_CO = 8; R_COV = 2.5; V_CO_0 = 15; C_CO = 0.75; V_CO = 24.930759461586; conc_X_LV = ; sub_X_CO = 0; end model FINAL__CarotidCirc(time_, P_AO, P_VC, F_CR, F_CRV, V_CR, P_CR, conc_X_CR, conc_X_AO) // Assignment Rules: F_CR := (P_AO - P_CR) / R_CR; F_CRV := (P_CR - P_VC) / R_CRV; P_CR := (1 / C_CR) * (V_CR - V_CR_0); conc_X_CR := sub_X_CR / V_CR; conc_X_CRtissue := sub_X_CRtissue / V_CRtissue; // Rate Rules: V_CR' = (F_CR - F_CRV) / 1000; sub_X_CR' = ((conc_X_AO * F_CR - conc_X_CR * F_CRV) - (conc_X_CR - conc_X_CRtissue) * D_CRtissue) / 1000; sub_X_CRtissue' = ((conc_X_CR - conc_X_CRtissue) * D_CRtissue) / 1000; // Variable initializations: time_ = ; P_AO = ; P_VC = ; R_CR = 11; R_CRV = 4; V_CR_0 = 30; C_CR = 3; V_CR = 97.7894953935923; conc_X_AO = ; sub_X_CR = 0; D_CRtissue = 1; V_CRtissue = 1; sub_X_CRtissue = 0; end model FINAL__Arteries(time_, F_AD, F_MU, F_GI, F_LI, F_KI, F_OT, F_SK, P_AO, V_AR, F_AR, P_AR, conc_X_AR, conc_X_AO) // Assignment Rules: F_AR := (P_AO - P_AR) / R_AR; P_AR := (1 / C_AR) * (V_AR - V_AR_0); conc_X_AR := sub_X_AR / V_AR; // Rate Rules: V_AR' = (((((((F_AR - F_AD) - F_MU) - F_GI) - F_LI) - F_KI) - F_OT) - F_SK) / 1000; sub_X_AR' = (conc_X_AO * F_AR - conc_X_AR * (F_SK + F_AD + F_MU + F_GI + F_LI + F_KI + F_OT)) / 1000; // Variable initializations: time_ = ; F_AD = ; F_MU = ; F_GI = ; F_LI = ; F_KI = ; F_OT = ; F_SK = ; P_AO = ; R_AR = 1.5; C_AR = 0.5; V_AR_0 = 370; V_AR = 377.822162330503; conc_X_AO = ; sub_X_AR = 10; end model FINAL__Adipose(time_, P_AR, P_VE, V_AD, F_AD, F_ADV, P_AD, conc_X_AD, conc_X_AR) // Assignment Rules: F_AD := (P_AR - P_AD) / R_AD; F_ADV := (P_AD - P_VE) / R_ADV; P_AD := (1 / C_AD) * (V_AD - V_AD_0); conc_X_AD := sub_X_AD / V_AD; // Rate Rules: V_AD' = (F_AD - F_ADV) / 1000; sub_X_AD' = (conc_X_AR * F_AD - conc_X_AD * F_ADV) / 1000; // Variable initializations: time_ = ; P_AR = ; P_VE = ; C_AD = 30; R_AD = 1.2; R_ADV = 1; V_AD_0 = 225; V_AD = 539.300411354071; conc_X_AR = ; sub_X_AD = 0; end model FINAL__Muscle(time_, P_AR, P_VE, V_MU, F_MU, F_MUV, P_MU, conc_X_MU, conc_X_AR) // Assignment Rules: F_MU := (P_AR - P_MU) / R_MU; F_MUV := (P_MU - P_VE) / R_MUV; P_MU := (1 / C_MU) * (V_MU - V_MU_0); conc_X_MU := sub_X_MU / V_MU; // Rate Rules: V_MU' = (F_MU - F_MUV) / 1000; sub_X_MU' = (conc_X_AR * F_MU - conc_X_MU * F_MUV) / 1000; // Variable initializations: time_ = ; P_AR = ; P_VE = ; C_MU = 60; R_MU = 0.9; R_MUV = 0.33; V_MU_0 = 1300; V_MU = 1843.97747354682; conc_X_AR = ; sub_X_MU = 0; end model FINAL__GutIntestine(time_, P_AR, P_LI, V_GI, F_GI, F_GIV, P_GI, conc_X_GI, conc_X_AR) // Assignment Rules: F_GI := (P_AR - P_GI) / R_GI; F_GIV := (P_GI - P_LI) / R_GIV; P_GI := (1 / C_GI) * (V_GI - V_GI_0); conc_X_GI := sub_X_GI / V_GI; // Rate Rules: V_GI' = (F_GI - F_GIV) / 1000; sub_X_GI' = (conc_X_AR * F_GI - conc_X_GI * F_GIV) / 1000; // Variable initializations: time_ = ; P_AR = ; P_LI = ; C_GI = 1.81; R_GI = 0.6; R_GIV = 0.15; V_GI_0 = 75; V_GI = 95.4041027167494; conc_X_AR = ; sub_X_GI = 0; end model FINAL__Liver(time_, P_AR, P_VE, V_LI, F_LI, F_GIV, F_LIV, P_LI, conc_X_LI, conc_X_AR, conc_X_GI) // Assignment Rules: F_LI := (P_AR - P_LI) / R_LI; F_LIV := (P_LI - P_VE) / R_LIV; P_LI := (1 / C_LI) * (V_LI - V_LI_0); conc_X_LI := sub_X_LI / V_LI; // Rate Rules: V_LI' = ((F_GIV + F_LI) - F_LIV) / 1000; sub_X_LI' = (((conc_X_GI * F_GIV + conc_X_AR * F_LI) - conc_X_LI * F_LIV) + conc_X_LI * metabolism) / 1000; // Variable initializations: time_ = ; P_AR = ; P_VE = ; C_LI = 1.81; R_LI = 0.9; R_LIV = 0.33; V_LI_0 = 75; V_LI = 93.8781911234713; F_GIV = ; conc_X_AR = ; conc_X_GI = ; sub_X_LI = 0; metabolism = 0; end model FINAL__Kidney(time_, P_AR, P_VE, V_KI, F_KI, F_KIV, P_KI, conc_X_KI, conc_X_AR) // Assignment Rules: F_KI := (P_AR - P_KI) / R_KI; F_KIV := (P_KI - P_VE) / R_KIV; P_KI := (1 / C_KI) * (V_KI - V_KI_0); conc_X_KI := sub_X_KI / V_KI; // Rate Rules: V_KI' = (F_KI - F_KIV) / 1000; sub_X_KI' = (conc_X_AR * F_KI - conc_X_KI * F_KIV) / 1000; // Variable initializations: time_ = ; P_AR = ; P_VE = ; C_KI = 0.5; R_KI = 0.8; V_KI_0 = 20; R_KIV = 0.2; V_KI = 24.4012692216718; conc_X_AR = ; sub_X_KI = 0; end model FINAL__Skin(time_, P_AR, P_VE, V_SK, F_SK, F_SKV, P_SK, conc_X_SK, conc_X_AR) // Assignment Rules: F_SK := (P_AR - P_SK) / R_SK; F_SKV := (P_SK - P_VE) / R_SKV; P_SK := (1 / C_SK) * (V_SK - V_SK_0); conc_X_SK := sub_X_SK / V_SK; // Rate Rules: V_SK' = (F_SK - F_SKV) / 1000; sub_X_SK' = (conc_X_AR * F_SK - conc_X_SK * F_SKV) / 1000; // Variable initializations: time_ = ; P_AR = ; P_VE = ; C_SK = 1.81; R_SK = 2.8; R_SKV = 0.7; V_SK_0 = 200; V_SK = 215.48053377869; conc_X_AR = ; sub_X_SK = 0; end model FINAL__OtherTissue(time_, P_AR, P_VE, V_OT, F_OT, F_OTV, P_OT, conc_X_OT, conc_X_AR) // Assignment Rules: F_OT := (P_AR - P_OT) / R_OT; F_OTV := (P_OT - P_VE) / R_OTV; P_OT := (1 / C_OT) * (V_OT - V_OT_0); conc_X_OT := sub_X_OT / V_OT; // Rate Rules: V_OT' = (F_OT - F_OTV) / 1000; sub_X_OT' = (conc_X_AR * F_OT - conc_X_OT * F_OTV) / 1000; // Variable initializations: time_ = ; P_AR = ; P_VE = ; C_OT = 1.81; R_OT = 1; R_OTV = 0.33; V_OT_0 = 75; V_OT = 91.1860503601169; conc_X_AR = ; sub_X_OT = 0; end model FINAL__Veins(time_, F_ADV, F_MUV, F_LIV, F_KIV, F_OTV, F_SKV, P_VC, V_VE, F_VE, F_VEV, P_VE, conc_X_VE, conc_X_AD, conc_X_MU, conc_X_LI, conc_X_KI, conc_X_SK, conc_X_OT) // Assignment Rules: F_VE := F_SKV + F_ADV + F_MUV + F_LIV + F_KIV + F_OTV; F_VEV := (P_VE - P_VC) / R_VEV; P_VE := (1 / C_VE) * (V_VE - V_VE_0); conc_X_VE := sub_X_VE / V_VE; // Rate Rules: V_VE' = (F_VE - F_VEV) / 1000; sub_X_VE' = ((conc_X_SK * F_SKV + conc_X_AD * F_ADV + conc_X_MU * F_MUV + conc_X_LI * F_LIV + conc_X_KI * F_KIV + conc_X_OT * F_OTV) - conc_X_VE * F_VEV) / 1000; // Variable initializations: time_ = ; F_ADV = ; F_MUV = ; F_LIV = ; F_KIV = ; F_OTV = ; F_SKV = ; P_VC = ; R_VEV = 0.0223; V_VE = 457.346412168043; C_VE = 8; V_VE_0 = 400; conc_X_AD = ; conc_X_MU = ; conc_X_LI = ; conc_X_KI = ; conc_X_SK = ; conc_X_OT = ; sub_X_VE = 0; end model FINAL__VenaCava(time_, F_VEV, P_RA, F_CRV, V_VC, F_VC, F_VCV, P_VC, conc_X_VC, conc_X_VE, conc_X_CR) // Assignment Rules: F_VC := F_CRV + F_VEV; F_VCV := (P_VC - P_RA) / R_VCV; P_VC := (1 / C_VC) * (V_VC - V_VC_0); conc_X_VC := sub_X_VC / V_VC; // Rate Rules: V_VC' = (F_VC - F_VCV) / 1000; sub_X_VC' = ((conc_X_VE * F_VEV + conc_X_CR * F_CRV) - conc_X_VC * F_VCV) / 1000; // Variable initializations: time_ = ; F_VEV = ; P_RA = ; F_CRV = ; R_VCV = 0.00267; V_VC = 629.887803989648; V_VC_0 = 500; C_VC = 20; conc_X_VE = ; conc_X_CR = ; sub_X_VC = 0; end model FINAL__RATiming(realtime, HR, beattime, hrf, ISAin) // Assignment Rules: beattime := ((realtime - start) - floor((realtime - start) / hrf) * hrf) / 1000; start := piecewise( realtime , ISAin < 0 ); // Variable initializations: realtime = ; HR = ; hrf = ; ISAin = ; end model FINAL__RAElastanceFunction(time_, hrf, E_RA) // Assignment Rules: Ts := TsK * root(hrf / 1000); E_RA := piecewise( Edia + ((Esys - Edia) * (1 - cos((pi * time_) / Ts))) / 2 , ( geq(time_, 0)) && (time_ <= Ts ), Edia + ((Esys - Edia) * (1 + cos((2 * pi * (time_ - Ts)) / Ts))) / 2 , ( time_ < 1.5 * Ts) && (geq(time_, Ts) ), Edia ); // Variable initializations: time_ = ; Esys = 0.11; Edia = 0.099; TsK = 0.2; hrf = ; end model FINAL__RightAtrium(time_, E_RA, F_RV, F_VCV, F_COV, V_RA, P_RA, F_RA, conc_X_RA, conc_X_VC, conc_X_CO) // Assignment Rules: P_RA := E_RA * (V_RA - V_RA_0) + P_RA_ext; F_RA := F_VCV + F_COV; conc_X_RA := sub_X_RA / V_RA; // Rate Rules: V_RA' = (F_RA - F_RV) / 1000; sub_X_RA' = ((conc_X_VC * F_VCV + conc_X_CO * F_COV) - conc_X_RA * F_RV) / 1000; // Variable initializations: time_ = ; E_RA = ; F_RV = ; F_VCV = ; F_COV = ; P_RA_ext = 0; V_RA = 78.8296697240886; V_RA_0 = 15; conc_X_VC = ; conc_X_CO = ; sub_X_RA = 0; end model FINAL__RightVentricle(time_, P_RA, F_PA, V_RV, P_RV, F_RV, conc_X_RV, conc_X_RA, P_LV, V_LV) // Assignment Rules: P_RV := ((P_LV - lvb) * rva) / (lva - lvb) + ((lva - P_LV) * rvb) / (lva - lvb); F_RV := piecewise( (P_RA - P_RV) / R_RV , P_RA > P_RV , 0 ); conc_X_RV := sub_X_RV / V_RV; lva := EmaxLV * 10; rva := EmaxRV * 10; lvb := P0lv * (exp(kelv * V_LV) - 1); rvb := P0rv * (exp(kerv * V_RV) - 1); // Rate Rules: V_RV' = (F_RV - F_PA) / 1000; sub_X_RV' = (conc_X_RA * F_RV - conc_X_RV * F_PA) / 1000; // Variable initializations: time_ = ; P_RA = ; F_PA = ; P_RV_ext = 0; V_RV = 120.130190319487; V_RV_0 = 25; R_RV = 0.02; conc_X_RA = ; sub_X_RV = 0; EmaxLV = 3.6; EmaxRV = 1.75; kelv = 0.014; kerv = 0.011; P0lv = 1.5; P0rv = 1.5; P_LV = ; V_LV = ; end model FINAL__PulmonaryArtery(time_, F_Pa, P_RV, F_PA, V_PA, P_PA, conc_X_PA, conc_X_RV) // Assignment Rules: F_PA := piecewise( (P_RV - P_PA) / R_PA , P_RV > P_PA , 0 ); P_PA := (1 / C_PA) * (V_PA - V_PA_0); conc_X_PA := sub_X_PA / V_PA; // Rate Rules: V_PA' = (F_PA - F_Pa) / 1000; sub_X_PA' = (conc_X_RV * F_PA - conc_X_PA * F_Pa) / 1000; // Variable initializations: time_ = ; F_Pa = ; P_RV = ; R_PA = 0.2; C_PA = 1; V_PA_0 = 50; V_PA = 56.0809022882693; conc_X_RV = ; sub_X_PA = 0; end model FINAL__PulmonaryArteries(time_, P_PA, F_PC, F_SH, V_Pa, F_Pa, P_Pa, conc_X_Pa, conc_X_PA) // Assignment Rules: F_Pa := (P_PA - P_Pa) / R_Pa; P_Pa := (1 / C_Pa) * (V_Pa - V_Pa_0); conc_X_Pa := sub_X_Pa / V_Pa; // Rate Rules: V_Pa' = ((F_Pa - F_PC) - F_SH) / 1000; sub_X_Pa' = (conc_X_PA * F_Pa - conc_X_Pa * (F_PC + F_SH)) / 1000; // Variable initializations: time_ = ; P_PA = ; F_PC = ; F_SH = ; V_Pa = 37.3085495287075; C_Pa = 1.481; R_Pa = 0.053; V_Pa_0 = 30; conc_X_PA = ; sub_X_Pa = 0; end model FINAL__Shunt(time_, F_SH, P_Pa, P_PC) // Assignment Rules: F_SH := (P_Pa - P_PC) / R_SH; // Variable initializations: time_ = ; R_SH = 50000000000; P_Pa = ; P_PC = ; end model FINAL__PulmonaryCapillaries(time_, P_Pa, P_PV, V_PC, F_PC, F_PCV, P_PC, conc_X_PC, conc_X_Pa) // Assignment Rules: F_PC := (P_Pa - P_PC) / R_PC; F_PCV := (P_PC - P_PV) / R_PCV; P_PC := (1 / C_PC) * (V_PC - V_PC_0); conc_X_PC := sub_X_PC / V_PC; // Rate Rules: V_PC' = (F_PC - F_PCV) / 1000; sub_X_PC' = (conc_X_Pa * F_PC - conc_X_PC * F_PCV) / 1000; // Variable initializations: time_ = ; P_Pa = ; P_PV = ; C_PC = 1.778; R_PC = 0.0179; R_PCV = 0.0079; V_PC_0 = 53; V_PC = 60.6769769228579; conc_X_Pa = ; sub_X_PC = 0; end model FINAL__PulmonaryVein(time_, F_PCV, F_SH, F_LA, V_PV, F_PV, P_PV, conc_X_PV, conc_X_PC, conc_X_Pa) // Assignment Rules: F_PV := F_PCV + F_SH; P_PV := (1 / C_PV) * (V_PV - V_PV_0); conc_X_PV := sub_X_PV / V_PV; // Rate Rules: V_PV' = (F_PV - F_LA) / 1000; sub_X_PV' = ((conc_X_PC * F_PCV + conc_X_Pa * F_SH) - conc_X_PV * F_LA) / 1000; // Variable initializations: time_ = ; F_PCV = ; F_SH = ; F_LA = ; C_PV = 2; V_PV_0 = 70; V_PV = 77.9150700144446; conc_X_PC = ; conc_X_Pa = ; sub_X_PV = 0; end model FINAL__additional_currents(IK_additional, ICa_additional, INa_additional, JCaSR_additional, Istim, Cai) // Assignment Rules: IK_additional := - Istim; ICa_additional := topOUt - Cai; // Variable initializations: INa_additional = 0; JCaSR_additional = 0; Istim = 0; Cai = ; topOUt = -0.00063; end model FINAL__default_parameters(Am, Cm, Capacitance, temperature, vC, vSR, g_Na, g_K1, g_to, g_Kr, g_Ks, g_pK, g_bNa, g_bCa, p_KNa, P_NaK, K_mNa, K_mK, g_CaL, Bufc, Kbufc, Bufsr, Kbufsr, Nao, Ko, Cao, V_leak, K_up, Vmax_up, a_rel, b_rel, c_rel, tau_g, g_pCa, K_pCa, k_NaCa, K_mNai, K_mCa, k_sat, gamma, alpha) // Variable initializations: Am = 200; Cm = 0.01; Capacitance = 0.00185; temperature = 310; vC = 0.49; vSR = 0.1; g_Na = 0.14838; g_K1 = 0.05405; g_to = 0.00294; g_Kr = 0.00096; g_Ks = 0.00245; g_pK = 0.000146; g_bNa = 2.9e-6; g_bCa = 5.92e-6; p_KNa = 0.03; P_NaK = 0.01362; K_mNa = 40; K_mK = 1; g_CaL = 1.75e-6; Bufc = 0.14; Kbufc = 0.001; Bufsr = 10; Kbufsr = 0.3; Nao = 140; Ko = 5.4; Cao = 2; V_leak = 8e-5; K_up = 0.00025; Vmax_up = 0.000425; a_rel = 0.016464; b_rel = 0.25; c_rel = 0.008232; tau_g = 2; g_pCa = 0.00825; K_pCa = 0.0005; k_NaCa = 10; K_mNai = 87.5; K_mCa = 1.38; k_sat = 0.1; gamma = 0.35; alpha = 2.5; end model FINAL__default_initial_conditions(V_initial, m_initial, h_initial, j_initial, s_initial, r_initial, Xr1_initial, Xr2_initial, Xs_initial, d_initial, f_initial, fCa_initial, g_initial, Nai_initial, Ki_initial, Cai_total_initial, CaSR_total_initial) // Variable initializations: V_initial = -86.2; m_initial = 0; h_initial = 0.75; j_initial = 0.75; s_initial = 1; r_initial = 0; Xr1_initial = 0; Xr2_initial = 1; Xs_initial = 0; d_initial = 0; f_initial = 1; fCa_initial = 1; g_initial = 1; Nai_initial = 11.6; Ki_initial = 138.3; Cai_total_initial = 0.0064; CaSR_total_initial = 4.2; end model FINAL__membrane_potential(V, V_initial, Cm, time_, Itotal) // Rate Rules: V' = - Itotal / Cm; // Variable initializations: V = -64.7550201989744; V_initial = ; Cm = ; time_ = ; Itotal = ; end model FINAL__total_membrane_current(Itotal, ICa_additional, INa_additional, IK_additional, INa, IK1, Ito, IKr, IKs, ICaL, INaCa, INaK, IpCa, IpK, IbCa, IbNa, ISAstim) // Assignment Rules: Itotal := ISAstim + ICa_additional + INa_additional + IK_additional + INa + IK1 + Ito + IKr + IKs + ICaL + INaCa + INaK + IbNa + IbCa + IpCa + IpK; // Variable initializations: ICa_additional = ; INa_additional = ; IK_additional = ; INa = ; IK1 = ; Ito = ; IKr = ; IKs = ; ICaL = ; INaCa = ; INaK = ; IpCa = ; IpK = ; IbCa = ; IbNa = ; ISAstim = ; end model FINAL__K_flux(K_flux, vC, Am, F, IK_additional, IK1, Ito, IKr, IKs, INaK, IpK) // Assignment Rules: K_flux := (Am / (vC * F)) * ((IK_additional + IK1 + Ito + IKr + IKs + IpK) - INaK * 2); // Variable initializations: vC = ; Am = ; F = ; IK_additional = ; IK1 = ; Ito = ; IKr = ; IKs = ; INaK = ; IpK = ; end model FINAL__Na_flux(Na_flux, vC, Am, F, INa_additional, INa, IbNa, INaK, INaCa) // Assignment Rules: Na_flux := (Am / (vC * F)) * (INa + INa_additional + IbNa + INaK * 3 + INaCa * 3); // Variable initializations: vC = ; Am = ; F = ; INa_additional = ; INa = ; IbNa = ; INaK = ; INaCa = ; end model FINAL__Ca_flux(Ca_flux, vC, Am, F, ICa_additional, ICaL, IbCa, IpCa, INaCa) // Assignment Rules: Ca_flux := (Am / (2 * vC * F)) * (2 * INaCa - (ICa_additional + ICaL + IbCa + IpCa)); // Variable initializations: vC = ; Am = ; F = ; ICa_additional = ; ICaL = ; IbCa = ; IpCa = ; INaCa = ; end model FINAL__Ca_SR_flux(Ca_SR_flux, Jleak, Jup, Jrel, JCaSR_additional) // Assignment Rules: Ca_SR_flux := (Jleak + Jrel + JCaSR_additional) - Jup; // Variable initializations: Jleak = ; Jup = ; Jrel = ; JCaSR_additional = ; end model FINAL__INa(INa, time_, V, E_Na, g_Na, m, h, j) // Assignment Rules: INa := g_Na * power(m, 3) * h * j * (V - E_Na); // Variable initializations: time_ = ; V = ; E_Na = ; g_Na = ; m = ; h = ; j = ; end model FINAL__IK1(IK1, g_K1, V, Ko, E_K, K1_infinity) // Assignment Rules: IK1 := g_K1 * root(Ko / 5.4) * K1_infinity * (V - E_K); // Variable initializations: g_K1 = ; V = ; Ko = ; E_K = ; K1_infinity = ; end model FINAL__Ito(Ito, g_to, E_K, V, time_, s, r) // Assignment Rules: Ito := g_to * r * s * (V - E_K); // Variable initializations: g_to = ; E_K = ; V = ; time_ = ; s = ; r = ; end model FINAL__IKr(IKr, g_Kr, time_, V, E_K, Ko, Xr1, Xr2) // Assignment Rules: IKr := g_Kr * root(Ko / 5.4) * Xr1 * Xr2 * (V - E_K); // Variable initializations: g_Kr = ; time_ = ; V = ; E_K = ; Ko = ; Xr1 = ; Xr2 = ; end model FINAL__IKs(IKs, g_Ks, time_, V, E_Ks, Xs) // Assignment Rules: IKs := g_Ks * power(Xs, 2) * (V - E_Ks); // Variable initializations: g_Ks = ; time_ = ; V = ; E_Ks = ; Xs = ; end model FINAL__INaK(INaK, P_NaK, K_mNa, K_mK, V, R, T, F, Nai, Ko) // Assignment Rules: INaK := (P_NaK * Ko * Nai) / ((Ko + K_mK) * (Nai + K_mNa) * (1 + 0.1245 * exp((-(0.1) * V * F) / (R * T)) + 0.0353 * exp((- V * F) / (R * T)))); // Variable initializations: P_NaK = ; K_mNa = ; K_mK = ; V = ; R = ; T = ; F = ; Nai = ; Ko = ; end model FINAL__IpK(IpK, g_pK, V, E_K) // Assignment Rules: IpK := (g_pK * (V - E_K)) / (1 + exp((25 - V) / 5.98)); // Variable initializations: g_pK = ; V = ; E_K = ; end model FINAL__IbNa(IbNa, g_bNa, V, E_Na) // Assignment Rules: IbNa := g_bNa * (V - E_Na); // Variable initializations: g_bNa = ; V = ; E_Na = ; end model FINAL__ICaL(ICaL, g_CaL, time_, V, Cai, Cao, R, T, F, d, f, fCa) // Assignment Rules: ICaL := (((g_CaL * d * f * fCa * 4 * V * power(F, 2)) / (R * T)) * (Cai * exp((2 * V * F) / (R * T)) - 0.341 * Cao)) / (exp((2 * V * F) / (R * T)) - 1); // Variable initializations: g_CaL = ; time_ = ; V = ; Cai = ; Cao = ; R = ; T = ; F = ; d = ; f = ; fCa = ; end model FINAL__IpCa(IpCa, g_pCa, K_pCa, Cai) // Assignment Rules: IpCa := (g_pCa * Cai) / (K_pCa + Cai); // Variable initializations: g_pCa = ; K_pCa = ; Cai = ; end model FINAL__INaCa(INaCa, k_NaCa, K_mNai, K_mCa, k_sat, gamma, alpha, V, R, T, F, Nai, Nao, Cai, Cao) // Assignment Rules: INaCa := (k_NaCa * (exp((gamma * V * F) / (R * T)) * power(Nai, 3) * Cao - exp(((gamma - 1) * V * F) / (R * T)) * power(Nao, 3) * Cai * alpha)) / ((power(K_mNai, 3) + power(Nao, 3)) * (K_mCa + Cao) * (1 + k_sat * exp(((gamma - 1) * V * F) / (R * T)))); // Variable initializations: k_NaCa = ; K_mNai = ; K_mCa = ; k_sat = ; gamma = ; alpha = ; V = ; R = ; T = ; F = ; Nai = ; Nao = ; Cai = ; Cao = ; end model FINAL__IbCa(IbCa, g_bCa, V, E_Ca) // Assignment Rules: IbCa := g_bCa * (V - E_Ca); // Variable initializations: g_bCa = ; V = ; E_Ca = ; end model FINAL__ENa(T, intracellular_concentration, extracellular_concentration, R, F, reversal_potential) // Assignment Rules: reversal_potential := ((R * T) / (z * F)) * ln(extracellular_concentration / intracellular_concentration); // Variable initializations: z = 1; T = ; intracellular_concentration = ; extracellular_concentration = ; R = 8314.472; F = 96485; end model FINAL__EK(T, intracellular_concentration, extracellular_concentration, R, F, reversal_potential) // Assignment Rules: reversal_potential := ((R * T) / (z * F)) * ln(extracellular_concentration / intracellular_concentration); // Variable initializations: z = 1; T = ; intracellular_concentration = ; extracellular_concentration = ; R = 8314.472; F = 96485; end model FINAL__ECa(T, intracellular_concentration, extracellular_concentration, R, F, reversal_potential) // Assignment Rules: reversal_potential := ((R * T) / (z * F)) * ln(extracellular_concentration / intracellular_concentration); // Variable initializations: z = 2; T = ; intracellular_concentration = ; extracellular_concentration = ; R = 8314.472; F = 96485; end model FINAL__EKs(T, intracellular_concentration_1, extracellular_concentration_1, intracellular_concentration_2, extracellular_concentration_2, multiplier_2, R, F, reversal_potential) // Assignment Rules: reversal_potential := ((R * T) / (z * F)) * ln((multiplier_1 * extracellular_concentration_1 + multiplier_2 * extracellular_concentration_2) / (multiplier_1 * intracellular_concentration_1 + multiplier_2 * intracellular_concentration_2)); // Variable initializations: z = 1; T = ; intracellular_concentration_1 = ; extracellular_concentration_1 = ; intracellular_concentration_2 = ; extracellular_concentration_2 = ; multiplier_1 = 1; multiplier_2 = ; R = 8314.472; F = 96485; end model FINAL__Nai(Nai, time_, Na_flux) // Rate Rules: Nai' = - Na_flux; // Variable initializations: Nai = 7.39223229243676; time_ = ; Na_flux = ; end model FINAL__Ki(Ki, time_, K_flux) // Rate Rules: Ki' = - K_flux; // Variable initializations: Ki = 62.3622982068174; time_ = ; K_flux = ; end model FINAL__Cai(Cai, CaSR, Cai_total, CaSR_total, Cai_buf, CaSR_buf, Bufc, Kbufc, Bufsr, Kbufsr, vSR, vC, Am, F, time_, Capacitance, Ca_flux, Ca_SR_flux) // Assignment Rules: Cai := Cai_total - Cai_buf; CaSR := CaSR_total - CaSR_buf; Cai_buf := (root(power(bCai, 2) - 4 * aCai * cCai) - bCai) / (2 * aCai); CaSR_buf := (root(power(bCaSR, 2) - 4 * aCaSR * cCaSR) - bCaSR) / (2 * aCaSR); aCai := -(1); bCai := Cai_total + Kbufc + Bufc; cCai := - Bufc * Cai_total; aCaSR := -(1); bCaSR := CaSR_total + Kbufsr + Bufsr; cCaSR := - Bufsr * CaSR_total; // Rate Rules: Cai_total' = Ca_flux + Ca_SR_flux; CaSR_total' = (vC / vSR) * - Ca_SR_flux; // Variable initializations: Cai_total = 0.00640319307218471; CaSR_total = -5.43271749502848; Bufc = ; Kbufc = ; Bufsr = ; Kbufsr = ; vSR = ; vC = ; Am = ; F = ; time_ = ; Capacitance = ; Ca_flux = ; Ca_SR_flux = ; end model FINAL__Jleak(Jleak, V_leak, Cai, CaSR) // Assignment Rules: Jleak := V_leak * (CaSR - Cai); // Variable initializations: V_leak = ; Cai = ; CaSR = ; end model FINAL__Jup(Jup, Vmax_up, Cai, K_up) // Assignment Rules: Jup := Vmax_up / (1 + power(K_up, 2) / power(Cai, 2)); // Variable initializations: Vmax_up = ; Cai = ; K_up = ; end model FINAL__Jrel(Jrel, Cai, CaSR, a_rel, b_rel, c_rel, tau_g, V, time_, d, g) // Assignment Rules: Jrel := ((a_rel * power(CaSR, 2)) / (power(b_rel, 2) + power(CaSR, 2)) + c_rel) * d * g; // Variable initializations: Cai = ; CaSR = ; a_rel = ; b_rel = ; c_rel = ; tau_g = ; V = ; time_ = ; d = ; g = ; end model FINAL__m_gate(m, tau_m, m_infinity, V, time_) // Assignment Rules: tau_m := 1 * alpha_m * beta_m; m_infinity := 1 / power(1 + exp((-(56.86) - V) / 9.03), 2); alpha_m := 1 / (1 + exp((-(60) - V) / 5)); beta_m := 0.1 / (1 + exp((35 + V) / 5)) + 0.1 / (1 + exp((V - 50) / 200)); // Rate Rules: m' = (m_infinity - m) / tau_m; // Variable initializations: m = 0.0866469000318477; V = ; time_ = ; end model FINAL__h_gate(h, tau_h, h_infinity, V, time_) // Assignment Rules: tau_h := 1 / (alpha_h + beta_h); h_infinity := 1 / power(1 + exp((71.55 + V) / 7.43), 2); alpha_h := piecewise( 0.057 * exp(-(80 + V) / 6.8) , V < -(40) , 0 ); beta_h := piecewise( 2.7 * exp(0.079 * V) + 3.1E5 * exp(0.3485 * V) , V < -(40) , 0.77 / (0.13 * (1 + exp(-(V + 10.66) / 11.1))) ); // Rate Rules: h' = (h_infinity - h) / tau_h; // Variable initializations: h = 0.0814742345064571; V = ; time_ = ; end model FINAL__j_gate(j, tau_j, j_infinity, V, time_) // Assignment Rules: tau_j := 1 / (alpha_j + beta_j); j_infinity := 1 / power(1 + exp((71.55 + V) / 7.43), 2); alpha_j := piecewise( ((-(2.5428E4) * exp(0.2444 * V) - 6.948E-6 * exp(-(0.04391) * V)) * (V + 37.78)) / (1 + exp(0.311 * (V + 79.23))) , V < -(40) , 0 ); beta_j := piecewise( (0.02424 * exp(-(0.01052) * V)) / (1 + exp(-(0.1378) * (V + 40.14))) , V < -(40) , (0.6 * exp(0.057 * V)) / (1 + exp(-(0.1) * (V + 32))) ); // Rate Rules: j' = (j_infinity - j) / tau_j; // Variable initializations: j = 0.0445382453674896; V = ; time_ = ; end model FINAL__K1_gate(K1_infinity, E_K, V) // Assignment Rules: K1_infinity := alpha_K1 / (alpha_K1 + beta_K1); alpha_K1 := 0.1 / (1 + exp(0.06 * (V - (E_K + 200)))); beta_K1 := (3 * exp(0.0002 * ((V - E_K) + 100)) + exp(0.1 * (V - (E_K + 10)))) / (1 + exp(-(0.5) * (V - E_K))); // Variable initializations: E_K = ; V = ; end model FINAL__r_gate(r, V, time_) // Assignment Rules: r_infinity := 1 / (1 + exp((20 - V) / 6)); tau_r := 9.5 * exp(-power(V + 40, 2) / 1800) + 0.8; // Rate Rules: r' = (r_infinity - r) / tau_r; // Variable initializations: r = 7.33403191056144e-7; V = ; time_ = ; end model FINAL__s_gate(s, V, time_) // Assignment Rules: s_infinity := 1 / (1 + exp((20 + V) / 5)); tau_s := 85 * exp(-power(V + 45, 2) / 320) + 5 / (1 + exp((V - 20) / 5)) + 3; // Rate Rules: s' = (s_infinity - s) / tau_s; // Variable initializations: s = 0.99980780778701; V = ; time_ = ; end model FINAL__Xr1_gate(Xr1, V, time_) // Assignment Rules: alpha_Xr1 := 450 / (1 + exp((-(45) - V) / 10)); beta_Xr1 := 6 / (1 + exp((V + 30) / 11.5)); Xr1_infinity := 1 / (1 + exp((-(26) - V) / 7)); tau_Xr1 := 1 * alpha_Xr1 * beta_Xr1; // Rate Rules: Xr1' = (Xr1_infinity - Xr1) / tau_Xr1; // Variable initializations: Xr1 = 0.364725483215666; V = ; time_ = ; end model FINAL__Xr2_gate(Xr2, V, time_) // Assignment Rules: alpha_Xr2 := 3 / (1 + exp((-(60) - V) / 20)); beta_Xr2 := 1.12 / (1 + exp((V - 60) / 20)); Xr2_infinity := 1 / (1 + exp((88 + V) / 24)); tau_Xr2 := 1 * alpha_Xr2 * beta_Xr2; // Rate Rules: Xr2' = (Xr2_infinity - Xr2) / tau_Xr2; // Variable initializations: Xr2 = 0.275169025815548; V = ; time_ = ; end model FINAL__Xs_gate(Xs, V, time_) // Assignment Rules: alpha_Xs := 1100 / root(1 + exp((-(10) - V) / 6)); beta_Xs := 1 / (1 + exp((V - 60) / 20)); Xs_infinity := 1 / (1 + exp((-(5) - V) / 14)); tau_Xs := 1 * alpha_Xs * beta_Xs; // Rate Rules: Xs' = (Xs_infinity - Xs) / tau_Xs; // Variable initializations: Xs = 0.0138157627500838; V = ; time_ = ; end model FINAL__d_gate(d, alpha_d, beta_d, tau_d, gamma_d, d_infinity, V, time_) // Assignment Rules: alpha_d := 1.4 / (1 + exp((-(35) - V) / 13)) + 0.25; beta_d := 1.4 / (1 + exp((5 + V) / 5)); tau_d := 1 * alpha_d * beta_d + gamma_d; gamma_d := 1 / (1 + exp((50 - V) / 20)); d_infinity := 1 / (1 + exp((-(5) - V) / 7.5)); // Rate Rules: d' = (d_infinity - d) / tau_d; // Variable initializations: d = 0.000346485795707982; V = ; time_ = ; end model FINAL__f_gate(f, tau_f, f_infinity, V, time_) // Assignment Rules: tau_f := 1125 * exp(-power(V + 27, 2) / 240) + 165 / (1 + exp((25 - V) / 10)) + 80; f_infinity := 1 / (1 + exp((20 + V) / 7)); // Rate Rules: f' = (f_infinity - f) / tau_f; // Variable initializations: f = 0.9951755361259; V = ; time_ = ; end model FINAL__fCa_gate(fCa, tau_fCa, fCa_infinity, V, time_, Cai) // Assignment Rules: alpha_fCa := 1 / (1 + power(Cai / 0.000325, 8)); beta_fCa := 0.1 / (1 + exp((Cai - 0.0005) / 0.0001)); gamma_fCa := 0.2 / (1 + exp((Cai - 0.00075) / 0.0008)); fCa_infinity := (alpha_fCa + beta_fCa + gamma_fCa + 0.23) / 1.46; // Rate Rules: fCa' = piecewise( 0 , ( fCa_infinity > fCa) && (V > -(60) ), (fCa_infinity - fCa) / tau_fCa ); // Variable initializations: fCa = 1.0069809740354; tau_fCa = 2; V = ; time_ = ; Cai = ; end model FINAL__g_gate(g, g_infinity, tau_g, Cai, V, time_) // Assignment Rules: g_infinity := piecewise( 1 / (1 + power(Cai, 6) / power(0.00035, 6)) , Cai <= 0.00035 , 1 / (1 + power(Cai, 16) / power(0.00035, 16)) ); // Rate Rules: g' = piecewise( 0 , ( g_infinity > g) && (V > -(60) ), (g_infinity - g) / tau_g ); // Variable initializations: g = 0.99999345944766; tau_g = ; Cai = ; V = ; time_ = ; end model FINAL__NL_model(Cai_in, ForceExt, time_, cTRPN, V_LV, P_LV) // Assignment Rules: xHalfSL := (10000 * 2 * pi * radiusLV) / xDen; ForceExt := ForceP + ForceB; cTnCaEff := cTnCa / exp(R * power(xHalfSL - OptiHSL, 2)); Q_a := (Y_2 * cTnCaEff) / 1 - (Z_2 * cTnCaCB) / 1; Q_b := (Y_1 * Cai * cTn) / 1 - (Z_1 * cTnCa) / 1; Q_r := (Y_3 * cTnCaCB) / 1 - (Z_3 * cTnCB * Cai) / 1; Q_d := (Y_4 * cTnCB) / 1; Q_d1 := (Y_d * power(SlidingR * ((xHalfSL - xInext) - xLLimitCB), 2) * cTnCaCB) / 1; Q_d2 := (Y_d * power(SlidingR * ((xHalfSL - xInext) - xLLimitCB), 2) * cTnCB) / 1; cTn := ((1 - cTnCa) - cTnCaCB) - cTnCB; cCaTropC := (trpnbar * ((Q_r + Q_d2) - Q_b)) / 1; xhhh := xHalfSL - xInext; cTRPN := ((cTnCaCB + cTnCB) * trpnbar) / 1; xNewCBF := (AForceCB * (cTnCaCB + cTnCB) * trpnbar) / 1; ForceP := piecewise( xKcoeff * power(xHalfSL - 0.97, 5) , xHalfSL > 0.97 , xKcoeff2 * (xHalfSL - 0.97) ); ForceB := xNewCBF * xhhh; radiusLV := power(((3 * V_LV) / 2) / pi, 1 / 3); Tension := ForceExt * Fmult; P_LV := (((2 * Tension) / radiusLV) * 1000) / 133 - offset; Cai := Cai_in; // Rate Rules: cTnCa' = Q_b * 1 - Q_a * 1; cTnCaCB' = (Q_a * 1 - Q_r * 1) - Q_d1 * 1; cTnCB' = (Q_r * 1 - Q_d * 1) - Q_d2 * 1; xInext' = SlidingR * ((xHalfSL - xInext) - xLLimitCB); // Variable initializations: Cai_in = ; time_ = ; cTnCa = 0.059790672481515; cTnCaCB = 0.00990501329914472; cTnCB = 0.00156766416391726; Y_1 = 39; Y_2 = 0.0039; Y_3 = 0.03; Y_4 = 0.12; Y_d = 0.027; Z_1 = 0.03; Z_2 = 0.0039; Z_3 = 1560; OptiHSL = 1.17; xLLimitCB = 0.005; R = 2; SlidingR = 1.2; xInext = 0.741096216822752; trpnbar = 0.06; AForceCB = 1800000; xKcoeff = 140000; xKcoeff2 = 30; V_LV = ; Fmult = 1.2; offset = 0; xDen = 236550; end model FINAL__lung(time_, F_PC, V_PC, F_MU, V_MU) // Assignment Rules: Fpc := F_PC * 0.06; Fsc := F_MU * 0.06; Vpc := V_PC; Vsc := V_MU; SHbO2_pc := power(PO2_pc / P50_O2, nH) / (power(PO2_pc / P50_O2, nH) + 1); SHbO2_sc := power(PO2_sc / P50_O2, nH) / (power(PO2_sc / P50_O2, nH) + 1); dSHbO2dPO2_pc := (nH * power(PO2_pc, -(1)) * power(PO2_pc / P50_O2, nH)) / power(power(PO2_pc / P50_O2, nH) + 1, 2); dSHbO2dPO2_sc := (nH * power(PO2_sc, -(1)) * power(PO2_sc / P50_O2, nH)) / power(power(PO2_sc / P50_O2, nH) + 1, 2); CtO2_pc := alphaO2 * PO2_pc + CHb * SHbO2_pc * H; CtO2_sc := alphaO2 * PO2_sc + CHb * SHbO2_sc * H; DL_O2 := (root(Vpc / Vpcmax) * ((0.397 + 0.0085 * PO2_pc) - 1.3E-4 * power(PO2_pc, 2)) + 5.1E-7 * power(PO2_pc, 3) * 31.622776601683782) * 0.0316227766016838; V_O2 := (Vcytox * alphaO2 * PO2_isf) / (Kcytox + alphaO2 * PO2_isf); O2flux := DL_O2 * (PA_O2 - PO2_pc) * 22400 * 0.002678571428571428; SHbCO2_pc := (PCO2_pc / P50_CO2) / (PO2_pc / P50_CO2 + 1); SHbCO2_sc := (PCO2_sc / P50_CO2) / (PCO2_sc / P50_CO2 + 1); dSHbCO2dPCO2_pc := ((power(PCO2_pc, -(1)) * PCO2_pc) / P50_CO2) / power(PCO2_pc / P50_CO2 + 1, 2); CtCO2_pc := alphaCO2 * PCO2_pc + CHb * SHbCO2_pc * H; dSHbCO2dPCO2_sc := ((power(PCO2_sc, -(1)) * PCO2_sc) / P50_CO2) / power(PCO2_sc / P50_CO2 + 1, 2); CtCO2_sc := alphaCO2 * PCO2_sc + CHb * SHbCO2_sc * H; DL_CO2 := root(Vpc / Vpcmax) * 16.67 * 0.0316227766016838; V_CO2 := RQ * V_O2; CO2flux := DL_CO2 * (PA_CO2 - PCO2_pc) * 22400 * 0.002678571428571428; QdotCA := (((Pc + Ppl) - PA) / Rs) * 1000.0000000000001; QdotDC := ((PD - (Pc + Ppl)) / Rc) * 1000.0000000000001; QdotED := QdotDC; Pao_O2 := (Pao - PH2O) * 0.21; Pao_CO2 := (Pao - PH2O) * 3E-4; Pao_N2 := ((Pao - PH2O) - Pao_O2) - Pao_CO2; PD_N2 := (((PD + Pao * 1.3565) - PD_O2 * 1.3565) - PD_CO2 * 1.3565) * 0.7371913011426465; PC_N2 := (((Pc + Ppl + Pao * 1.3565) - PC_O2 * 1.3565) - PC_CO2 * 1.3565) * 0.7371913011426465; PA_N2 := (((PA + Pao * 1.3565) - PA_O2 * 1.3565) - PA_CO2 * 1.3565) * 0.7371913011426465; Rs := As * exp((Ks * (VA - RV)) / (Vstar - RV)) + Bs; Rc := Kc * power(Vcmax / Vc, 2); Ru := Au + Ku * abs(dVdt) * 1000.0000000000006; Vcw := VA + VD; Pcw := Acw * -(1) + Bcw * log((TLC - RV) / (Vcw - RV) - 0.999); Pl := Al * exp(Kl * VA) + Bl; PA := Ppl + Pl + Pve; Pc := piecewise( Ac - Bc * power(Vc / Vcmax - 0.7, 2) , Vc / Vcmax < 0.5 , 5.6 - Bcp * log(Vcmax / Vc - 0.999) ); Pve := Vve / Cve; Ppl := Pcw - Pmus; PplmmHg := Ppl * 0.7371913011426465; PD := Pc + Ppl + Rc * (dVcdt + (((Pc + Ppl) - PA) / Rs) * 0.001) * 1E3; Pmus := Amus * sin(6.283185307179586 * f * time_ * 1.6666666666666667E-5) + Amus; dVdt := ((Vcw - dV) / tau) * 0.001; dVcdt := (((Pmus - Pc) - Pcw) / (Ru + Rs) - ((Pc - Pl) - Pve) / Rs) * 0.001; dVAdt := (((Pc - Pl) - Pve) / Rs - ((Pstp * Tbody) / ((PA + 1030.94) * Tstp)) * (O2flux + CO2flux) * 2.2608333333333332E-5) * 0.001; // Rate Rules: PO2_pc' = ((Fpc * (CtO2_sc - CtO2_pc) + DL_O2 * (PA_O2 - PO2_pc) * 0.0026785714285714286) / (Vpc * (alphaO2 + H * CHb * dSHbO2dPO2_pc))) * 0.01666666666666667; PO2_sc' = ((Fsc * (CtO2_pc - CtO2_sc) + PS * alphaO2 * (PO2_isf - PO2_sc) * 9.999999999999998E-4) / (Vsc * (alphaO2 + H * CHb * dSHbO2dPO2_sc))) * 0.01666666666666667; PA_O2' = piecewise( ((QdotCA * PC_O2 - PA_O2 * dVAdt * 1000000.0000000001) / VA - ((((Pstp * Tbody) / Tstp) * O2flux) / VA) * 0.01666666666666667) * 1.0000000000000002E-6 , dVAdt > 0 , ((QdotCA * PA_O2 - PA_O2 * dVAdt * 1000000.0000000001) / VA - ((((Pstp * Tbody) / Tstp) * O2flux) / VA) * 0.01666666666666667) * 1.0000000000000002E-6 ); PO2_isf' = ((PS * (PO2_sc - PO2_isf)) / Visf - (V_O2 / (alphaO2 * Visf)) * 1E3) * 1.666666666666667E-5; PCO2_pc' = ((Fpc * (CtCO2_sc - CtCO2_pc) + DL_CO2 * (PA_CO2 - PCO2_pc) * 0.0026785714285714286) / (Vpc * (alphaCO2 + H * CHb * dSHbCO2dPCO2_pc))) * 0.01666666666666667; PCO2_sc' = ((Fsc * (CtCO2_pc - CtCO2_sc) + PS * alphaCO2 * (PCO2_isf - PCO2_sc) * 9.999999999999998E-4) / (Vsc * (alphaCO2 + H * CHb * dSHbCO2dPCO2_sc))) * 0.01666666666666667; PA_CO2' = piecewise( ((QdotCA * PC_CO2 - PA_CO2 * dVAdt * 1000000.0000000001) / VA - ((((Pstp * Tbody) / Tstp) * CO2flux) / VA) * 0.01666666666666667) * 1.0000000000000002E-6 , dVAdt > 0 , ((QdotCA * PA_CO2 - PA_CO2 * dVAdt * 1000000.0000000001) / VA - ((((Pstp * Tbody) / Tstp) * CO2flux) / VA) * 0.01666666666666667) * 1.0000000000000002E-6 ); PCO2_isf' = ((PS * (PCO2_sc - PCO2_isf)) / Visf + (V_CO2 / (alphaCO2 * Visf)) * 1E3) * 1.666666666666667E-5; PD_O2' = piecewise( ((QdotED * Pao_O2 - QdotDC * PD_O2) / VD) * 1.0000000000000002E-6 , dVAdt > 0 , ((QdotED * PD_O2 - QdotDC * PC_O2) / VD) * 1.0000000000000002E-6 ); PC_O2' = piecewise( (((QdotDC * PD_O2 - QdotCA * PC_O2) - PC_O2 * dVcdt * 1000000.0000000001) / Vc) * 1.0000000000000002E-6 , dVAdt > 0 , (((QdotDC * PC_O2 - QdotCA * PA_O2) - PC_O2 * dVcdt * 1000000.0000000001) / Vc) * 1.0000000000000002E-6 ); Vc' = (((Pmus - Pc) - Pcw) / (Ru + Rs) - ((Pc - Pl) - Pve) / Rs) * 0.001; dV' = ((Vcw - dV) / tau) * 0.001; VA' = (((Pc - Pl) - Pve) / Rs - ((Pstp * Tbody) / ((PA + 1030.94) * Tstp)) * (O2flux + CO2flux) * 2.2608333333333332E-5) * 0.001; PD_CO2' = piecewise( ((QdotED * Pao_CO2 - QdotDC * PD_CO2) / VD) * 1.0000000000000002E-6 , dVAdt > 0 , ((QdotED * PD_CO2 - QdotDC * PC_CO2) / VD) * 1.0000000000000002E-6 ); PC_CO2' = piecewise( (((QdotDC * PD_CO2 - QdotCA * PC_CO2) - PC_CO2 * dVcdt * 1000000.0000000001) / Vc) * 1.0000000000000002E-6 , dVAdt > 0 , (((QdotDC * PC_CO2 - QdotCA * PA_CO2) - PC_CO2 * dVcdt * 1000000.0000000001) / Vc) * 1.0000000000000002E-6 ); // Variable initializations: time_ = ; F_PC = ; V_PC = ; F_MU = ; V_MU = ; Tbody = 300; Pstp = 760; Tstp = 273; PO2_pc = 58.5987098171338; PO2_sc = 3.98485499218493; nH = 3.5; P50_O2 = 26.5; CHb = 0.0204; H = 0.45; alphaO2 = 1.36e-6; PA_O2 = 84.5907622728202; Vpcmax = 0.07125; PO2_isf = 0.000255720054332517; Visf = 48000; PS = 600000; Vcytox = 0.0126; Kcytox = 1e-9; PCO2_pc = 27.0873474614805; PCO2_sc = 74.7200600017978; P50_CO2 = 250; alphaCO2 = 3.264e-5; PA_CO2 = 26.9281383029831; PCO2_isf = 74.7805551351833; RQ = 0.8; Pao = 760; PH2O = 47; PD_O2 = 137.481485816086; PC_O2 = 129.526915731438; Vc = 0.0807533336512639; dV = 3.38422831502523; VA = 3.24550268572493; Vve = -0.07949414; RV = 1.9; TLC = 7.3; VD = 0.185; f = 15; Ac = 7.09; Acw = 1.4; Al = 0.2; As = 2.2; Au = 0.34; Bc = 37.3; Bcp = 3.73; Bcw = -3.5; Bl = -0.5; Bs = 0.02; Cve = 0.5; Kc = 0.21; Kl = 1; Ks = -10.9; Ku = 0.46; Vstar = 5.3; Vcmax = 0.185; tau = 0.1; Amus = 2; PD_CO2 = 5.25565008853068; PC_CO2 = 8.52962553969249; end model *FINAL____main() // Sub-modules, and any changes to those submodules: SAmembrane: FINAL__SAmembrane(V, R, T, F, Cm, time_, i_Na, i_K1, i_to, i_Kur, i_Kr, i_Ks, i_Ca_L, i_CaP, i_NaK, i_NaCa, i_B_Na, i_B_Ca, i_Ca_T, i_f, i_KACh, ISAout, ISAout_atrium); fast_sodium_current: FINAL__fast_sodium_current(i_Na, E_Na, Cm, time_, V, Na_i, Na_o, R, F, T, m0, h0, j0); time_independent_potassium_current: FINAL__time_independent_potassium_current(i_K1, E_K, Cm, V, K_o, R, F, T, K_i); transient_outward_K_current: FINAL__transient_outward_K_current(i_to, K_Q10, Cm, E_K, time_, V, oa, oi); ultrarapid_delayed_rectifier_K_current: FINAL__ultrarapid_delayed_rectifier_K_current(i_Kur, Cm, time_, V, E_K, K_Q10, ua, ui); rapid_delayed_rectifier_K_current: FINAL__rapid_delayed_rectifier_K_current(i_Kr, Cm, time_, V, E_K, xr); slow_delayed_rectifier_K_current: FINAL__slow_delayed_rectifier_K_current(i_Ks, Cm, time_, V, E_K, xs); L_type_Ca_channel: FINAL__L_type_Ca_channel(i_Ca_L, Cm, time_, V, Ca_i, d0, f0, f_Ca); sodium_potassium_pump: FINAL__sodium_potassium_pump(i_NaK, Cm, K_o, Na_i, Na_o, V, R, T, F); background_currents: FINAL__background_currents(i_B_Na, i_B_Ca, i_B_K, Cm, E_K, E_Na, V, Ca_i, Ca_o, R, F, T); Na_Ca_exchanger_current: FINAL__Na_Ca_exchanger_current(i_NaCa, Cm, V, R, T, F, Na_i, Na_o, Ca_i, Ca_o); sarcolemmal_calcium_pump_current: FINAL__sarcolemmal_calcium_pump_current(i_CaP, Cm, Ca_i); Ca_release_current_from_JSR: FINAL__Ca_release_current_from_JSR(i_rel, Fn, V_rel, time_, V, Ca_i, Ca_rel, i_Ca_L, i_NaCa, F, u, v, w); transfer_current_from_NSR_to_JSR: FINAL__transfer_current_from_NSR_to_JSR(i_tr, time_, Ca_rel, Ca_up); Ca_uptake_current_by_the_NSR: FINAL__Ca_uptake_current_by_the_NSR(I_up_max, i_up, time_, Ca_i); Ca_leak_current_by_the_NSR: FINAL__Ca_leak_current_by_the_NSR(i_up_leak, time_, Ca_up, I_up_max); Ca_buffers: FINAL__Ca_buffers(CMDN_max, TRPN_max, CSQN_max, Km_CMDN, Km_TRPN, Km_CSQN, time_, Ca_i, Ca_rel); intracellular_ion_concentrations: FINAL__intracellular_ion_concentrations(Na_i, Ca_i, K_i, Ca_rel, Ca_up, V_rel, time_, F, i_NaK, i_NaCa, i_B_Na, i_Na, i_K1, i_to, i_Kur, i_Kr, i_Ks, i_CaP, i_Ca_L, i_B_Ca, i_B_K, i_up, i_up_leak, i_tr, i_rel, Km_CMDN, Km_CSQN, Km_TRPN, CMDN_max, CSQN_max, TRPN_max); funny_current: FINAL__funny_current(V, time_, i_f); T_type_Ca_channel: FINAL__T_type_Ca_channel(i_Ca_T, time_, V, d_T, f_T); standard_ionic_concentrations: FINAL__standard_ionic_concentrations(Na_o, Ca_o, K_o); ACh_dependent_potassium_current: FINAL__ACh_dependent_potassium_current(i_KACh, time_, V, E_K, Cm, y); environment: FINAL__environment(time_, HR, hrf); LATiming: FINAL__LATiming(time_, HR, beattime, hrf, ISAout_atrium); LAElastanceFunction: FINAL__LAElastanceFunction(beattime, hrf, E_LA); LeftAtrium: FINAL__LeftAtrium(time_, E_LA, P_PV, F_LV, V_LA, P_LA, F_LA, conc_X_LA, conc_X_PV); LeftVentricle: FINAL__LeftVentricle(time_, F_AO, F_CO, P_LA, V_LV, P_LV, F_LV, conc_X_LV, conc_X_LA); Aorta: FINAL__Aorta(time_, F_CR, P_LV, F_AR, V_AO, F_AO, P_AO, conc_X_AO, conc_X_LV); CoronaryCirc: FINAL__CoronaryCirc(time_, P_LV, P_RA, F_CO, F_COV, V_CO, P_CO, conc_X_CO, conc_X_LV); CarotidCirc: FINAL__CarotidCirc(time_, P_AO, P_VC, F_CR, F_CRV, V_CR, P_CR, conc_X_CR, conc_X_AO); Arteries: FINAL__Arteries(time_, F_AD, F_MU, F_GI, F_LI, F_KI, F_OT, F_SK, P_AO, V_AR, F_AR, P_AR, conc_X_AR, conc_X_AO); Adipose: FINAL__Adipose(time_, P_AR, P_VE, V_AD, F_AD, F_ADV, P_AD, conc_X_AD, conc_X_AR); Muscle: FINAL__Muscle(time_, P_AR, P_VE, V_MU, F_MU, F_MUV, P_MU, conc_X_MU, conc_X_AR); GutIntestine: FINAL__GutIntestine(time_, P_AR, P_LI, V_GI, F_GI, F_GIV, P_GI, conc_X_GI, conc_X_AR); Liver: FINAL__Liver(time_, P_AR, P_VE, V_LI, F_LI, F_GIV, F_LIV, P_LI, conc_X_LI, conc_X_AR, conc_X_GI); Kidney: FINAL__Kidney(time_, P_AR, P_VE, V_KI, F_KI, F_KIV, P_KI, conc_X_KI, conc_X_AR); Skin: FINAL__Skin(time_, P_AR, P_VE, V_SK, F_SK, F_SKV, P_SK, conc_X_SK, conc_X_AR); OtherTissue: FINAL__OtherTissue(time_, P_AR, P_VE, V_OT, F_OT, F_OTV, P_OT, conc_X_OT, conc_X_AR); Veins: FINAL__Veins(time_, F_ADV, F_MUV, F_LIV, F_KIV, F_OTV, F_SKV, P_VC, V_VE, F_VE, F_VEV, P_VE, conc_X_VE, conc_X_AD, conc_X_MU, conc_X_LI, conc_X_KI, conc_X_SK, conc_X_OT); VenaCava: FINAL__VenaCava(time_, F_VEV, P_RA, F_CRV, V_VC, F_VC, F_VCV, P_VC, conc_X_VC, conc_X_VE, conc_X_CR); RATiming: FINAL__RATiming(time_, HR, time_0, hrf, ISAout_atrium); RAElastanceFunction: FINAL__RAElastanceFunction(time_0, hrf, E_RA); RightAtrium: FINAL__RightAtrium(time_, E_RA, F_RV, F_VCV, F_COV, V_RA, P_RA, F_RA, conc_X_RA, conc_X_VC, conc_X_CO); RightVentricle: FINAL__RightVentricle(time_, P_RA, F_PA, V_RV, P_RV, F_RV, conc_X_RV, conc_X_RA, P_LV, V_LV); PulmonaryArtery: FINAL__PulmonaryArtery(time_, F_Pa, P_RV, F_PA, V_PA, P_PA, conc_X_PA, conc_X_RV); PulmonaryArteries: FINAL__PulmonaryArteries(time_, P_PA, F_PC, F_SH, V_Pa, F_Pa, P_Pa, conc_X_Pa, conc_X_PA); Shunt: FINAL__Shunt(time_, F_SH, P_Pa, P_PC); PulmonaryCapillaries: FINAL__PulmonaryCapillaries(time_, P_Pa, P_PV, V_PC, F_PC, F_PCV, P_PC, conc_X_PC, conc_X_Pa); PulmonaryVein: FINAL__PulmonaryVein(time_, F_PCV, F_SH, F_LA, V_PV, F_PV, P_PV, conc_X_PV, conc_X_PC, conc_X_Pa); additional_currents: FINAL__additional_currents(IK_additional, ICa_additional, INa_additional, JCaSR_additional, Istim, Cai0); default_parameters: FINAL__default_parameters(Am, Cm0, Capacitance, T0, vC, vSR, g_Na, g_K1, g_to, g_Kr, g_Ks, g_pK, g_bNa, g_bCa, multiplier_2, P_NaK, K_mNa, K_mK, g_CaL, Bufc, Kbufc, Bufsr, Kbufsr, Nao, Ko, Cao, V_leak, K_up, Vmax_up, a_rel, b_rel, c_rel, tau_g, g_pCa, K_pCa, k_NaCa, K_mNai, K_mCa, k_sat, gamma, alpha); default_initial_conditions: FINAL__default_initial_conditions(V_initial, m_initial, h_initial, j_initial, s_initial, r_initial, Xr1_initial, Xr2_initial, Xs_initial, d_initial, f_initial, fCa_initial, g_initial, Nai_initial, Ki_initial, Cai_total_initial, CaSR_total_initial); membrane_potential: FINAL__membrane_potential(V0, V_initial, Cm0, time_, Itotal); total_membrane_current: FINAL__total_membrane_current(Itotal, ICa_additional, INa_additional, IK_additional, INa0, IK10, Ito0, IKr0, IKs0, ICaL0, INaCa0, INaK0, IpCa0, IpK0, IbCa0, IbNa0, ISAout); K_flux: FINAL__K_flux(K_flux0, vC, Am, F1, IK_additional, IK10, Ito0, IKr0, IKs0, INaK0, IpK0); Na_flux: FINAL__Na_flux(Na_flux0, vC, Am, F0, INa_additional, INa0, IbNa0, INaK0, INaCa0); Ca_flux: FINAL__Ca_flux(Ca_flux0, vC, Am, F2, ICa_additional, ICaL0, IbCa0, IpCa0, INaCa0); Ca_SR_flux: FINAL__Ca_SR_flux(Ca_SR_flux0, Jleak0, Jup0, Jrel0, JCaSR_additional); INa: FINAL__INa(INa0, time_, V0, reversal_potential0, g_Na, m, h, j); IK1: FINAL__IK1(IK10, g_K1, V0, Ko, reversal_potential, K1_infinity); Ito: FINAL__Ito(Ito0, g_to, reversal_potential, V0, time_, s, r); IKr: FINAL__IKr(IKr0, g_Kr, time_, V0, reversal_potential, Ko, Xr1, Xr2); IKs: FINAL__IKs(IKs0, g_Ks, time_, V0, reversal_potential1, Xs); INaK: FINAL__INaK(INaK0, P_NaK, K_mNa, K_mK, V0, R0, T0, F0, Nai0, Ko); IpK: FINAL__IpK(IpK0, g_pK, V0, reversal_potential); IbNa: FINAL__IbNa(IbNa0, g_bNa, V0, reversal_potential0); ICaL: FINAL__ICaL(ICaL0, g_CaL, time_, V0, Cai0, Cao, R1, T0, F2, d, f, fCa); IpCa: FINAL__IpCa(IpCa0, g_pCa, K_pCa, Cai0); INaCa: FINAL__INaCa(INaCa0, k_NaCa, K_mNai, K_mCa, k_sat, gamma, alpha, V0, R0, T0, F0, Nai0, Nao, Cai0, Cao); IbCa: FINAL__IbCa(IbCa0, g_bCa, V0, reversal_potential2); ENa: FINAL__ENa(T0, Nai0, Nao, R0, F0, reversal_potential0); EK: FINAL__EK(T0, Ki0, Ko, R2, F1, reversal_potential); ECa: FINAL__ECa(T0, Cai0, Cao, R1, F2, reversal_potential2); EKs: FINAL__EKs(T0, Ki0, Ko, Nai0, Nao, multiplier_2, R3, F3, reversal_potential1); Nai: FINAL__Nai(Nai0, time_, Na_flux0); Ki: FINAL__Ki(Ki0, time_, K_flux0); Cai: FINAL__Cai(Cai0, CaSR, Cai_total, CaSR_total, Cai_buf, CaSR_buf, Bufc, Kbufc, Bufsr, Kbufsr, vSR, vC, Am, F2, time_, Cm0, Ca_flux0, Ca_SR_flux0); Jleak: FINAL__Jleak(Jleak0, V_leak, Cai0, CaSR); Jup: FINAL__Jup(Jup0, Vmax_up, Cai0, K_up); Jrel: FINAL__Jrel(Jrel0, Cai0, CaSR, a_rel, b_rel, c_rel, tau_g, V0, time_, d, g); m_gate: FINAL__m_gate(m, tau_m, m_infinity, V0, time_); h_gate: FINAL__h_gate(h, tau_h, h_infinity, V0, time_); j_gate: FINAL__j_gate(j, tau_j, j_infinity, V0, time_); K1_gate: FINAL__K1_gate(K1_infinity, reversal_potential, V0); r_gate: FINAL__r_gate(r, V0, time_); s_gate: FINAL__s_gate(s, V0, time_); Xr1_gate: FINAL__Xr1_gate(Xr1, V0, time_); Xr2_gate: FINAL__Xr2_gate(Xr2, V0, time_); Xs_gate: FINAL__Xs_gate(Xs, V0, time_); d_gate: FINAL__d_gate(d, alpha_d, beta_d, tau_d, gamma_d, d_infinity, V0, time_); f_gate: FINAL__f_gate(f, tau_f, f_infinity, V0, time_); fCa_gate: FINAL__fCa_gate(fCa, tau_fCa, fCa_infinity, V0, time_, Cai0); g_gate: FINAL__g_gate(g, g_infinity, tau_g, Cai0, V0, time_); NL_model: FINAL__NL_model(Cai0, ForceExt, time_, cTRPN, V_LV, P_LV); lung: FINAL__lung(time_, F_PC, V_PC, F_MU, V_MU); end