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.LIFType
LIF

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 potential
  • current::VT: injected (unprocessed) current
  • lastt::IT: the last time this neuron processed a spike
  • τm::VT: membrane time constant
  • vreset::VT: reset voltage potential
  • R::VT: resistive constant (typically = 1)
source
SpikingNN.excite!Method
excite!(neuron::LIF, current)
excite!(neurons::AbstractArray{<:LIF}, current)

Excite a neuron with external current.

source
SpikingNN.spike!Method
spike!(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.

source
SpikingNN.evaluate!Method
evaluate!(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.

source
SpikingNN.reset!Method
reset!(neuron::LIF)
reset!(neurons::AbstractArray{<:LIF})

Reset neuron by setting the membrane potential to neuron.vreset.

source

Simplified Spike Response Model

SpikingNN.SRM0Type
SRM0

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 potential
  • current::VT: injected (unprocessed) current
  • lastspike::VT: last time this neuron spiked
  • η::F: refractory response function
source
SpikingNN.excite!Method
excite!(neuron::SRM0, current)
excite!(neurons::AbstractArray{<:SRM0}, current)

Excite an SRM0 neuron with external current.

source
SpikingNN.spike!Method
spike!(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.

source
SpikingNN.evaluate!Method
evaluate!(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.

source