Spiketiming dependent plasticity (STDP) synapse models¶

template<typename
targetidentifierT
>
classClopathConnection
: public Connection<targetidentifierT>  #include <clopath_connection.h>
Name: clopath_synapse  Synapse type for voltagebased STDP after Clopath.
Description:
clopath_synapse is a connector to create Clopath synapses as defined in [1]. In contrast to usual STDP, the change of the synaptic weight does not only depend on the pre and postsynaptic spike timing but also on the postsynaptic membrane potential.
Clopath synapses require archiving of continuous quantities. Therefore Clopath synapses can only be connected to neuron models that are capable of doing this archiving. So far, compatible models are aeif_psc_delta_clopath and hh_psc_alpha_clopath.
Parameters:
tau_x
ms
Time constant of the trace of the presynaptic spike train
Wmax
real
Maximum allowed weight
Wmin
real
Minimum allowed weight
Other parameters like the amplitudes for longterm potentiation (LTP) and depression (LTD) are stored in in the neuron models that are compatible with the Clopath synapse.
Transmits: SpikeEvent
References:
 1
Clopath et al. (2010). Connectivity reflects coding: a model of voltagebased STDP with homeostasis. Nature Neuroscience 13:3, 344–352. DOI: https://doi.org/10.1038/nn.2479
 2
Clopath and Gerstner (2010). Voltage and spike timing interact in STDP – a unified model. Frontiers in Synaptic Neuroscience 2:25. DOI: https://doi.org/10.3389/fnsyn.2010.00025
 3
Voltagebased STDP synapse (Clopath et al. 2010) on ModelDB https://senselab.med.yale.edu/ModelDB/showmodel.cshtml?model=144566
SeeAlso: stdp_synapse, aeif_psc_delta_clopath, hh_psc_alpha_clopath

template<typename
targetidentifierT
>
classSTDPConnection
: public Connection<targetidentifierT>¶  #include <stdp_connection.h>
Name: stdp_synapse  Synapse type for spiketiming dependent plasticity.
Description:
stdp_synapse is a connector to create synapses with spike time dependent plasticity (as defined in [1]). Here the weight dependence exponent can be set separately for potentiation and depression.
Examples:
multiplicative STDP [2] mu_plus = mu_minus = 1.0 additive STDP [3] mu_plus = mu_minus = 0.0 Guetig STDP [1] mu_plus = mu_minus = [0.0,1.0] van Rossum STDP [4] mu_plus = 0.0 mu_minus = 1.0
Parameters:
tau_plus
ms
Time constant of STDP window, potentiation (tau_minus defined in postsynaptic neuron)
lambda
real
Step size
alpha
real
Asymmetry parameter (scales depressing increments as alpha*lambda)
mu_plus
real
Weight dependence exponent, potentiation
mu_minus
real
Weight dependence exponent, depression
Wmax
real
Maximum allowed weight
Transmits: SpikeEvent
References:
 1
Guetig et al. (2003). Learning input correlations through nonlinear temporally asymmetric hebbian plasticity. Journal of Neuroscience, 23:36973714 DOI: https://doi.org/10.1523/JNEUROSCI.230903697.2003
 2
Rubin J, Lee D, Sompolinsky H (2001). Equilibrium properties of temporally asymmetric Hebbian plasticity. Physical Review Letters, 86:364367. DOI: https://doi.org/10.1103/PhysRevLett.86.364
 3
Song S, Miller KD, Abbott LF (2000). Competitive Hebbian learning through spiketimingdependent synaptic plasticity. Nature Neuroscience 3(9):919926. DOI: https://doi.org/10.1038/78829
 4
van Rossum MCW, Bi GQ, Turrigiano GG (2000). Stable Hebbian learning from spike timingdependent plasticity. Journal of Neuroscience, 20(23):88128821. DOI: https://doi.org/10.1523/JNEUROSCI.202308812.2000
FirstVersion: March 2006
Author: Moritz Helias, Abigail Morrison
Adapted by: Philipp Weidel
SeeAlso: synapsedict, tsodyks_synapse, static_synapse

