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 — TypeLIFA 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 — TypeSRM0A 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.