Back to Making synaptic connections
Back to Creating large networks with GENESIS
Up: Table of Contents

Implementing synaptic plasticity

Making synaptic connections briefly mentioned the synapse substructure of of the syhchan. Each synaptic connection to a synchan (established with a SPIKE message) has fields for the synaptic weight, and for a delay. The delay field is used in network models to represent axonal conduction delays that typically depend on distance. The effect of this field is to impose a delay on the arrival of spikes from a synapse.

Example:

  addmsg /cell1/soma/spike /cell2/dend/Ex_channel SPIKE
  setfield /cell2/dend/Ex_channel synapse[0].weight 10 synapse[0].delay 0.005

Similar statements would be used for additional synaptic connections synapse[1], synapse[2], etc. The key to implementing synaptic plasticity is to modify the value of the synapse weight field while the simulation is running, according to some model of synaptic plasticity.

One way to do this is with variants of the synchan object that have the plasticity mechanism built in to them. This is the case with the hebbsynchan and facsynchan objects, or custom objects created according to Creating New Synaptic Objects. However, these objects are not hsolvable, and cannot be used in cells that have been taken over by hsolve. The VAnet2 simulation in networks/VAnet2 illustrates how the use of hsolve can increase the speed of a large network simulation by as much as a factor of 20.

An alternative that is consistent with hsolve is to perform the weight changes with a clocked object or function that is external to the hsolved network. This can be done by either

The tutorial with example scripts in Scripts/stdp_rules illustrates both methods as applied to the the Song, Miller, and Abbott (2000) (SMA) model for Spike Timing Dependent Plasticity (STDP).

The concept behind the stdp_rules object is very general, but this particular implementation is specific to the SMA phenomenological model of STDP. Rather than using a more biologically based model that depends on calcium influx to the cell, the weight modification rules are based on experimentally observed relationships between the timing of pre and postsynaptic spikes, e.g. Dan and Poo (2004). The GENESIS implementation has been adapted for compartmental models with continous conductance changes, Hodgkin-Huxley channels, and axonal delays, rather than for 'point neuron' integrate and fire (IF) cells.

The demonstration script Scripts/stdp_rules/W32ex-5-1-batch.g defines a function apply_stdp_rules that illustrates the SMA application of the SMA weight update procedure in the GENESIS scripting language. It is called by a script_out element at 1 msec intervals. The function setup_stdp_update shows how to more rapidly perform the same weight modification rules by creating and initializing the fields of a stdp_rules element.

There are exercises in the application of the stdp_rules object in course-tutorials.html and in Gtut5.html in the exercises directory.

For details of the implementation, see the GENESIS 2.4 documentation Creating New Synaptic Plasticity Objects.

References

Brette et al. (2007) Simulation of networks of spiking neurons: A review of tools and strategies. J. Comput. Neurosci. 23: 349-398.

Dan Y and Poo M (2004) Spike timing-dependent plasticity of neural circuits. Neuron, 44:232-330 .

Song S, Miller KD, Abbott LF (2000) Competitive Hebbian learning through spike-timing-dependent synaptic plasticity. Nat. Neurosci. 3: 919–926.

Vogels TP, Abbott LF. (2005) Signal propagation and logic gating in networks of integrate-and-fire neurons. J. Neurosci. 25: 10786-10795.


Back to Making synaptic connections
Back to Creating large networks with GENESIS
Up: Table of Contents