//Created by libAntimony v2.4 model bertram_2002__environment(time_) // Variable initializations: time_ = ; end model bertram_2002__parameters(R_gas_const, Temp, F) // Variable initializations: R_gas_const = 8314.41; Temp = 310; F = 96485; end model bertram_2002__membrane(V, i_app, i_Na, i_K, i_leak, time_) // Rate Rules: V' = -((i_Na + i_K + i_leak) - i_app) / Cm; // Variable initializations: V = -65; Cm = 1; i_app = ; i_Na = ; i_K = ; i_leak = ; time_ = ; end model bertram_2002__stimulus_protocol(i_app, time_) // Assignment Rules: i_app := piecewise( IstimAmplitude , (( geq(time_, IstimStart)) && (time_ <= IstimEnd) && ((time_ - IstimStart) - floor((time_ - IstimStart) / IstimPeriod) * IstimPeriod <= IstimPulseDuration )), 0 ); // Variable initializations: IstimStart = 10; IstimEnd = 50000; IstimAmplitude = 40.0; IstimPeriod = 100; IstimPulseDuration = 1; time_ = ; end model bertram_2002__sodium_current(i_Na, time_, V, n) // Assignment Rules: i_Na := 120 * power(x_infinity, 3) * (1 - n) * (V - 120); x_infinity := alpha_x / (alpha_x + beta_x); alpha_x := (0.2 * (V + 40)) / (1 - 1 * exp(-(V + 40) / 10)); beta_x := 8 * exp(1 / -(V + 65 / 18)); // Variable initializations: time_ = ; V = ; n = ; end model bertram_2002__potassium_current(i_K, time_, V, n) // Assignment Rules: i_K := (36 * power(n, 4) * (V + 77)) / 1; // Variable initializations: time_ = ; V = ; n = ; end model bertram_2002__potassium_current_n_gate(n, V, time_) // Assignment Rules: alpha_n := (0.02 * (V + 55)) / (1 - exp(-(V + 55) / 10)); beta_n := 0.25 * exp(-(V + 65) / 80); // Rate Rules: n' = alpha_n * (1 - n) - beta_n * n; // Variable initializations: n = 0; V = ; time_ = ; end model bertram_2002__leak_current(i_leak, time_, V) // Assignment Rules: i_leak := 0.3 * (V + 54); // Variable initializations: time_ = ; V = ; end model bertram_2002__transmitter_release(T, Ca, time_) // Assignment Rules: T := T_bar * R; // Rate Rules: R' = kr_plus * Ca * (1 - R) - kr_minus * R; // Variable initializations: T_bar = 4000.0; R = 0; kr_plus = 0.15; kr_minus = 2.5; Ca = ; time_ = ; end model bertram_2002__calcium_concentration(Ca, R_gas_const, F, Temp, V, O, time_) // Assignment Rules: Ca := O * Ca_open + 0.1; Ca_open := sigma / (2 * Dc * r * pi); sigma := -(5.182) * i_V; i_V := (((g_Ca * P * 2 * F * V) / (R_gas_const * Temp)) * Ca_ex) / (1 - exp((2 * F * V) / (R_gas_const * Temp))); // Variable initializations: Ca_ex = 2000.0; Dc = 220; r = 10; g_Ca = 1.2; P = 0.006; R_gas_const = ; F = ; Temp = ; V = ; O = ; time_ = ; end model bertram_2002__rate_constants(alpha, alpha_, beta, beta_, kG_plus, kG_minus, kG2_minus, kG3_minus, V, time_, T) // Assignment Rules: alpha := 0.45 * exp(V / 22); alpha_ := alpha / 8; beta := 0.015 * exp(- V / 14); beta_ := beta * 8; kG_plus := (3 * a) / (680 + 320 * a); // Rate Rules: a' = ka_plus * T * (1 - a) - ka_minus * a; // Variable initializations: kG_minus = 0.00025; kG2_minus = 0.016; kG3_minus = 1.024; a = 0; ka_plus = 200.0; ka_minus = 0.0015; V = ; time_ = ; T = ; end model bertram_2002__C1(C1, alpha, beta, C2, C_G1, kG_minus, kG_plus, time_) // Rate Rules: C1' = (beta * C2 + kG_minus * C_G1) - C1 * (4 * alpha + kG_plus); // Variable initializations: C1 = 1; alpha = ; beta = ; C2 = ; C_G1 = ; kG_minus = ; kG_plus = ; time_ = ; end model bertram_2002__C2(C2, alpha, beta, C1, C3, C_G2, kG_plus, kG2_minus, time_) // Rate Rules: C2' = (4 * alpha * C1 + 2 * beta * C3 + kG2_minus * C_G2) - C2 * (beta + 3 * alpha + kG_plus); // Variable initializations: C2 = 0; alpha = ; beta = ; C1 = ; C3 = ; C_G2 = ; kG_plus = ; kG2_minus = ; time_ = ; end model bertram_2002__C3(C3, alpha, beta, C2, C4, C_G3, kG_plus, kG3_minus, time_) // Rate Rules: C3' = (3 * alpha * C2 + 3 * beta * C4 + kG3_minus * C_G3) - C3 * (2 * beta + 2 * alpha + kG_plus); // Variable initializations: C3 = 0; alpha = ; beta = ; C2 = ; C4 = ; C_G3 = ; kG_plus = ; kG3_minus = ; time_ = ; end model bertram_2002__C4(C4, alpha, beta, C3, O, time_) // Rate Rules: C4' = (2 * alpha * C3 + 4 * beta * O) - C4 * (3 * beta + alpha); // Variable initializations: C4 = 0; alpha = ; beta = ; C3 = ; O = ; time_ = ; end model bertram_2002__O(O, C1, C2, C3, C4, C_G1, C_G2, C_G3, time_) // Assignment Rules: O := ((((((1 - C1) - C2) - C3) - C4) - C_G1) - C_G2) - C_G3; C_G := C_G1 + C_G2 + C_G3; // Variable initializations: C1 = ; C2 = ; C3 = ; C4 = ; C_G1 = ; C_G2 = ; C_G3 = ; time_ = ; end model bertram_2002__C_G1(C_G1, alpha_, beta_, C1, C_G2, time_, kG_plus, kG_minus) // Rate Rules: C_G1' = (beta_ * C_G2 + kG_plus * C1) - C_G1 * (4 * alpha_ + kG_minus); // Variable initializations: C_G1 = 0; alpha_ = ; beta_ = ; C1 = ; C_G2 = ; time_ = ; kG_plus = ; kG_minus = ; end model bertram_2002__C_G2(C_G2, alpha_, beta_, C2, C_G1, C_G3, time_, kG_plus, kG2_minus) // Rate Rules: C_G2' = (4 * alpha_ * C_G1 + 2 * beta_ * C_G3 + kG_plus * C2) - C_G2 * (beta_ + 3 * alpha_ + kG2_minus); // Variable initializations: C_G2 = 0; alpha_ = ; beta_ = ; C2 = ; C_G1 = ; C_G3 = ; time_ = ; kG_plus = ; kG2_minus = ; end model bertram_2002__C_G3(C_G3, alpha_, beta_, C3, C_G2, time_, kG_plus, kG3_minus) // Rate Rules: C_G3' = (3 * alpha_ * C_G2 + kG_plus * C3) - C_G3 * (2 * beta_ + kG3_minus); // Variable initializations: C_G3 = 0; alpha_ = ; beta_ = ; C3 = ; C_G2 = ; time_ = ; kG_plus = ; kG3_minus = ; end model *bertram_2002____main() // Sub-modules, and any changes to those submodules: environment: bertram_2002__environment(time_); parameters: bertram_2002__parameters(R_gas_const, Temp, F); membrane: bertram_2002__membrane(V, i_app, i_Na, i_K, i_leak, time_); stimulus_protocol: bertram_2002__stimulus_protocol(i_app, time_); sodium_current: bertram_2002__sodium_current(i_Na, time_, V, n); potassium_current: bertram_2002__potassium_current(i_K, time_, V, n); potassium_current_n_gate: bertram_2002__potassium_current_n_gate(n, V, time_); leak_current: bertram_2002__leak_current(i_leak, time_, V); transmitter_release: bertram_2002__transmitter_release(T, Ca, time_); calcium_concentration: bertram_2002__calcium_concentration(Ca, R_gas_const, F, Temp, V, O0, time_); rate_constants: bertram_2002__rate_constants(alpha, alpha_, beta, beta_, kG_plus, kG_minus, kG2_minus, kG3_minus, V, time_, T); C1: bertram_2002__C1(C10, alpha, beta, C20, C_G10, kG_minus, kG_plus, time_); C2: bertram_2002__C2(C20, alpha, beta, C10, C30, C_G20, kG_plus, kG2_minus, time_); C3: bertram_2002__C3(C30, alpha, beta, C20, C40, C_G30, kG_plus, kG3_minus, time_); C4: bertram_2002__C4(C40, alpha, beta, C30, O0, time_); O: bertram_2002__O(O0, C10, C20, C30, C40, C_G10, C_G20, C_G30, time_); C_G1: bertram_2002__C_G1(C_G10, alpha_, beta_, C10, C_G20, time_, kG_plus, kG_minus); C_G2: bertram_2002__C_G2(C_G20, alpha_, beta_, C20, C_G10, C_G30, time_, kG_plus, kG2_minus); C_G3: bertram_2002__C_G3(C_G30, alpha_, beta_, C30, C_G20, time_, kG_plus, kG3_minus); end