From 3ab966625588417c70345590050a1d2d3dd6f546 Mon Sep 17 00:00:00 2001 From: Schellenberger Date: Wed, 14 May 2014 17:52:57 +0200 Subject: [PATCH] Updated parameters. Unified phi_x to phi. AWESOME SWS --- Cortical_Column.cpp | 12 ++++++------ Cortical_Column.h | 9 +++++---- Plots.m | 6 ++++-- Thalamic_Column.cpp | 12 ++++++------ Thalamic_Column.h | 38 +++++++++++++++++++------------------- 5 files changed, 40 insertions(+), 37 deletions(-) diff --git a/Cortical_Column.cpp b/Cortical_Column.cpp index f1be3de..630b214 100644 --- a/Cortical_Column.cpp +++ b/Cortical_Column.cpp @@ -162,8 +162,8 @@ double Cortical_Column::noise_xRK(int N, int M) const{ /****************************************************************************************************/ void Cortical_Column::set_RK (int N) { extern const double dt; - _SWITCH((Phi_ee)(Phi_ei)(Phi_ie)(Phi_ii)(phi_e) - (x_ee) (x_ei) (x_ie) (x_ii) (y_e)) + _SWITCH((Phi_ee)(Phi_ei)(Phi_ie)(Phi_ii)(phi) + (x_ee) (x_ei) (x_ie) (x_ii) (y)) Ve [N] = dt*(-(I_L_e(N) + I_ee(N) + I_ie(N))/tau_e - I_KNa(N)); Vi [N] = dt*(-(I_L_i(N) + I_ei(N) + I_ii(N))/tau_i); Na [N] = dt*(alpha_Na * get_Qe(N) - Na_pump(N))/tau_Na; @@ -171,12 +171,12 @@ void Cortical_Column::set_RK (int N) { Phi_ei [N] = dt*(var_x_ei); Phi_ie [N] = dt*(var_x_ie); Phi_ii [N] = dt*(var_x_ii); - phi_e [N] = dt*(var_y_e); + phi [N] = dt*(var_y); x_ee [N] = dt*(pow(gamma_e, 2) * (N_ee * get_Qe(N) + noise_xRK(N, 0) + N_te * Thalamus->get_phi(N) - var_Phi_ee) - 2 * gamma_e * var_x_ee); x_ei [N] = dt*(pow(gamma_e, 2) * (N_ei * get_Qe(N) + noise_xRK(N, 1) + N_ti * Thalamus->get_phi(N) - var_Phi_ei) - 2 * gamma_e * var_x_ei); x_ie [N] = dt*(pow(gamma_i, 2) * (N_ie * get_Qi(N) - var_Phi_ie) - 2 * gamma_i * var_x_ie); x_ii [N] = dt*(pow(gamma_i, 2) * (N_ii * get_Qi(N) - var_Phi_ii) - 2 * gamma_i * var_x_ii); - y_e [N] = dt*(pow(nu, 2) * ( get_Qe(N) - var_phi_e) - 2 * nu * var_y_e); + y [N] = dt*(pow(nu, 2) * ( get_Qe(N) - var_phi) - 2 * nu * var_y); } /****************************************************************************************************/ /* end */ @@ -195,12 +195,12 @@ void Cortical_Column::add_RK(void) { Phi_ei [0] += (Phi_ei [1] + Phi_ei[2] * 2 + Phi_ei[3] * 2 + Phi_ei[4])/6; Phi_ie [0] += (Phi_ie [1] + Phi_ie[2] * 2 + Phi_ie[3] * 2 + Phi_ie[4])/6; Phi_ii [0] += (Phi_ii [1] + Phi_ii[2] * 2 + Phi_ii[3] * 2 + Phi_ii[4])/6; - phi_e [0] += (phi_e [1] + phi_e [2] * 2 + phi_e [3] * 2 + phi_e [4])/6; + phi [0] += (phi [1] + phi [2] * 2 + phi [3] * 2 + phi [4])/6; x_ee [0] += (x_ee [1] + x_ee [2] * 2 + x_ee [3] * 2 + x_ee [4])/6 + pow(gamma_e, 2) * h * Rand_vars[0]; x_ei [0] += (x_ei [1] + x_ei [2] * 2 + x_ei [3] * 2 + x_ei [4])/6 + pow(gamma_e, 2) * h * Rand_vars[2]; x_ie [0] += (x_ie [1] + x_ie [2] * 2 + x_ie [3] * 2 + x_ie [4])/6; x_ii [0] += (x_ii [1] + x_ii [2] * 2 + x_ii [3] * 2 + x_ii [4])/6; - y_e [0] += (y_e [1] + y_e [2] * 2 + y_e [3] * 2 + y_e [4])/6; + y [0] += (y [1] + y [2] * 2 + y [3] * 2 + y [4])/6; /* Generat noise for the next iteration */ for (unsigned i=0; i MTRands; diff --git a/Plots.m b/Plots.m index bca4beb..8d36f70 100644 --- a/Plots.m +++ b/Plots.m @@ -4,15 +4,17 @@ function Plots(T) if nargin == 0 - Input_N3 = [ 8.6; % sigma_e - 2.7; % alpha_Na + Input_N3 = [ 8.7; % sigma_e + 2.6; % alpha_Na 3; % tau_Na + 1.6; % g_KNa 60E-3]; % dphi Input_N2 = [ 4.6; % sigma_e 2; % alpha_Na 1.2; % tau_Na + 1.33; % g_KNa 60E-3]; % dphi Con = [0; % N_et diff --git a/Thalamic_Column.cpp b/Thalamic_Column.cpp index a7c9637..335f585 100644 --- a/Thalamic_Column.cpp +++ b/Thalamic_Column.cpp @@ -263,8 +263,8 @@ double Thalamic_Column::noise_xRK(int N) const{ void Thalamic_Column::set_RK (int N) { extern const double dt; _SWITCH((Ca) - (Phi_tt)(Phi_tr)(Phi_rt)(Phi_rr)(phi_t) - (x_tt) (x_tr) (x_rt) (x_rr) (y_t) + (Phi_tt)(Phi_tr)(Phi_rt)(Phi_rr)(phi) + (x_tt) (x_tr) (x_rt) (x_rr) (y) (m_T_t) (m_T_r) (h_T_t) (h_T_r) (m_h) (m_h2) (P_h)) Vt [N] = dt*(-(I_L_t(N) + I_et(N) + I_it(N))/tau_t - (I_LK_t(N) + I_T_t(N) + I_h(N))); @@ -281,12 +281,12 @@ void Thalamic_Column::set_RK (int N) { Phi_tr [N] = dt*(var_x_tr); Phi_rt [N] = dt*(var_x_rt); Phi_rr [N] = dt*(var_x_rr); - phi_t [N] = dt*(var_y_t); + phi [N] = dt*(var_y); x_tt [N] = dt*(pow(gamma_e, 2) * (noise_xRK(N) + N_et * Cortex->get_phi(N) - var_Phi_tt) - 2 * gamma_e * var_x_tt); x_tr [N] = dt*(pow(gamma_e, 2) * (N_tr * get_Qt(N) + N_er * Cortex->get_phi(N) - var_Phi_tr) - 2 * gamma_e * var_x_tr); x_rt [N] = dt*(pow(gamma_i, 2) * (N_rt * get_Qr(N) - var_Phi_rt) - 2 * gamma_i * var_x_rt); x_rr [N] = dt*(pow(gamma_i, 2) * (N_rr * get_Qr(N) - var_Phi_rr) - 2 * gamma_i * var_x_rr); - y_t [N] = dt*(pow(nu, 2) * ( get_Qt(N) - var_phi_t) - 2 * nu * var_y_t); + y [N] = dt*(pow(nu, 2) * ( get_Qt(N) - var_phi) - 2 * nu * var_y); } /****************************************************************************************************/ /* end */ @@ -305,12 +305,12 @@ void Thalamic_Column::add_RK(void) { Phi_tr [0] += (Phi_tr [1] + Phi_tr [2] * 2 + Phi_tr [3] * 2 + Phi_tr [4])/6; Phi_rt [0] += (Phi_rt [1] + Phi_rt [2] * 2 + Phi_rt [3] * 2 + Phi_rt [4])/6; Phi_rr [0] += (Phi_rr [1] + Phi_rr [2] * 2 + Phi_rr [3] * 2 + Phi_rr [4])/6; - phi_t [0] += (phi_t [1] + phi_t [2] * 2 + phi_t [3] * 2 + phi_t [4])/6; + phi [0] += (phi [1] + phi [2] * 2 + phi [3] * 2 + phi [4])/6; x_tt [0] += (x_tt [1] + x_tt [2] * 2 + x_tt [3] * 2 + x_tt [4])/6 + pow(gamma_e, 2) * h * Rand_vars[0]; x_tr [0] += (x_tr [1] + x_tr [2] * 2 + x_tr [3] * 2 + x_tr [4])/6; x_rt [0] += (x_rt [1] + x_rt [2] * 2 + x_rt [3] * 2 + x_rt [4])/6; x_rr [0] += (x_rr [1] + x_rr [2] * 2 + x_rr [3] * 2 + x_rr [4])/6; - y_t [0] += (y_t [1] + y_t [2] * 2 + y_t [3] * 2 + y_t [4])/6; + y [0] += (y [1] + y [2] * 2 + y [3] * 2 + y [4])/6; m_T_t [0] += (m_T_t [1] + m_T_t [2] * 2 + m_T_t [3] * 2 + m_T_t [4])/6; m_T_r [0] += (m_T_r [1] + m_T_r [2] * 2 + m_T_r [3] * 2 + m_T_r [4])/6; h_T_t [0] += (h_T_t [1] + h_T_t [2] * 2 + h_T_t [3] * 2 + h_T_t [4])/6; diff --git a/Thalamic_Column.h b/Thalamic_Column.h index 8549951..8a7ae85 100644 --- a/Thalamic_Column.h +++ b/Thalamic_Column.h @@ -67,7 +67,7 @@ class Thalamic_Column { void set_input (double I) {input = I;} /* Get axonal flux */ - double get_phi (int N) const {_SWITCH((phi_t)); return var_phi_t;} + double get_phi (int N) const {_SWITCH((phi)); return var_phi;} /* Initialize the RNGs */ void set_RNG (void); @@ -124,12 +124,12 @@ class Thalamic_Column { Phi_tr = _INIT(0.0), /* PostSP from TC population to RE population */ Phi_rt = _INIT(0.0), /* PostSP from RE population to TC population */ Phi_rr = _INIT(0.0), /* PostSP from RE population to RE population */ - phi_t = _INIT(0.0), /* axonal flux */ + phi = _INIT(0.0), /* axonal flux */ x_tt = _INIT(0.0), /* derivative of Phi_tt */ x_tr = _INIT(0.0), /* derivative of Phi_tr */ x_rt = _INIT(0.0), /* derivative of Phi_rt */ x_rr = _INIT(0.0), /* derivative of Phi_rr */ - y_t = _INIT(0.0), /* derivative of phi_t */ + y = _INIT(0.0), /* derivative of phi */ h_T_t = _INIT(0.0), /* inactivation of T channel */ h_T_r = _INIT(0.0), /* inactivation of T channel */ m_T_t = _INIT(0.0), /* activation of T channel */ @@ -154,12 +154,12 @@ class Thalamic_Column { const double Qr_max = 400.E-3; /* Sigmoid threshold in mV */ - const double theta_t = -45; - const double theta_r = -45; + const double theta_t = -58.6; + const double theta_r = -58.6; /* Sigmoid gain in mV */ - const double sigma_t = 3; - const double sigma_r = 3; + const double sigma_t = 9; + const double sigma_r = 9; /* Scaling parameter for sigmoidal mapping (dimensionless) */ const double C1 = (3.14159265/sqrt(3)); @@ -173,24 +173,24 @@ class Thalamic_Column { /* Conductivities in mS/cm^-2 */ /* Leak current */ - const double g_L_t = 0.6; - const double g_L_r = 1.5; + const double g_L_t = 1; + const double g_L_r = 1; /* Potassium leak current */ const double g_LK_t = 0.02; const double g_LK_r = 0.02; /* T current */ - const double g_T_t = 2.2; + const double g_T_t = 3; const double g_T_r = 2; /* h current */ - const double g_h = 0.07; + const double g_h = 0.04; /* Connectivities (dimensionless) */ - const double N_tr = 2; - const double N_rt = 5.5; - const double N_rr = 5; + const double N_tr = 10; + const double N_rt = 10; + const double N_rr = 40; const double N_et = 10; const double N_er = 10; @@ -200,8 +200,8 @@ class Thalamic_Column { const double E_GABA = -70; /* Leak */ - const double E_L_t = -64; - const double E_L_r = -64; + const double E_L_t = -70; + const double E_L_r = -70; /* Potassium */ const double E_K = -100; @@ -210,11 +210,11 @@ class Thalamic_Column { const double E_Ca = 120; /* I_h current */ - const double E_h = -40; + const double E_h = -43; /* Calcium parameters */ const double alpha_Ca = -50E-6; /* influx per spike in nmol */ - const double tau_Ca = 5; /* calcium time constant in ms */ + const double tau_Ca = 10; /* calcium time constant in ms */ const double Ca_0 = 2E-4; /* resting concentration */ /* I_h activation parameters */ @@ -227,7 +227,7 @@ class Thalamic_Column { /* Noise parameters in ms^-1 */ const double mphi = 0E-3; - const double dphi = 2E-3;; + const double dphi = 10E-3;; double input = 0.0; /* Pointer to cortical column */