Neuron Models
The following neuron (cell body) models are supported:
- Leaky integrate-and-fire (LIF)
- Simplified spike response model (SRM0)
Leaky Integrate-and-Fire
SpikingNN.LIF
— TypeLIF
A leaky-integrate-fire neuron described by the following differential equation
$\frac{\mathrm{d}v}{\mathrm{d}t} = \frac{R}{\tau} I - \lambda$
Fields
voltage::VT
: membrane potentialcurrent::VT
: injected (unprocessed) currentlastt::IT
: the last time this neuron processed a spikeτm::VT
: membrane time constantvreset::VT
: reset voltage potentialR::VT
: resistive constant (typically = 1)
SpikingNN.excite!
— Methodexcite!(neuron::LIF, current)
excite!(neurons::AbstractArray{<:LIF}, current)
Excite a neuron
with external current
.
SpikingNN.spike!
— Methodspike!(neuron::LIF, t::Integer; dt::Real = 1.0)
spike!(neurons::AbstractArray{<:LIF}, spikes; dt::Real = 1.0)
Record a output spike from the threshold function with the neuron
body. Sets neuron.lastt
.
SpikingNN.evaluate!
— Methodevaluate!(neuron::LIF, t::Integer; dt::Real = 1.0)
(neuron::LIF)(t::Integer; dt::Real = 1.0)
evaluate!(neurons::AbstractArray{<:LIF}, t::Integer; dt::Real = 1.0)
Evaluate the neuron model at time t
. Return the resulting membrane potential.
SpikingNN.reset!
— Methodreset!(neuron::LIF)
reset!(neurons::AbstractArray{<:LIF})
Reset neuron
by setting the membrane potential to neuron.vreset
.
Simplified Spike Response Model
SpikingNN.SRM0
— TypeSRM0
A SRM0 neuron described by
$v(t) = \eta(t - t^f) \Theta(t - t^f) + I$
where $\Theta$ is the Heaviside function and $t^f$ is the last output spike time.
Note: The SRM0 model normally includes an EPSP term which is modeled by Synapse.EPSP
For more details see: Spiking Neuron Models: Single Neurons, Populations, Plasticity
Fields:
voltage::VT
: membrane potentialcurrent::VT
: injected (unprocessed) currentlastspike::VT
: last time this neuron spikedη::F
: refractory response function
SpikingNN.excite!
— Methodexcite!(neuron::SRM0, current)
excite!(neurons::AbstractArray{<:SRM0}, current)
Excite an SRM0 neuron
with external current
.
SpikingNN.spike!
— Methodspike!(neuron::SRM0, t::Integer; dt::Real = 1.0)
spike!(neurons::AbstractArray{<:SRM0}, spikes; dt::Real = 1.0)
Record a output spike from the threshold function with the neuron
body. Sets neuron.lastspike
.
SpikingNN.evaluate!
— Methodevaluate!(neuron::SRM0, t::Integer; dt::Real = 1.0)
(neuron::SRM0)(t::Integer; dt::Real = 1.0)
evaluate!(neurons::AbstractArray{<:SRM0}, t::Integer; dt::Real = 1.0)
Evaluate the neuron model at time t
. Return resulting membrane potential.
SpikingNN.reset!
— Methodreset!(neuron::SRM0)
reset!(neurons::AbstractArray{<:SRM0})
Reset neuron
.