Mesoscopic dynamics from AdEx recurrent networks (Zerlaut et al., JCNS 2017)

 Download zip file 
Help downloading and running models
Accession:234992
We present a mean-field model of networks of Adaptive Exponential (AdEx) integrate-and-fire neurons, with conductance-based synaptic interactions. We study a network of regular-spiking (RS) excitatory neurons and fast-spiking (FS) inhibitory neurons. We use a Master Equation formalism, together with a semi-analytic approach to the transfer function of AdEx neurons to describe the average dynamics of the coupled populations. We compare the predictions of this mean-field model to simulated networks of RS-FS cells, first at the level of the spontaneous activity of the network, which is well predicted by the analytical description. Second, we investigate the response of the network to time-varying external input, and show that the mean-field model predicts the response time course of the population. Finally, to model VSDi signals, we consider a one-dimensional ring model made of interconnected RS-FS mean-field units.
Reference:
1 . Zerlaut Y, Chemla S, Chavane F, Destexhe A (2018) Modeling mesoscopic cortical dynamics using a mean-field model of conductance-based networks of adaptive exponential integrate-and-fire neurons. J Comput Neurosci 44:45-61 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
Cell Type(s): Abstract integrate-and-fire adaptive exponential (AdEx) neuron;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: Brian 2; Python;
Model Concept(s): Vision;
Implementer(s):
import sys, os
sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)),os.path.pardir))
from graphs.my_graph import set_plot, show
import matplotlib.pylab as plt
import numpy as np

def hist(x, bins=20, ax=None,
         edgecolor='k', facecolor='b'):
    
    hist, be = np.histogram(x, bins=bins)
    
    if ax is None:
        fig, ax = plt.subplots(figsize=(5,3))
        plt.subplots_adjust(bottom=.2, left=.2)
    ax.bar(.5*(be[1:]+be[:-1]), hist, width=be[1]-be[0], lw=2,\
           edgecolor=edgecolor, facecolor=facecolor)
    return ax
    
def gghist(x, bins=20, ax=None, label=''):

    hist, be = np.histogram(x, bins=bins)
    
    with plt.style.context(('ggplot')):
        if ax is None:
            fig, ax = plt.subplots(figsize=(4,3))
            plt.subplots_adjust(bottom=.2, left=.2)
        ax.bar(.5*(be[1:]+be[:-1]), hist, width=be[1]-be[0], label=label)
        
    return ax

def multiple_gghists(X, bins=20, ax=None, LABELS=None):

    if LABELS is None:
        LABELS = ['' for i in range(len(X))]
        
    ax = gghist(X[0], bins=bins, ax=ax, label=LABELS[0])
    for x, label in zip(X[1:], LABELS[1:]):
        hist, be = np.histogram(x, bins=bins)
        ax.bar(.5*(be[1:]+be[:-1]), hist, width=be[1]-be[0], label=label)
    return ax

if __name__=='__main__':

    import numpy as np
    ax = multiple_gghists([np.random.randn(100), np.random.randn(100)],\
                     LABELS=['Data 1', 'Data 2'])
    ax.legend()
    show(plt)


Loading data, please wait...