template<typename
targetidentifierT
>
classSTDPFACETSHWConnectionHom
: public Connection<targetidentifierT>¶  #include <stdp_connection_facetshw_hom.h>
Name: stdp_facetshw_synapse_hom  Synapse type for spiketiming dependent plasticity using homogeneous parameters, i.e. all synapses have the same parameters.
Description:
stdp_facetshw_synapse is a connector to create synapses with spiketiming dependent plasticity (as defined in [1]). This connector is a modified version of stdp_synapse. It includes constraints of the hardware developed in the FACETS (BrainScaleS) project [2,3], as e.g. 4bit weight resolution, sequential updates of groups of synapses and reduced symmetric nearestneighbor spike pairing scheme. For details see [3]. The modified spike pairing scheme requires the calculation of tau_minus_ within this synapse and not at the neuron site via Kplus_ like in stdp_connection_hom.
Parameters:
Common properties
tau_plus
ms
Time constant of STDP window, causal branch
tau_minus_stdp
ms
Time constant of STDP window, anticausal branch
Wmax
real
Maximum allowed weight
no_synapses
integer
Total number of synapses
synapses_per_driver
integer
Number of synapses updated at once
driver_readout_time
real
Time for processing of one synapse row (synapse line driver)
readout_cycle_duration
real
Duration between two subsequent updates of same synapse (synapse line driver)
lookuptable_0
list of integers
Three lookup tables (LUT)
lookuptable_1
list of integers
lookuptable_2
list of integers
configbit_0
list of integers
Configuration bits for evaluation function. For details see code in function eval_function_ and [4] (configbit[0]=e_cc, ..[1]=e_ca, ..[2]=e_ac, ..[3]=e_aa). Depending on these two sets of configuration bits weights are updated according LUTs (out of three: (1,0), (0,1), (1,1)). For (0,0) continue without reset.
configbit_1
list of integers
reset_pattern
list of integers
Configuration bits for reset behavior. Two bits for each LUT (reset causal and acausal). In hardware only (all false; never reset) or (all true; always reset) is allowed.
Individual properties
a_causal
real
Causal and anticausal spike pair accumulations
a_acausal
real
a_thresh_th
real
Two thresholds used in evaluation function No common property, because variation of analog synapse circuitry can be applied here
a_thresh_tl
real
synapse_id
integer
Synapse ID, used to assign synapses to groups (synapse drivers)
Remarks:
The synapse IDs are assigned to each synapse in an ascending order (0,1,2, …) according their first presynaptic activity and is used to group synapses that are updated at once. It is possible to avoid activity dependent synapse ID assignments by manually setting the no_synapses and the synapse_id(s) before running the simulation. The weights will be discretized after the first presynaptic activity at a synapse.
Common properties can only be set on the synapse model using SetDefaults.
Transmits: SpikeEvent
References:
 1
Morrison A, Diesmann M, Gerstner W (2008). Phenomenological models of synaptic plasticity based on spiketiming. Biological Cybernetics, 98:459478. DOI: https://doi.org/10.1007/s0042200802331
 2
Schemmel J, Gruebl A, Meier K, Mueller E (2006). Implementing synaptic plasticity in a VLSI spiking neural network model. In Proceedings of the 2006 International Joint Conference on Neural Networks, pp.1–6, IEEE Press. DOI: https://doi.org/10.1109/IJCNN.2006.246651
 3
Pfeil T, Potjans TC, Schrader S, Potjans W, Schemmel J, Diesmann M, Meier K (2012). Is a 4bit synaptic weight resolution enough?  constraints on enabling spiketiming dependent plasticity in neuromorphic hardware. Frontiers in Neuroscience 6(90). DOI: https://doi.org/10.3389/fnins.2012.00090
 4
Friedmann, S. in preparation
FirstVersion: July 2011
Author: Thomas Pfeil (TP), Moritz Helias, Abigail Morrison
SeeAlso: stdp_synapse, synapsedict, tsodyks_synapse, static_synapse
Class representing an STDP connection with homogeneous parameters, i.e. parameters are the same for all synapses.

