Tag: Open Data Repositories

  • International Effort to Design and Create a Brain Atlas-based Data Sharing Framework

    Last year a new coordinate system named Waxholm Space (WHS) for the mouse brain was published (see “WHS: The Standard Mouse Brain Coordinate System?“). The space was named after the Swedish city Waxholm where, in February of 2007, a group of scientists was assembled through the International Neuroinformatics Coordinating Facility (INCF) to discuss what they might do to help coordinate mouse brain research data. They decided on establishing a reference atlas of the mouse brain that would act as a universal coordinate system for mouse data. A new paper “Digital Atlasing and Standardization in the Mouse Brain” (published February 3, 2011 in PLoS Computational Biology) describes the goals of the INCF Digital Atlasing Infrastructure team to create a framework that not only enables interoperability between existing and future mouse data resources but also provides the tools for the discovery and publishing of data aggregated from distributed resources.

    Figure 1. The International Neuroinformatics Coordinating Facility (INCF) Digital Atlasing Infrastructure enables interoperability between existing and future mouse brain data resources. Figure 3 from “Digital Atlasing and Standardization in the Mouse Brain” by Michael Hawrylycz, Richard A. Baldock, Albert Burger, Tsutomu Hashikawa, G. Allan Johnson, Maryann Martone, Lydia Ng, Chris Lau, Stephen D. Larsen, Jonathan Nissanov, Luis Puelles, Seth Ruffins, Fons Verbeek, Ilya Zaslavsky and Jyl Boline. PLoS Computational Biology Volume 7, Number 2, February 3, 2011.

    To achieve their goals, providing a common mouse brain coordinate system was just one step. They also needed to provide a collection of distributed services that would support publication, discovery, and the aggregate use of different distributed atlas resources. The prototype version of the INCF Digital Atlasing Infrastructure is released and supports mapping between WHS reference space and the following online resources:

    Kudos to the coordinating organization INCF and all of the people from organizations around the world that are working hard together to make a global atlas-based data sharing framework a reality! Their work will have a huge impact on the future of neuroscience, including the application of research data for medical purposes, and should be supported by everyone.

    Other related blog posts:

    Whole Brain Catalog: the Google Earth for the Brain

    WHS: The Standard Mouse Brain Coordinate System?

  • Polychronization: Play To Understand

    The best way to understand a theory or a set of data or even a mathematical equation is to play with them. A couple of days ago my blog post “Polychronization: Playing with the Code” began looking at the standard C++ polychronization program spnet.cpp and the newer program poly_spnet.cpp implemented with a more precise algorithm. The poly_spnet.cpp file also includes code for finding polychronous groups. In today’s post I provide a few more bits of information about the code in these two files and their data output that hopefully makes it easier for you to play with them.

    Figure 1. Spike raster plots of the average firing rates of excitatory (bottom) and inhibitory neurons (top) across an 18,000 second (x-axis; 5 hours) simulation using the polychronization model poly_spnet.cpp. At each second the average firing rate of the excitatory or inhibitory neurons is plotted in Hertz (y-axis). Notice that the excitatory neurons plot has a maximum firing rate of 10 Hertz in contrast to the inhibitory neurons plot with a maximum firing rate of 70 Hertz.

    Note: 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. For more about polychronization and the paper associated with this model please see my earlier blog post “Spontaneously Formed Neuronal Groups Far Exceed the Number of Neurons.”

    The spnet.cpp model is set to run for 24 simulation hours or 86,400 seconds (60 seconds/minute * 60 minutes/hour * 24 hours) and the program automatically saves the previous second of simulation data to the spikes.dat file. Each earlier second is overwritten as the latest second is saved.

    The poly_spnet.cpp model is set to run for 5 simulation hours or 18,000 seconds (60 seconds/minute * 60 minutes/hour * 5 hours) and the program automatically saves data in five files: all.dat, dat.dat, s.dat, spikes.dat, and polyall.dat. I’ll address the contents of the all.dat and polyall.dat files at a future date. Below the contents of the dat.dat, s.dat, and spikes.dat files are briefly explained.

    The first column of the dat.dat file contains the simulation time in seconds. The second column contains the average firing rate of the population of excitatory neurons and the third column seems to contain the average excitatory neuron to excitatory neuron synaptic strength across the population. The forth column of numbers contains the average firing rate of the population of inhibitory neurons. Figure 1 above contains an x-y plot of the first and second columns (bottom plot), which contains 18,000 points with each point representing the excitatory neuron population’s firing rate in Hertz during a particular second of the simulation. The figure also contains an x-y plot of the first and forth columns (top plot), which contains 18,000 points with each point representing the inhibitory neuron population’s firing rate in Hertz during a particular second of the simulation.

    The first column of the s.dat file contains the number identifiers for 1,000 simulated neurons. The second column contains the total synaptic weight onto the postsynaptic neuron identified in the first column. Synaptic weights change over time due to synaptic plasticity. In the file we can see the total synaptic weight change for any one neuron. However, for some reason time stamp data are not saved to s.dat. Of course, this can be easily changed in the code.

    The spikes.dat file contains the number identifiers for 1,000 simulated neurons in its first column and associated times (in milliseconds) of spike occurrence in its second column. The format is the same as in the spikes.dat output of the spnet.cpp code and so is the way the data are saved. Only the most recent second of data are saved in the file.

    Other related blog posts:

    Spontaneously Formed Neuronal Groups Far Exceed the Number of Neurons

    Polychronization: Playing with the Code

  • Polychronization: Playing with the Code

    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.

    Figure 1. This is a spike raster plot of data from the polychronization model spnet.cpp. The model included 1,000 neurons (y-axis) and was run for 24 hours simulation time. The plot shows the last second (in milliseconds; x-axis) of the 24 hour simulation. Neurons 0 through 799 are excitatory and 800 through 999 are inhibitory (these are fast spiking inhibitory neurons). This plot is similar to the bottom plot in Figure 5 of “Polychronization: Computation with Spikes” (published February 2006 in Neural Computation) except that in the paper the 1 second time period is extracted from the 3,600 second time point or at 1 hour of simulation time.

    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