//Created by libAntimony v2.4 model iribe_model_2006__environment(time_) // Variable initializations: time_ = ; end model iribe_model_2006__cell_parameters(R, T, F, Cm, v_i, v_SR, Na_o, K_o, Ca_o) // Variable initializations: R = 8314.472; T = 310; F = 96485.3415; Cm = 9.5e-5; v_i = 1.6404e-5; v_SR = 3.3477e-6; Na_o = 140; K_o = 4; Ca_o = 2; end model iribe_model_2006__membrane_potential(V, Cm, i_Na, i_K1, i_to, i_K, i_Ca_L, i_NaK, i_NaCa, i_b_Na, i_b_K, i_b_Ca, time_) // 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' = (-(1) / Cm) * (i_Na + i_b_Na + i_K1 + i_K + i_to + i_b_K + i_Ca_L + i_b_Ca + i_NaCa + i_NaK + i_Stim); // Variable initializations: V = -92.849333; Cm = ; i_Na = ; i_K1 = ; i_to = ; i_K = ; i_Ca_L = ; i_NaK = ; i_NaCa = ; i_b_Na = ; i_b_K = ; i_b_Ca = ; time_ = ; stim_start = 0; stim_end = 1000; stim_period = 0.5; stim_duration = 0.002; stim_amplitude = -4; end model iribe_model_2006__reversal_potentials(E_Na, E_K, E_Ca, E_mh, K_o, Na_o, K_i, Na_i, Ca_o, Ca_i, R, F, T) // Assignment Rules: E_Na := ((R * T) / F) * ln(Na_o / Na_i); E_K := ((R * T) / F) * ln(K_o / K_i); E_Ca := ((0.5 * R * T) / F) * ln(Ca_o / Ca_i); E_mh := ((R * T) / F) * ln((Na_o + 0.12 * K_o) / (Na_i + 0.12 * K_i)); // Variable initializations: K_o = ; Na_o = ; K_i = ; Na_i = ; Ca_o = ; Ca_i = ; R = ; F = ; T = ; end model iribe_model_2006__fast_sodium_current_m_gate(m, V, time_) // Assignment Rules: alpha_m := piecewise( 2000 , abs(E0_m) < delta_m , (200 * E0_m) / (1 - exp(-(0.1) * E0_m)) ); beta_m := 8000 * exp(-(0.056) * (V + 66)); E0_m := V + 41; // Rate Rules: m' = alpha_m * (1 - m) - beta_m * m; // Variable initializations: m = 0.0013809; V = ; delta_m = 1e-5; time_ = ; end model iribe_model_2006__fast_sodium_current_h_gate(h, V, time_) // Assignment Rules: alpha_h := 20 * exp(-(0.125) * ((V + 75) - shift_h)); beta_h := 2000 / (1 + 320 * exp(-(0.1) * ((V + 75) - shift_h))); // Rate Rules: h' = alpha_h * (1 - h) - beta_h * h; // Variable initializations: h = 0.99569; shift_h = 0; V = ; time_ = ; end model iribe_model_2006__fast_sodium_current(i_Na, E_mh, V, m, h, time_) // Sub-modules, and any changes to those submodules: fast_sodium_current_m_gate: iribe_model_2006__fast_sodium_current_m_gate(m, V, time_); fast_sodium_current_h_gate: iribe_model_2006__fast_sodium_current_h_gate(h, V, time_); // Assignment Rules: i_Na := g_Na * power(m, 3) * h * (V - E_mh); // Variable initializations: g_Na = 2.5; E_mh = ; end model iribe_model_2006__time_dependent_rectifier_potassium_current_x_gate(x, V, time_) // Assignment Rules: alpha_x := (0.5 * exp(0.0826 * (V + 50))) / (1 + exp(0.057 * (V + 50))); beta_x := (1.3 * exp(-(0.06) * (V + 20))) / (1 + exp(-(0.04) * (V + 20))); // Rate Rules: x' = alpha_x * (1 - x) - beta_x * x; // Variable initializations: x = 5.1127e-2; V = ; time_ = ; end model iribe_model_2006__time_dependent_rectifier_potassium_current(i_K, K_i, K_o, R, F, T, V, x, time_) // Sub-modules, and any changes to those submodules: time_dependent_rectifier_potassium_current_x_gate: iribe_model_2006__time_dependent_rectifier_potassium_current_x_gate(x, V, time_); // Assignment Rules: i_K := (i_Kmax * x * (K_i - K_o * exp((- V * F) / (R * T)))) / 140; // Variable initializations: i_Kmax = 1; K_i = ; K_o = ; R = ; F = ; T = ; end model iribe_model_2006__time_independent_potassium_current(i_K1, K_o, V, E_K, R, F, T) // Assignment Rules: i_K1 := (((g_K1 * K_o) / (K_o + K_mk1)) * (V - E_K)) / (1 + exp((2 * F * ((V - E_K) - 10)) / (R * T))); // Variable initializations: K_mk1 = 10; g_K1 = 1; K_o = ; V = ; E_K = ; R = ; F = ; T = ; end model iribe_model_2006__transient_outward_current_s_gate(s, V, time_) // Assignment Rules: alpha_s := 0.033 * exp(- V / 17); beta_s := 33 / (1 + exp(-(0.125) * (V + 10))); // Rate Rules: s' = alpha_s * (1 - s) - beta_s * s; // Variable initializations: s = 0.95854; V = ; time_ = ; end model iribe_model_2006__transient_outward_current_r_gate(r, V, time_) // Rate Rules: r' = 333 * (1 / (1 + exp(-(V + 4) / 5)) - r); // Variable initializations: r = 1.5185e-8; V = ; time_ = ; end model iribe_model_2006__transient_outward_current(i_to, E_K, V, s, r, time_) // Sub-modules, and any changes to those submodules: transient_outward_current_s_gate: iribe_model_2006__transient_outward_current_s_gate(s, V, time_); transient_outward_current_r_gate: iribe_model_2006__transient_outward_current_r_gate(r, V, time_); // Assignment Rules: i_to := g_to * s * r * (V - E_K); // Variable initializations: g_to = 0.005; E_K = ; end model iribe_model_2006__L_type_Ca_channel_d_gate(d, V, time_) // Assignment Rules: alpha_d := piecewise( speed_d * 120 , abs(E0_d) < 0.00001 , (speed_d * 30 * E0_d) / (1 - exp(- E0_d / 4)) ); beta_d := piecewise( speed_d * 120 , abs(E0_d) < 0.00001 , (speed_d * -(12) * E0_d) / (1 - exp(E0_d / 10)) ); E0_d := (V + 24) - 5; // Rate Rules: d' = alpha_d * (1 - d) - beta_d * d; // Variable initializations: d = 1.7908e-8; V = ; time_ = ; speed_d = 3; end model iribe_model_2006__L_type_Ca_channel_f_gate(f, V, time_) // Assignment Rules: alpha_f := piecewise( speed_f * 25 , abs(E0_f) < 0.00001 , (speed_f * 6.25 * E0_f) / (-(1) + exp(E0_f / 4)) ); beta_f := (speed_f * 50) / (1 + exp(- E0_f / 4)); E0_f := V + 34; // Rate Rules: f' = alpha_f * (1 - f) - beta_f * f; // Variable initializations: f = 1; V = ; speed_f = 0.5; time_ = ; end model iribe_model_2006__L_type_Ca_channel(i_Ca_L, i_Ca_L_Na, i_Ca_L_K, i_Ca_L_Ca, R, F, T, V, Ca_o, Ca_i, K_o, K_i, Na_o, Na_i, d, f, time_) // Sub-modules, and any changes to those submodules: L_type_Ca_channel_d_gate: iribe_model_2006__L_type_Ca_channel_d_gate(d, V, time_); L_type_Ca_channel_f_gate: iribe_model_2006__L_type_Ca_channel_f_gate(f, V, time_); // Assignment Rules: i_Ca_L := i_Ca_L_Ca + i_Ca_L_K + i_Ca_L_Na; i_Ca_L_Na := ((0.01 * d * f * P_Ca_L_Ca * (V - 50) * F) / (R * T * (1 - exp((-(V - 50) * F) / (R * T))))) * (Na_i * exp((50 * F) / (R * T)) - Na_o * exp((-(V - 50) * F) / (R * T))); i_Ca_L_K := ((0.002 * d * f * P_Ca_L_Ca * (V - 50) * F) / (R * T * (1 - exp((-(V - 50) * F) / (R * T))))) * (K_i * exp((50 * F) / (R * T)) - K_o * exp((-(V - 50) * F) / (R * T))); i_Ca_L_Ca := ((4 * d * f * P_Ca_L_Ca * (V - 50) * F) / (R * T * (1 - exp((-(2) * (V - 50) * F) / (R * T))))) * (Ca_i * exp((100 * F) / (R * T)) - Ca_o * exp((-(2) * (V - 50) * F) / (R * T))); // Variable initializations: P_Ca_L_Ca = 0.25; R = ; F = ; T = ; Ca_o = ; Ca_i = ; K_o = ; K_i = ; Na_o = ; Na_i = ; end model iribe_model_2006__sodium_calcium_exchanger(i_NaCa, Na_i, Na_o, Ca_i, Ca_o, R, F, T, V) // Assignment Rules: i_NaCa := (i_NaCa_max * (exp((gamma * V * F) / (R * T)) * power(Na_i, 3) * Ca_o - exp(((gamma - 1) * V * F) / (R * T)) * power(Na_o, 3) * Ca_i)) / (1 + Ca_i / 0.0069); // Variable initializations: i_NaCa_max = 0.0005; gamma = 0.5; Na_i = ; Na_o = ; Ca_i = ; Ca_o = ; R = ; F = ; T = ; V = ; end model iribe_model_2006__sodium_potassium_pump(i_NaK, K_o, Na_i, R, F, T, V) // Assignment Rules: i_NaK := (((((i_NaK_max * K_o) / (K_mK + K_o)) * Na_i) / (K_mNa + Na_i)) * 1) / (1 + 0.1245 * exp((-(0.1) * V * F) / (R * T)) + 0.0353 * exp((- V * F) / (R * T))); // Variable initializations: i_NaK_max = 1.36; K_mK = 1; K_mNa = 21.7; K_o = ; Na_i = ; R = ; F = ; T = ; V = ; end model iribe_model_2006__calcium_background_current(i_b_Ca, E_Ca, V) // Assignment Rules: i_b_Ca := g_b_Ca * (V - E_Ca); // Variable initializations: g_b_Ca = 0.00025; E_Ca = ; V = ; end model iribe_model_2006__potassium_background_current(i_b_K, E_K, V) // Assignment Rules: i_b_K := g_b_K * (V - E_K); // Variable initializations: g_b_K = 0.0006; E_K = ; V = ; end model iribe_model_2006__sodium_background_current(i_b_Na, E_Na, V) // Assignment Rules: i_b_Na := g_b_Na * (V - E_Na); // Variable initializations: g_b_Na = 0.0006; E_Na = ; V = ; end model iribe_model_2006__CaMKII_factor(F_CaMK, Cmdn_Ca, time_) // Assignment Rules: Inf_CaMK := Cmdn_Ca / 0.00005; // Rate Rules: F_CaMK' = (Inf_CaMK - F_CaMK) / Tau_CaMK; // Variable initializations: F_CaMK = 1.028; Tau_CaMK = 0.8; Cmdn_Ca = ; time_ = ; end model iribe_model_2006__RyR(j_rel, Ca_i, Ca_SR, i_Ca_L, F_CaMK, time_) // Assignment Rules: j_rel := (K_rel * F_rel + K_leak_rate) * (Ca_SR - Ca_i); K_rel := (K_rel_max * F_SRCa_RyR) / (F_SRCa_RyR + 0.2); F_rel := power(F_2 / (F_2 + 0.25), 2); N_CaMK := power(F_CaMK / 0.7, 2); k_1 := gain_k1 * (30625000 * power(Ca_i, 2) - 245 * i_Ca_L); k_2 := (gain_k2 * 450) / (1 + 0.36 / Ca_SR); k_3 := gain_k3 * 1.885 * power(F_SRCa_RyR / 0.22, N_CaMK); k_4 := gain_k4 * 1.8; F_3 := 1 - (F_1 + F_2); // Rate Rules: F_SRCa_RyR' = (Ca_SR - F_SRCa_RyR) / Tau_SRCa_RyR; F_1' = (k_3 * F_3 - k_4 * F_1) - k_1 * F_1; F_2' = k_1 * F_1 - k_2 * F_2; // Variable initializations: Ca_i = ; Ca_SR = ; i_Ca_L = ; F_CaMK = ; K_rel_max = 500; F_SRCa_RyR = 0.25089; Tau_SRCa_RyR = 0.05; gain_k1 = 1; gain_k2 = 1; gain_k3 = 1; gain_k4 = 1; F_1 = 0.5268; F_2 = 8.7508e-6; time_ = ; K_leak_rate = 0; end model iribe_model_2006__SERCA(j_up, F_CaMK, Ca_i, Ca_SR) // Assignment Rules: j_up := (F_CaMK * V_max_f * f_b - V_max_r * r_b) / (1 + f_b + r_b); f_b := power(Ca_i / 0.00024, 2); r_b := power(Ca_SR / 1.64, 2); // Variable initializations: F_CaMK = ; V_max_f = 0.292; V_max_r = 0.391; Ca_i = ; Ca_SR = ; end model iribe_model_2006__calmodulin(Cmdn_Ca, Ca_i, time_, dCmdn_Ca_dtime) // Assignment Rules: dCmdn_Ca_dtime := alpha_cmdn * (Cmdn_tot - Cmdn_Ca) * Ca_i - beta_cmdn * Cmdn_Ca; // Rate Rules: Cmdn_Ca' = alpha_cmdn * (Cmdn_tot - Cmdn_Ca) * Ca_i - beta_cmdn * Cmdn_Ca; // Variable initializations: Cmdn_Ca = 3.9636e-6; Ca_i = ; Cmdn_tot = 0.02; alpha_cmdn = 10000; beta_cmdn = 500; time_ = ; end model iribe_model_2006__troponin(Trpn_Ca, Ca_i, Trpn_tot, alpha_trpn, beta_trpn, Force_norm, time_, dTrpn_Ca_dtime) // Assignment Rules: dTrpn_Ca_dtime := alpha_trpn * (Trpn_tot - Trpn_Ca) * Ca_i - ((beta_trpn * (1 + 2 * (1 - Force_norm))) / 3) * Trpn_Ca; // Rate Rules: Trpn_Ca' = alpha_trpn * (Trpn_tot - Trpn_Ca) * Ca_i - ((beta_trpn * (1 + 2 * (1 - Force_norm))) / 3) * Trpn_Ca; // Variable initializations: Trpn_Ca = 2.7661e-4; Ca_i = ; Trpn_tot = 0.07; alpha_trpn = 80000; beta_trpn = 200; Force_norm = ; time_ = ; end model iribe_model_2006__intracellular_calcium_concentration(Ca_i, i_Ca_L_Ca, i_b_Ca, i_NaCa, Cmdn_Ca, Trpn_Ca, j_rel, j_up, v_SR, v_i, F, time_, dCmdn_Ca_dtime, dTrpn_Ca_dtime) // Rate Rules: Ca_i' = (((-((i_Ca_L_Ca + i_b_Ca) - 2 * i_NaCa) / (2 * v_i * F) - j_up) + (j_rel * v_SR) / v_i) - dCmdn_Ca_dtime) - dTrpn_Ca_dtime; // Variable initializations: Ca_i = 9.91e-6; i_Ca_L_Ca = ; i_b_Ca = ; i_NaCa = ; Cmdn_Ca = ; Trpn_Ca = ; j_rel = ; j_up = ; v_SR = ; v_i = ; F = ; time_ = ; dCmdn_Ca_dtime = ; dTrpn_Ca_dtime = ; end model iribe_model_2006__SR_calcium_concentration(Ca_SR, j_rel, j_up, v_SR, v_i, time_) // Rate Rules: Ca_SR' = (j_up * v_i) / v_SR - j_rel; // Variable initializations: Ca_SR = 0.24886; j_rel = ; j_up = ; v_SR = ; v_i = ; time_ = ; end model iribe_model_2006__intracellular_sodium_concentration(Na_i, i_Na, i_b_Na, i_Ca_L_Na, i_NaCa, i_NaK, v_i, F, time_) // Rate Rules: Na_i' = -(i_Na + i_b_Na + i_Ca_L_Na + 3 * i_NaCa + 3 * i_NaK) / (v_i * F); // Variable initializations: Na_i = 5.8041; i_Na = ; i_b_Na = ; i_Ca_L_Na = ; i_NaCa = ; i_NaK = ; v_i = ; F = ; time_ = ; end model iribe_model_2006__intracellular_potassium_concentration(K_i, i_K1, i_K, i_to, i_b_K, i_Ca_L_K, i_NaK, v_i, F, time_) // Rate Rules: K_i' = -((i_K1 + i_K + i_to + i_b_K + i_Ca_L_K) - 2 * i_NaK) / (v_i * F); // Variable initializations: K_i = 138.22; i_K1 = ; i_K = ; i_to = ; i_b_K = ; i_Ca_L_K = ; i_NaK = ; v_i = ; F = ; time_ = ; end model iribe_model_2006__Force(Trpn_Ca, Trpn_tot, alpha_trpn, beta_trpn, Force_norm, time_) // Assignment Rules: Force := zeta * Force_norm; Force_max := P_1_max + 2 * P_2_max + 3 * P_3_max; phi_SL := piecewise( (SL - 0.6) / 1.4 , ( geq(SL, 1.7)) && (SL <= 2 ), 1 , ( SL > 2) && (SL <= 2.2 ), (3.6 - SL) / 1.4 , ( SL > 2.2) && (SL <= 2.3 ) ); P_1_max := (1 * f_01 * 2 * g_XB * 3 * g_XB) / sigma_paths; P_2_max := (1 * f_01 * 1 * f_12 * 3 * g_XB) / sigma_paths; P_3_max := (1 * f_01 * 1 * f_12 * 1 * f_23) / sigma_paths; sigma_paths := 1 * g_XB * 2 * g_XB * 3 * g_XB + 1 * f_01 * 2 * g_XB * 3 * g_XB + 1 * f_01 * 1 * f_12 * 3 * g_XB + 1 * f_01 * 1 * f_12 * 1 * f_23; N_1 := 1 - (N_0 + P_0 + P_1 + P_2 + P_3); alpha_tm := beta_tm * power(Trpn_Ca / (Trpn_tot * K_tm), N_tm); K_tm := 1 / (1 + (beta_trpn / alpha_trpn) / (0.0017 - 0.0009 * SL_norm)); N_tm := 3.5 + 2.5 * SL_norm; SL_norm := (SL - 1.7) / 0.7; f_01 := 3 * f_XB; f_12 := 10 * f_XB; f_23 := 7 * f_XB; g_01 := g_XB * (2 - SL_norm); g_12 := 2 * g_XB * (2 - SL_norm); g_23 := 3 * g_XB * (2 - SL_norm); Force_norm := (phi_SL * (P_1 + N_1 + 2 * P_2 + 3 * P_3)) / Force_max; // Rate Rules: N_0' = (beta_tm * P_0 - alpha_tm * N_0) + g_01 * N_1; P_0' = -(beta_tm + f_01) * P_0 + alpha_tm * N_0 + g_01 * P_1; P_1' = -(beta_tm + f_12 + g_01) * P_1 + alpha_tm * N_1 + f_01 * P_0 + g_12 * P_2; P_2' = -(f_23 + g_12) * P_2 + f_12 * P_1 + g_23 * P_3; P_3' = - g_23 * P_3 + f_23 * P_2; // Variable initializations: zeta = 0.1; N_0 = 0.99917; P_0 = 9.8593e-5; P_1 = 1.3331e-4; P_2 = 2.3505e-4; P_3 = 1.5349e-4; beta_tm = 40; SL = 2.15; f_XB = 10; g_XB = 30; Trpn_Ca = ; Trpn_tot = ; alpha_trpn = ; beta_trpn = ; time_ = ; end model *iribe_model_2006____main() // Sub-modules, and any changes to those submodules: environment: iribe_model_2006__environment(time_); cell_parameters: iribe_model_2006__cell_parameters(R, T, F, Cm, v_i, v_SR, Na_o, K_o, Ca_o); membrane_potential: iribe_model_2006__membrane_potential(V, Cm, i_Na, i_K1, i_to, i_K, i_Ca_L, i_NaK, i_NaCa, i_b_Na, i_b_K, i_b_Ca, time_); reversal_potentials: iribe_model_2006__reversal_potentials(E_Na, E_K, E_Ca, E_mh, K_o, Na_o, K_i, Na_i, Ca_o, Ca_i, R, F, T); fast_sodium_current: iribe_model_2006__fast_sodium_current(i_Na, E_mh, V, m, h, time_); time_dependent_rectifier_potassium_current: iribe_model_2006__time_dependent_rectifier_potassium_current(i_K, K_i, K_o, R, F, T, V, x, time_); time_independent_potassium_current: iribe_model_2006__time_independent_potassium_current(i_K1, K_o, V, E_K, R, F, T); transient_outward_current: iribe_model_2006__transient_outward_current(i_to, E_K, V, s, r, time_); L_type_Ca_channel: iribe_model_2006__L_type_Ca_channel(i_Ca_L, i_Ca_L_Na, i_Ca_L_K, i_Ca_L_Ca, R, F, T, V, Ca_o, Ca_i, K_o, K_i, Na_o, Na_i, d, f, time_); sodium_calcium_exchanger: iribe_model_2006__sodium_calcium_exchanger(i_NaCa, Na_i, Na_o, Ca_i, Ca_o, R, F, T, V); sodium_potassium_pump: iribe_model_2006__sodium_potassium_pump(i_NaK, K_o, Na_i, R, F, T, V); calcium_background_current: iribe_model_2006__calcium_background_current(i_b_Ca, E_Ca, V); potassium_background_current: iribe_model_2006__potassium_background_current(i_b_K, E_K, V); sodium_background_current: iribe_model_2006__sodium_background_current(i_b_Na, E_Na, V); CaMKII_factor: iribe_model_2006__CaMKII_factor(F_CaMK, Cmdn_Ca, time_); RyR: iribe_model_2006__RyR(j_rel, Ca_i, Ca_SR, i_Ca_L, F_CaMK, time_); SERCA: iribe_model_2006__SERCA(j_up, F_CaMK, Ca_i, Ca_SR); calmodulin: iribe_model_2006__calmodulin(Cmdn_Ca, Ca_i, time_, dCmdn_Ca_dtime); troponin: iribe_model_2006__troponin(Trpn_Ca, Ca_i, Trpn_tot, alpha_trpn, beta_trpn, Force_norm, time_, dTrpn_Ca_dtime); intracellular_calcium_concentration: iribe_model_2006__intracellular_calcium_concentration(Ca_i, i_Ca_L_Ca, i_b_Ca, i_NaCa, Cmdn_Ca, Trpn_Ca, j_rel, j_up, v_SR, v_i, F, time_, dCmdn_Ca_dtime, dTrpn_Ca_dtime); SR_calcium_concentration: iribe_model_2006__SR_calcium_concentration(Ca_SR, j_rel, j_up, v_SR, v_i, time_); intracellular_sodium_concentration: iribe_model_2006__intracellular_sodium_concentration(Na_i, i_Na, i_b_Na, i_Ca_L_Na, i_NaCa, i_NaK, v_i, F, time_); intracellular_potassium_concentration: iribe_model_2006__intracellular_potassium_concentration(K_i, i_K1, i_K, i_to, i_b_K, i_Ca_L_K, i_NaK, v_i, F, time_); Force: iribe_model_2006__Force(Trpn_Ca, Trpn_tot, alpha_trpn, beta_trpn, Force_norm, time_); end