DOI: 10.6084/m9.figshare.23631951
title: Processed data files used in Schwartze et al 2024

description: These are the datafiles used for the paper by Schwartze et al 2024 entitled "Initial and corrective submovement encoding differences within primary motor cortex during precision reaching" published in the Journal of Neurophysiology.Data for 12 sessions of precision center out task from animals P & Q, both male, in data_extracted.zipThis processed data that has already been spike sorted and includes neural firing rates & spike times, joystick positions, and behavioral event information.<br>data_processiong.zip is provided as reference of matlab code used for processingTrial timing:Six timing events are present for each trial.There names are given in TrialSettings.align_names: {'Start' 'Instruct' 'Move' 'Contact' 'End' 'Reward'}Start - is the start of the trial which was when the cursor entered the center target and this is also what corresponds to the first bin of 100Hz joystick values and the SpikeFiringRates which are guassian-smoothed rates as well as time 0 in SpikeTimes which are organized by unit and then trial.Instruct – is the cue when the target appears<br>Move – when the cursor left the center target<br>Contact – When the cursor contacted the target for the first time (Note they could leave and enter again, this information is stored separately, see below)<br>End – When the hold of the target was completed<br>Reward – When the Reward was started<br>For many analysis, it is likely you want to align on Instruct (2) or Move (3)To find the timing of these events in individual trials, the information is present in:TrialInfo.align_samples_plx : This is the sample (with 100Hz sampling) for the 6 events that line up with the joystick/cursor data and SpikingFiringRates, the 6 columns correspond to the 6 timing events, note Start is always sample 1 for the trial.TrialInfo.align_times_plx: This is the time in seconds relative to the Start for each trial when the 6 events happened which can be used for SpikeTimes as well as calculating reaction and movement times. Again the 1st column is always 0.If you want absolute time for the entire session, the start time for each trial is saved in TrialInfo.trial_start_time. This likely most useful if you want all spikes for a unit in a session available in AllSpikeTimes.For this task, the cursor could enter and leave the target multiple times until a successful final hold of the target was completed. To get all times the cursor left or entered a target, timing information is available in TrialInfo.move_samples_plx/TrialInfo.move_times_plx and TrialInfo.contact_samples_plx/TrialInfo.contact_times_plx<br>move events are any time the cursor leaves a target (the 1st column is when the center target was left-a repeat of TrialInfo.align_samples_plx(:,3), all additional columns are times when the cursor left the peripheral target before completing a hold)<br>contact events are the times the cursor entered the peripheral target (the 1st column is a repeat of the first contact seen in TrialInfo.algin_samples(:,4)<br>Data structures:SpikeTimes - unit x trial type cell array, each cell then has trial x 1 cell with spike times, all times relative to StartSpikeFiringRates - trial x time x unit, estimated with firing rate in Hz with 30 ms width Gaussian, sampled at 100 Hz, sample 1 is Start<br>AllSpikeTimes - times of all spikes during a recording session, Cell array, Unit x 1%TrialSettings - Information about the task, 24 different trial typesTrialSettings.target_type_name tells if target was regular, narrow, or shallowSpikeSettings - general settings for the recording session%TrialInfo - trial x 1 structure with timing information on eachindividual trialsSpikeInfo - trial x 1 structure with timing information on eachindividual trials, this was mainly what was used for extracting thespike data, but what you want for analysis is probably in TrialInfo%JoystickPos_disp - trial x time x X,Y - Joystick position as measured by joystick sensor as sent to display on the screen,this is likely the most accurate and best to use for analysisJoystickPos - trial x time x X,Y -this is the raw Joystick position that was measuredCursorPos - trial x time x X,Y - this comes from the .h5 data file,better for lining up with display and target contacts but slightly lessaccurate for actual movement behaviorCursorSpeedRaw - trial x time x X,Y; calculated with 5-point central difference from JoystickPos_dispCursorSpeedFilt - trial x time x X,Y;%PeakSettings - settings for the peak finding algorithm findpeaksPeakInfo - Information about all the movement speed peaks in the trialtrial_ids_peakVel - which trial id the peak occurredspeedPeaksTroughs - 3 magnitude values -1-minimum value before peak value, 2-height of peak, 3-minimum value after peakspeedPeaksTroughs_i - sample value in trial when the peak magnitudes occurredinitPeak_flag - locigal 1 - if first peak in trial, 0 - all other peaks, Note: there may be a rare number of trials with no initial peakSpikeQuality - structure giving the measured quality of each units spikechannels - Plexon channelunits - Plexon unitnum_spikes - Number of spikesT - total time when spikes occurredmean_waveform - mean waveform of spike snippetSNR - signal to noise: std(mean_waveform)/std(residual_noise), residual_noise = std(waves - mean_waveform)SNR_max - signal to noise: max(abs(mean_waveform))/std(residual_noise)SNR_p2p - signal to noise: (max(mean_waveform)-min(mean_waveform))/std(residual_noise)%ISI - inter spike interval,maxISI - short ISIs were calculated with exclusionary period of maxISI = 1, 1.5, and 2 msminISI - minimum ISI that can be observed (0.675 ms)shortISI - number of ISI violations that occurred in the 3 exclusionary periodspercentShortISI - shortISI/num_spikespercentTrueISI - sqrt(.25 - (shortISI*T)/(2*(maxISI-minISI)*num_spikes^2)) + .5, exclusionary period is 1,1.5, or 2 ms minus 0.675 mspercentMissedSpikes - (num_chan_spikes - num_spikes)*minISI/Tfalse_pos_gm - estimated number of false positives (other units' spikes labeled as the current unit) using a Gaussian mixture modelfalse_neg_gm - estimated number of false negatives (current unit's spikes labeled as a different unit) using a Gaussian mixture model<br>