Auryn simulator

Simulator for spiking neural networks with synaptic plasticity

User Tools

Site Tools


examples:sim_coba_benchmark

This is an old revision of the document!


sim_coba_benchmark

This is the Vogels-Abbott Benchmark (from Brette et al. 2007) network adapted from the examples included in PyNN. It implements a smaller version of the conductance based, self-sustained balanced network from (Vogels and Abbott (2005)).

Running the program

To run the program the network first needs priming with external Poisson noise before it can self-sustain its activity. To do that invoke the program with the following command line arguments

./sim_coba_benchmark --dir /tmp --prime --simtime 0.050
./sim_coba_benchmark --dir /tmp --simtime 5

The prime keyword in the first command causes the network to run with external Poisson input and save its network state at the end of the run to a set of files created under /tmp. Note that you can give any other directory name where you want the files to be created. The second call to the progrem without the –prime argument causes the program to read the current network state from these saved files and runs the network for the specified period in simtime. All spiking output and the memory trace (mem file) of a single neuron are written to the directory specified with –dir and are prefixed with coba.*.

Output example

In the above example the output is written to /tmp.

bash-4.1$ ls -l /tmp/coba.0.*
   8 -rw-r--r-- 1 zenke lcn1    5447 Jan 13 11:17 /tmp/coba.0.log
3208 -rw-r--r-- 1 zenke lcn1 3282541 Jan 13 11:17 /tmp/coba.0.e.ras
 764 -rw-r--r-- 1 zenke lcn1  780757 Jan 13 11:17 /tmp/coba.0.i.ras
 928 -rw-r--r-- 1 zenke lcn1  950019 Jan 13 11:17 /tmp/coba.0.e.mem
 916 -rw-r--r-- 1 zenke lcn1  935976 Jan 13 11:17 /tmp/coba.0.e.gaba
 880 -rw-r--r-- 1 zenke lcn1  900018 Jan 13 11:17 /tmp/coba.0.e.ampa

This figure shows the rasterplot of the spiking activity of the excitatory population written to /tmp/coba.0.e.ras.

The figure shows the evolution of the membrane potential of one excitatory cell during the simulation.

The important bits

TIFGroup * neurons_e = new TIFGroup( ne);
TIFGroup * neurons_i = new TIFGroup( ni);
 
neurons_e->random_mem(-70e-3,10e-3);
neurons_i->random_mem(-70e-3,10e-3);

This part instatiates two groups of neurons of type TIFGroup which corresponds to the conductance based model with exponentially decaying PSCs and an absolute refractoriness of 5ms. The random_mem methods randomize the initial membrane potentials with a Gaussian (mean=-70mV and standard deviation 10e-3mV).

The sparse random connectivity is initialized as follows:

SparseConnection * con_ee 
   = new SparseConnection( neurons_e,neurons_e, w, sparseness, GLUT);
 
SparseConnection * con_ei 
   = new SparseConection( neurons_e,neurons_i, w,sparseness,GLUT);
 
SparseConnection * con_ie 
   = new SparseConnection( neurons_i,neurons_e,wi,sparseness,GABA);
 
SparseConnection * con_ii 
   = new SparseConnection( neurons_i,neurons_i,wi,sparseness,GABA);

here w contains the synaptic weight of excitatory synapses and wi the one of their inhibitory counter part. The network has a global sparseness of 2%.

To implement the priming mechanism we find the following conditional branch:

if ( prime ) { 
		msg = "Setting up external input ...";
		logger->msg(msg,PROGRESS,true);
 
		PoissonGroup * poisson= new PoissonGroup(200,10);
		poisson->seed(132341); 
		// this will give the same seed on each rank,
		// but since the group should be locked to a single
		// rank we do not care.
 
		SparseConnection * con_ext_e = new SparseConnection(poisson,neurons_e,1,sparseness/2,GLUT);
		SparseConnection * con_ext_i = new SparseConnection(poisson,neurons_i,1,sparseness/2,GLUT);
 
	} else {
		oss.str("");
		oss << dir << "/save";
		sys->load_network_state(oss.str());
	}

If the prime directive is set (via the command line) this code will create a PoissonGroup and connect it to the excitatory and inhibitory populations. If prime==false this will try to load the network state from the hopefully existing save files stored under /tmp/save* in our example.

examples/sim_coba_benchmark.1389609805.txt.gz · Last modified: 2014/01/13 10:43 by zenke