Synchronization network model


The exercises here are intended primarily to familiarize the student with techniques and tools useful for the implementation of networks in NEURON. We have chosen a relatively simple network, very loosely based on Hopfield-Brody, in order to minimize distractions due to the complexities of channel kinetics, dendritic trees, detailed network architecture, etc. The model is described in two files: net.py and intfire.mod.

The core of the network consists of artificial integrate-and-fire cells without channels or compartments. This is implemented using an ARTIFICIAL_CELL defined in intfire.mod and wrapped in the Cell class in net.py. Within the core network, there is only one kind of cell, so there are no issues of organizating interactions between cell populations. All synapses within the core network are inhibitory. (Hopfield-Brody, by contast, uses a mix of inhibitory and excitatory cells).

A single additional cell with Hodgkin-Huxley dynamics, receiving input from all the integrate-and-fire cells, is used as a way to measure network synchrony (it fires when it receives enough inputs within a narrow enough time window).

As you know, NEURON is optimized to handle the complex channel and compartment simulations that have been omitted from this exercise. The interested student might wish to convert this network into a network of spiking cells with realistic inhibitory interactions or a hybrid network with both realistic and artificial cells. Such an extended exercise would more clearly demonstrate NEURON's advantages for performing network simulations.

Although this is a minimal model, learning the ropes is still difficult. Therefore, we suggest that you go through the entire lesson relatively quickly before returning to delve more deeply into the exercises. Some of the exercises are really more homework projects.


Methods

Standard integrate-and-fire implementation (e.g. intfire1.mod))

The basic intfire implementation in neuron utilizes a decaying state variable (m as a stand-in for voltage) which is pushed up by the arrival of an excitatory input or down by the arrival of an inhibitory input (m = m + w). When m exceeds threshold the cell "fires," sending events to other connected cells.

    if (m>1) {  ...
        net_event(t)    : trigger synapses

IntIbFire in sync model

The integrate-and-fire neuron in the current model must fire spontaneously with no input, as well as firing when a threshold is reached. This is implemented by utilizing a firetime() routine to calculate when the state variable m will reach threshold assuming no other inputs during that time. This firing time is calculated based on the natural firing interval of the cell (invl) and the time constant for state variable decay (tau). When an input comes in, a new firetime is calculated after taking into account the synaptic input (m = m + w) which perturbs the state variable's trajectory towards threshold.


Cell class

IntIbFire is wrapped by the class Cell. An instantiation of this class provides access to the underlying mechanism through its dynamics property.


Network

The network has all-to-all inhibitory connectivity with all connections set to equal non-positive values (initially 0). The network is initially set up with fast firing cells at the bottom of the graph (Cell[0], highest natural interval) and slower cells at the top (Cell[ncell-1], lowest natural interval). Cells in between have sequential evenly-spaced periods.


How it works

The synchronization mechanism requires that all of the cells fire spontaneously at similar frequencies. It is obvious that if all cells are started at the same time, they will still be roughly synchronous after one cycle (since they have similar intrinsic cycle periods). After two cycles, they will have drifted further apart. After many cycles, differences in period will be magnified, leading to no temporal relationship of firing.

The key observation utilized here is that firing is fairly synchronized one cycle after onset. The trick is to reset the cells after each cycle so that they start together again. They then fire with temporal differences equal to the differences in their intrinsic periods. This resetting can be provided by an inhibitory input which pushes state variable m down far from threshold (hyperpolarized, as it were). This could be accomplished through an external pacemaker that reset all the cells, thereby imposing an external frequency onto the network. The interesting observation in this network is that pacemaking can also be imposed from within, though an intrinsic connectivity that synchronizes all members to the will of the masses.


Exercises