Skip to content
Permalink
master
Switch branches/tags
Go to file
 
 
Cannot retrieve contributors at this time
"""
stdp_triplet_nn - Synapse type with triplet spike-timing dependent plasticity
#############################################################################
Description
+++++++++++
stdp_triplet_synapse is a connection with spike time dependent
plasticity accounting for spike triplet effects (as defined in [1]_).
References
++++++++++
.. [1] Pfister JP, Gerstner W (2006). Triplets of spikes in a model
of spike timing-dependent plasticity. The Journal of Neuroscience
26(38):9673-9682. DOI: https://doi.org/10.1523/JNEUROSCI.1425-06.2006
"""
synapse stdp_triplet_nn:
state:
w nS = 1 nS
tr_r1 real = 0.
tr_r2 real = 0.
tr_o1 real = 0.
tr_o2 real = 0.
end
parameters:
the_delay ms = 1 ms @nest::delay # !!! cannot have a variable called "delay"
tau_plus ms = 16.8 ms # time constant for tr_r1
tau_x ms = 101 ms # time constant for tr_r2
tau_minus ms = 33.7 ms # time constant for tr_o1
tau_y ms = 125 ms # time constant for tr_o2
A2_plus real = 7.5e-10
A3_plus real = 9.3e-3
A2_minus real = 7e-3
A3_minus real = 2.3e-4
Wmax nS = 100 nS
Wmin nS = 0 nS
end
equations:
tr_r1' = -tr_r1 / tau_plus
tr_r2' = -tr_r2 / tau_x
tr_o1' = -tr_o1 / tau_minus
tr_o2' = -tr_o2 / tau_y
end
input:
pre_spikes nS <- spike
post_spikes nS <- spike
end
output: spike
onReceive(post_spikes):
# increment post trace values
tr_o1 += 1
tr_o2 += 1
# potentiate synapse
#w_ nS = Wmax * ( w / Wmax + tr_r1 * ( A2_plus + A3_plus * tr_o2 ) )
w_ nS = w + tr_r1 * ( A2_plus + A3_plus * tr_o2 )
w = min(Wmax, w_)
end
onReceive(pre_spikes):
# increment pre trace values
tr_r1 += 1
tr_r2 += 1
# depress synapse
#w_ nS = Wmax * ( w / Wmax - tr_o1 * ( A2_minus + A3_minus * tr_r2 ) )
w_ nS = w - tr_o1 * ( A2_minus + A3_minus * tr_r2 )
w = max(Wmin, w_)
# deliver spike to postsynaptic partner
deliver_spike(w, the_delay)
end
end