class
STDPHomCommonProperties
: public CommonSynapseProperties¶  #include <stdp_connection_hom.h>
Name: stdp_synapse_hom  Synapse type for spiketiming dependent plasticity using homogeneous parameters.
Description:
stdp_synapse_hom is a connector to create synapses with spike time dependent plasticity (as defined in [1]). Here the weight dependence exponent can be set separately for potentiation and depression.
Parameters controlling plasticity are identical for all synapses of the model, reducing the memory required per synapse considerably.
Examples:
multiplicative STDP [2] mu_plus = mu_minus = 1.0 additive STDP [3] mu_plus = mu_minus = 0.0 Guetig STDP [1] mu_plus = mu_minus = [0.0,1.0] van Rossum STDP [4] mu_plus = 0.0 mu_minus = 1.0
Parameters:
tau_plus
ms
Time constant of STDP window, potentiation (tau_minus defined in postsynaptic neuron)
lambda
real
Step size
alpha
real
Asymmetry parameter (scales depressing increments as alpha*lambda)
mu_plus
real
Weight dependence exponent, potentiation
mu_minus
real
Weight dependence exponent, depression
Wmax
real
Maximum allowed weight
Remarks:
The parameters are common to all synapses of the model and must be set using SetDefaults on the synapse model.
Transmits: SpikeEvent
References:
 1
Guetig et al. (2003). Learning input correlations through nonlinear temporally asymmetric hebbian plasticity. Journal of Neuroscience, 23:36973714 DOI: https://doi.org/10.1523/JNEUROSCI.230903697.2003
 2
Rubin J, Lee D, Sompolinsky H (2001). Equilibrium properties of temporally asymmetric Hebbian plasticity. Physical Review Letters, 86:364367. DOI: https://doi.org/10.1103/PhysRevLett.86.364
 3
Song S, Miller KD, Abbott LF (2000). Competitive Hebbian learning through spiketimingdependent synaptic plasticity. Nature Neuroscience 3(9):919926. DOI: https://doi.org/10.1038/78829
 4
van Rossum MCW, Bi GQ, Turrigiano GG (2000). Stable Hebbian learning from spike timingdependent plasticity. Journal of Neuroscience, 20(23):88128821. DOI: https://doi.org/10.1523/JNEUROSCI.202308812.2000
FirstVersion: March 2006
Author: Moritz Helias, Abigail Morrison
SeeAlso: synapsedict, tsodyks_synapse, static_synapse Class containing the common properties for all synapses of type STDPConnectionHom.

class
STDPDopaCommonProperties
: public CommonSynapseProperties¶  #include <stdp_dopa_connection.h>
Name: stdp_dopamine_synapse  Synapse type for dopaminemodulated spiketiming dependent plasticity.
Description:
stdp_dopamine_synapse is a connection to create synapses with dopaminemodulated spiketiming dependent plasticity (used as a benchmark model in [1], based on [2]). The dopaminergic signal is a lowpass filtered version of the spike rate of a userspecific pool of neurons. The spikes emitted by the pool of dopamine neurons are delivered to the synapse via the assigned volume transmitter. The dopaminergic dynamics is calculated in the synapse itself.
Examples:
/volume_transmitter Create /vol Set /iaf_psc_alpha Create /pre_neuron Set /iaf_psc_alpha Create /post_neuron Set /iaf_psc_alpha Create /neuromod_neuron Set /stdp_dopamine_synapse << /vt vol >> SetDefaults neuromod_neuron vol Connect pre_neuron post_neuron /stdp_dopamine_synapse Connect
Parameters:
Common properties
vt
integer
ID of volume_transmitter collecting the spikes from the pool of dopamine releasing neurons and transmitting the spikes to the synapse. A value of 1 indicates that no volume transmitter has been assigned.
A_plus
real
Amplitude of weight change for facilitation
A_minus
real
Amplitude of weight change for depression
tau_plus
ms
STDP time constant for facilitation
tau_c
ms
Time constant of eligibility trace
tau_n
ms
Time constant of dopaminergic trace
b
real
Dopaminergic baseline concentration
Wmin
real
Minimal synaptic weight
Wmax
real
Maximal synaptic weight
Individual properties
c
real
Eligibility trace
n
real
Neuromodulator concentration
Remarks: The common properties can only be set by SetDefaults and apply to all synapses of the model.
References:
 1
Potjans W, Morrison A, Diesmann M (2010). Enabling functional neural circuit simulations with distributed computing of neuromodulated plasticity. Frontiers in Computational Neuroscience, 4:141. DOI: https://doi.org/10.3389/fncom.2010.00141
 2
