examples:sim_background
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| examples:sim_background [2014/01/20 10:43] – created zenke | examples:sim_background [2014/03/20 09:04] (current) – adds external link zenke | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== sim_background ====== | ====== sim_background ====== | ||
| - | This simulation was used in Zenke et al. 2013 to study the stability of the asynchronous irregular background state in a balanced network in the presence of [[manual: | + | This simulation |
| {{: | {{: | ||
| Line 13: | Line 13: | ||
| </ | </ | ||
| - | Here the parameter '' | + | Here the parameter '' |
| ===== The important bits ===== | ===== The important bits ===== | ||
| + | Similar to other network simulations such as [[sim_isp_orig]] we start by defining two [[manual: | ||
| + | |||
| + | <code c++> | ||
| + | NeuronGroup * neurons_e; | ||
| + | if ( adapt ) { | ||
| + | neurons_e = new AIFGroup(ne); | ||
| + | ((AIFGroup*)neurons_e)-> | ||
| + | ((AIFGroup*)neurons_e)-> | ||
| + | } else { | ||
| + | if ( loadbalance ) | ||
| + | neurons_e = new IFGroup(ne, | ||
| + | else | ||
| + | neurons_e = new IFGroup(ne); | ||
| + | ((IFGroup*)neurons_e)-> | ||
| + | } | ||
| + | IFGroup * neurons_i = new IFGroup(ni); | ||
| + | |||
| + | // initialize membranes | ||
| + | neurons_i-> | ||
| + | neurons_e-> | ||
| + | neurons_i-> | ||
| + | |||
| + | ((IFGroup*)neurons_i)-> | ||
| + | </ | ||
| + | |||
| + | The non-plastic connections between the different neuron groups are set up in this section | ||
| + | <code c++> | ||
| + | msg = " | ||
| + | logger-> | ||
| + | SparseConnection * con_ie = new SparseConnection(neurons_i, | ||
| + | w_ie, | ||
| + | SparseConnection * con_ii = new SparseConnection(neurons_i, | ||
| + | w_ii, | ||
| + | |||
| + | msg = " | ||
| + | logger-> | ||
| + | SparseConnection * con_ei; | ||
| + | if ( !ei_plastic ) { | ||
| + | con_ei = new SparseConnection(neurons_e, | ||
| + | w_ei, sparseness, | ||
| + | } else { | ||
| + | if (infilename.empty()) { | ||
| + | con_ei = new TripletConnection(neurons_e, | ||
| + | w_ei, sparseness, | ||
| + | tau_hom, eta, kappa, wmax, GLUT); | ||
| + | } else { | ||
| + | string str; | ||
| + | str = infilename; | ||
| + | str += " | ||
| + | stringstream oss; | ||
| + | oss << " | ||
| + | logger-> | ||
| + | con_ei = new TripletConnection(neurons_e, | ||
| + | str.c_str(), | ||
| + | tau_hom, eta, kappa, wmax, GLUT); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Finally triplet STDP is setup here. The code again looks a bit more complicated since the simulation supports the use of different flavours of [[manual: | ||
| + | <code c++> | ||
| + | TripletConnection * con_ee; | ||
| + | |||
| + | if (infilename.empty()) { | ||
| + | if (decay) | ||
| + | con_ee = new TripletDecayConnection(neurons_e, | ||
| + | w_ee, sparseness, | ||
| + | tau_hom, eta, tau_decay, | ||
| + | kappa, wdecay, wmax, GLUT); | ||
| + | else | ||
| + | con_ee = new TripletConnection(neurons_e, | ||
| + | w_ee, sparseness, | ||
| + | tau_hom, eta, kappa, wmax, GLUT); | ||
| + | |||
| + | // con_ee-> | ||
| + | if ( noisyweights ) | ||
| + | con_ee-> | ||
| + | for ( int i = 0 ; i < n_strengthen ; ++i ) { | ||
| + | con_ee-> | ||
| + | } | ||
| + | } | ||
| + | else { | ||
| + | string str; | ||
| + | str = infilename; | ||
| + | str += " | ||
| + | stringstream oss; | ||
| + | oss << " | ||
| + | logger-> | ||
| + | if (decay) | ||
| + | con_ee = new TripletDecayConnection(neurons_e, | ||
| + | str.c_str(), | ||
| + | else | ||
| + | con_ee = new TripletConnection(neurons_e, | ||
| + | str.c_str(), | ||
| + | |||
| + | |||
| + | sprintf(strbuf, | ||
| + | neurons_e-> | ||
| + | sprintf(strbuf, | ||
| + | neurons_i-> | ||
| + | |||
| + | // primetime = 0; | ||
| + | } | ||
| + | |||
| + | </ | ||
examples/sim_background.1390214580.txt.gz · Last modified: 2014/01/20 10:43 by zenke
