Network activity of developing cortical cultures in vitro
This is the data set from D. A. Wagenaar, J. Pine, and S. M. Potter,
2006, "An extremely rich repertoire of bursting patterns during the
development of cortical cultures", BMC Neuroscience, 7:11. Downloading from this site is subject to
the condition that you acknowledge our work in any publications that
use our data, by citing this article.
We make no
guarantees of any kind as to the usability or quality of these data,
or the software and code fragments contained on this side. We have
tried to copy the data used for the article faithfully into this
archive, but some files may have been lost or damaged. We welcome
reports on such issues, but cannot accept liability for any problems
you experience as a result, directly or indirectly, of using this
site. All software and code fragments are distributed under the terms
of the GNU General Public License, version 2.
Contents
"Full info"-files
These contain full information about detected spikes, including
3ms of "context": raw electrode data around the time of the spike.
These files are stored gzipped, so you need to "gunzip" them before
use.
Use in C/C++
"Full info"-files are binary, and consist of a sequence of "Spikeinfo"
structures, defined as follows:
typedef struct { | |
unsigned
long long time; | /* 8-byte integer, little-endian */ |
short channel; | /* 2-byte integer, little-endian */ |
short height; | |
short width; | |
short context[74]; | |
short threshold; | |
} Spikeinfo; | |
Here:
- Time is the time of the spike, in units of the sample
period (40 μs).
- Channel is the electrode channel on which
the spike occurred. Channels 0..59 are actual electrodes; channel 60
is used to mark the occurrence of stimuli.
- Height is the amplitude of the detected spike, in digital
units, i.e. 0.33 μV.
- Width is the duration of the spike, in
units of the sample period (40 μs).
- Context is 74 samples worth of context, from 1 ms
before the peak to 2 ms after the peak of the spike, in digital
units, 0.33 μV per step. Sampling frequency is 25 kHz.
- Threshold is the spike detection threshold in force at the
time of this detection.
There are no headers in the files. Thus, one could read the
information pertaining to the first 100 spikes in a file as follows:
Spikeinfo buffer[100];
int n;
FILE *fh
fh = fopen("filename.spike","rb");
n = fread(buffer,sizeof(Spikeinfo),100,fh);
(This assumes that "Spikeinfo" has been defined exactly as above.)
Use in Matlab
To load "Full info"-files into Matlab, you could use code like this:
fid = fopen('filename.spike','rb');
if (fid<0)
error('Cannot open the specified file');
end
raw = fread(fid,[82 n],'int16');
fclose(fid);
ti0 = raw(1,:); idx = find(ti0<0); ti0(idx) = ti0(idx)+65536;
ti1 = raw(2,:); idx = find(ti1<0); ti1(idx) = ti1(idx)+65536;
ti2 = raw(3,:); idx = find(ti2<0); ti2(idx) = ti2(idx)+65536;
ti3 = raw(4,:); idx = find(ti3<0); ti3(idx) = ti3(idx)+65536;
spikes.time = (ti0 + 65536*(ti1 + 65536*(ti2 + 65536*ti3))) / 25000;
spikes.channel = raw(5,:);
spikes.height = raw(6,:) * .3335;
spikes.width = raw(7,:) * .040;
spikes.context = raw(8:81,:) * .3335;
spikes.thresh = raw(82,:) * .3335;
This fragment loads n spikes from a file called
'filename.spike', and stores them in a structure called
'spikes'. Time is converted to seconds; height,
context, and threshold to μV; and width to ms.
A Matlab function to load "Full info"-files conveniently is loadspike.m.
Channel numbers
Channel numbers in "Full info"-files refer to electrode numbers. These
are related to actual positions in the MEA as follows:
| 23 | 25 | 28 | 31 | 34 | 36 | |
20 | 21 | 24 | 29 | 30 | 35 | 38 | 39 |
18 | 19 | 22 | 27 | 32 | 37 | 40 | 41 |
15 | 16 | 17 | 26 | 33 | 42 | 43 | 44 |
| 13 | 12 | 3 | 56 | 47 | 46 | 45 |
11 | 10 | 7 | 2 | 57 | 52 | 49 | 48 |
9 | 8 | 5 | 0 | 59 | 54 | 51 | 50 |
| 6 | 4 | 1 | 58 | 55 | 53 | |
Conversions from electrode number to column-row format can be made in
Matlab using hw2cr.m. Conversions in the
other direction can be made using cr2hw.m.
In C/C++, conversions can be made using the functions defined in ChannelNrs.H.
These contain only time and channel information, no context. Files
have two columns for recordings of spontaneous activity:
- Time, in seconds
- Channel number (0..59)
For recordings of evoked activity, they contain four columns:
- Time, in seconds
- Channel number (0..59 for actual spikes, or 60 if this is a
stimulus marker)
- Stimulus number (index into ".tri.txt" file)
- Latency since stimulus, in milliseconds
These files are stored bzipped, so you need "bunzip2" to access them.
These contain information about stimuli, one line per stimulus. They
have two columns:
- Time, in seconds
- Channel number (0..59) of the stimulated electrode
These files are stored bzipped, so you need "bunzip2" to access them.
These contain the information from .spk.txt and .tri.txt files in a
more convenient form for access from Matlab. They always contain a
variable "spk", with the information from the ".spk.txt" file. For
recordings from stimulus-evoked activity, they also contain a variable
"tri", with the information from the ".tri.txt" file. You need Matlab
version 7 or later to read these files.
Downloading tips
You can download indidvual files, or
click on the "list" links to download a list of all the files in a
row, in a column, or in an entire table. This list can be used with
programs like wget
to conveniently
download multiple files. Many Linux distributions ship with "wget".
Solutions for other operating systems may be available, but we cannot
provide them.
If you want to download many files, clicking on each may be
inconvenient. In that case, it is recommended that you use the file
lists at the bottom and right edges of the tables. In Linux, those can
be used as follows:
wget -I daily.spont.dense.full.0.0.3.list
You are also welcome to directly access the archive, e.g., to download
all "Compact (text)"-files for daily recordings of spontaneous
activity from cultures of any density:
wget -x -r http://potterlab.bme.gatech.edu/devel-data/simple-text/daily/spont
The directory structure is:
filetype/expttype/stimtype/density/plating-culture-div[.num].ext.
Here:
- filetype is "full", "simple-text", or "simple-matlab".
- expttype is "daily", or "night".
- stimtype is "spont", or "stim".
- density is "dense", "small", "sparse", "smsp", or "ulsp".
- plating is a plating batch number, 1..7.
- culture is a culture number (within a batch), 1..6.
- div is the age (in days in vitro) at which the
recording was made.
- num is the serial number of the recording. This is present
only in overnight recordings, which were split into manageable chunks.
- ext is the file extension: "spike.gz", ".mat",
".spk.txt.bz2", or ".tri.txt.bz2".
If you do choose to download entire directories in this manner, please
keep in mind that the entire archive is about 45 GB in size.
(C) Daniel Wagenaar, 2005