Simulation code from Zenke, F., Agnes, E.J., and Gerstner, W. (2015).
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ana
mov
src
.gitignore
LICENSE
README.md

README.md

On-line learning with orchestrated plasticity rules

This repository contains example simulations which reproduce the key results from our paper as described in Figure 3:

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.
http://www.nature.com/ncomms/2015/150421/ncomms7922/full/ncomms7922.html

To run the code you need to install and compile Auryn. The present version of the coded uses slightly different paramters which lead to shorter training times. Note, that due to ongoing development of the simulator and specifically changes to the random seeding of SparseConnections since v0.4.1 the network you are simulating is not identical at the individual connection level to the simulation shown in the paper. To replicate the original simulation bit-by-bit please refer to the commit history of this repository and the simulator.

This development version was last tested with Auryn v0.8.1-dev (commit 94892708c3).

Included Auryn classes

P10Connection 
       Implements the excitatory connection object for orchestrated
       plasticity without homeostatic sliding threshold.

P11Connection 
       Implements the excitatory connection object for orchestrated
       plasticity with homeostatic sliding threshold.

P12Connection 
       Implements variation of P11Connection with two limits of the
       sliding threshold.

Running an example

In the following I will assume that you have git installed and up and running on your system. Moreover, you have all dependencies to compile Auryn installed. First, download and compile Auryn (see https://github.com/fzenke/auryn for instructions). Should you have difficulties compiling the simulator please refer to the installation and troubleshooting section in the manual (https://fzenke.net/auryn).

Now go to the installation directory of the simulation code (when you are reading this, chances are you are already in this directory) and run make there (you might have to update the auryn path in the Makefile if you are using a different install directory). This will build the necessary Auryn libraries that implement plasticity and the simulation libraries.

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 will run the three scripts 1run_init.sh, 2run_learn.sh and 3run_cued.sh. To regenerate the file containing the responsive cells, run bootstrap.sh.

The simulation file sim_rc_p10c is the downstream version of the simulation behind Figure 3 in our paper. The simulation sim_rc_p11 is a version with a homeostatic sliding threshold. The current default is to run the homeostatic one, but this can be changed easily in globalvars.sh.

Example analysis

You will find some example analysis files (including a Jupyter notebook) in the ana subdirectory.