Data sets accompanying Liu et al., Nature Communications 2017: Inference of neuronal functional circuitry with spike-triggered non-negative matrix factorization.
Data: Salamander retinal ganglion cells under finely structured spatio-temporal white noise
Tim Gollisch, Email: firstname.lastname@example.org, Website: https://www.retina.uni-goettingen.de/
This repository contains the main data that was analyzed in the paper
Liu JK, Schreyer HM, Onken A, Rozenblit F, Khani MH, Krishnamoorthy V, Panzeri S, Gollisch T (2017) Inference of neuronal functional circuitry with spike-triggered non-negative matrix factorization. Nature Communications 8:149 (https://www.nature.com/articles/s41467-017-00156-9).
The data set contains five multielectrode-array recordings of retinal ganglion cell spiking activity, measured in the isolated salamander retina. The stimulus was a spatio-temporal white noise at high spatial resolution. The white noise sequence was interspersed once a minute with repeated, identical white noise sections (“frozen noise”) of 10 sec duration, so that 50 sec of random white noise alternated with the 10 sec frozen noise sections. For details, please refer to the Methods section of the original paper.
If you plan to use this data for a publication, please inform us about it and don’t forget to cite the original paper as well as the source of the data (DOI 10.12751/g-node.62b65b).
Structure of the data
For each of the 5 recordings, the data are contained in a single binary Matlab file (.mat). When loaded into Matlab, it yields two three-dimensional arrays, named spk1 and spk2. spk1 contains the spike counts from the non-repeated white-noise sequences; spk2 the ones from the frozen noise.
The data are organized in trials. For the non-repeated white noise, each trial corresponds to a 50-sec stretch of data (at the very beginning of the recording for trial 1, or in between two frozen noise sections for all other trials). For the frozen noise, each trial corresponds to a 10-sec stretch that follows the corresponding non-repeated white noise. The stimulus update rate was 30 Hz, and the data are binned at the same temporal resolution (i.e. time bins of 1/30 s = 33.3 ms).
The arrays contain the binned spike counts and have the dimension Ncells x Ntimebins x Ntrials, where Ncells is the number of recorded ganglion cells, Ntimebins is the number of time bins per trial, and Ntrials is the number of recorded trials.
Thus spk1(3,100,7) yields the spike count in the 33-ms bin of cell number 3 in the recording from trial number 7 of the non-repeated white-noise section during the 100th time bin.
(A good way to start familiarizing yourself with the data could be to compute PSTHs for the frozen noise by taking the responses of a single cell and averaging over trials. There should be fairly sparse peaks of activity (depending on the particular cell), which shows that the responses appear locked to particular time points in the frozen noise. The PSTHs for the non-repeated noise, of course, should be rather flat, except for fluctuations from finite data and for the very beginning of the PSTH, which is still influenced by the frozen noise).
Reconstructing the stimulus
To related the ganglion cell responses to the visual stimulus, one needs to recreate the applied sequence of binary white-noise patterns that were used to stimulate the retina. This can be done with the supplied Matlab script “recreate_spatiotemporal_white_noise_stimulus.m”. The comments in the script explain the usage and the format of the obtained stimulus sequence. In brief, the script successively computes the 1500 frames for each 50-sec trial of non-repeated noise and provides this sequence as a matrix in the form y-times-x-times-time (dimensions of 150x200x1500). These matrices are then saved into separate files, one for each trial. (But you can, of course, change this data handling according to your liking.) In the end, the script also provides the frozen noise in the same format for saving to disk.
Running the script requires the appropriate random number generator, which we supply as a Matlab mex-file (“ran1.mexw64”; compiled c++ file, which can be run from Matlab). This may work as is under Windows. For a different operating system, you will probably have to create your own mex-file from the supplied c++ source code “ran1.cpp”.