ANNarchy 4.8.2
  • ANNarchy
  • Installation
  • Tutorial
  • Manual
  • Notebooks
  • Reference

  • Reference
  • Core components
    • Population
    • Projection
    • Neuron
    • Synapse
    • Monitor
    • PopulationView
    • Dendrite
    • Network
  • Configuration
    • setup
    • compile
    • clear
    • reset
    • set_seed
    • get_population
    • get_projection
    • populations
    • projections
    • monitors
  • Simulation
    • simulate
    • simulate_until
    • step
    • parallel_run
    • enable_learning
    • disable_learning
    • get_time
    • set_time
    • get_current_step
    • set_current_step
    • dt
  • Neuron models
    • LeakyIntegrator
    • Izhikevich
    • IF_curr_exp
    • IF_cond_exp
    • IF_curr_alpha
    • IF_cond_alpha
    • HH_cond_exp
    • EIF_cond_alpha_isfa_ista
    • EIF_cond_exp_isfa_ista
  • Synapse models
    • STP
    • STDP
    • Hebb
    • Oja
    • IBCM
  • Inputs
    • InputArray
    • TimedArray
    • PoissonPopulation
    • TimedPoissonPopulation
    • SpikeSourceArray
    • HomogeneousCorrelatedSpikeTrains
    • CurrentInjection
    • DecodingProjection
    • ImagePopulation
    • VideoPopulation
  • IO
    • save
    • load
    • save_parameters
    • load_parameters
  • Utilities
    • report
  • Random Distributions
    • Uniform
    • DiscreteUniform
    • Normal
    • LogNormal
    • Exponential
    • Gamma
    • Binomial
  • Functions and Constants
    • add_function
    • functions
    • Constant
    • get_constant
  • Plotting
    • raster_plot
    • histogram
    • inter_spike_interval
    • coefficient_of_variation
    • population_rate
    • smoothed_rate
  • Callbacks
    • every
    • callbacks_enabled
    • disable_callbacks
    • enable_callbacks
    • clear_all_callbacks
  • Convolution
    • Convolution
    • Pooling
    • Transpose
    • Copy
  • BOLD monitoring
    • BoldMonitor
    • BoldModel
    • balloon_RN
    • balloon_RL
    • balloon_CN
    • balloon_CL
    • balloon_maith2021
    • balloon_two_inputs
  • Tensorboard logging
    • Logger
  • ANN-to-SNN conversion
    • ANNtoSNNConverter

On this page

  • Izhikevich
    • Parameters

Izhikevich

models.Neurons.Izhikevich(
    self,
    a=0.02,
    b=0.2,
    c=-65.0,
    d=8.0,
    v_thresh=30.0,
    i_offset=0.0,
    noise=0.0,
    tau_refrac=0.0,
    conductance='g_exc - g_inh',
)

Izhikevich quadratic spiking neuron.

Izhikevich, E.M. (2003). Simple Model of Spiking Neurons, IEEE Transaction on Neural Networks, 14:6. http://dx.doi.org/10.1109/TNN.2003.820440

The neural equations are:

\frac{dv}{dt} = 0.04 * v^2 + 5.0 * v + 140.0 - u + I

\frac{du}{dt} = a * (b * v - u)

By default, the conductance is “g_exc - g_inh”, but this can be changed by setting the conductance argument:

neuron = ann.Izhikevich(conductance='g_ampa * (1 + g_nmda) - g_gaba')

The synapses are instantaneous, i.e the corresponding conductance is increased from the synaptic efficiency w at the time step when a spike is received.

Parameters:

  • a = 0.02 : Speed of the recovery variable
  • b = 0.2: Scaling of the recovery variable
  • c = -65.0 : Reset potential.
  • d = 8.0 : Increment of the recovery variable after a spike.
  • v_thresh = 30.0 : Spike threshold (mV).
  • i_offset = 0.0 : external current (nA).
  • noise = 0.0 : Amplitude of the normal additive noise.
  • tau_refrac = 0.0 : Duration of refractory period (ms).

Variables:

  • I : input current (user-defined conductance/current + external current + normal noise):

    I = conductance + i_offset + noise * Normal(0.0, 1.0)

  • v : membrane potential in mV (init = c):

    dv/dt = 0.04 * v^2 + 5.0 * v + 140.0 - u + I

  • u : recovery variable (init= b * c):

    du/dt = a * (b * v - u)

Spike emission:

v > v_thresh

Reset:

v = c
u += d 

The ODEs are solved using the explicit Euler method.

Equivalent code:


    Izhikevich = ann.Neuron(
        parameters = """
            noise = 0.0
            a = 0.02
            b = 0.2
            c = -65.0
            d = 8.0
            v_thresh = 30.0
            i_offset = 0.0
        """, 
        equations = """
            I = g_exc - g_inh + noise * Normal(0.0, 1.0) + i_offset
            dv/dt = 0.04 * v^2 + 5.0 * v + 140.0 - u + I : init = -65.0
            du/dt = a * (b*v - u) : init= -13.0
        """,
        spike = "v > v_thresh",
        reset = "v = c; u += d",
        refractory = 0.0
    )

The default parameters are for a regular spiking (RS) neuron derived from the above mentioned article.

Parameters

Name Type Description Default
a float Speed of the recovery variable 0.02
b float Scaling of the recovery variable 0.2
c float Reset potential. -65.0
d float Increment of the recovery variable after a spike. 8.0
v_thresh float Spike threshold (mV). 30.0
i_offset float external current (nA). 0.0
noise float Amplitude of the normal additive noise. 0.0
tau_refrac float Duration of refractory period (ms). 0.0
conductance str Conductances used as inputs. 'g_exc - g_inh'
LeakyIntegrator
IF_curr_exp
 

Copyright Julien Vitay, Helge Ülo Dinkelbach, Fred Hamker