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

  • IF_cond_alpha

IF_cond_alpha

models.Neurons.IF_cond_alpha(
    self,
    v_rest=-65.0,
    cm=1.0,
    tau_m=20.0,
    tau_refrac=0.0,
    tau_syn_E=5.0,
    tau_syn_I=5.0,
    e_rev_E=0.0,
    e_rev_I=-70.0,
    v_thresh=-50.0,
    v_reset=-65.0,
    i_offset=0.0,
)

Leaky integrate-and-fire model with fixed threshold and alpha post-synaptic conductance.

Parameters:

  • v_rest = -65.0 : Resting membrane potential (mV)
  • cm = 1.0 : Capacity of the membrane (nF)
  • tau_m = 20.0 : Membrane time constant (ms)
  • tau_refrac = 0.0 : Duration of refractory period (ms)
  • tau_syn_E = 5.0 : Rise time of excitatory synaptic current (ms)
  • tau_syn_I = 5.0 : Rise time of inhibitory synaptic current (ms)
  • e_rev_E = 0.0 : Reversal potential for excitatory input (mV)
  • e_rev_I = -70.0 : Reversal potential for inhibitory input (mv)
  • i_offset = 0.0 : Offset current (nA)
  • v_reset = -65.0 : Reset potential after a spike (mV)
  • v_thresh = -50.0 : Spike threshold (mV)

Variables:

  • v : membrane potential in mV (init=-65.0):

    cm * dv/dt = cm/tau_m(v_rest -v) + alpha_exc (e_rev_E - v) + alpha_inh * (e_rev_I - v) + i_offset

  • g_exc : excitatory conductance (init = 0.0):

    tau_syn_E * dg_exc/dt = - g_exc

  • alpha_exc : alpha function of excitatory conductance (init = 0.0):

    tau_syn_E * dalpha_exc/dt = exp((tau_syn_E - dt/2.0)/tau_syn_E) * g_exc - alpha_exc

  • g_inh : inhibitory conductance (init = 0.0):

    tau_syn_I * dg_inh/dt = - g_inh

  • alpha_inh : alpha function of inhibitory current (init = 0.0):

    tau_syn_I * dalpha_inh/dt = exp((tau_syn_I - dt/2.0)/tau_syn_I) * g_inh - alpha_inh

Spike emission:

v > v_thresh

Reset:

v = v_reset

The ODEs are solved using the exponential Euler method.

Equivalent code:


IF_cond_alpha = Neuron(
    parameters = """
        v_rest = -65.0
        cm  = 1.0
        tau_m  = 20.0
        tau_syn_E = 5.0
        tau_syn_I = 5.0
        e_rev_E = 0.0
        e_rev_I = -70.0
        v_thresh = -50.0
        v_reset = -65.0
        i_offset = 0.0
    """, 
    equations = """
        gmax_exc = exp((tau_syn_E - dt/2.0)/tau_syn_E)
        gmax_inh = exp((tau_syn_I - dt/2.0)/tau_syn_I)
        cm * dv/dt = cm/tau_m*(v_rest -v)   + alpha_exc * (e_rev_E - v) + alpha_inh * (e_rev_I - v) + i_offset : exponential, init=-65.0
        tau_syn_E * dg_exc/dt = - g_exc : exponential
        tau_syn_I * dg_inh/dt = - g_inh : exponential
        tau_syn_E * dalpha_exc/dt = gmax_exc * g_exc - alpha_exc  : exponential
        tau_syn_I * dalpha_inh/dt = gmax_inh * g_inh - alpha_inh  : exponential
    """,
    spike = "v > v_thresh",
    reset = "v = v_reset",
    refractory = 0.0
)
IF_curr_alpha
HH_cond_exp
 

Copyright Julien Vitay, Helge Ülo Dinkelbach, Fred Hamker