//Created by libAntimony v2.4 model jafri_1998__environment(time_) // Variable initializations: time_ = ; end model jafri_1998__membrane(V, R, T, F, time_, i_Na, i_Ca_L_Ca, i_Ca_L_K, i_K, i_K1, i_NaCa, i_Kp, i_p_Ca, i_Na_b, i_Ca_b, i_NaK, i_ns_Ca) // Assignment Rules: I_stim := piecewise( stim_amplitude , (( geq(time_, stim_start)) && (time_ <= stim_end) && ((time_ - stim_start) - floor((time_ - stim_start) / stim_period) * stim_period <= stim_duration )), 0 ); // Rate Rules: V' = (I_stim - (i_Na + i_Ca_L_Ca + i_Ca_L_K + i_K + i_NaCa + i_K1 + i_Kp + i_p_Ca + i_Na_b + i_Ca_b + i_NaK + i_ns_Ca)) / Cm; // Variable initializations: V = -84.1638; R = 8.3145e3; T = 310; F = 9.6845e4; time_ = ; i_Na = ; i_Ca_L_Ca = ; i_Ca_L_K = ; i_K = ; i_K1 = ; i_NaCa = ; i_Kp = ; i_p_Ca = ; i_Na_b = ; i_Ca_b = ; i_NaK = ; i_ns_Ca = ; Cm = 0.01; stim_start = 100; stim_end = 10100; stim_period = 500; stim_duration = 1; stim_amplitude = 0.516289; end model jafri_1998__fast_sodium_current_m_gate(m, V, time_) // Assignment Rules: alpha_m := (0.32 * (V + 47.13)) / (1 - exp(-(0.1) * (V + 47.13))); beta_m := 0.08 * exp(- V / 11); // Rate Rules: m' = alpha_m * (1 - m) - beta_m * m; // Variable initializations: m = 0.0328302; V = ; time_ = ; end model jafri_1998__fast_sodium_current_h_gate(h, V, time_) // Assignment Rules: alpha_h := piecewise( 0.135 * exp((80 + V) / -(6.8)) , V < -(40) , 0 ); beta_h := piecewise( 3.56 * exp(0.079 * V) + 310000 * exp(0.35 * V) , V < -(40) , 1 / (0.13 * (1 + exp((V + 10.66) / -(11.1)))) ); // Rate Rules: h' = alpha_h * (1 - h) - beta_h * h; // Variable initializations: h = 0.988354; V = ; time_ = ; end model jafri_1998__fast_sodium_current_j_gate(j, V, time_) // Assignment Rules: alpha_j := piecewise( ((-(127140) * exp(0.2444 * V) - 0.00003474 * 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(-(0.0000002535) * V)) / (1 + exp(-(0.1) * (V + 32))) ); // Rate Rules: j' = alpha_j * (1 - j) - beta_j * j; // Variable initializations: j = 0.99254; V = ; time_ = ; end model jafri_1998__fast_sodium_current(i_Na, E_Na, time_, V, R, T, F, Nai, Nao, m, h, j) // Sub-modules, and any changes to those submodules: fast_sodium_current_m_gate: jafri_1998__fast_sodium_current_m_gate(m, V, time_); fast_sodium_current_h_gate: jafri_1998__fast_sodium_current_h_gate(h, V, time_); fast_sodium_current_j_gate: jafri_1998__fast_sodium_current_j_gate(j, V, time_); // Assignment Rules: i_Na := g_Na * power(m, 3) * h * j * (V - E_Na); E_Na := ((R * T) / F) * ln(Nao / Nai); // Variable initializations: g_Na = 0.128; R = ; T = ; F = ; Nai = ; Nao = ; end model jafri_1998__L_type_Ca_channel_y_gate(y, V, time_) // Assignment Rules: y_infinity := 1 / (1 + exp((V + 55) / 7.5)) + 0.1 / (1 + exp((- V + 21) / 6)); tau_y := 20 + 600 / (1 + exp((V + 30) / 9.5)); // Rate Rules: y' = (y_infinity - y) / tau_y; // Variable initializations: y = 0.998983; V = ; time_ = ; end model jafri_1998__L_type_Ca_channel(i_Ca_L_Ca, i_Ca_L_K, time_, V, Ca_SS, Cao, Ko, Ki, R, T, F, y) // Sub-modules, and any changes to those submodules: L_type_Ca_channel_y_gate: jafri_1998__L_type_Ca_channel_y_gate(y, V, time_); // Assignment Rules: i_Ca_L_Ca := i_Ca_L_Ca_max * y * (O + O_Ca); i_Ca_L_K := (((1 * p_k * y * (O + O_Ca) * V * power(F, 2)) / (R * T)) * (Ki * exp((V * F) / (R * T)) - Ko)) / (exp((V * F) / (R * T)) - 1); p_k := P_K / (1 + i_Ca_L_Ca_max / i_Ca_L_Ca_half); i_Ca_L_Ca_max := 1 * ((((P_Ca * 4 * V * power(F, 2)) / (R * T)) * (0.001 * exp((2 * V * F) / (R * T)) - 0.341 * Cao)) / (exp((2 * V * F) / (R * T)) - 1)); alpha := 0.4 * exp((V + 12) / 10); beta := 0.05 * exp((V + 12) / -(13)); gamma := (0.1875 * Ca_SS) / 1; alpha_a := alpha * a; beta_b := beta / b; // Rate Rules: O' = f * C4 - g * O; O_Ca' = f_ * C_Ca4 - g_ * O_Ca; C0' = (beta * C1 + omega * C_Ca0) - (4 * alpha + gamma) * C0; C1' = (4 * alpha * C0 + 2 * beta * C2 + (omega / b) * C_Ca1) - (beta + 3 * alpha + gamma * a) * C1; C2' = (3 * alpha * C1 + 3 * beta * C3 + (omega / power(b, 2)) * C_Ca2) - (beta * 2 + 2 * alpha + gamma * power(a, 2)) * C2; C3' = (2 * alpha * C2 + 4 * beta * C4 + (omega / power(b, 3)) * C_Ca3) - (beta * 3 + alpha + gamma * power(a, 3)) * C3; C4' = (alpha * C3 + g * O + (omega / power(b, 4)) * C_Ca4) - (beta * 4 + f + gamma * power(a, 4)) * C4; C_Ca0' = (beta_b * C_Ca1 + gamma * C_Ca0) - (4 * alpha_a + omega) * C_Ca0; C_Ca1' = (4 * alpha_a * C_Ca0 + 2 * beta_b * C_Ca2 + gamma * a * C1) - (beta_b + 3 * alpha_a + omega / b) * C_Ca1; C_Ca2' = (3 * alpha_a * C_Ca1 + 3 * beta_b * C_Ca3 + gamma * power(a, 2) * C2) - (beta_b * 2 + 2 * alpha_a + omega / power(b, 2)) * C_Ca2; C_Ca3' = (2 * alpha_a * C_Ca2 + 4 * beta_b * C_Ca4 + gamma * power(a, 3) * C3) - (beta_b * 3 + alpha_a + omega / power(b, 3)) * C_Ca3; C_Ca4' = (alpha_a * C_Ca3 + g_ * O_Ca + gamma * power(a, 4) * C4) - (beta_b * 4 + f_ + omega / power(b, 4)) * C_Ca4; // Variable initializations: P_Ca = 33.75e-6; P_K = 1e-9; i_Ca_L_Ca_half = -4.58e-3; O = 9.84546e-21; O_Ca = 0; a = 2; b = 2; g = 2; f = 0.3; g_ = 0; f_ = 0; omega = 0.01; C0 = 0.997208; C1 = 6.38897e-5; C2 = 1.535e-9; C3 = 1.63909e-14; C4 = 6.56337e-20; C_Ca0 = 2.72826e-3; C_Ca1 = 6.99215e-7; C_Ca2 = 6.71989e-11; C_Ca3 = 2.87031e-15; C_Ca4 = 4.59752e-20; Ca_SS = ; Cao = ; Ko = ; Ki = ; R = ; T = ; F = ; end model jafri_1998__time_dependent_potassium_current_X_gate(X, V, time_) // Assignment Rules: alpha_X := (0.0000719 * (V + 30)) / (1 - exp(-(0.148) * (V + 30))); beta_X := (0.000131 * (V + 30)) / (-(1) + exp(0.0687 * (V + 30))); // Rate Rules: X' = alpha_X * (1 - X) - beta_X * X; // Variable initializations: X = 0.000928836; V = ; time_ = ; end model jafri_1998__time_dependent_potassium_current_Xi_gate(Xi, V, time_) // Assignment Rules: Xi := 1 / (1 + exp((V - 56.26) / 32.1)); // Variable initializations: V = ; time_ = ; end model jafri_1998__time_dependent_potassium_current(i_K, time_, V, Ko, Ki, Nao, Nai, R, T, F, X, Xi) // Sub-modules, and any changes to those submodules: time_dependent_potassium_current_X_gate: jafri_1998__time_dependent_potassium_current_X_gate(X, V, time_); time_dependent_potassium_current_Xi_gate: jafri_1998__time_dependent_potassium_current_Xi_gate(Xi, V, time_); // Assignment Rules: i_K := g_K * Xi * power(X, 2) * (V - E_K); g_K := g_K_max * root(Ko / 5.4); E_K := ((R * T) / F) * ln((Ko + P_NaK * Nao) / (Ki + P_NaK * Nai)); // Variable initializations: g_K_max = 0.001128; P_NaK = 0.01833; Ko = ; Ki = ; Nao = ; Nai = ; R = ; T = ; F = ; end model jafri_1998__time_independent_potassium_current_K1_gate(K1_infinity, V, time_, E_K1) // Assignment Rules: K1_infinity := alpha_K1 / (alpha_K1 + beta_K1); alpha_K1 := 1.02 / (1 + exp(0.2385 * ((V - E_K1) - 59.215))); beta_K1 := (0.49124 * (exp(0.08032 * ((V + 5.476) - E_K1)) + exp(0.06175 * (V - (E_K1 + 594.31))))) / (1 + exp(-(0.5143) * ((V - E_K1) + 4.753))); // Variable initializations: V = ; time_ = ; E_K1 = ; end model jafri_1998__time_independent_potassium_current(i_K1, E_K1, time_, V, Ko, Ki, R, T, F, K1_infinity) // Sub-modules, and any changes to those submodules: time_independent_potassium_current_K1_gate: jafri_1998__time_independent_potassium_current_K1_gate(K1_infinity, V, time_, E_K1); // Assignment Rules: i_K1 := g_K1 * K1_infinity * (V - E_K1); E_K1 := ((R * T) / F) * ln(Ko / Ki); g_K1 := g_K1_max * root(Ko / 5.4); // Variable initializations: g_K1_max = 7.5e-3; Ko = ; Ki = ; R = ; T = ; F = ; end model jafri_1998__plateau_potassium_current(i_Kp, time_, V, E_K1) // Assignment Rules: i_Kp := g_Kp * Kp * (V - E_Kp); E_Kp := E_K1; Kp := 1 / (1 + exp((7.488 - V) / 5.98)); // Variable initializations: g_Kp = 8.28e-5; time_ = ; V = ; E_K1 = ; end model jafri_1998__Na_Ca_exchanger(i_NaCa, time_, V, R, T, F, Nai, Nao, Cai, Cao) // Assignment Rules: i_NaCa := ((((((k_NaCa * 1) / (power(K_mNa, 3) + power(Nao, 3))) * 1) / (K_mCa + Cao)) * 1) / (1 + k_sat * exp(((eta - 1) * V * F) / (R * T)))) * (exp((eta * V * F) / (R * T)) * power(Nai, 3) * Cao - exp(((eta - 1) * V * F) / (R * T)) * power(Nao, 3) * Cai); // Variable initializations: k_NaCa = 50; K_mNa = 87.5; K_mCa = 1.38; k_sat = 0.1; eta = 0.35; time_ = ; V = ; R = ; T = ; F = ; Nai = ; Nao = ; Cai = ; Cao = ; end model jafri_1998__sarcolemmal_calcium_pump(i_p_Ca, time_, Cai) // Assignment Rules: i_p_Ca := (I_pCa * Cai) / (K_mpCa + Cai); // Variable initializations: K_mpCa = 0.5e-3; I_pCa = 1.15e-2; time_ = ; Cai = ; end model jafri_1998__sodium_background_current(i_Na_b, time_, V, E_Na) // Assignment Rules: i_Na_b := g_Nab * (V - E_NaN); E_NaN := E_Na; // Variable initializations: g_Nab = 1.41e-5; time_ = ; V = ; E_Na = ; end model jafri_1998__calcium_background_current(i_Ca_b, time_, V, R, T, F, Cai, Cao) // Assignment Rules: i_Ca_b := g_Cab * (V - E_CaN); E_CaN := ((R * T) / (2 * F)) * ln(Cao / Cai); // Variable initializations: g_Cab = 6.032e-5; time_ = ; V = ; R = ; T = ; F = ; Cai = ; Cao = ; end model jafri_1998__sodium_potassium_pump(i_NaK, time_, V, R, T, F, Nai, Nao, Ko) // Assignment Rules: i_NaK := (((I_NaK * f_NaK * 1) / (1 + power(K_mNai / Nai, 1.5))) * Ko) / (Ko + K_mKo); f_NaK := 1 / (1 + 0.1245 * exp((-(0.1) * V * F) / (R * T)) + 0.0365 * sigma * exp((- V * F) / (R * T))); sigma := (1 / 7) * (exp(Nao / 67.3) - 1); // Variable initializations: I_NaK = 0.013; K_mNai = 10; K_mKo = 1.5; time_ = ; V = ; R = ; T = ; F = ; Nai = ; Nao = ; Ko = ; end model jafri_1998__non_specific_calcium_activated_current(i_ns_Ca, i_ns_Na, i_ns_K, time_, Cai, V, R, T, F, Nao, Ko, Nai, Ki) // Assignment Rules: i_ns_Ca := i_ns_Na + i_ns_K; i_ns_Na := (I_ns_Na * 1) / (1 + power(K_m_ns_Ca / Cai, 3)); i_ns_K := (I_ns_K * 1) / (1 + power(K_m_ns_Ca / Cai, 3)); I_ns_Na := (((1 * P_ns_Ca * power(1, 2) * VnsCa * power(F, 2)) / (R * T)) * (0.75 * Nai * exp((VnsCa * F) / (R * T)) - 0.75 * Nao)) / (exp((VnsCa * F) / (R * T)) - 1); I_ns_K := (((1 * P_ns_Ca * power(1, 2) * VnsCa * power(F, 2)) / (R * T)) * (0.75 * Ki * exp((VnsCa * F) / (R * T)) - 0.75 * Ko)) / (exp((VnsCa * F) / (R * T)) - 1); EnsCa := ((R * T) / F) * ln((Ko + Nao) / (Ki + Nai)); VnsCa := V - EnsCa; // Variable initializations: K_m_ns_Ca = 1.2e-3; P_ns_Ca = 1.75e-9; time_ = ; Cai = ; V = ; R = ; T = ; F = ; Nao = ; Ko = ; Nai = ; Ki = ; end model jafri_1998__calcium_subsystem(Cai, Ca_SS, Am, V_myo, time_, F, i_Ca_b, i_Ca_L_Ca, i_NaCa, i_p_Ca) // Assignment Rules: RyR_open := P_O1 + P_O2; V_JSR := 0.00464 * V_myo; V_NSR := 0.081 * V_myo; V_SS := 5.828e-5 * V_myo; Bi := 1 / (1 + (CMDN_tot * K_mCMDN) / power(K_mCMDN + Cai, 2)); B_SS := 1 / (1 + (CMDN_tot * K_mCMDN) / power(K_mCMDN + Ca_SS, 2)); B_JSR := 1 / (1 + (CSQN_tot * K_mCSQN) / power(K_mCSQN + Ca_JSR, 2)); J_rel := v1 * RyR_open * (Ca_JSR - Ca_SS); J_leak := v2 * (Ca_NSR - Cai); J_up := (v3 * power(Cai, 2)) / (power(K_mup, 2) + power(Cai, 2)); J_tr := (Ca_NSR - Ca_JSR) / tau_tr; J_xfer := (Ca_SS - Cai) / tau_xfer; J_trpn := J_htrpn + J_ltrpn; J_htrpn := k_htrpn_plus * Cai * (HTRPN_tot - HTRPNCa) - k_htrpn_minus * HTRPNCa; J_ltrpn := k_ltrpn_plus * Cai * (LTRPN_tot - LTRPNCa) - k_ltrpn_minus * LTRPNCa; // Rate Rules: Cai' = Bi * ((J_leak + J_xfer) - (J_up + J_trpn + (((i_Ca_b - 2 * i_NaCa) + i_p_Ca) * Am) / (2 * V_myo * F))); Ca_SS' = B_SS * (((J_rel * V_JSR) / V_SS - (J_xfer * V_myo) / V_SS) - (i_Ca_L_Ca * Am) / (2 * V_SS * F)); P_O1' = (k_a_plus * power(Ca_SS, nCa) * P_C1 - (k_a_minus * P_O1 + k_b_plus * power(Ca_SS, mCa) * P_O1 + k_c_plus * P_O1)) + k_b_minus * P_O2 + k_c_minus * P_C2; P_O2' = k_b_plus * power(Ca_SS, mCa) * P_O1 - k_b_minus * P_O2; P_C1' = - k_a_plus * power(Ca_SS, nCa) * P_C1 + k_a_minus * P_O1; P_C2' = k_c_plus * P_O1 - k_c_minus * P_C2; Ca_JSR' = B_JSR * (J_tr - J_rel); Ca_NSR' = ((J_up - J_leak) * V_myo) / V_NSR - (J_tr * V_JSR) / V_NSR; HTRPNCa' = J_htrpn; LTRPNCa' = J_ltrpn; // Variable initializations: Cai = 9.94893e-11; Ca_SS = 1.36058e-4; Am = 546.69; V_myo = 0.92; P_O1 = 1.19168e-3; P_O2 = 6.30613e-9; P_C1 = 0.762527; P_C2 = 0.236283; v1 = 1.8; v2 = 0.58e-4; v3 = 1.8e-3; nCa = 4; mCa = 3; k_a_plus = 1.215e10; k_a_minus = 0.1425; k_b_plus = 4.05e7; k_b_minus = 1.93; k_c_plus = 0.018; k_c_minus = 0.0008; k_htrpn_plus = 20; k_htrpn_minus = 0.066e-3; k_ltrpn_plus = 40; k_ltrpn_minus = 0.04; tau_tr = 34.48; Ca_JSR = 1.17504; Ca_NSR = 1.243891; K_mup = 0.5e-3; K_mCMDN = 2.38e-3; K_mCSQN = 0.8; tau_xfer = 3.125; HTRPN_tot = 0.14; LTRPN_tot = 0.07; HTRPNCa = 0.13598; LTRPNCa = 0.00635; CSQN_tot = 15; CMDN_tot = 0.05; time_ = ; F = ; i_Ca_b = ; i_Ca_L_Ca = ; i_NaCa = ; i_p_Ca = ; end model jafri_1998__ionic_concentrations(Nai, Nao, Ki, Ko, Cao, time_, F, i_Na, i_Na_b, i_ns_Na, i_NaCa, i_NaK, i_Ca_L_K, i_K, i_K1, i_Kp, i_ns_K, Am, V_myo) // Rate Rules: Nai' = (-(i_Na + i_Na_b + i_ns_Na + i_NaCa * 3 + i_NaK * 3) * Am) / (V_myo * F); Ki' = (-(i_Ca_L_K + i_K + i_K1 + i_Kp + i_ns_K + - i_NaK * 2) * Am) / (V_myo * F); Ko' = ((i_Ca_L_K + i_K + i_K1 + i_Kp + i_ns_K + - i_NaK * 2) * Am) / (V_myo * F); // Variable initializations: Nai = 10.2042; Nao = 140; Ki = 143.727; Ko = 5.4; Cao = 1.8; time_ = ; F = ; i_Na = ; i_Na_b = ; i_ns_Na = ; i_NaCa = ; i_NaK = ; i_Ca_L_K = ; i_K = ; i_K1 = ; i_Kp = ; i_ns_K = ; Am = ; V_myo = ; end model *jafri_1998____main() // Sub-modules, and any changes to those submodules: environment: jafri_1998__environment(time_); membrane: jafri_1998__membrane(V, R, T, F, time_, i_Na, i_Ca_L_Ca, i_Ca_L_K, i_K, i_K1, i_NaCa, i_Kp, i_p_Ca, i_Na_b, i_Ca_b, i_NaK, i_ns_Ca); fast_sodium_current: jafri_1998__fast_sodium_current(i_Na, E_Na, time_, V, R, T, F, Nai, Nao, m, h, j); L_type_Ca_channel: jafri_1998__L_type_Ca_channel(i_Ca_L_Ca, i_Ca_L_K, time_, V, Ca_SS, Cao, Ko, Ki, R, T, F, y); time_dependent_potassium_current: jafri_1998__time_dependent_potassium_current(i_K, time_, V, Ko, Ki, Nao, Nai, R, T, F, X, Xi); time_independent_potassium_current: jafri_1998__time_independent_potassium_current(i_K1, E_K1, time_, V, Ko, Ki, R, T, F, K1_infinity); plateau_potassium_current: jafri_1998__plateau_potassium_current(i_Kp, time_, V, E_K1); Na_Ca_exchanger: jafri_1998__Na_Ca_exchanger(i_NaCa, time_, V, R, T, F, Nai, Nao, Cai, Cao); sarcolemmal_calcium_pump: jafri_1998__sarcolemmal_calcium_pump(i_p_Ca, time_, Cai); sodium_background_current: jafri_1998__sodium_background_current(i_Na_b, time_, V, E_Na); calcium_background_current: jafri_1998__calcium_background_current(i_Ca_b, time_, V, R, T, F, Cai, Cao); sodium_potassium_pump: jafri_1998__sodium_potassium_pump(i_NaK, time_, V, R, T, F, Nai, Nao, Ko); non_specific_calcium_activated_current: jafri_1998__non_specific_calcium_activated_current(i_ns_Ca, i_ns_Na, i_ns_K, time_, Cai, V, R, T, F, Nao, Ko, Nai, Ki); calcium_subsystem: jafri_1998__calcium_subsystem(Cai, Ca_SS, Am, V_myo, time_, F, i_Ca_b, i_Ca_L_Ca, i_NaCa, i_p_Ca); ionic_concentrations: jafri_1998__ionic_concentrations(Nai, Nao, Ki, Ko, Cao, time_, F, i_Na, i_Na_b, i_ns_Na, i_NaCa, i_NaK, i_Ca_L_K, i_K, i_K1, i_Kp, i_ns_K, Am, V_myo); end