Cortical Mechanisms of Smooth Eye Movements Revealed by Dynamic Covariations of Neural and Behavioral Responses
This is the second paper David published with Steve Lisberger. They used a number of new approaches to characterize the responses of neurons, both individually and at the level of the population, and came away with a stronger understanding of how neurons can represent visual information and drive coordinated movements.
Basically, all the data lives in a .mat file unique to each unit or pair. The versions here have been through the analysis code, which simply adds fields to the files and saves them. This way, you don't need to re-do the analysis from the original trials (takes a day or so to run on a fast computer) but the code is provided so you can see what I've done.
All relevant MATLAB code (92 KB) summarized briefly below. Functions not described are support functions
prepare.mWill re-create the unit???.mat files that comprise the analyzed data for each cell. Calls over 20GB of original files; if you really want to run this, please let me know and I'll make the original trial files available.
aggregate.m -- extracts the relevant data from multiple single units, requires the unit???.mat files
aggregate_pairs_tbtv.m -- extracts the relevant multiple pairs, requires the pair???.mat files
smartCov.m -- generates correlation or covariation matrices with a known mean and variance
mp.m,mp2.m,sm.m -- will generate the figures from the output of aggregate.m
simulateResidualModel.m -- runs the model that comprises the supplementary figure
unit???.mat files (3.7 GB)
Some decompression programs will not properly untar this file; I've had my best results simply using the tar program itself, i.e. 'tar xvf unit.tar' directly from the command line. File verified June 2, 2009.
Each unit is a structure, named unit??? where each ? is a number.
.allspikes is a numtrials x 701 (ms) array of 0/1, where 1 marks a spike
.allepos is a numtrials x 701 (ms) array of eye position values, in degrees
.allevel is a numtrials x 701 (ms) array of eye velocity values, in degress/sec
.allnames is an array of strings referring to the filename corresponding to each trial
.alltype is a vector of length numtrials which defines the direction the target moved (45:45:360)
.unitid is the unique identifier for each unit
.sp is an 8 value vector where each element corresponds to the number of spikes in a given direction (45:45:360 are the directions)
.prefdir is the preferred direction
.binaryspikes is a numtrials x 701 (ms) array of 0/1 that corresponds to trials of the PREFERRED DIRECTION ONLY
.evel is a numtrials x 701(ms) array of eye velocity values that corresponds to trials of the PREFERRED DIRECTION ONLY
.pd is the mean and sd of a Gaussian fit to the spike data to determine preferred direction
.fullid is the complete ID of this unit
.rank is a number from 1-5 describing the subjective isolation quality. 1 made a brainstem physiologist jealous. 2 was clean. 3 may have needed sorting. 4 was the least-publishable unit, and 5 was a multi-unit
.filterbank describes 150 filters generated from the residuals (.var) from shuffled data (.randvar) and the whole dataset (.best)
.test has the number of points (.n) the overall correlation between predicted and actual filter for each run (.corr) the correlation in time (.timecorr) the mean square error between the two (.mse) and in time (.timemse) the overall shuffled correlation (.shufcorr) and in time (.shufcorrtime) and shuffled MSE (.shufmsedist, .shuftimemse, .shufmse)
.cross,.forward,.above,.below all are identical to .test and .filterbank, but for different directions or conditions
.aligned has the shift applied to each trial
pair???.mat files (1.7 GB)
Each unit is a structure, named pair??? where each ? is a number.
.spikes is a numtrials x 1000 (ms) x 2 array of 0/1, where 1 marks a spike, and the third dimension corresponds to different cells
.epos is the eye position (as above)
.evel is the eye velocity (as above)
.type is the type of trial (as above)
.spikesbydir is the number of spikes in a given direction
.prefdir -- you guessed it -- the preferred direction
.id the full ID of each unit
.electrodedist is a number from 0-4, which gives the spacing, in electrodes, between the cells. 0 were recorded on the same electrode
.run is a 1x8 vector of 0/1 which determines whether there was sufficient activity in a given direction to run the analysis. Directions are 45:45:360
.rNN has its own fields: .fN, randfN, NN, NNtime, NNcorr, and NNtimecorr. Each refers to the outcome of a given analysis, detailed in nbnv_final_tbtv.m
fulldata.tar (3.1 GB)
Each unit will be named unit???.mat, and if you load the file, you'll see a structure with the following fields:
.allspikes (number of trials x 2000)
.allepos (number of trials x 2000 x 2) first one is horizontal, second is vertical
.allnames (the full name of each trial)
.alltype (the direction of trial motion)
.unitid (local number of the unit)
.fullid (the full and proper way to refer to the unit)
.rank (a subjective rating of how good the isolation was, 1 is best, 4 is worst, 5 is multiunit)
Each trial has 200ms of fixation, and goes up until the end of the trial, after which there is nothing but NaNs in the array.