Izhikevich EM (2007). Solving the distal reward problem through linkage of STDP and dopamine signaling. Cerebral Cortex, 17(10):24432452. DOI: https://doi.org/10.1093/cercor/bhl152
Transmits: SpikeEvent
Author: Susanne Kunkel
Remarks:
based on an earlier version by Wiebke Potjans
major changes to code after code revision in Apr 2013
SeeAlso: volume_transmitter Class containing the common properties for all synapses of type dopamine connection.

template<typename
targetidentifierT
>
classSTDPNNPreCenteredConnection
: public Connection<targetidentifierT>¶  #include <stdp_nn_precentered_connection.h>
Name: stdp_nn_precentered_synapse  Synapse type for spiketiming dependent plasticity with presynapticcentered nearestneighbour spike pairing scheme.
Description:
stdp_nn_precentered_synapse is a connector to create synapses with spike time dependent plasticity with the presynapticcentered nearestneighbour spike pairing scheme, as described in [1].
Each presynaptic spike is taken into account in the STDP weight change rule with the nearest preceding postsynaptic one and the nearest succeeding postsynaptic one (instead of pairing with all spikes, like in stdp_synapse). So, when a presynaptic spike occurs, it is accounted in the depression rule with the nearest preceding postsynaptic one; and when a postsynaptic spike occurs, it is accounted in the facilitation rule with all preceding presynaptic spikes that were not earlier than the previous postsynaptic spike. For a clear illustration of this scheme see fig. 7B in [2].
The pairs exactly coinciding (so that presynaptic_spike == postsynaptic_spike
dendritic_delay), leading to zero delta_t, are discarded. In this case the concerned pre/postsynaptic spike is paired with the second latest preceding post/presynaptic one (for example, pre=={10 ms; 20 ms} and post=={20 ms} will result in a potentiation pair 20to10).
The implementation involves two additional variables  presynaptic and postsynaptic traces [2]. The presynaptic trace decays exponentially over time with the time constant tau_plus, increases by 1 on a prespike occurrence, and is reset to 0 on a postspike occurrence. The postsynaptic trace (implemented on the postsynaptic neuron side) decays with the time constant tau_minus and increases to 1 on a postspike occurrence.
Parameters:
tau_plus
ms
Time constant of STDP window, potentiation (tau_minus defined in postsynaptic neuron)
lambda
real
Step size
alpha
real
Asymmetry parameter (scales depressing increments as alpha*lambda)
mu_plus
real
Weight dependence exponent, potentiation
mu_minus
real
Weight dependence exponent, depression
Wmax
real
Maximum allowed weight
Transmits: SpikeEvent
References:
 1
Izhikevich E. M., Desai N. S. (2003) Relating STDP to BCM, Neural Comput. 15, 1511–1523
 2
Morrison A., Diesmann M., and Gerstner W. (2008) Phenomenological models of synaptic plasticity based on spike timing, Biol. Cybern. 98, 459–478
FirstVersion: March 2006
Author: Moritz Helias, Abigail Morrison
Adapted by: Philipp Weidel, Alex Serenko
SeeAlso: stdp_synapse, stdp_nn_symm_synapse

template<typename
targetidentifierT
>
classSTDPNNRestrConnection
: public Connection<targetidentifierT>¶  #include <stdp_nn_restr_connection.h>
Name: stdp_nn_restr_synapse  Synapse type for spiketiming dependent plasticity with restricted symmetric nearestneighbour spike pairing scheme.
Description:
stdp_nn_restr_synapse is a connector to create synapses with spike time dependent plasticity with the restricted symmetric nearestneighbour spike pairing scheme (fig. 7C in [1]).
When a presynaptic spike occurs, it is taken into account in the depression part of the STDP weight change rule with the nearest preceding postsynaptic one, but only if the latter occured not earlier than the previous presynaptic one. When a postsynaptic spike occurs, it is accounted in the facilitation rule with the nearest preceding presynaptic one, but only if the latter occured not earlier than the previous postsynaptic one. So, a spike can participate neither in two depression pairs nor in two potentiation pairs.
The pairs exactly coinciding (so that presynaptic_spike == postsynaptic_spike
dendritic_delay), leading to zero delta_t, are discarded. In this case the concerned pre/postsynaptic spike is paired with the second latest preceding post/presynaptic one (for example, pre=={10 ms; 20 ms} and post=={20 ms} will result in a potentiation pair 20to10).
The implementation relies on an additional variable  the postsynaptic eligibility trace [1] (implemented on the postsynaptic neuron side). It decays exponentially with the time constant tau_minus and increases to 1 on a postspike occurrence (instead of increasing by 1 as in stdp_synapse).
Parameters:
tau_plus
ms
Time constant of STDP window, potentiation (tau_minus defined in postsynaptic neuron)
lambda
real
Step size
alpha
real
Asymmetry parameter (scales depressing increments as alpha*lambda)
mu_plus
real
Weight dependence exponent, potentiation
mu_minus
real
Weight dependence exponent, depression
Wmax
real
Maximum allowed weight
Transmits: SpikeEvent
References:
 1
