Network bursts in cultured NN result from different adaptive mechanisms (Masquelier & Deco 2013)

 Download zip file 
Help downloading and running models
Accession:150437
It is now well established that cultured neuron networks are spontaneously active, and tend to synchronize. Synchronous events typically involve the whole network, and have thus been termed “network spikes” (NS). Using experimental recordings and numerical simulations, we show here that the inter-NS interval statistics are complex, and allow inferring the neural mechanisms at work, in particular the adaptive ones, and estimating a number of parameters to which we cannot access experimentally.
Reference:
1 . Masquelier T, Deco G (2013) Network bursting dynamics in excitatory cortical neuron cultures results from the combination of different adaptive mechanisms. PLoS One 8:e75824 [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): Cochlear nucleus pyramidal/fusiform GLU cell; Abstract integrate-and-fire adaptive exponential (AdEx) neuron;
Channel(s): I_AHP;
Gap Junctions:
Receptor(s): AMPA; NMDA; Glutamate;
Gene(s):
Transmitter(s): Glutamate;
Simulation Environment: Brian; Python;
Model Concept(s): Bursting; Temporal Pattern Generation; Synchronization; Short-term Synaptic Plasticity; Facilitation; Depression; Spike Frequency Adaptation;
Implementer(s): Masquelier, Tim [timothee.masquelier at alum.mit.edu];
Search NeuronDB for information about:  Cochlear nucleus pyramidal/fusiform GLU cell; AMPA; NMDA; Glutamate; I_AHP; Glutamate;
#from brian.connection.base import *
#from brian.connection import *
from brian import *

__all__ = [
         'SelfUXConnection'
         ]

class SelfUXConnection(Connection):
    '''
    
    Initialised with arguments:
    
    ``source``, NeuronGroup.
    ``depression``, boolean indicating if x should be updated
    ``facilitation``, boolean indicating if u should be updated
    ``delay``
        Only homogeneous delays are allowed.
    
    The benefit of this class is that it has no storage requirements and is optimised for
    this special case.
    '''
    @check_units(delay=second)
    def __init__(self, source, facilitation, depression, delay=0 * msecond, U=0.5):
        self.source = source # pointer to source group
        self.target = source # pointer to target group
        self.depression = depression
        self.facilitation = facilitation        
        source.set_max_delay(delay)
        self.delay = int(delay / source.clock.dt) # Synaptic delay in time bins
        if facilitation:
            self.n_u_f = self.target.get_var_index('u_f') # index of u_f
        if depression:
            self.n_x_d = self.target.get_var_index('x_d') # index of u_d
        self.U = U
    def propagate(self, spikes):
        '''
        Propagates the spikes to the target.
        '''
        if self.facilitation:
            self.target._S[self.n_u_f, spikes] += self.U * (1-self.target._S[self.n_u_f, spikes])
        if self.depression:
            if self.facilitation:
                self.target._S[self.n_x_d, spikes] *= (1-self.target._S[self.n_u_f, spikes])
            else:  
                self.target._S[self.n_x_d, spikes] *= (1-self.U)

    def compress(self):
        pass


Loading data, please wait...