Permalink
Browse files

Updated parameters.

Unified phi_x to phi.
AWESOME SWS
  • Loading branch information...
1 parent 1531e78 commit 3ab966625588417c70345590050a1d2d3dd6f546 @miscco committed May 14, 2014
Showing with 40 additions and 37 deletions.
  1. +6 −6 Cortical_Column.cpp
  2. +5 −4 Cortical_Column.h
  3. +4 −2 Plots.m
  4. +6 −6 Thalamic_Column.cpp
  5. +19 −19 Thalamic_Column.h
View
@@ -162,21 +162,21 @@ 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;
Phi_ee [N] = dt*(var_x_ee);
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<Rand_vars.size(); ++i) {
View
@@ -55,15 +55,16 @@ class Cortical_Column {
{set_RNG();}
Cortical_Column(double* Par, double* Con)
- :sigma_e (Par[0]), alpha_Na (Par[1]), tau_Na (Par[2]), dphi (Par[3]),
+ :sigma_e (Par[0]), alpha_Na (Par[1]), tau_Na (Par[2]), g_KNa (Par[3]),
+ dphi (Par[3]),
N_te (Con[2]), N_ti (Con[3])
{set_RNG();}
/* Connect to the thalamic module */
void get_Thalamus(Thalamic_Column& T) {Thalamus = &T;}
/* Return axonal flux */
- double get_phi (int N) const {_SWITCH((phi_e)); return var_phi_e;}
+ double get_phi (int N) const {_SWITCH((phi)); return var_phi;}
/* Initialize the RNGs */
void set_RNG (void);
@@ -106,12 +107,12 @@ class Cortical_Column {
Phi_ei = _INIT(0.0), /* PostSP from excitatory to inhibitory population */
Phi_ie = _INIT(0.0), /* PostSP from inhibitory to excitatory population */
Phi_ii = _INIT(0.0), /* PostSP from inhibitory to inhibitory population */
- phi_e = _INIT(0.0), /* axonal flux */
+ phi = _INIT(0.0), /* axonal flux */
x_ee = _INIT(0.0), /* derivative of Phi_ee */
x_ei = _INIT(0.0), /* derivative of Phi_ei */
x_ie = _INIT(0.0), /* derivative of Phi_ie */
x_ii = _INIT(0.0), /* derivative of Phi_ii */
- y_e = _INIT(0.0); /* derivative of phi_t */
+ y = _INIT(0.0); /* derivative of phi */
/* Random number generators */
vector<GEN> MTRands;
View
@@ -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
View
@@ -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;
View
@@ -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 */

0 comments on commit 3ab9666

Please sign in to comment.