//Created by libAntimony v2.4 model difrancesco_noble_1985__environment(time_) // Variable initializations: time_ = ; end model difrancesco_noble_1985__membrane(V, R, T, F, RTONF, time_, i_f, i_K, i_K1, i_to, i_Na_b, i_Ca_b, i_p, i_NaCa, i_Na, i_si) // Assignment Rules: RTONF := (R * T) / F; // Rate Rules: V' = -(i_f + i_K + i_K1 + i_to + i_Na_b + i_Ca_b + i_p + i_NaCa + i_Na + i_si + i_pulse) / C; // Variable initializations: V = -87; R = 8314.472; T = 310; F = 96485.3415; C = 0.075; i_pulse = 0; time_ = ; i_f = ; i_K = ; i_K1 = ; i_to = ; i_Na_b = ; i_Ca_b = ; i_p = ; i_NaCa = ; i_Na = ; i_si = ; end model difrancesco_noble_1985__hyperpolarising_activated_current_y_gate(y, V, time_) // Assignment Rules: alpha_y := 0.05 * exp(-(0.067) * ((V + 52) - 10)); beta_y := piecewise( 2.5 , abs(E0_y) < delta_y , (1 * E0_y) / (1 - exp(-(0.2) * E0_y)) ); E0_y := (V + 52) - 10; // Rate Rules: y' = alpha_y * (1 - y) - beta_y * y; // Variable initializations: y = 0.2; V = ; time_ = ; delta_y = 1e-5; end model difrancesco_noble_1985__hyperpolarising_activated_current(i_f, i_fNa, E_Na, E_K, i_fK, time_, V, RTONF, Kc, Ki, Nai, Nao, y) // Sub-modules, and any changes to those submodules: hyperpolarising_activated_current_y_gate: difrancesco_noble_1985__hyperpolarising_activated_current_y_gate(y, V, time_); // Assignment Rules: i_f := i_fNa + i_fK; i_fNa := ((y * Kc) / (Kc + Km_f)) * g_f_Na * (V - E_Na); E_Na := RTONF * ln(Nao / Nai); E_K := RTONF * ln(Kc / Ki); i_fK := ((y * Kc) / (Kc + Km_f)) * g_f_K * (V - E_K); // Variable initializations: g_f_Na = 3; g_f_K = 3; Km_f = 45; RTONF = ; Kc = ; Ki = ; Nai = ; Nao = ; end model difrancesco_noble_1985__time_dependent_potassium_current_x_gate(x, time_, V) // 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 = 0.01; time_ = ; V = ; end model difrancesco_noble_1985__time_dependent_potassium_current(i_K, time_, V, RTONF, Ki, Kc, x) // Sub-modules, and any changes to those submodules: time_dependent_potassium_current_x_gate: difrancesco_noble_1985__time_dependent_potassium_current_x_gate(x, time_, V); // Assignment Rules: i_K := x * I_K; I_K := (i_K_max * (Ki - Kc * exp(- V / RTONF))) / 140; // Variable initializations: i_K_max = 180; RTONF = ; Ki = ; Kc = ; end model difrancesco_noble_1985__time_independent_potassium_current(i_K1, time_, V, E_K, Kc, RTONF) // Assignment Rules: i_K1 := (((g_K1 * Kc) / (Kc + Km_K1)) * (V - E_K)) / (1 + exp((((V + 10) - E_K) * 2) / RTONF)); // Variable initializations: g_K1 = 920; Km_K1 = 210; time_ = ; V = ; E_K = ; Kc = ; RTONF = ; end model difrancesco_noble_1985__transient_outward_current_s_gate(s, V, time_) // Assignment Rules: alpha_s := 0.033 * exp(- V / 17); beta_s := 33 / (1 + exp(-(V + 10) / 8)); // Rate Rules: s' = alpha_s * (1 - s) - beta_s * s; // Variable initializations: s = 1; V = ; time_ = ; end model difrancesco_noble_1985__transient_outward_current(i_to, time_, V, RTONF, Kc, Ki, Cai, s) // Sub-modules, and any changes to those submodules: transient_outward_current_s_gate: difrancesco_noble_1985__transient_outward_current_s_gate(s, V, time_); // Assignment Rules: i_to := ((((s * g_to * (0.2 + Kc / (Km_to + Kc)) * Cai) / (Km_Ca + Cai)) * (V + 10)) / (1 - exp(-(0.2) * (V + 10)))) * (Ki * exp((0.5 * V) / RTONF) - Kc * exp((-(0.5) * V) / RTONF)); // Variable initializations: Km_to = 10; Km_Ca = 0.0005; g_to = 0.28; RTONF = ; Kc = ; Ki = ; Cai = ; end model difrancesco_noble_1985__sodium_background_current(i_Na_b, time_, V, E_Na) // Assignment Rules: i_Na_b := g_Nab * (V - E_Na); // Variable initializations: g_Nab = 0.18; time_ = ; V = ; E_Na = ; end model difrancesco_noble_1985__calcium_background_current(i_Ca_b, E_Ca, time_, V, RTONF, Cai, Cao) // Assignment Rules: i_Ca_b := g_Cab * (V - E_Ca); E_Ca := 0.5 * RTONF * ln(Cao / Cai); // Variable initializations: g_Cab = 0.02; time_ = ; V = ; RTONF = ; Cai = ; Cao = ; end model difrancesco_noble_1985__sodium_potassium_pump(i_p, time_, V, Nai, Kc) // Assignment Rules: i_p := (((I_p * Kc) / (K_mK + Kc)) * Nai) / (K_mNa + Nai); // Variable initializations: I_p = 125; K_mK = 1; K_mNa = 40; time_ = ; V = ; Nai = ; Kc = ; end model difrancesco_noble_1985__Na_Ca_exchanger(i_NaCa, n_NaCa, time_, V, RTONF, Cao, Cai, E_Na, Nai, Nao, E_Ca) // Assignment Rules: i_NaCa := (K_NaCa * (exp((gamma * (n_NaCa - 2) * V) / RTONF) * power(Nai, n_NaCa) * Cao - exp(((gamma - 1) * (n_NaCa - 2) * V) / RTONF) * power(Nao, n_NaCa) * Cai)) / ((1 + d_NaCa * (Cai * power(Nao, n_NaCa) + Cao * power(Nai, n_NaCa))) * (1 + Cai / 0.0069)); // Variable initializations: n_NaCa = 3; K_NaCa = 0.02; d_NaCa = 0.001; gamma = 0.5; time_ = ; V = ; RTONF = ; Cao = ; Cai = ; E_Na = ; Nai = ; Nao = ; E_Ca = ; end model difrancesco_noble_1985__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.01; V = ; time_ = ; delta_m = 1e-5; end model difrancesco_noble_1985__fast_sodium_current_h_gate(h, V, time_) // Assignment Rules: alpha_h := 20 * exp(-(0.125) * (V + 75)); beta_h := 2000 / (320 * exp(-(0.1) * (V + 75)) + 1); // Rate Rules: h' = alpha_h * (1 - h) - beta_h * h; // Variable initializations: h = 0.8; V = ; time_ = ; end model difrancesco_noble_1985__fast_sodium_current(i_Na, time_, V, RTONF, Nao, Nai, Kc, Ki, m, h) // Sub-modules, and any changes to those submodules: fast_sodium_current_m_gate: difrancesco_noble_1985__fast_sodium_current_m_gate(m, V, time_); fast_sodium_current_h_gate: difrancesco_noble_1985__fast_sodium_current_h_gate(h, V, time_); // Assignment Rules: i_Na := g_Na * power(m, 3) * h * (V - E_mh); E_mh := RTONF * ln((Nao + 0.12 * Kc) / (Nai + 0.12 * Ki)); // Variable initializations: g_Na = 750; RTONF = ; Nao = ; Nai = ; Kc = ; Ki = ; end model difrancesco_noble_1985__second_inward_current_d_gate(d, V, time_) // Assignment Rules: alpha_d := piecewise( 120 , abs(E0_d) < delta_d , (30 * E0_d) / (1 - exp((-(1) * E0_d) / 4)) ); beta_d := piecewise( 120 , abs(E0_d) < delta_d , (12 * E0_d) / (exp(E0_d / 10) - 1) ); E0_d := (V + 24) - 5; // Rate Rules: d' = alpha_d * (1 - d) - beta_d * d; // Variable initializations: d = 0.005; V = ; time_ = ; delta_d = 0.0001; end model difrancesco_noble_1985__second_inward_current_f_gate(f, V, time_) // Assignment Rules: alpha_f := piecewise( 25 , abs(E0_f) < delta_f , (6.25 * E0_f) / (exp(E0_f / 4) - 1) ); beta_f := 50 / (1 + exp((-(1) * (V + 34)) / 4)); E0_f := V + 34; // Rate Rules: f' = alpha_f * (1 - f) - beta_f * f; // Variable initializations: f = 1; V = ; time_ = ; delta_f = 0.0001; end model difrancesco_noble_1985__second_inward_current_f2_gate(f2, V, time_, Cai) // Assignment Rules: beta_f2 := (Cai * alpha_f2) / K_mf2; // Rate Rules: f2' = alpha_f2 - f2 * (alpha_f2 + beta_f2); // Variable initializations: f2 = 1; alpha_f2 = 5; K_mf2 = 0.001; V = ; time_ = ; Cai = ; end model difrancesco_noble_1985__second_inward_current(i_si, i_siCa, i_siK, i_siNa, time_, V, RTONF, Nao, Nai, Kc, Ki, Cao, Cai, d, f, f2) // Sub-modules, and any changes to those submodules: second_inward_current_d_gate: difrancesco_noble_1985__second_inward_current_d_gate(d, V, time_); second_inward_current_f_gate: difrancesco_noble_1985__second_inward_current_f_gate(f, V, time_); second_inward_current_f2_gate: difrancesco_noble_1985__second_inward_current_f2_gate(f2, V, time_, Cai); // Assignment Rules: i_si := i_siCa + i_siK + i_siNa; i_siCa := ((4 * P_si * (V - 50)) / (RTONF * (1 - exp((-(1) * (V - 50) * 2) / RTONF)))) * (Cai * exp(100 / RTONF) - Cao * exp((-(2) * (V - 50)) / RTONF)) * d * f * f2; i_siK := ((0.01 * P_si * (V - 50)) / (RTONF * (1 - exp((-(1) * (V - 50)) / RTONF)))) * (Ki * exp(50 / RTONF) - Kc * exp((-(1) * (V - 50)) / RTONF)) * d * f * f2; i_siNa := ((0.01 * P_si * (V - 50)) / (RTONF * (1 - exp((-(1) * (V - 50)) / RTONF)))) * (Nai * exp(50 / RTONF) - Nao * exp((-(1) * (V - 50)) / RTONF)) * d * f * f2; // Variable initializations: P_si = 15; RTONF = ; Nao = ; Nai = ; Kc = ; Ki = ; Cao = ; end model difrancesco_noble_1985__extracellular_sodium_concentration(Nao) // Variable initializations: Nao = 140; end model difrancesco_noble_1985__intracellular_sodium_concentration(Nai, Vi, time_, F, i_Na, i_Na_b, i_siNa, i_p, i_fNa, i_NaCa, n_NaCa) // Assignment Rules: V_Cell := 3.141592654 * power(radius, 2) * length; Vi := V_Cell * (1 - V_e_ratio); // Rate Rules: Nai' = (-(1) * (i_Na + i_Na_b + i_fNa + i_siNa + i_p * 3 + (i_NaCa * n_NaCa) / (n_NaCa - 2))) / (1 * Vi * F); // Variable initializations: Nai = 8; radius = 0.05; V_e_ratio = 0.1; time_ = ; F = ; i_Na = ; i_Na_b = ; i_siNa = ; i_p = ; i_fNa = ; i_NaCa = ; n_NaCa = ; // Unit definitions: unit length = metre; end model difrancesco_noble_1985__extracellular_calcium_concentration(Cao) // Variable initializations: Cao = 2; end model difrancesco_noble_1985__intracellular_calcium_concentration(Cai, Vi, time_, V, F, i_Ca_b, i_siCa, i_NaCa, n_NaCa) // Assignment Rules: V_up := Vi * 0.05; V_rel := Vi * 0.02; i_up := ((2 * 1 * Vi * F) / (1 * tau_up * Ca_up_max)) * Cai * (Ca_up_max - Ca_up); i_tr := ((2 * 1 * V_rel * F) / (1 * tau_rep)) * p * (Ca_up - Ca_rel); i_rel := (((2 * 1 * V_rel * F) / (1 * tau_rel)) * Ca_rel * power(Cai, rCa)) / (power(Cai, rCa) + power(K_mCa, rCa)); alpha_p := (0.625 * (V + 34)) / (exp((V + 34) / 4) - 1); beta_p := 5 / (1 + exp((-(1) * (V + 34)) / 4)); // Rate Rules: Cai' = (-(1) * ((((i_siCa + i_Ca_b) - (2 * i_NaCa) / (n_NaCa - 2)) - i_rel) + i_up)) / (2 * 1 * Vi * F); Ca_up' = (1 * (i_up - i_tr)) / (2 * 1 * V_up * F); Ca_rel' = (1 * (i_tr - i_rel)) / (2 * 1 * V_rel * F); p' = alpha_p * (1 - p) - beta_p * p; // Variable initializations: Cai = 5e-5; Vi = ; Ca_up = 2; Ca_rel = 1; Ca_up_max = 5; K_mCa = 0.001; p = 1; tau_up = 0.025; tau_rep = 2; tau_rel = 0.05; rCa = 2; time_ = ; V = ; F = ; i_Ca_b = ; i_siCa = ; i_NaCa = ; n_NaCa = ; end model difrancesco_noble_1985__extracellular_potassium_concentration(Kc, i_mK, time_, F, i_K1, i_K, i_fK, i_siK, i_p, i_to) // Assignment Rules: i_mK := (i_K1 + i_K + i_fK + i_siK + i_to) - 2 * i_p; // Rate Rules: Kc' = - pf * (Kc - Kb) + (1 * i_mK) / (1 * Ve * F); // Variable initializations: Kc = 4; Ve = 0.00157; Kb = 4; pf = 0.7; time_ = ; F = ; i_K1 = ; i_K = ; i_fK = ; i_siK = ; i_p = ; i_to = ; end model difrancesco_noble_1985__intracellular_potassium_concentration(Ki, Vi, i_mK, time_, F) // Rate Rules: Ki' = (-(1) * i_mK) / (1 * Vi * F); // Variable initializations: Ki = 140; Vi = ; i_mK = ; time_ = ; F = ; end model *difrancesco_noble_1985____main() // Sub-modules, and any changes to those submodules: environment: difrancesco_noble_1985__environment(time_); membrane: difrancesco_noble_1985__membrane(V, R, T, F, RTONF, time_, i_f, i_K, i_K1, i_to, i_Na_b, i_Ca_b, i_p, i_NaCa, i_Na, i_si); hyperpolarising_activated_current: difrancesco_noble_1985__hyperpolarising_activated_current(i_f, i_fNa, E_Na, E_K, i_fK, time_, V, RTONF, Kc, Ki, Nai, Nao, y); time_dependent_potassium_current: difrancesco_noble_1985__time_dependent_potassium_current(i_K, time_, V, RTONF, Ki, Kc, x); time_independent_potassium_current: difrancesco_noble_1985__time_independent_potassium_current(i_K1, time_, V, E_K, Kc, RTONF); transient_outward_current: difrancesco_noble_1985__transient_outward_current(i_to, time_, V, RTONF, Kc, Ki, Cai, s); sodium_background_current: difrancesco_noble_1985__sodium_background_current(i_Na_b, time_, V, E_Na); calcium_background_current: difrancesco_noble_1985__calcium_background_current(i_Ca_b, E_Ca, time_, V, RTONF, Cai, Cao); sodium_potassium_pump: difrancesco_noble_1985__sodium_potassium_pump(i_p, time_, V, Nai, Kc); Na_Ca_exchanger: difrancesco_noble_1985__Na_Ca_exchanger(i_NaCa, n_NaCa, time_, V, RTONF, Cao, Cai, E_Na, Nai, Nao, E_Ca); fast_sodium_current: difrancesco_noble_1985__fast_sodium_current(i_Na, time_, V, RTONF, Nao, Nai, Kc, Ki, m, h); second_inward_current: difrancesco_noble_1985__second_inward_current(i_si, i_siCa, i_siK, i_siNa, time_, V, RTONF, Nao, Nai, Kc, Ki, Cao, Cai, d, f, f2); extracellular_sodium_concentration: difrancesco_noble_1985__extracellular_sodium_concentration(Nao); intracellular_sodium_concentration: difrancesco_noble_1985__intracellular_sodium_concentration(Nai, Vi, time_, F, i_Na, i_Na_b, i_siNa, i_p, i_fNa, i_NaCa, n_NaCa); extracellular_calcium_concentration: difrancesco_noble_1985__extracellular_calcium_concentration(Cao); intracellular_calcium_concentration: difrancesco_noble_1985__intracellular_calcium_concentration(Cai, Vi, time_, V, F, i_Ca_b, i_siCa, i_NaCa, n_NaCa); extracellular_potassium_concentration: difrancesco_noble_1985__extracellular_potassium_concentration(Kc, i_mK, time_, F, i_K1, i_K, i_fK, i_siK, i_p, i_to); intracellular_potassium_concentration: difrancesco_noble_1985__intracellular_potassium_concentration(Ki, Vi, i_mK, time_, F); end