The accompanying code is the simulation of a simplified version of a synfire chain in a cortical network, inspired by the ideas of Abeles (1982, 1991), Bienenstock (1995), and Diesmann et al. (1999). In a synfire chain groups, or pools, of neurons are connected in a feedforward arrangement. The neurophysiological behavior of a synfire chain is characterized by the propagation of volleys of nearly synchronous spikes from pool to pool. In this simulation a 10 x 10 network is used, that is, the network contains 10 pools, or layers, of neurons (length of network) and 10 neurons per pool (width of network). The neurons in the first pool are stimulated externally, using Gaussian random inputs. The neurons in the subsequent layers receive the combined input of all the neurons in the immediately preceding layer (p-1) after a variable delay (conduction time, conduction jitter). The additive generation of the internal inputs is somewhat variable (convergence jitter). The overall magnitude of the input can be modulated by means of an amplification factor. Random excitatory and inhibitory neuronal inputs (background noise) are present. The figures depict the behaviors of the 10 pools of neurons over time, the cross-correlograms of the intervals between the spikes of the first two neurons in each pool, and a plot of the mean latencies of the first spikes in each pool and their respective standard deviations. The initial potential of all neurons, the mean latencies, the standard deviations, and their correlation coefficient are printed.
A dominant peak around zero is frequently found in cross-correlograms; it indicates shared (external or internal) inputs. Here, the main peak indicates the synchronous firing of the neurons in each pool when the volley reaches the pool (except, of course, for the first pool, where the peak indicates simultaneous external input). The spikes in each layer that occur after the volleys occurred are partially synchronized (in contrast to the random spikes before the volleys) because of the additive nature of the input to each neuron, being the scaled sum of the delayed inputs of all the neurons in the previous layer. This synchronization shows up as side peaks in the cross-correlograms (because it causes fixed delays between the firing of the neurons in a particular layer), particularly in those correlograms that incorporate a comparatively long stretch of post-volley time. A high membrane time constant increases the pre- and post-volley synchronization of spikes.
In the case of stably propagating volleys, the correlation coefficient is high (> .99) and the relation between mean spike latency and standard deviation approximately linear (see figure 3). This situation is similar to the relation depicted in Buonomano?s (2003) figure 2. Linearity between mean latency and standard deviation indicates that the correspondence between spike times decreases as the mean latency of the first spikes / pool increases.
The model explodes (continuous increase in number of spikes / layer) when the difference between the threshold and resting potential is small, the membrane time constant is high, or the difference between excitatory and inhibitory noise is large. Explosion results in a decrease of the correlation coefficient. The volley collapses/fades when the difference between the threshold and resting potential is large, the inhibitory background noise is high, or the amplification factor is low. Spontaneous, internally generated, volleys form when the conduction jitter (variability in the conduction time between pools of neurons) is high while the amplification factor is sufficiently high. To keep the model stable, a fine balance between excitatory and inhibitory (background) input is necessary.
Abeles, M. (1982) Local Cortical Circuits: An Electrophysiological Study. Springer, Berlin.
Abeles, M. (1991) Corticonics. Cambridge University Press, Cambridge.
Bienenstock, E. (1995) A model of neocortex. Netw. Comp. Neur. Sys., 6: 179?224.
Buonomano, D.V. (2003) Timing of neural responses in cortical organotypic slices. Proc. Natl. Acad. Sci. USA, 100: 4897?4902.
Diesmann, M., M.-O. Gewaltig, and A. Aertsen (1999) Stable propagation of synchronous spiking in cortical neural networks. Nature, 402: 529?533.
Code written by Thomas Templin (firstname.lastname@example.org) using MATLAB version 184.108.40.206 release 12, as the final assignment for the course Computational Neuroscience (BN 168) taught by Prof. Elie Bienenstock at Brown University in the spring semester of 2003.
Thomas Templin (2020). Synfire (https://www.mathworks.com/matlabcentral/fileexchange/13802-synfire), MATLAB Central File Exchange. Retrieved .
I believe the code doesn't seem to add inputs properly.
The step: input = sum(individual_input,1);
It sequential adds each previous pool's neuron inputs across entire bins for every neuron loop (n=1->1st neuron input;n=2->1st & 2nd neuron inputs; n=3 -> 1st & 2nd & 3rd neuron inputs)
Addition of BSD License
The new screenshot shows figure 1 of the updated version of the simulation, which was previously submitted.
The description and the program were slightly modified in order to more clearly describe the figures, correct an inconsistency between the description and the code, correct an error in the code, and improve the overall performance of the simulation.