Dataset Open Access

Ground truth recordings for validation of spike sorting algorithms

Giulia LB Spampinato; Elric Esposito; Pierre Yger; Jens Duebel; Serge Picaud; Olivier Marre

Dublin Core Export

<?xml version='1.0' encoding='utf-8'?>
<oai_dc:dc xmlns:dc="" xmlns:oai_dc="" xmlns:xsi="" xsi:schemaLocation="">
  <dc:creator>Giulia LB Spampinato</dc:creator>
  <dc:creator>Elric Esposito</dc:creator>
  <dc:creator>Pierre Yger</dc:creator>
  <dc:creator>Jens Duebel</dc:creator>
  <dc:creator>Serge Picaud</dc:creator>
  <dc:creator>Olivier Marre</dc:creator>
  <dc:description>Ground-truth recordings for validation of spike sorting algorithms

This datasets is composed of simultaneous loose patch recordings of Ganglion Cells in mice retina, combined with dense extra-cellular recordings (252 channels). The details of the dataset can be found here

Probe layout

The probe layout can be found as mea_256.prb. This is a 16x16 Multi Electrode Array with 30um spacing. Only 252 channels are extra-cellular signals, and the 4 corners are devoted to triggers/sync/juxta.

Struture of the data

In this dataset, you will find several individual recordings, at max 5min long each (but please do not hesitate to contact us if interested by longer recordings). The extra-cellular data are saved as 16bits unsigned integer, with a variable offset at the beginning of the file. The value of this offset is given, for every datafile, in the additional text file (padding value (see following for more details)). The files have already been filtered with a Butterworth filter of order 3 with a cut-off frequency at 100Hz

Structure of a given dataset

Please read carefully the following to understand how to load and perform spike sorting with the data. In every .tar.gz file, you will find:

	 a jpg image, displaying a small chunk of the juxta-cellular signal (top left), with detected peaks and threshold. The extra-cellular spike triggered waveform, across all channels, for the juxta-spike times (top right). In the bottom, you can see the juxta-cellular spikes, for all the detected triggers (left), and on the right the voltage on the channel where the Spike Triggered Average of the extra-cellular waveform is peaking the most.
	a file .juxta.raw, as float32, with the juxta-cellular trace at 20kHz, no data offset
	a file .raw, as uint16, with the extra-cellular signals recorded for 256 channels at a sampling rate of 20kHZ. In fact, only 252 channels are extra-cellular signals, the 4 corners of the arrays are devoted to juxta-cellular and sync signals (see probe layout mea_256.prb)
	a file .triggers.npy containing the spike times of the juxta-cellular spikes, detected using a threshold of k.MAD. The exact value of k can vary on a per dataset basis, and is written in the .txt file (threshold)
	a .txt file describing some information for a given dataset, such as the threshold value used to detect the spikes, the channel in the raw file where the juxta-cellular signal is located, the minimal value of the peak for the STA (and on which channel it is located), and the header size to read the raw data
	a .params file, if you want to analyze the data with SpyKING CIRCUS

How to load the raw data in numpy

#Using the offset value from the txt file, we can load the data with memmap arrays

data=numpy.memmap('mydata.raw', dtype='uint16', offset=offset, mode='r')
data=data.reshape(len(data)//256, 256)

#Then for example, to display the first second of channel 0
one_channel = data[:20000, 0].astype('float32')

#If we want to center data around 0
one_channel -= 2**15 - 1

#And if we want to display data in micro volt, we must use the gain factor of 0.1042 provided in the header
one_channel *= 0.1042

  <dc:subject>neuroscience, spike sorting, ground-truth, spyking circus</dc:subject>
  <dc:title>Ground truth recordings for validation of spike sorting algorithms</dc:title>
All versions This version
Views 2,9342,946
Downloads 13,27213,272
Data volume 23.5 TB23.5 TB
Unique views 2,5812,593
Unique downloads 1,8201,820


Cite as