//Created by libAntimony v2.4 model rubin_2009__environment(time_) // Variable initializations: time_ = ; end model rubin_2009__V1(V1, C, i_NaP, i_K, i_L1, i_synE1, i_synI1, time_) // Rate Rules: V1' = -(i_NaP + i_K + i_L1 + i_synE1 + i_synI1) / C; // Variable initializations: V1 = -50.0; C = ; i_NaP = ; i_K = ; i_L1 = ; i_synE1 = ; i_synI1 = ; time_ = ; end model rubin_2009__V2(V2, C, i_AD2, i_L2, i_synE2, i_synI2, time_) // Rate Rules: V2' = -(i_AD2 + i_L2 + i_synE2 + i_synI2) / C; // Variable initializations: V2 = -50.0; C = ; i_AD2 = ; i_L2 = ; i_synE2 = ; i_synI2 = ; time_ = ; end model rubin_2009__V3(V3, C, i_AD3, i_L3, i_synE3, i_synI3, time_) // Rate Rules: V3' = -(i_AD3 + i_L3 + i_synE3 + i_synI3) / C; // Variable initializations: V3 = -50.0; C = ; i_AD3 = ; i_L3 = ; i_synE3 = ; i_synI3 = ; time_ = ; end model rubin_2009__V4(V4, C, i_AD4, i_L4, i_synE4, i_synI4, time_) // Rate Rules: V4' = -(i_AD4 + i_L4 + i_synE4 + i_synI4) / C; // Variable initializations: V4 = -50.0; C = ; i_AD4 = ; i_L4 = ; i_synE4 = ; i_synI4 = ; time_ = ; end model rubin_2009__i_NaP_m_gate(m, V1) // Assignment Rules: m := 1 / (1 + exp(-(V1 + 40) / 6)); // Variable initializations: V1 = ; end model rubin_2009__i_NaP_h_gate(h, V1, time_) // Assignment Rules: h_infinity := 1 / (1 + exp((V1 + 48) / 6)); tau_h := tau_h_max / cosh((V1 + 48) / 12); // Rate Rules: h' = (h_infinity - h) / tau_h; // Variable initializations: h = 0.92; tau_h_max = 6000; V1 = ; time_ = ; end model rubin_2009__i_NaP(i_NaP, g_NaP, E_Na, time_, V1, m, h) // Sub-modules, and any changes to those submodules: i_NaP_m_gate: rubin_2009__i_NaP_m_gate(m, V1); i_NaP_h_gate: rubin_2009__i_NaP_h_gate(h, V1, time_); // Assignment Rules: i_NaP := g_NaP * m * h * (1 / 1000) * (V1 - E_Na); // Variable initializations: g_NaP = ; E_Na = ; end model rubin_2009__i_K_m_gate(m, V1) // Assignment Rules: m := 1 / (1 + exp(-(V1 + 29) / 4)); // Variable initializations: V1 = ; end model rubin_2009__i_K(i_K, g_K, E_K, time_, V1, m) // Sub-modules, and any changes to those submodules: i_K_m_gate: rubin_2009__i_K_m_gate(m, V1); // Assignment Rules: i_K := g_K * power(m, 4) * (1 / 1000) * (V1 - E_K); // Variable initializations: g_K = ; E_K = ; time_ = ; end model rubin_2009__i_AD2_m_gate(m, f2_V2, V2, time_) // Rate Rules: m' = (k_AD2 * f2_V2 - m) / tau_AD2; // Variable initializations: m = 0.92; k_AD2 = 0.9; tau_AD2 = 2000; f2_V2 = ; V2 = ; time_ = ; end model rubin_2009__i_AD2(i_AD2, g_AD, E_K, time_, V2, f2_V2, m) // Sub-modules, and any changes to those submodules: i_AD2_m_gate: rubin_2009__i_AD2_m_gate(m, f2_V2, V2, time_); // Assignment Rules: i_AD2 := g_AD * m * (1 / 1000) * (V2 - E_K); // Variable initializations: g_AD = ; E_K = ; end model rubin_2009__i_AD3_m_gate(m, f3_V3, V3, time_) // Rate Rules: m' = (k_AD3 * f3_V3 - m) / tau_AD3; // Variable initializations: m = 0.92; k_AD3 = 1.3; tau_AD3 = 2000; f3_V3 = ; V3 = ; time_ = ; end model rubin_2009__i_AD3(i_AD3, g_AD, E_K, f3_V3, time_, V3, m) // Sub-modules, and any changes to those submodules: i_AD3_m_gate: rubin_2009__i_AD3_m_gate(m, f3_V3, V3, time_); // Assignment Rules: i_AD3 := g_AD * m * (1 / 1000) * (V3 - E_K); // Variable initializations: g_AD = ; E_K = ; end model rubin_2009__i_AD4_m_gate(m, f4_V4, V4, time_) // Rate Rules: m' = (k_AD4 * f4_V4 - m) / tau_AD4; // Variable initializations: m = 0.92; k_AD4 = 0.9; tau_AD4 = 1000; f4_V4 = ; V4 = ; time_ = ; end model rubin_2009__i_AD4(i_AD4, g_AD, E_K, f4_V4, time_, V4, m) // Sub-modules, and any changes to those submodules: i_AD4_m_gate: rubin_2009__i_AD4_m_gate(m, f4_V4, V4, time_); // Assignment Rules: i_AD4 := g_AD * m * (1 / 1000) * (V4 - E_K); // Variable initializations: g_AD = ; E_K = ; end model rubin_2009__i_L1(i_L1, g_L, E_L, V1) // Assignment Rules: i_L1 := g_L * (1 / 1000) * (V1 - E_L); // Variable initializations: g_L = ; E_L = ; V1 = ; end model rubin_2009__i_L2(i_L2, g_L, E_L, V2) // Assignment Rules: i_L2 := g_L * (1 / 1000) * (V2 - E_L); // Variable initializations: g_L = ; E_L = ; V2 = ; end model rubin_2009__i_L3(i_L3, g_L, E_L, V3) // Assignment Rules: i_L3 := g_L * (1 / 1000) * (V3 - E_L); // Variable initializations: g_L = ; E_L = ; V3 = ; end model rubin_2009__i_L4(i_L4, g_L, E_L, V4) // Assignment Rules: i_L4 := g_L * (1 / 1000) * (V4 - E_L); // Variable initializations: g_L = ; E_L = ; V4 = ; end model rubin_2009__i_synE1(i_synE1, d1, d2, d3, g_synE, E_synE, V1) // Assignment Rules: i_synE1 := g_synE * (1 / 1000) * (V1 - E_synE) * (c11 * d1 + c21 * d2 + c31 * d3); // Variable initializations: c11 = 0.115; c21 = 0.07; c31 = 0.025; d1 = ; d2 = ; d3 = ; g_synE = ; E_synE = ; V1 = ; end model rubin_2009__i_synE2(i_synE2, f1_V1, d1, d2, d3, g_synE, E_synE, V1, V2) // Assignment Rules: i_synE2 := g_synE * (1 / 1000) * (V2 - E_synE) * (a12 * f1_V1 + c12 * d1 + c22 * d2 + c32 * d3); // Variable initializations: c12 = 0.3; c22 = 0.3; c32 = 0.0; a12 = 0.4; f1_V1 = ; d1 = ; d2 = ; d3 = ; g_synE = ; E_synE = ; V1 = ; V2 = ; end model rubin_2009__i_synE3(i_synE3, d1, d2, d3, g_synE, E_synE, V3) // Assignment Rules: i_synE3 := g_synE * (1 / 1000) * (V3 - E_synE) * (c13 * d1 + c23 * d2 + c33 * d3); // Variable initializations: c13 = 0.63; c23 = 0.00; c33 = 0.00; d1 = ; d2 = ; d3 = ; g_synE = ; E_synE = ; V3 = ; end model rubin_2009__i_synE4(i_synE4, d1, d2, d3, g_synE, E_synE, V4) // Assignment Rules: i_synE4 := g_synE * (1 / 1000) * (V4 - E_synE) * (c14 * d1 + c24 * d2 + c34 * d3); // Variable initializations: c14 = 0.33; c24 = 0.40; c34 = 0.00; d1 = ; d2 = ; d3 = ; g_synE = ; E_synE = ; V4 = ; end model rubin_2009__i_synI1(i_synI1, f2_V2, f3_V3, f4_V4, g_synI, E_synI, V1) // Assignment Rules: i_synI1 := g_synI * (1 / 1000) * (V1 - E_synI) * (b21 * f2_V2 + b31 * f3_V3 + b41 * f4_V4); // Variable initializations: b21 = 0.00; b31 = 0.30; b41 = 0.20; f2_V2 = ; f3_V3 = ; f4_V4 = ; g_synI = ; E_synI = ; V1 = ; end model rubin_2009__i_synI2(i_synI2, f3_V3, f4_V4, g_synI, E_synI, V2) // Assignment Rules: i_synI2 := g_synI * (1 / 1000) * (V2 - E_synI) * (b32 * f3_V3 + b42 * f4_V4); // Variable initializations: b32 = 0.05; b42 = 0.35; f3_V3 = ; f4_V4 = ; g_synI = ; E_synI = ; V2 = ; end model rubin_2009__i_synI3(i_synI3, f2_V2, f4_V4, g_synI, E_synI, V3) // Assignment Rules: i_synI3 := g_synI * (1 / 1000) * (V3 - E_synI) * (b23 * f2_V2 + b43 * f4_V4); // Variable initializations: b23 = 0.25; b43 = 0.10; f2_V2 = ; f4_V4 = ; g_synI = ; E_synI = ; V3 = ; end model rubin_2009__i_synI4(i_synI4, f2_V2, f3_V3, g_synI, E_synI, V4) // Assignment Rules: i_synI4 := g_synI * (1 / 1000) * (V4 - E_synI) * (b24 * f2_V2 + b34 * f3_V3); // Variable initializations: b24 = 0.35; b34 = 0.35; f2_V2 = ; f3_V3 = ; g_synI = ; E_synI = ; V4 = ; end model rubin_2009__model_parameters(C, E_Na, E_K, E_L, E_synE, E_synI, g_NaP, g_K, g_AD, g_L, g_synE, g_synI, d1, d2, d3, f1_V1, f2_V2, f3_V3, f4_V4, V1, V2, V3, V4) // Assignment Rules: f1_V1 := 1 / (1 + exp(-(V1 - V_half) / k_V1)); f2_V2 := 1 / (1 + exp(-(V2 - V_half) / k_V2)); f3_V3 := 1 / (1 + exp(-(V3 - V_half) / k_V3)); f4_V4 := 1 / (1 + exp(-(V4 - V_half) / k_V4)); // Variable initializations: C = 0.020; E_Na = 50.0; E_K = -85.0; E_L = -60.0; E_synE = 0.0; E_synI = -75.0; g_NaP = 5.0; g_K = 5.0; g_AD = 10.0; g_L = 2.8; g_synE = 10.0; g_synI = 60.0; d1 = 1.0; d2 = 1.0; d3 = 1.0; V_half = 30.0; k_V1 = 8.0; k_V2 = 4.0; k_V3 = 4.0; k_V4 = 4.0; V1 = ; V2 = ; V3 = ; V4 = ; end model *rubin_2009____main() // Sub-modules, and any changes to those submodules: environment: rubin_2009__environment(time_); V1: rubin_2009__V1(V10, C, i_NaP0, i_K0, i_L10, i_synE10, i_synI10, time_); V2: rubin_2009__V2(V20, C, i_AD20, i_L20, i_synE20, i_synI20, time_); V3: rubin_2009__V3(V30, C, i_AD30, i_L30, i_synE30, i_synI30, time_); V4: rubin_2009__V4(V40, C, i_AD40, i_L40, i_synE40, i_synI40, time_); i_NaP: rubin_2009__i_NaP(i_NaP0, g_NaP, E_Na, time_, V10, m, h); i_K: rubin_2009__i_K(i_K0, g_K, E_K, time_, V10, m0); i_AD2: rubin_2009__i_AD2(i_AD20, g_AD, E_K, time_, V20, f2_V2, m1); i_AD3: rubin_2009__i_AD3(i_AD30, g_AD, E_K, f3_V3, time_, V30, m2); i_AD4: rubin_2009__i_AD4(i_AD40, g_AD, E_K, f4_V4, time_, V40, m3); i_L1: rubin_2009__i_L1(i_L10, g_L, E_L, V10); i_L2: rubin_2009__i_L2(i_L20, g_L, E_L, V20); i_L3: rubin_2009__i_L3(i_L30, g_L, E_L, V30); i_L4: rubin_2009__i_L4(i_L40, g_L, E_L, V40); i_synE1: rubin_2009__i_synE1(i_synE10, d1, d2, d3, g_synE, E_synE, V10); i_synE2: rubin_2009__i_synE2(i_synE20, f1_V1, d1, d2, d3, g_synE, E_synE, V10, V20); i_synE3: rubin_2009__i_synE3(i_synE30, d1, d2, d3, g_synE, E_synE, V30); i_synE4: rubin_2009__i_synE4(i_synE40, d1, d2, d3, g_synE, E_synE, V40); i_synI1: rubin_2009__i_synI1(i_synI10, f2_V2, f3_V3, f4_V4, g_synI, E_synI, V10); i_synI2: rubin_2009__i_synI2(i_synI20, f3_V3, f4_V4, g_synI, E_synI, V20); i_synI3: rubin_2009__i_synI3(i_synI30, f2_V2, f4_V4, g_synI, E_synI, V30); i_synI4: rubin_2009__i_synI4(i_synI40, f2_V2, f3_V3, g_synI, E_synI, V40); model_parameters: rubin_2009__model_parameters(C, E_Na, E_K, E_L, E_synE, E_synI, g_NaP, g_K, g_AD, g_L, g_synE, g_synI, d1, d2, d3, f1_V1, f2_V2, f3_V3, f4_V4, V10, V20, V30, V40); end