//Created by libAntimony v2.4 model garny_2003__environment(time_) // Variable initializations: time_ = ; end model garny_2003__membrane(Version, dCell, FCellConstant, FCell, V, R, T, F, time_, i_Na, i_Ca_L, i_Ca_T, i_to, i_sus, i_K_r, i_K_s, i_f_Na, i_f_K, i_b_Na, i_b_Ca, i_b_K, i_NaCa, i_p, i_Ca_p) // Assignment Rules: FCell := piecewise( (1.07 * (3 * dCell - 0.1)) / (3 * (1 + 0.7745 * exp(-(3 * dCell - 2.05) / 0.295))) , Version == 0 , (FCellConstant * dCell) / (1 + 0.7745 * exp(-(3 * dCell - 2.05) / 0.295)) , Version == 1 , (1.07 * 29 * dCell) / (30 * (1 + 0.7745 * exp(-(29 * dCell - 24.5) / 1.95))) ); Cm := CmCentre + FCell * (CmPeriphery - CmCentre); // Rate Rules: V' = (-(1) / Cm) * (i_Na + i_Ca_L + i_Ca_T + i_to + i_sus + i_K_r + i_K_s + i_f_Na + i_f_K + i_b_Na + i_b_Ca + i_b_K + i_NaCa + i_p + i_Ca_p); // Variable initializations: Version = 1; dCell = 0; FCellConstant = 1.0309347; V = -39.013558536; R = 8314; T = 310; F = 96845; CmCentre = 2e-5; CmPeriphery = 6.5e-5; time_ = ; i_Na = ; i_Ca_L = ; i_Ca_T = ; i_to = ; i_sus = ; i_K_r = ; i_K_s = ; i_f_Na = ; i_f_K = ; i_b_Na = ; i_b_Ca = ; i_b_K = ; i_NaCa = ; i_p = ; i_Ca_p = ; end model garny_2003__sodium_current_m_gate(Version, m, V, time_) // Assignment Rules: m_infinity := piecewise( power(1 / (1 + exp(- V / 5.46)), 1 / 3) , Version == 0 , power(1 / (1 + exp(-(V + 30.32) / 5.46)), 1 / 3) ); tau_m := piecewise( 0.0006247 / (0.832 * exp(-(0.335) * (V + 56.7)) + 0.627 * exp(0.082 * (V + 65.01))) + 4E-5 , Version == 0 , 0.0006247 / (0.8322166 * exp(-(0.33566) * (V + 56.7062)) + 0.6274 * exp(0.0823 * (V + 65.0131))) + 4.569E-5 ); // Rate Rules: m' = (m_infinity - m) / tau_m; // Variable initializations: Version = ; m = 0.092361701692; V = ; time_ = ; end model garny_2003__sodium_current_h_gate(Version, h, V, time_) // Assignment Rules: h := (1 - F_Na) * h1 + F_Na * h2; F_Na := piecewise( (0.0952 * exp(-(0.063) * (V + 34.4))) / (1 + 1.66 * exp(-(0.225) * (V + 63.7))) + 0.0869 , Version == 0 , (0.09518 * exp(-(0.06306) * (V + 34.4))) / (1 + 1.662 * exp(-(0.2251) * (V + 63.7))) + 0.08693 ); h1_infinity := 1 / (1 + exp((V + 66.1) / 6.4)); h2_infinity := h1_infinity; tau_h1 := (3.717E-6 * exp(-(0.2815) * (V + 17.11))) / (1 + 0.003732 * exp(-(0.3426) * (V + 37.76))) + 0.0005977; tau_h2 := (3.186E-8 * exp(-(0.6219) * (V + 18.8))) / (1 + 7.189E-5 * exp(-(0.6683) * (V + 34.07))) + 0.003556; // Rate Rules: h1' = (h1_infinity - h1) / tau_h1; h2' = (h2_infinity - h2) / tau_h2; // Variable initializations: Version = ; h1 = 0.015905380261; h2 = 0.01445216109; V = ; time_ = ; end model garny_2003__sodium_current(Version, FCell, i_Na, E_Na, Na_o, R, F, T, time_, V, m, h) // Sub-modules, and any changes to those submodules: sodium_current_m_gate: garny_2003__sodium_current_m_gate(Version, m, V, time_); sodium_current_h_gate: garny_2003__sodium_current_h_gate(Version, h, V, time_); // Assignment Rules: i_Na := ((((g_Na * power(m, 3) * h * Na_o * power(F, 2)) / (R * T)) * (exp(((V - E_Na) * F) / (R * T)) - 1)) / (exp((V * F) / (R * T)) - 1)) * V; g_Na := piecewise( g_Na_Centre_Published + FCell * (g_Na_Periphery_Published - g_Na_Centre_Published) , Version == 0 , g_Na_Centre_0DCapable + FCell * (g_Na_Periphery_0DCapable - g_Na_Centre_0DCapable) , Version == 1 , g_Na_Centre_1DCapable + FCell * (g_Na_Periphery_1DCapable - g_Na_Centre_1DCapable) ); // Variable initializations: FCell = ; g_Na_Centre_Published = 0; g_Na_Centre_0DCapable = 0; g_Na_Centre_1DCapable = 0; g_Na_Periphery_Published = 1.2e-6; g_Na_Periphery_0DCapable = 1.204e-6; g_Na_Periphery_1DCapable = 3.7e-7; E_Na = ; Na_o = ; R = ; F = ; T = ; end model garny_2003__L_type_Ca_channel_d_gate(Version, FCell, d_L, V, time_) // Assignment Rules: alpha_d_L := piecewise( (-(28.38) * (V + 35)) / (exp(-(V + 35) / 2.5) - 1) - (84.9 * V) / (exp(-(0.208) * V) - 1) , Version == 0 , (-(28.39) * (V + 35)) / (exp(-(V + 35) / 2.5) - 1) - (84.9 * V) / (exp(-(0.208) * V) - 1) , Version == 1 , (-(28.4) * (V + 35)) / (exp(-(V + 35) / 2.5) - 1) - (84.9 * V) / (exp(-(0.208) * V) - 1) ); beta_d_L := piecewise( (11.43 * (V - 5)) / (exp(0.4 * (V - 5)) - 1) , Version == 1 , (11.42 * (V - 5)) / (exp(0.4 * (V - 5)) - 1) ); d_L_infinity := piecewise( 1 / (1 + exp(-(V + 23.1) / 6)) , Version == 0 , 1 / (1 + exp(-(V + 22.3 + 0.8 * FCell) / 6)) , Version == 1 , 1 / (1 + exp(-(V + 22.2) / 6)) ); tau_d_L := 2 / (alpha_d_L + beta_d_L); // Rate Rules: d_L' = (d_L_infinity - d_L) / tau_d_L; // Variable initializations: Version = ; FCell = ; d_L = 0.04804900895; V = ; time_ = ; end model garny_2003__L_type_Ca_channel_f_gate(Version, FCell, f_L, V, time_) // Assignment Rules: alpha_f_L := piecewise( (3.75 * (V + 28)) / (exp((V + 28) / 4) - 1) , Version == 1 , (3.12 * (V + 28)) / (exp((V + 28) / 4) - 1) ); beta_f_L := piecewise( 30 / (1 + exp(-(V + 28) / 4)) , Version == 1 , 25 / (1 + exp(-(V + 28) / 4)) ); f_L_infinity := 1 / (1 + exp((V + 45) / 5)); tau_f_L := piecewise( (1.2 - 0.2 * FCell) / (alpha_f_L + beta_f_L) , Version == 1 , 1 / (alpha_f_L + beta_f_L) ); // Rate Rules: f_L' = (f_L_infinity - f_L) / tau_f_L; // Variable initializations: Version = ; FCell = ; f_L = 0.48779845203; V = ; time_ = ; end model garny_2003__L_type_Ca_channel(Version, FCell, i_Ca_L, time_, V, d_L, f_L) // Sub-modules, and any changes to those submodules: L_type_Ca_channel_d_gate: garny_2003__L_type_Ca_channel_d_gate(Version, FCell, d_L, V, time_); L_type_Ca_channel_f_gate: garny_2003__L_type_Ca_channel_f_gate(Version, FCell, f_L, V, time_); // Assignment Rules: i_Ca_L := g_Ca_L * (f_L * d_L + 0.006 / (1 + exp(-(V + 14.1) / 6))) * (V - E_Ca_L); g_Ca_L := piecewise( g_Ca_L_Centre_Published + FCell * (g_Ca_L_Periphery_Published - g_Ca_L_Centre_Published) , Version == 0 , g_Ca_L_Centre_0DCapable + FCell * (g_Ca_L_Periphery_0DCapable - g_Ca_L_Centre_0DCapable) , Version == 1 , g_Ca_L_Centre_1DCapable + FCell * (g_Ca_L_Periphery_1DCapable - g_Ca_L_Centre_1DCapable) ); // Variable initializations: g_Ca_L_Centre_Published = 0.0058; g_Ca_L_Centre_0DCapable = 0.0057938; g_Ca_L_Centre_1DCapable = 0.0082; g_Ca_L_Periphery_Published = 0.0659; g_Ca_L_Periphery_0DCapable = 0.06588648; g_Ca_L_Periphery_1DCapable = 0.0659; E_Ca_L = 46.4; end model garny_2003__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 + 37) / 6.8)); 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.42074047435; V = ; time_ = ; end model garny_2003__T_type_Ca_channel_f_gate(Version, FCell, f_T, V, time_) // Assignment Rules: alpha_f_T := piecewise( 15.3 * exp(-(V + 71 + 0.7 * FCell) / 83.3) , Version == 1 , 15.3 * exp(-(V + 71.7) / 83.3) ); beta_f_T := piecewise( 15 * exp((V + 71) / 15.38) , Version == 1 , 15 * exp((V + 71.7) / 15.38) ); f_T_infinity := 1 / (1 + exp((V + 71) / 9)); tau_f_T := 1 / (alpha_f_T + beta_f_T); // Rate Rules: f_T' = (f_T_infinity - f_T) / tau_f_T; // Variable initializations: Version = ; FCell = ; f_T = 0.038968420558; V = ; time_ = ; end model garny_2003__T_type_Ca_channel(Version, FCell, i_Ca_T, time_, V, d_T, f_T) // Sub-modules, and any changes to those submodules: T_type_Ca_channel_d_gate: garny_2003__T_type_Ca_channel_d_gate(d_T, V, time_); T_type_Ca_channel_f_gate: garny_2003__T_type_Ca_channel_f_gate(Version, FCell, f_T, V, time_); // Assignment Rules: i_Ca_T := g_Ca_T * d_T * f_T * (V - E_Ca_T); g_Ca_T := piecewise( g_Ca_T_Centre_Published + FCell * (g_Ca_T_Periphery_Published - g_Ca_T_Centre_Published) , Version == 0 , g_Ca_T_Centre_0DCapable + FCell * (g_Ca_T_Periphery_0DCapable - g_Ca_T_Centre_0DCapable) , Version == 1 , g_Ca_T_Centre_1DCapable + FCell * (g_Ca_T_Periphery_1DCapable - g_Ca_T_Centre_1DCapable) ); // Variable initializations: g_Ca_T_Centre_Published = 0.0043; g_Ca_T_Centre_0DCapable = 0.00427806; g_Ca_T_Centre_1DCapable = 0.0021; g_Ca_T_Periphery_Published = 0.0139; g_Ca_T_Periphery_0DCapable = 0.0138823; g_Ca_T_Periphery_1DCapable = 0.00694; E_Ca_T = 45; end model garny_2003__four_AP_sensitive_currents_q_gate(Version, FCell, q, V, time_) // Assignment Rules: q_infinity := 1 / (1 + exp((V + 59.37) / 13.1)); tau_q := piecewise( 0.0101 + 0.06517 / (0.57 * exp(-(0.08) * (V + 49))) + 2.4E-5 * exp(0.1 * (V + 50.93)) , Version == 0 , (0.001 / 3) * (30.31 + 195.5 / (0.5686 * exp(-(0.08161) * (V + 39 + 10 * FCell)) + 0.7174 * exp((0.2719 - 0.1719 * FCell) * 1 * (V + 40.93 + 10 * FCell)))) , Version == 1 , 0.0101 + 0.06517 / (0.5686 * exp(-(0.08161) * (V + 39)) + 0.7174 * exp(0.2719 * (V + 40.93))) ); // Rate Rules: q' = (q_infinity - q) / tau_q; // Variable initializations: Version = ; FCell = ; q = 0.29760539675; V = ; time_ = ; end model garny_2003__four_AP_sensitive_currents_r_gate(Version, r, V, time_) // Assignment Rules: r_infinity := 1 / (1 + exp(-(V - 10.93) / 19.7)); tau_r := piecewise( 0.001 * (2.98 + 15.59 / (1.037 * exp(0.09 * (V + 30.61)) + 0.369 * exp(-(0.12) * (V + 23.84)))) , Version == 0 , 0.0025 * (1.191 + 7.838 / (1.037 * exp(0.09012 * (V + 30.61)) + 0.369 * exp(-(0.119) * (V + 23.84)))) , Version == 1 , 0.001 * (2.98 + 19.59 / (1.037 * exp(0.09012 * (V + 30.61)) + 0.369 * exp(-(0.119) * (V + 23.84)))) ); // Rate Rules: r' = (r_infinity - r) / tau_r; // Variable initializations: Version = ; r = 0.064402950262; V = ; time_ = ; end model garny_2003__four_AP_sensitive_currents(Version, FCell, i_to, i_sus, E_K, V, time_, q, r) // Sub-modules, and any changes to those submodules: four_AP_sensitive_currents_q_gate: garny_2003__four_AP_sensitive_currents_q_gate(Version, FCell, q, V, time_); four_AP_sensitive_currents_r_gate: garny_2003__four_AP_sensitive_currents_r_gate(Version, r, V, time_); // Assignment Rules: i_to := g_to * q * r * (V - E_K); i_sus := g_sus * r * (V - E_K); g_to := piecewise( g_to_Centre_Published + FCell * (g_to_Periphery_Published - g_to_Centre_Published) , Version == 0 , g_to_Centre_0DCapable + FCell * (g_to_Periphery_0DCapable - g_to_Centre_0DCapable) , Version == 1 , g_to_Centre_1DCapable + FCell * (g_to_Periphery_1DCapable - g_to_Centre_1DCapable) ); g_sus := piecewise( g_sus_Centre_Published + FCell * (g_sus_Periphery_Published - g_sus_Centre_Published) , Version == 0 , g_sus_Centre_0DCapable + FCell * (g_sus_Periphery_0DCapable - g_sus_Centre_0DCapable) , Version == 1 , g_sus_Centre_1DCapable + FCell * (g_sus_Periphery_1DCapable - g_sus_Centre_1DCapable) ); // Variable initializations: g_to_Centre_Published = 0.00491; g_to_Centre_0DCapable = 0.004905; g_to_Centre_1DCapable = 0.004905; g_to_Periphery_Published = 0.03649; g_to_Periphery_0DCapable = 0.036495; g_to_Periphery_1DCapable = 0.0365; g_sus_Centre_Published = 6.65e-5; g_sus_Centre_0DCapable = 6.645504e-5; g_sus_Centre_1DCapable = 0.000266; g_sus_Periphery_Published = 0.0114; g_sus_Periphery_0DCapable = 0.01138376; g_sus_Periphery_1DCapable = 0.0114; E_K = ; end model garny_2003__rapid_delayed_rectifying_potassium_current_P_af_gate(Version, P_af, P_af_infinity, V, time_) // Assignment Rules: P_af_infinity := piecewise( 1 / (1 + exp(-(V + 14.2) / 10.6)) , Version != 2 , 1 / (1 + exp(-(V + 13.2) / 10.6)) ); tau_P_af := piecewise( 1 / (37.2 * exp((V - 9) / 15.9) + 0.96 * exp(-(V - 9) / 22.5)) , Version != 2 , 1 / (37.2 * exp((V - 10) / 15.9) + 0.96 * exp(-(V - 10) / 22.5)) ); // Rate Rules: P_af' = (P_af_infinity - P_af) / tau_P_af; // Variable initializations: Version = ; P_af = 0.13034201158; V = ; time_ = ; end model garny_2003__rapid_delayed_rectifying_potassium_current_P_as_gate(Version, P_as, P_af_infinity, V, time_) // Assignment Rules: P_as_infinity := P_af_infinity; tau_P_as := piecewise( 1 / (4.2 * exp((V - 9) / 17) + 0.15 * exp(-(V - 9) / 21.6)) , Version != 2 , 1 / (4.2 * exp((V - 10) / 17) + 0.15 * exp(-(V - 10) / 21.6)) ); // Rate Rules: P_as' = (P_as_infinity - P_as) / tau_P_as; // Variable initializations: Version = ; P_as = 0.46960956028; P_af_infinity = ; V = ; time_ = ; end model garny_2003__rapid_delayed_rectifying_potassium_current_P_i_gate(Version, P_i, V, time_) // Assignment Rules: P_i_infinity := 1 / (1 + exp((V + 18.6) / 10.1)); tau_P_i := piecewise( 0.002 , Version == 0 , 0.002 , Version == 1 , 0.006 ); // Rate Rules: P_i' = (P_i_infinity - P_i) / tau_P_i; // Variable initializations: Version = ; P_i = 0.87993375273; V = ; time_ = ; end model garny_2003__rapid_delayed_rectifying_potassium_current(Version, FCell, i_K_r, E_K, time_, V, P_af, P_as, P_i) // Sub-modules, and any changes to those submodules: rapid_delayed_rectifying_potassium_current_P_af_gate: garny_2003__rapid_delayed_rectifying_potassium_current_P_af_gate(Version, P_af, P_af_infinity, V, time_); rapid_delayed_rectifying_potassium_current_P_as_gate: garny_2003__rapid_delayed_rectifying_potassium_current_P_as_gate(Version, P_as, P_af_infinity, V, time_); rapid_delayed_rectifying_potassium_current_P_i_gate: garny_2003__rapid_delayed_rectifying_potassium_current_P_i_gate(Version, P_i, V, time_); // Assignment Rules: i_K_r := g_K_r * P_a * P_i * (V - E_K); g_K_r := piecewise( g_K_r_Centre_Published + FCell * (g_K_r_Periphery_Published - g_K_r_Centre_Published) , Version == 0 , g_K_r_Centre_0DCapable + FCell * (g_K_r_Periphery_0DCapable - g_K_r_Centre_0DCapable) , Version == 1 , g_K_r_Centre_1DCapable + FCell * (g_K_r_Periphery_1DCapable - g_K_r_Centre_1DCapable) ); P_a := 0.6 * P_af + 0.4 * P_as; // Variable initializations: FCell = ; g_K_r_Centre_Published = 0.000797; g_K_r_Centre_0DCapable = 0.00079704; g_K_r_Centre_1DCapable = 0.000738; g_K_r_Periphery_Published = 0.016; g_K_r_Periphery_0DCapable = 0.016; g_K_r_Periphery_1DCapable = 0.0208; E_K = ; end model garny_2003__slow_delayed_rectifying_potassium_current_xs_gate(xs, V, time_) // Assignment Rules: alpha_xs := 14 / (1 + exp(-(V - 40) / 9)); beta_xs := 1 * exp(- V / 45); // Rate Rules: xs' = alpha_xs * (1 - xs) - beta_xs * xs; // Variable initializations: xs = 0.082293827208; V = ; time_ = ; end model garny_2003__slow_delayed_rectifying_potassium_current(Version, FCell, i_K_s, E_K_s, time_, V, xs) // Sub-modules, and any changes to those submodules: slow_delayed_rectifying_potassium_current_xs_gate: garny_2003__slow_delayed_rectifying_potassium_current_xs_gate(xs, V, time_); // Assignment Rules: i_K_s := g_K_s * power(xs, 2) * (V - E_K_s); g_K_s := piecewise( g_K_s_Centre_Published + FCell * (g_K_s_Periphery_Published - g_K_s_Centre_Published) , Version == 0 , g_K_s_Centre_0DCapable + FCell * (g_K_s_Periphery_0DCapable - g_K_s_Centre_0DCapable) , Version == 1 , g_K_s_Centre_1DCapable + FCell * (g_K_s_Periphery_1DCapable - g_K_s_Centre_1DCapable) ); // Variable initializations: Version = ; FCell = ; g_K_s_Centre_Published = 0.000518; g_K_s_Centre_0DCapable = 0.0003445; g_K_s_Centre_1DCapable = 0.000345; g_K_s_Periphery_Published = 0.0104; g_K_s_Periphery_0DCapable = 0.0104; g_K_s_Periphery_1DCapable = 0.0104; E_K_s = ; end model garny_2003__hyperpolarisation_activated_current_y_gate(Version, y, V, time_) // Assignment Rules: alpha_y := piecewise( 1 * exp(-(V + 78.91) / 26.62) , Version == 0 , 1 * exp(-(V + 78.91) / 26.63) ); beta_y := 1 * exp((V + 75.13) / 21.25); // Rate Rules: y' = alpha_y * (1 - y) - beta_y * y; // Variable initializations: Version = ; y = 0.03889291759; V = ; time_ = ; end model garny_2003__hyperpolarisation_activated_current(Version, FCell, i_f_Na, i_f_K, E_K, E_Na, time_, V, y) // Sub-modules, and any changes to those submodules: hyperpolarisation_activated_current_y_gate: garny_2003__hyperpolarisation_activated_current_y_gate(Version, y, V, time_); // Assignment Rules: i_f_Na := piecewise( g_f_Na * y * (V - E_Na) , Version != 2 , g_f_Na * y * (V - 77.6) ); i_f_K := piecewise( g_f_K * y * (V - E_K) , Version != 2 , g_f_K * y * (V + 102) ); g_f_Na := piecewise( g_f_Na_Centre_Published + FCell * (g_f_Na_Periphery_Published - g_f_Na_Centre_Published) , Version == 0 , g_f_Na_Centre_0DCapable + FCell * (g_f_Na_Periphery_0DCapable - g_f_Na_Centre_0DCapable) , Version == 1 , g_f_Na_Centre_1DCapable + FCell * (g_f_Na_Periphery_1DCapable - g_f_Na_Centre_1DCapable) ); g_f_K := piecewise( g_f_K_Centre_Published + FCell * (g_f_K_Periphery_Published - g_f_K_Centre_Published) , Version == 0 , g_f_K_Centre_0DCapable + FCell * (g_f_K_Periphery_0DCapable - g_f_K_Centre_0DCapable) , Version == 1 , g_f_K_Centre_1DCapable + FCell * (g_f_K_Periphery_1DCapable - g_f_K_Centre_1DCapable) ); // Variable initializations: FCell = ; g_f_Na_Centre_Published = 0.000548; g_f_Na_Centre_0DCapable = 0.0005465; g_f_Na_Centre_1DCapable = 0.000437; g_f_Na_Periphery_Published = 0.0069; g_f_Na_Periphery_0DCapable = 0.006875; g_f_Na_Periphery_1DCapable = 0.0055; g_f_K_Centre_Published = 0.000548; g_f_K_Centre_0DCapable = 0.0005465; g_f_K_Centre_1DCapable = 0.000437; g_f_K_Periphery_Published = 0.0069; g_f_K_Periphery_0DCapable = 0.006875; g_f_K_Periphery_1DCapable = 0.0055; E_K = ; E_Na = ; end model garny_2003__sodium_background_current(Version, FCell, i_b_Na, E_Na, V) // Assignment Rules: i_b_Na := g_b_Na * (V - E_Na); g_b_Na := piecewise( g_b_Na_Centre_Published + FCell * (g_b_Na_Periphery_Published - g_b_Na_Centre_Published) , Version == 0 , g_b_Na_Centre_0DCapable + FCell * (g_b_Na_Periphery_0DCapable - g_b_Na_Centre_0DCapable) , Version == 1 , g_b_Na_Centre_1DCapable + FCell * (g_b_Na_Periphery_1DCapable - g_b_Na_Centre_1DCapable) ); // Variable initializations: Version = ; FCell = ; g_b_Na_Centre_Published = 5.8e-5; g_b_Na_Centre_0DCapable = 5.81818e-5; g_b_Na_Centre_1DCapable = 5.8e-5; g_b_Na_Periphery_Published = 0.000189; g_b_Na_Periphery_0DCapable = 0.0001888; g_b_Na_Periphery_1DCapable = 0.000189; E_Na = ; V = ; end model garny_2003__potassium_background_current(Version, FCell, i_b_K, E_K, V) // Assignment Rules: i_b_K := g_b_K * (V - E_K); g_b_K := piecewise( g_b_K_Centre_Published + FCell * (g_b_K_Periphery_Published - g_b_K_Centre_Published) , Version == 0 , g_b_K_Centre_0DCapable + FCell * (g_b_K_Periphery_0DCapable - g_b_K_Centre_0DCapable) , Version == 1 , g_b_K_Centre_1DCapable + FCell * (g_b_K_Periphery_1DCapable - g_b_K_Centre_1DCapable) ); // Variable initializations: Version = ; FCell = ; g_b_K_Centre_Published = 2.52e-5; g_b_K_Centre_0DCapable = 2.523636e-5; g_b_K_Centre_1DCapable = 2.52e-5; g_b_K_Periphery_Published = 8.19e-5; g_b_K_Periphery_0DCapable = 8.1892e-5; g_b_K_Periphery_1DCapable = 8.19e-5; E_K = ; V = ; end model garny_2003__calcium_background_current(Version, FCell, i_b_Ca, E_Ca, V) // Assignment Rules: i_b_Ca := g_b_Ca * (V - E_Ca); g_b_Ca := piecewise( g_b_Ca_Centre_Published + FCell * (g_b_Ca_Periphery_Published - g_b_Ca_Centre_Published) , Version == 0 , g_b_Ca_Centre_0DCapable + FCell * (g_b_Ca_Periphery_0DCapable - g_b_Ca_Centre_0DCapable) , Version == 1 , g_b_Ca_Centre_1DCapable + FCell * (g_b_Ca_Periphery_1DCapable - g_b_Ca_Centre_1DCapable) ); // Variable initializations: Version = ; FCell = ; g_b_Ca_Centre_Published = 1.32e-5; g_b_Ca_Centre_0DCapable = 1.3236e-5; g_b_Ca_Centre_1DCapable = 1.323e-5; g_b_Ca_Periphery_Published = 4.3e-5; g_b_Ca_Periphery_0DCapable = 4.2952e-5; g_b_Ca_Periphery_1DCapable = 4.29e-5; E_Ca = ; V = ; end model garny_2003__sodium_calcium_exchanger(Version, FCell, i_NaCa, Na_i, Na_o, Ca_i, Ca_o, V) // Assignment Rules: i_NaCa := piecewise( (k_NaCa * (power(Na_i, 3) * Ca_o * exp(0.03743 * V * gamma_NaCa) - power(Na_o, 3) * Ca_i * exp(0.0374 * V * (gamma_NaCa - 1)))) / (1 + d_NaCa * (Ca_i * power(Na_o, 3) + Ca_o * power(Na_i, 3))) , Version == 0 , (k_NaCa * (power(Na_i, 3) * Ca_o * exp(0.03743 * V * gamma_NaCa) - power(Na_o, 3) * Ca_i * exp(0.03743 * V * (gamma_NaCa - 1)))) / (1 + d_NaCa * (Ca_i * power(Na_o, 3) + Ca_o * power(Na_i, 3))) ); k_NaCa := piecewise( k_NaCa_Centre_Published + FCell * (k_NaCa_Periphery_Published - k_NaCa_Centre_Published) , Version == 0 , k_NaCa_Centre_0DCapable + FCell * (k_NaCa_Periphery_0DCapable - k_NaCa_Centre_0DCapable) , Version == 1 , k_NaCa_Centre_1DCapable + FCell * (k_NaCa_Periphery_1DCapable - k_NaCa_Centre_1DCapable) ); // Variable initializations: Version = ; FCell = ; k_NaCa_Centre_Published = 2.7e-6; k_NaCa_Centre_0DCapable = 2.7229e-6; k_NaCa_Centre_1DCapable = 2.8e-6; k_NaCa_Periphery_Published = 8.8e-6; k_NaCa_Periphery_0DCapable = 8.83584e-6; k_NaCa_Periphery_1DCapable = 8.8e-6; d_NaCa = 0.0001; gamma_NaCa = 0.5; Na_i = ; Na_o = ; Ca_i = ; Ca_o = ; V = ; end model garny_2003__sodium_potassium_pump(Version, FCell, i_p, Na_i, K_o, V) // Assignment Rules: i_p := (i_p_max * power(Na_i / (K_m_Na + Na_i), 3) * power(K_o / (K_m_K + K_o), 2) * 1.6) / (1.5 + exp(-(V + 60) / 40)); i_p_max := piecewise( i_p_max_Centre_Published + FCell * (i_p_max_Periphery_Published - i_p_max_Centre_Published) , Version == 0 , i_p_max_Centre_0DCapable + FCell * (i_p_max_Periphery_0DCapable - i_p_max_Centre_0DCapable) , Version == 1 , i_p_max_Centre_1DCapable + FCell * (i_p_max_Periphery_1DCapable - i_p_max_Centre_1DCapable) ); // Variable initializations: Version = ; FCell = ; K_m_Na = 5.64; K_m_K = 0.621; i_p_max_Centre_Published = 0.0478; i_p_max_Centre_0DCapable = 0.04782545; i_p_max_Centre_1DCapable = 0.0478; i_p_max_Periphery_Published = 0.16; i_p_max_Periphery_0DCapable = 0.1551936; i_p_max_Periphery_1DCapable = 0.16; Na_i = ; K_o = ; V = ; end model garny_2003__persistent_calcium_current(Version, FCell, i_Ca_p, Ca_i, V) // Assignment Rules: i_Ca_p := (i_Ca_p_max * Ca_i) / (Ca_i + 0.0004); i_Ca_p_max := piecewise( i_Ca_p_max_Centre_Published + FCell * (i_Ca_p_max_Periphery_Published - i_Ca_p_max_Centre_Published) , Version == 0 , i_Ca_p_max_Centre_0DCapable + FCell * (i_Ca_p_max_Periphery_0DCapable - i_Ca_p_max_Centre_0DCapable) , Version == 1 , i_Ca_p_max_Centre_1DCapable + FCell * (i_Ca_p_max_Periphery_1DCapable - i_Ca_p_max_Centre_1DCapable) ); // Variable initializations: Version = ; FCell = ; i_Ca_p_max_Centre_Published = 0; i_Ca_p_max_Centre_0DCapable = 0; i_Ca_p_max_Centre_1DCapable = 0.0042; i_Ca_p_max_Periphery_Published = 0; i_Ca_p_max_Periphery_0DCapable = 0; i_Ca_p_max_Periphery_1DCapable = 0.03339; Ca_i = ; V = ; end model garny_2003__ionic_concentrations(Na_i, Na_o, Ca_i, Ca_o, K_i, K_o) // Variable initializations: Na_i = 8; Na_o = 140; Ca_i = 0.0001; Ca_o = 2; K_i = 140; K_o = 5.4; end model garny_2003__reversal_and_equilibrium_potentials(Version, E_Na, E_K, E_K_s, E_Ca, 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_K_s := piecewise( ((R * T) / F) * ln((K_o + 0.12 * Na_o) / (K_i + 0.12 * Na_i)) , Version == 0 , ((R * T) / F) * ln((K_o + 0.03 * Na_o) / (K_i + 0.03 * Na_i)) ); E_Ca := ((R * T) / (2 * F)) * ln(Ca_o / Ca_i); // Variable initializations: Version = ; K_o = ; Na_o = ; K_i = ; Na_i = ; Ca_o = ; Ca_i = ; R = ; F = ; T = ; end model *garny_2003____main() // Sub-modules, and any changes to those submodules: environment: garny_2003__environment(time_); membrane: garny_2003__membrane(Version, dCell, FCellConstant, FCell, V, R, T, F, time_, i_Na, i_Ca_L, i_Ca_T, i_to, i_sus, i_K_r, i_K_s, i_f_Na, i_f_K, i_b_Na, i_b_Ca, i_b_K, i_NaCa, i_p, i_Ca_p); sodium_current: garny_2003__sodium_current(Version, FCell, i_Na, E_Na, Na_o, R, F, T, time_, V, m, h); L_type_Ca_channel: garny_2003__L_type_Ca_channel(Version, FCell, i_Ca_L, time_, V, d_L, f_L); T_type_Ca_channel: garny_2003__T_type_Ca_channel(Version, FCell, i_Ca_T, time_, V, d_T, f_T); four_AP_sensitive_currents: garny_2003__four_AP_sensitive_currents(Version, FCell, i_to, i_sus, E_K, V, time_, q, r); rapid_delayed_rectifying_potassium_current: garny_2003__rapid_delayed_rectifying_potassium_current(Version, FCell, i_K_r, E_K, time_, V, P_af, P_as, P_i); slow_delayed_rectifying_potassium_current: garny_2003__slow_delayed_rectifying_potassium_current(Version, FCell, i_K_s, E_K_s, time_, V, xs); hyperpolarisation_activated_current: garny_2003__hyperpolarisation_activated_current(Version, FCell, i_f_Na, i_f_K, E_K, E_Na, time_, V, y); sodium_background_current: garny_2003__sodium_background_current(Version, FCell, i_b_Na, E_Na, V); potassium_background_current: garny_2003__potassium_background_current(Version, FCell, i_b_K, E_K, V); calcium_background_current: garny_2003__calcium_background_current(Version, FCell, i_b_Ca, E_Ca, V); sodium_calcium_exchanger: garny_2003__sodium_calcium_exchanger(Version, FCell, i_NaCa, Na_i, Na_o, Ca_i, Ca_o, V); sodium_potassium_pump: garny_2003__sodium_potassium_pump(Version, FCell, i_p, Na_i, K_o, V); persistent_calcium_current: garny_2003__persistent_calcium_current(Version, FCell, i_Ca_p, Ca_i, V); ionic_concentrations: garny_2003__ionic_concentrations(Na_i, Na_o, Ca_i, Ca_o, K_i, K_o); reversal_and_equilibrium_potentials: garny_2003__reversal_and_equilibrium_potentials(Version, E_Na, E_K, E_K_s, E_Ca, K_o, Na_o, K_i, Na_i, Ca_o, Ca_i, R, F, T); end