Myomatrix arrays for high-definition muscle recording
Data files
Sep 18, 2023 version files 15.98 GB
-
MAKEFIG_myomatrix_EMG_and_sorting.m
4.04 KB
-
Myomatrix_eLife_2023_CHANNEL_MAP_macaque_biceps.h5
4.37 KB
-
Myomatrix_eLife_2023_CHANNEL_MAP_macaque_biceps.mat
719 B
-
Myomatrix_eLife_2023_CHANNEL_MAP_mouse_triceps.h5
3.60 KB
-
Myomatrix_eLife_2023_CHANNEL_MAP_mouse_triceps.mat
558 B
-
Myomatrix_eLife_2023_EMG_DATA_macaque_biceps.h5
11.24 GB
-
Myomatrix_eLife_2023_EMG_DATA_macaque_biceps.mat
3.83 GB
-
Myomatrix_eLife_2023_EMG_DATA_mouse_triceps.h5
460.99 MB
-
Myomatrix_eLife_2023_EMG_DATA_mouse_triceps.mat
447.53 MB
-
README.md
6.17 KB
Abstract
README
Myomatrix arrays for high-definition muscle recording
Chung et al., eLife (2023)
All data and code described below can be found here: https://doi.org/10.5061/dryad.66t1g1k70
Overview of data structures
This data archive includes two electromyography (EMG) datasets recorded with Myomatrix arrays from behaving animals. These are the mouse triceps data shown in Figure 1(b,d) and Supplemental Figure 2(a,b,e,f), and the rhesus macaque biceps data shown in Figure 3 and Supplemental Figure 2g. Please see the manuscript for descriptions of how each dataset was recorded.
Data files are provided in both .h5 (Hierarchical Data Format 5) and .m (MATLAB) format:
Approximately 2 minutes of data recorded from a mouse running on a treadmill (file size roughly 0.4 GB)
Myomatrix_eLife_2023_EMG_DATA_mouse_triceps [.mat,.h5]
Approximately 100 minutes of data from the macaque performing planar reaching movements (file size roughly 3.8 GB for .mat, 11.2 GB for .h5)
Myomatrix_eLife_2023_EMG_DATA_macaque_biceps [.mat,.h5]
Spatial channel maps of the injectable and chronically-implanted devices used in the macaque and mouse dataset, respectively:
Myomatrix_eLife_2023_CHANNEL_MAP_mouse_triceps [.mat,.h5]
Myomatrix_eLife_2023_CHANNEL_MAP_macaque_biceps [.mat,.h5]
Guide to variables (EMG data files):
Each dataset (Myomatrix_eLife_2023_EMG_DATA_macaque_biceps
and Myomatrix_eLife_2023_EMG_DATA_mouse_triceps
) includes the following:
Variable name: EMG_data
Description: Myomatrix data (in units of microvolts) in an NxM matrix, where N is the number of time samples, and M is the number of recorded channels. M=32 in the macaque data (unipolar recordings from 32 electrode contacts), and M=16 in the mouse data (bipolar signals from 32 electrode contacts; see Note 2 below).
Notes:
- The macaque dataset was high-pass filtered with a cutoff of 250Hz. The mouse dataset was bandpass filtered between 300-7500 Hz (see Methods).
- The mouse data was initially recorded in unipolar mode; we subsequently subtracted the unipolar signals from adjacent channels to approximate bipolar recordings.
- To reduce file size,
EMG_data
in the macaque dataset is saved as a 16-bit integer (all other variables are saved as double-precision values). - In the macaque recording, three of the 32 electrode contacts on the injectable Myomatrix device had impedances >1 MOhm, indicating broken or otherwise nonfunctional electrode contacts. The voltage values from these (channels 1, 4, and 17, provided in columns
[1,4,17]
inEMG_data
) have therefore been set to zero.
Variable name: sampling_rate
Description: Sampling frequency of EMG data
(in Hz).
Variable name: sample_ID_vec
Description: Time (in units of sample number, divide by sampling_rate
to covert to units of time) of each spike waveform isolated by the modified version of Kilosort described in the manuscript. Note that by design, Kilosort does not necessarily label every waveform, only those that can be confidently assigned to waveform clusters.
Variable name: unit_ID_vec
Description: Motor unit identity of each sorted spike waveform. Units are numbered in decreasing order of the total number of spikes fired in the dataset, i.e. the unit that fired the most spikes is defined as unit 1, the unit that fired the second-most spikes is defined as unit 2, etc. As described the text, the mouse dataset includes a total of 6 identified motor units and the macaque dataset includes 13 sorted units.
Guide to variables (channel maps):
Each channel map file (Myomatrix_eLife_2023_CHANNEL_MAP_mouse_triceps
and Myomatrix_eLife_2023_CHANNEL_MAP_macaque_biceps
) includes the following, which can be used by Kilosort or other spike-sorting approaches to define the geometry of the electrode array:
Variable name: xcoords
, ycoords
Description: These variables describe the spatial location of the recording channels, can be used by Kilosort to constrain the spatial extent over which the same unit may appear (see Methods). For the macaque dataset, xcoords and ycoords define the coordinates, in units of microns, of each of the 32 electrode contacts (which were recorded in unipolar mode, see manuscript). For the mouse dataset, $xcoords$ and $ycoords$ define the locations at the midpoint between each of the 16 pairs of electrode contacts that are subtracted to produce the bipolar signal.
Variable name: kcoords
Description: In Kilosort, kcoords
provides an index defining on which electrode shank each channel is located.
Variable name: chanMap, chanMap0ind
Description: Index of channel numbers; either 1-indexed (e.g. channel 1-32) or 0-indexed (e.g. channel 0-31).
Variable name: connected
Description: In Kilosort, working channels indexed with connected=1
, broken channels indexed with connected=0
. As described above, in the macaque dataset, channels 1, 4, and 17 were broken, and the corresponding columns of EMG_data
are set to zero. Note however that in our modified version of Kilosort, we set all connected
values to 1 to maintain the size and shape of the channel map.
Included MATLAB code:
We provide MAKEFIG_myomatrix_EMG_and_sorting.m
, which plots subsets of time (and channels) to allow users to view the EMG data along with our sorting After loading either
Myomatrix_eLife_2023_EMG_DATA_mouse_triceps.mat
or
Myomatrix_eLife_2023_EMG_DATA_macaque_biceps.mat
into the MATLAB workspace, run the following:
MAKEFIG_myomatrix_EMG_and_sorting(EMG_data,unit_ID_vec,sample_ID_vec,sampling_rate)
This code will create two figures. The first figure will show a subset of EMG channels during 20 seconds of recording, as well as the outcome of our spike sorting (see manuscript for spike sorting details. The second figure will show a summary of the average firing rate of each motor unit across the duration of the recording session. Modifying this code will allow users to view other time periods or subsets of channels.
Methods
Full details are available in the main manuscript text and the attached README file.