Auryn simulator

Simulator for spiking neural networks with synaptic plasticity

User Tools

Site Tools


examples:orchestrated_plasticity

This is an old revision of the document!


Orchestrated Plasticity

You will find the code to reproduce the key results of Zenke, F., Agnes, E.J., and Gerstner, W. (2015). Diverse synaptic plasticity mechanisms orchestrated to form and retrieve memories in spiking neural networks. Nat Commun 6. on https://github.com/fzenke/pubsim

Getting the source

To run the orchestrated plasticity simulation as described in Figure 3 of the paper download or clone the pubsim repository. Then cd into /2015orchestrated/. You need to have Auryn installed and compiled. For this code to run you either need Auryn v0.5 or if you are used to working with Auryn v0.7 or newer, use the develop branch instead which supports Auryn name spaces (introduced with version v0.7).

Running the code

Now go to the installation directory of the simulation code (when you are reading this, chances are you are already in this directory) and update the path to your auryn installation in Makefile. Then run make. This should build the necessary Auryn libraries that implement plasticity and the simulation libraries (*Connection.* and sim_*.cpp). For instance the binary file sim_rc_p10c is the one behind Figure 3 in the paper.

Finally update the output path in globalvars.sh to point to a portion of disk with sufficient space. If you want to run distributed simulations make sure this path is accessible from all nodes of your cluster.

Invoking ./run_orchestrated_stdp.sh on the command line will run the three scripts 1run_init.sh, 2run_learn.sh and 3run_cued.sh in sequence. This corresponds to the first hours corresponding to the two-fold learning and recall protocol shown in Figure 3d and j.

Output files

The simulation will per default run on 4 cores locally, but this might change depending on your MPIsetup. It will generate a range of files out of which the most important ones are *.ras (or bras files if you use the newer develop branch version – to decode the “binary” ras files use aube). The ras files store the spike raster data of the simulation. Files labeled *.stimtimes contain the time point and duration of external stimulation events. These are text files. pact files contain the “Pattern Activity” in which patterns correspond to the cell assemblies that are formed during the course of the simulation. There is more information being saved, but these files will already allow you to reproduce Figure 3d and j (as shown above).

Updating rf1.pat to sort cells according to their preferred stimulus

Differences in the random seed or random library implementation might require to rebuild the rf1.pat file which stores the assembly membership of the individual neurons in the network. The file is used by PatternMonitor to read out the population firing rates of the four corresponding groups. To rebuild rf1.pat run the bootstrap.sh script. Note, that the script runs by default when you invoke ./run_orchestrated_stdp.sh.

That is also the reason why first phase of the simulation is run twice in case you wonder. After the first run the spiking data of the output is analyzed to determine cell/assembly membership relations by computing the PSTH for each cell and assigning cells to be selective to a certain pattern when their average firing rate during stimulation during the last bit of the simulation exceeds 10Hz. With the new rf1.pat generate the simulation can now rerun with the correct cells being recorded as the pattern activity (see Figure, below the spike raster).

examples/orchestrated_plasticity.1454091495.txt.gz · Last modified: 2016/01/29 18:18 by zenke