COMMENT
pulsesyn.mod
For use to make pulses for the ectopic current injection into the
axons of the Traub et al 2005 model. This replaces the role of the
curr_cellname currents in the FORTRAN code.
The point process is located in an axon compartment of the cell
receiving this (default) infrequent background stimulus. A netstim is
set to the poisson probability desired and to this point process.
The variables amp (current amplitude in nanoamps when on) and
time_interval (milliseconds) (length of time to keep injected current
on for each event) are the only two variables that this point process
expects to be set before running the simulation.
Tom Morse, Michael Hines
ENDCOMMENT
NEURON {
POINT_PROCESS PulseSyn
RANGE time_interval, i, amp, instantaneous_amp, on
NONSPECIFIC_CURRENT i
}
UNITS {
(nA) = (nanoamp)
(mV) = (millivolt)
(uS) = (microsiemens)
}
PARAMETER {
time_interval = 0.4 (ms) <1e-9,1e9> : the time of one pulse
amp = 0.4 (nA) : positive values depolarize the cell
}
ASSIGNED {
i (nA)
instantaneous_amp (nA)
on (1) : state of Point Proc. 0 = off, 1 = on
}
INITIAL {
instantaneous_amp = 0
on = 0
}
BREAKPOINT {
i = instantaneous_amp : in groucho.f the curr_cellname currents are
: present in the diff eqs with the opposite sign
: as the ampa and nmda therefore to be consistent
: with this, e.g. the default value of 0.4 having the
: same (excitatory) effect, the minus sign is included
: in the net_receive equation marked with a (*)
}
NET_RECEIVE(weight (uS)) {
if (flag>=1) {
: self event arrived, terminate pulse
instantaneous_amp = 0
on = 0
} else {
: stimulus arrived, make or continue pulse
if (on) {
: if already processing a pulse then prolong the pulse
net_move(t + time_interval)
} else {
net_send(time_interval, 1) : self event to terminate pulse
on = 1
}
instantaneous_amp = - amp : see comment in BREAKPOINT. (*)
}
}