I'm trying to delivery synaptic input at fixed time to a vecevent mod from Neuron example, but with no effect.
This is the testcase I'm using to experiment this feature:
Code: Select all
from neuron import h
import neuron.gui
soma = h.Section(name='soma')
ampa = h.AMPA(0.5, sec=soma)
soma.insert('hh')
vecStim = h.VecStim()
vec = h.Vector(3)
vec.indgen()
vecStim.play(vec)
h.run()
Code: Select all
TITLE AMPA synapse for nucleus accumbens model
: see comments below
NEURON {
POINT_PROCESS AMPA
RANGE gbar, tau_r, tau_d, scale, spkcnt, countflag, i, t1, ca_ratio, ical, itmp, qfact
NONSPECIFIC_CURRENT i
USEION cal WRITE ical VALENCE 2
}
UNITS {
(nA) = (nanoamp)
(mV) = (millivolt)
(umho) = (micromho)
}
PARAMETER {
gbar = 8.5e-4 (umho) : approx 0.5:1 NMDA:AMPA ratio (Myme 2003)
: with mg = 0, vh = -70, one pulse, NMDA = 300 pS
: here AMPA = 593 pS (NMDA set to Dalby 2003)
tau_r = 2.2 (ms) : Gotz 1997, Table 1 - rise tau
tau_d = 11.5 (ms) : Gotz 1997, Table 1 - decay tau
Erev = 0 (mV) : reversal potential, Jahn 1998
saturate = 1.2 : causes the conductance to saturate - matched to
: Destexhe's reduced model in [1]
qfact = 2 : convert 22 degC to 35 degC
ca_ratio = 0.005 : ratio of calcium current to total current
} : Burnashev/Sakmann J Phys 1995 485:403-418
: with Carter/Sabatini Neuron 2004 44:483-493
ASSIGNED {
g (umho)
v (mV) : postsynaptic voltage
itmp (nA) : temp value of current
i (nA) : nonspecific current = g*(v - Erev)
ical (nA) : calcium current through AMPA synapse (Carter/Sabatini)
t1 (ms)
y1_add (/ms) : value added to y1 when a presynaptic spike is registered
y1_loc (/ms)
countflag : start/stop counting spikes delivered
spkcnt : counts number of events delivered to synapse
scale : scale allows the current to be scaled by weight
} : so NetCon(...,2) gives 2*the current as NetCon(...,1)
STATE {
y1 (/ms)
y2 : sum of beta-functions, describing the total conductance
}
INITIAL {
y1_add = 0
scale = 0
spkcnt = 0
countflag = 0
t1 = 0
y1_loc = 0
}
BREAKPOINT {
SOLVE betadyn METHOD cnexp
g = gbar * y2
itmp = scale * g * (v - Erev)
i = (1-ca_ratio) * itmp
ical = ca_ratio * itmp
}
DERIVATIVE betadyn {
: dynamics of the beta-function, from [2]
y1' = -y1 / (tau_d/qfact)
y2' = y1 - y2 / (tau_r/qfact)
}
NET_RECEIVE( weight, y1_loc (/ms) ) {
: updating the local y1 variable
y1_loc = y1_loc*exp( -(t - t1) / (tau_d/qfact) )
: y1_add is dependent on the present value of the local
: y1 variable, y1_loc
y1_add = (1 - y1_loc/saturate)
: update the local y1 variable
y1_loc = y1_loc + y1_add
: presynaptic spike is finaly registered
y1 = y1 + y1_add
: store the spike time
t1 = t
spkcnt = spkcnt + 1
scale = weight
}
Unfortunately not event is delivered and the voltage doesn't change at all.
Any idea what I'm doing wrong?
Thanks.