Morrison A., Diesmann M., and Gerstner W. (2008) Phenomenological models of synaptic plasticity based on spike timing, Biol. Cybern. 98, 459–478
FirstVersion: March 2006
Author: Moritz Helias, Abigail Morrison
Adapted by: Philipp Weidel, Alex Serenko
SeeAlso: stdp_synapse, stdp_nn_symm_synapse

template<typename
targetidentifierT
>
classSTDPNNSymmConnection
: public Connection<targetidentifierT>¶  #include <stdp_nn_symm_connection.h>
Name: stdp_nn_symm_synapse  Synapse type for spiketiming dependent plasticity with symmetric nearestneighbour spike pairing scheme.
Description:
stdp_nn_symm_synapse is a connector to create synapses with spike time dependent plasticity with the symmetric nearestneighbour spike pairing scheme [1].
When a presynaptic spike occurs, it is taken into account in the depression part of the STDP weight change rule with the nearest preceding postsynaptic one, and when a postsynaptic spike occurs, it is accounted in the facilitation rule with the nearest preceding presynaptic one (instead of pairing with all spikes, like in stdp_synapse). For a clear illustration of this scheme see fig. 7A in [2].
The pairs exactly coinciding (so that presynaptic_spike == postsynaptic_spike
dendritic_delay), leading to zero delta_t, are discarded. In this case the concerned pre/postsynaptic spike is paired with the second latest preceding post/presynaptic one (for example, pre=={10 ms; 20 ms} and post=={20 ms} will result in a potentiation pair 20to10).
The implementation involves two additional variables  presynaptic and postsynaptic traces [2]. The presynaptic trace decays exponentially over time with the time constant tau_plus and increases to 1 on a prespike occurrence. The postsynaptic trace (implemented on the postsynaptic neuron side) decays with the time constant tau_minus and increases to 1 on a postspike occurrence.
Parameters:
tau_plus
ms
Time constant of STDP window, potentiation (tau_minus defined in postsynaptic neuron)
lambda
real
Step size
alpha
real
Asymmetry parameter (scales depressing increments as alpha*lambda)
mu_plus
real
Weight dependence exponent, potentiation
mu_minus
real
Weight dependence exponent, depression
Wmax
real
Maximum allowed weight
Transmits: SpikeEvent
References:
 1
Morrison A., Aertsen A., Diesmann M. (2007) Spiketiming dependent plasticity in balanced random networks, Neural Comput. 19:1437–1467
 2
Morrison A., Diesmann M., and Gerstner W. (2008) Phenomenological models of synaptic plasticity based on spike timing, Biol. Cybern. 98, 459–478
FirstVersion: March 2006 Author: Moritz Helias, Abigail Morrison Adapted by: Philipp Weidel, Alex Serenko SeeAlso: stdp_synapse

class
STDPPLHomCommonProperties
: public CommonSynapseProperties¶  #include <stdp_pl_connection_hom.h>
Name: stdp_pl_synapse_hom  Synapse type for spiketiming dependent plasticity with power law implementation using homogeneous parameters, i.e. all synapses have the same parameters.
Description:
stdp_pl_synapse is a connector to create synapses with spike time dependent plasticity (as defined in [1]).
Parameters:
tau_plus
ms
Time constant of STDP window, potentiation (tau_minus defined in postsynaptic neuron)
lambda
real
Learning rate
alpha
real
Asymmetry parameter (scales depressing increments as alpha*lambda)
mu
real
Weight dependence exponent, potentiation
Remarks:
The parameters can only be set by SetDefaults and apply to all synapses of the model.
References:
 1
