Skip to content
Permalink
master
Switch branches/tags
Go to file
 
 
Cannot retrieve contributors at this time
"""
stdp_triplet - 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]_).
.. warning::
NAIVE VERSION: unclear about relative timing of pre and post trace updates due to incoming pre and post spikes
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:
state:
w nS = 1 nS
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:
kernel tr_r1_kernel = exp(-t / tau_plus)
inline tr_r1 real = convolve(tr_r1_kernel, pre_spikes)
kernel tr_r2_kernel = exp(-t / tau_x)
inline tr_r2 real = convolve(tr_r2_kernel, pre_spikes)
kernel tr_o1_kernel = exp(-t / tau_minus)
inline tr_o1 real = convolve(tr_o1_kernel, post_spikes)
kernel tr_o2_kernel = exp(-t / tau_y)
inline tr_o2 real = convolve(tr_o2_kernel, post_spikes)
end
input:
pre_spikes nS <- spike
post_spikes nS <- spike
end
output: spike
onReceive(post_spikes):
# 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):
# 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