ANNarchy 5.0.2
  • ANNarchy
  • Installation
  • Tutorial
  • Manual
  • Notebooks
  • Reference

Generalized Integrate-and-Fire Neuron

  • List of notebooks
  • Rate-coded networks
    • Echo-state networks
    • Neural field
    • Bar Learning
    • Miconi network
    • Structural plasticity
  • Spiking networks
    • AdEx
    • PyNN/Brian
    • GIF I
    • GIF II
    • Izhikevich
    • Synaptic transmission
    • Gap junctions
    • Hodgkin-Huxley
    • COBA/CUBA
    • STP
    • STDP I
    • STDP II
    • Homeostatic STDP - Ramp
    • Homeostatic STDP - SORF
  • Advanced features
    • Hybrid networks
    • Parallel run
    • Bayesian optimization
  • Extensions
    • Image
    • Tensorboard
    • BOLD monitor I
    • BOLD monitor II
    • ANN to SNN I
    • ANN to SNN II

Generalized Integrate-and-Fire Neuron

#!pip install ANNarchy

This notebook explores the generalized Integrate-and-Fire neuron model being used in CUBA-like network. This network has been proposed in

Brette, R., Rudolph, M., Carnevale, T., Hines, M., Beeman, D., Bower, J. M., et al. (2007), Simulation of networks of spiking neurons: a review of tools and strategies., J. Comput. Neurosci., 23, 3, 349–98

as benchmark and is based on:

Vogels, T. P. and Abbott, L. F. (2005), Signal propagation and logic gating in networks of integrate-and-fire neurons., J. Neurosci., 25, 46, 10786–95

However, in this notebook, we don’t use a standard LIF model, but the generalized IaF neuron described in:

Schwalger, T., Deger, M., Gerstner, w. (2017). Towards a theory of cortical columns: From spiking neurons to interacting neural populations of finite size. PLoS Comput Biol. 2017;13(4):e1005507

import matplotlib.pyplot as plt
import numpy

import ANNarchy as ann
ANNarchy 5.0 (5.0.2) on linux (posix).

The generalized leaky Integrate-and-Fire neuron is defined by the following equations:

\tau_m \frac{du}{dt} = -u + u_r + R*(I_{ext} + I_{exc} + I_{inh})

\tau_v \frac{dv}{dt} = -(v-u_{th})

Spike emission is the result of a stochastic process, where the threshold \lambda, also called hazard-rate, follows the difference between the membrane potential u and an adaptive threshold v:

\lambda = c * exp(\frac{u-v}{\delta_{u}})

In the following we construct a CUBA like network, inspired by the work of Vogels and Abbott (2005). Adapted the parameters of the GIF neuron model to obtain comparable statistics. The GIF model with currents is part of the default models in ANNarchy.

class CUBANetwork (ann.Network):
    
    def __init__(self, w_exc, w_inh):

        self.P = self.create(geometry=4000, neuron=ann.GIF_curr_exp)

        self.P[:3200].Jv = 1500 # mv/ms
        self.P[3200:].Jv = 0    # mv/ms, no adaptation for inhibitory cells
        
        self.Ce = self.connect(pre=self.P[:3200], post=self.P, target='exc')
        self.Ce.fixed_probability(weights=w_exc, probability=0.02)

        self.Ci = self.connect(pre=self.P[3200:], post=self.P, target='inh')
        self.Ci.fixed_probability(weights=w_inh, probability=0.02)

        self.m = self.monitor(self.P, ['spike'])
# CUBA network
we_CUBA = 1.62
wi_CUBA = 9.0

net_cuba = CUBANetwork(w_exc=we_CUBA, w_inh=wi_CUBA, dt=0.1)
net_cuba.compile()
Compiling network 1... OK
net_cuba.simulate(1000., measure_time=True)
Simulating 1.0 seconds of the network 1 took 0.9236607551574707 seconds.
data_CUBA = net_cuba.m.get('spike')
t_CUBA, n_CUBA = net_cuba.m.raster_plot(data_CUBA)
print('Mean firing rate in the COBA population: ' + str(len(t_CUBA) / 4000.) + 'Hz')
Mean firing rate in the COBA population: 5.82225Hz
plt.figure(figsize=(15, 8))
plt.subplot(121)
plt.title("CUBA Network - Raster Plot")
plt.plot(t_CUBA, n_CUBA, '.', markersize=0.5)
plt.xlabel('Time (ms)')
plt.ylabel('# neuron')
Text(0, 0.5, '# neuron')

isi_CUBA = net_cuba.m.inter_spike_interval(data_CUBA)
plt.title("CUBA Network - Inter-spike Intervals (ISI)")
plt.hist(isi_CUBA)
plt.xlabel('ISI (ms)')
plt.ylabel('n in bin')
plt.show()

cov_CUBA = net_cuba.m.coefficient_of_variation(data_CUBA)
plt.title("CUBA Network - Coefficient of Variation of ISI")
plt.hist(cov_CUBA)
plt.xlabel('ISI CV')
plt.ylabel('n in bin')
plt.show()

GIF I
Izhikevich
 

Copyright Julien Vitay, Helge Ülo Dinkelbach, Fred Hamker