Morrison A, Aertsen A, Diesmann M. (2007) Spiketiming dependent plasticity in balanced random netrks. Neural Computation, 19(6):14371467. DOI: https://doi.org/10.1162/neco.2007.19.6.1437
Transmits: SpikeEvent
FirstVersion: May 2007
Author: Abigail Morrison
SeeAlso: synapsedict, stdp_synapse, tsodyks_synapse, static_synapse Class containing the common properties for all synapses of type STDPConnectionHom.

template<typename
targetidentifierT
>
classSTDPTripletConnection
: public Connection<targetidentifierT>¶  #include <stdp_triplet_connection.h>
Name: stdp_triplet_synapse  Synapse type with spiketiming dependent plasticity (triplets).
Description:
stdp_triplet_synapse is a connection with spike time dependent plasticity accounting for spike triplet effects (as defined in [1]).
STDP examples: pairbased Aplus_triplet = Aminus_triplet = 0.0 triplet Aplus_triplet = Aminus_triplet = 1.0
Parameters:
tau_plus
real
Time constant of short presynaptic trace (tau_plus of [1])
tau_plus_triplet
real
Time constant of long presynaptic trace (tau_x of [1])
Aplus
real
Weight of pair potentiation rule (A_plus_2 of [1])
Aplus_triplet
real
Weight of triplet potentiation rule (A_plus_3 of [1])
Aminus
real
Weight of pair depression rule (A_minus_2 of [1])
Aminus_triplet
real
Weight of triplet depression rule (A_minus_3 of [1])
Wmax
real
Maximum allowed weight
States
Kplus
real
Presynaptic trace (r_1 of [1])
Kplus_triplet
real
Triplet presynaptic trace (r_2 of [1])
Transmits: SpikeEvent
References:
 1
Pfister JP, Gerstner W (2006). Triplets of spikes in a model of spike timingdependent plasticity. The Journal of Neuroscience 26(38):96739682. DOI: https://doi.org/10.1523/JNEUROSCI.142506.2006
Notes:
Presynaptic traces r_1 and r_2 of [1] are stored in the connection as Kplus and Kplus_triplet and decay with timeconstants tau_plus and tau_plus_triplet, respectively.
Postsynaptic traces o_1 and o_2 of [1] are acquired from the postsynaptic neuron states Kminus_ and triplet_Kminus_ which decay on timeconstants tau_minus and tau_minus_triplet, respectively. These two timeconstants can be set as properties of the postsynaptic neuron.
This version implements the ‘alltoall’ spike interaction of [1]. The ‘nearestspike’ interaction of [1] can currently not be implemented without changing the postsynaptic archivingnode (clip the traces to a maximum of 1).
FirstVersion: Nov 2007
Author: Abigail Morrison, Eilif Muller, Alexander Seeholzer, Teo Stocco Adapted by: Philipp Weidel
SeeAlso: stdp_triplet_synapse_hpc, synapsedict, stdp_synapse, static_synapse

template<typename
targetidentifierT
>
classVogelsSprekelerConnection
: public Connection<targetidentifierT>¶  #include <vogels_sprekeler_connection.h>
Name: vogels_sprekeler_synapse  Synapse type for symmetric spiketiming dependent plasticity with constant depression.
Description: vogels_sprekeler_synapse is a connector to create synapses with symmetric spike time dependent plasticity and constant depression (as defined in [1]). The learning rule is symmetric, i.e., the synapse is strengthened irrespective of the order of the pre and postsynaptic spikes. Each presynaptic spike also causes a constant depression of the synaptic weight which differentiates this rule from other classical stdp rules.
Parameters:
tau
ms
Time constant of STDP window, potentiation
Wmax
real
Maximum allowed weight
eta
real
Learning rate
alpha
real
Constant depression (= 2 * tau * target firing rate in [1])
Transmits: SpikeEvent
References:
 1
Vogels et al. (2011). Inhibitory plasticity balances excitation and inhibition in sensory pathways and memory networks. Science, 334(6062):15691573. DOI: https://doi.org/10.1126/science.1211095
FirstVersion: January 2016
Author: Ankur Sinha
SeeAlso: synapsedict