Last month I reviewed the paper “Polychronization: Computation with Spikes” (published February 2006 in Neural Computation) that described a highly simplified computational model of cerebral cortex containing 1,000 neurons that included axon conductance delays and spike timing dependent plasticity (STDP). The model exhibited the spontaneous formation of neuronal groups defined as “small collectives of neurons having strong connections with matching conduction delays and exhibiting time-locked but not necessarily synchronous spiking activity” (they may fire at many different times). The author called this process polychronization (poly means many and chronous means time) and the neuronal groups it forms polychronous groups.

C++ and MATLAB versions of the computational model are available from the SenseLab’s ModelDB repository in the “Polychronization: Computation With Spikes (Izhikevich 2005)” record. The C++ code of the standard model described in the paper is in the spnet.cpp file. Compiling the code was straight forward. I did need to modify the main() method so that it returned an int to comply with C++ coding standards. No other modifications were necessary.
Running the spnet.cpp code resulted in a spike.dat file that, when graphed, reproduced the bottom graph in Figure 5 (see Figure 1 above) of Dr. Eugene Izhikevich’s paper “Polychronization: Computation with Spikes” (published February 2006 in Neural Computation). I created the graph by reading the contents of the spikes.dat file into an OpenOffice.org spreadsheet by using the Insert menu’s Sheet From File… command. In the Text Import dialog box use the Separated by Space option under Separator options. Delete column B, highlight all of the data, and graph by clicking on the Chart button and selecting the XY (Scatter) chart type with Points Only.
Note: For more on the paper associated with this model please see my earlier blog post “Spontaneously Formed Neuronal Groups Far Exceed the Number of Neurons.”
The computational model in poly_spnet.cpp is the same as in spnet.cpp. However, poly_spnet.cpp includes code for finding polychronous groups. By default the cerebral cortex simulation in poly_spnet.cpp runs for a simulated 18,000 seconds (60 seconds/minute * 60 minutes/hour * 5 hours). The program then finds the polychronous groups for you. Compiling and running poly_spnet.cpp was also straight forward. Make the same modification to the main() method. Change its return value from void to int so that it complies with C++ coding standards. I also had to remove the malloc.h header. Next we’ll take a look at the data set produced by poly_spnet.cpp.
Other related blog posts:
Spontaneously Formed Neuronal Groups Far Exceed the Number of Neurons
Comments
2 responses to “Polychronization: Playing with the Code”
[…] This post was mentioned on Twitter by ActionPotential.com and Jaquelynn R, Donald Doherty. Donald Doherty said: Polychronization: Playing with the Code. #computational #neuroscience #STDP http://bit.ly/gaeV3M […]
[…] Dr. Donald Doherty's Blog Neuroscience and the Semantic Web Skip to content HomeAbout Donald Doherty Ph.D. ← Polychronization: Playing with the Code […]