Dynamic structure of motor cortical neuron co-activity carries behaviorally relevant information
Data files
Dec 05, 2022 version files 200.27 MB
-
README.md
1.54 KB
-
RJ_CenterOut_data_10msBin_with500buffer_MIonly.pkl
43.60 MB
-
RS_CenterOut_data_10msBin_with500buffer.pkl
156.67 MB
Abstract
(This is the dataset used in Dynamic Structure Of Motor Cortical Neuron Co-Activity Carries Behaviorally Relevant Information, Abstract below)
Skillful, voluntary movements are underpinned by computations performed by networks of interconnected neurons in the primary motor cortex (M1). Computations are reflected by patterns of co-activity between neurons. Using pairwise spike time statistics, co-activity can be summarized as a functional network (FN). Here, we show that the structure of FNs constructed from an instructed-delay reach task in non-human primates are behaviorally specific: low dimensional embedding and graph alignment scores show that FNs constructed from closer target reach directions are also closer in network space. Using short intervals across a trial we constructed temporal FNs and found that temporal FNs traverse a low-dimensional subspace in a reach-specific trajectory. Alignment scores show that FNs become separable and correspondingly decodable shortly after the instruction cue. Finally, we observe that reciprocal connections in FNs transiently decrease following the instruction cue consistent with the hypothesis that information external to the recorded population temporarily alters the structure of the network at this moment.
We thank Jacob Reimer, Zach Haga, and Dawn Paulsen for collecting the data used in this work.
Data collection and reaching task
We used previously published datasets from two macaques, Monkey Rs and Monkey Rj, performing an instructed center-out reaching task (Hatsopoulos et al., 2004; O’Leary & Hatsopoulos, 2006). Subjects were trained to hold a cursor on a center target presented on a video screen using a 2D arm exoskeleton (KINARM, Kingston, Ontario). One of eight radially positioned peripheral targets was then presented and served as an Instruction cue during which time the subjects were required to keep holding the cursor on the center target. After a 1 second delay period, the peripheral target began blinking (Go cue) instructing the subjects to move the cursor to the peripheral target (Figure 1A). Trial start was 0.5 s before the instruction cue appeared, and trial termination was 0.5 s after the peripheral target was acquired. Trial inclusion depended upon target acquisition falling within 1.5s following movement onset. We also only included correct trials. Movement onset is defined as the time when the hand velocity reached 5% of the peak velocity of the movement after the Go cue.
Neural data were recorded from 96-channel Utah arrays implanted in the arm/hand area of primary motor cortex (M1) on the precentral gyrus. Spike waveform snippets sampled at 30 kHz were extracted using a user-defined threshold (Cerebus BlackRock Microsystems, Salt Lake City, UT) and were sorted into individual units using Offline Sorter (Plexon, Dallas, TX).
The surgical and behavioral procedures involved in this study were approved by the University of Chicago Institutional Animal Care and Use Committee.
This is the dataset used in: Dynamic Structure Of Motor Cortical Neuron Co-Activity Carries Behaviorally Relevant Information
https://doi.org/10.1101/2022.05.18.492501
Find associated software here:
https://github.com/hatsopoulos-lab/macaque-dynamic_functional_networks.git
Find data structure and example functions (including how to construct Functional Networks) under:
https://github.com/hatsopoulos-lab/macaque-dynamic_functional_networks/center-out/run_data_demo.ipynb
The files are in .pkl format.
You can load it using: data = loadPickle(filepath)
'data' is structured in the following way:
data -> (list)
|
--- data[direction] -> (dict) corresponding to targets spatially located around a center target
keys:['DirectionIndex', 'DirectionDegrees', 'numTrials', 'instructionTimes', 'goTimes', 'startMv', 'endMv', 'numCh', 'binwin', 'StartTimes', 'trialData'])
|
--- ['trialData'] -> (list) list of trials within that direction
|
--- ['trialData'][trial] -> (dict)
keys: ['trialNum', 'trialStart', 'trialInstruction', 'trialGo', 'trialEnd',
'trialXPos', 'trialXTime', 'trialYPos', 'trialYTime', 'unitData',
'trialNumUnits', 'trialSpiketimes', 'trialBinnedSpikes']
|
--- ['unitData'] -> list of single units
|
--- ['unitData'][unit] -> (dict)
keys: ['chanNum', 'unitInChan', 'unitNum', 'spiketimes']