This simulation sets up an excitatory and an inhibitory Poisson neuron and connects them to a single postsynaptic cell (IFGroup). It records and outputs the membrane potential in the file
The simulation can be invoked without any parameters. It creates the following command line output
zenke@merlin ~/auryn/build/home $ ./sim_epsp ( 0) Running ... [=========================] 100% t=10.0 s ( 0) Freeing ...
and a set of files
0 -rw-r--r-- 1 zenke zenke 0 Jan 10 19:54 out_epsp.ras 1.8M -rw-r--r-- 1 zenke zenke 1.8M Jan 10 19:54 out_epsp.nmda 1.9M -rw-r--r-- 1 zenke zenke 1.9M Jan 10 19:54 out_epsp.mem 1.8M -rw-r--r-- 1 zenke zenke 1.8M Jan 10 19:54 out_epsp.gaba 1.8M -rw-r--r-- 1 zenke zenke 1.8M Jan 10 19:54 out_epsp.ampa 4.0K -rw-r--r-- 1 zenke zenke 1.2K Jan 10 19:54 out_epsp.0.log
In the default configuration of the simulation the ras file stays empty since the neuron does not emit any spikes. The mem file contains the trace of the membrane potential over time. The other files (with extensions
nmda) contain traces of the neuron's conductance variables.
This plot shows the membrane potential of the single neuron in the simulation.
This plot can be generated by running gnuplot and issueing the follwing commands in the same directory
PoissonGroup * poisson = new PoissonGroup(N,1.); PoissonGroup * poisson2 = new PoissonGroup(N,1.); IFGroup * neuron = new IFGroup(1);
Sets up the two Poisson neurons (two groups containing a single Poisson cell each) and a single integrate-and-fire cell from the IFGroup type.
IdentityConnection * con = new IdentityConnection(poisson,neuron,w,GLUT); IdentityConnection * con2 = new IdentityConnection(poisson2,neuron,w,GABA);
Creates two one-to-one connetions between the Poisson neurons and the integrate-and-fire cell.
SpikeMonitor * smon = new SpikeMonitor( neuron, tmpstr.c_str() );
Sets up a SpikeMonitor and tells it to record from our
neuron. The output is written to a file that is specified by
VoltageMonitor * vmon = new VoltageMonitor( neuron, 0, tmpstr.c_str() );
Creates a VoltageMonitor that records the voltage to a different file which is again specified in
tmpstr. Note that an equivalent alternative syntax would be to recorde voltages would be directly using a StateMonitor. The conductance monitors are set up in a similar way.
logger->msg("Running ...",PROGRESS); sys->run(10);
This finally outputs a message
Running… on the console and triggers the run for 10s. Note the call of the global variable sys of type System.