*** Version 1.0.0: Initial release***
GRABMyoFlow - GRABMyo Dataset extension
We provide the EMG signals recordings of 20 new participants over 3 different days while performing multiple hand gestures.
The signals have been acquired at a sampling rate of 2048 Hz using the EMGUSB2+ device (OT Bioelletronica, Italy).
EMG signals have been collected from 12 locations (channels) on the wrist.
The signals are provided as ".dat" and ".hea" files. The files are organized under 3 folders, "session1", "session2" and "session3".
Each folder contains folders with the naming "session{i}_participant{j}" where i = {1,2,3} and j = {44,45,46...63}.
Each folder contains files with the naming "session{i}_participant{j}_gesture{k}_trial{l}.dat" and ".hea" where k = {1,2,3...17} and l = {1,2,3...7}.
A python code to read all WFDB format files (.dat and .hea) and save them as .mat files has been provided.
This extension will improve the use of machine learning algorithms for applications such as biometrics and gesture recognition.
To run the codes please follow the steps:
1) download the latest versions of the GRABMyo and GRABMyoFlow datasets
2) run grabmyoflow_wfdb_to_mat_static.py and select whether to convert the whole dataset (W) or only the extension (E)
3) select the required base folders
4) run grabmyoflow_feature_extraction.m and choose whether you want to extract the features of the whole (W), the extension (E) or the original (O) dataset
5) choose the corresponding data folder
Code Files and Functions (Static / Extension):
- grabmyoflow_wfdb_to_mat_static.py: A Python script that converts the raw WFDB data (.dat and .hea files) into MATLAB compatible .mat files. It handles both the original GRABMyo structure (43 subjects) and the GRABMyoFlow extension (20 subjects). It creates DATA_FOREARM and DATA_WRIST matrices in the output.
- grabmyoflow_feature_extraction.m:
The main MATLAB script for the feature extraction pipeline.
It loads the converted .mat files, preprocesses the signal (e.g., Common Average Reference), segments the data, extracts frequency features, and saves the results.
It supports processing the Whole, Extension, or Original dataset.
- segmentEMG.m:
A MATLAB helper function used by the extraction script.
It cuts the continuous EMG signals into overlapping sliding windows (e.g., 200ms window with 150ms overlap).
- featiDFTl.m:
A MATLAB helper function used by the extraction script.
It calculates the integral of the Discrete Fourier Transform (iDFT) features for specific frequency bands from the segmented data.
- grabmyoflow_visualize_static.m:
A MATLAB script to visualize the raw EMG signals from the converted static .mat files for data verification.
- grabmyoflow_wfdb_visualize_export.py:
A Python script designed to visualize individual raw WFDB recordings and optionally export them to NumPy format for Python-based analysis.
It reads the ".dat" and ".hea" files and generates plots with consistent y-axis scaling (-0.15 to 0.15) and proper channel labels. The script handles the GRABMyoFlow extension structure for participants 44-63.
It allows for exporting signal data and full metadata into compressed ".npz" files.
---Requirements (grabmyoflow_wfdb_to_mat_static.py):
Software:
- Python 3.8+
- numpy, wfdb, scipy, tkinter (Python packages)
Dataset:
- For mode "W": original GRABMyo dataset (grabmyo-1.1.0) AND the extension dataset (static_extension_WFDB)
- For mode "E": only the extension dataset folder (static_extension_WFDB)
Folder Structure:
- session{i}_participant{j}/ session{i}_participant{j}_gesture{k}_trial{l}.dat session{i}_participant{j}_gesture{k}_trial{l}.hea i = 1..3, j = 1..43 (original) and/or 44..63 (extension) k = 1..17, l = 1..7
---Requirements (grabmyoflow_visualize_static.m):
- MATLAB R2020a or newer
- Converted .mat files produced by the static conversion script
---Requirements (grabmyoflow_feature_extraction.m)-
- MATLAB R2020a or newer
- featiDFTl.m and segmentEMG.m included in the same folder as the extraction script
- Converted .mat files produced by the static conversion script
- whole for mode "W" and "O"
- extension or whole for mode "E"
---Requirements (grabmyoflow_wfdb_visualize_export.py):
Software:
- Python 3.8+
- numpy, wfdb, matplotlib, argparse (Python packages)
Dataset:
- Extension dataset folder (static_extension_WFDB)
Folder Structure:
- session{i}_participant{j}/ session{i}_participant{j}_gesture{k}_trial{l}.dat session{i}_participant{j}_gesture{k}_trial{l}.hea i = 1..3, j = 44..63, k = 1..16, l = 1..7
Usage:
- python wfdb_visualize_export.py --ext_path "/path/to/static_extension_WFDB" --participant 44 --session 1 --gesture 1 --trial 1 --export_numpy
GRABMyoFlow - dynamic
We provide EMG signals recordings of 20 new participants over 3 different days while performing 30 different dynamic transitions between hand gestures.
The signals have been acquired at a sampling rate of 2048 Hz using the EMGUSB2+ device (OT Bioelletronica, Italy).
EMG signals have been collected from 12 locations (channels) on the wrist.
The signals are provided as ".dat" and ".hea" files. The files are organized under 3 folders, "session1", "session2" and "session3".
Each folder contains folders with the naming "session{i}_participant{j}" where i = {1,2,3} and j = {1,2,3...20}.
Each folder contains files with the naming "session{i}_participant{j}_gesture{k}_trial{l}.dat" and ".hea" where k = {1,2,3...30} and l = {1,2}.
A python code to read all WFDB format files (.dat and .hea) and save them as .mat files has been provided.
This dataset provides data that can be used as realistic testing data for machine learning algorithms for applications such as biometrics and gesture recognition.
Details about the experimental protocol and participants are provided in: "MotionSeq.txt" "participant_info.csv" "ElectrodeLocation.png" "GestureList_dynamic.jpg" "GestureList_static.jpg" "DeviceInfo.pdf"
To run the codes please follow the steps:
1) run grabmyoflow_dynamic_convert_wfdb_to_mat.py
2) select the required base folders
3) run grabmyo_visualize_dynamic.m to visualize selected trials of specific participant sessions.
Code Files and Functions (Dynamic):
- grabmyoflow_dynamic_convert_wfdb_to_mat.py:
A Python script designed to convert the raw WFDB files of the dynamic dataset (30 gestures, 2 trials) into .mat files.
It handles the specific folder structure and matrix dimensions of the dynamic transitions.
- grabmyo_visualize_dynamic.m:
A MATLAB script that allows users to select and visualize specific trials from the converted dynamic .mat files to verify signal quality and gesture transitions.
---Requirements (grabmyoflow_convert_wfdb_to_mat_dynamic.py):
Software:
- Python 3.8+
- numpy, wfdb, scipy, tkinter (Python packages)
Dataset:
- Folder structure must contain: GRABMyoFlow_1.0/dynamic/ session1/ session2/ session3/
Folder Structure:
session{i}_participant{j}/ session{i}_participant{j}_gesture{k}_trial{l}.dat session{i}_participant{j}_gesture{k}_trial{l}.hea i = 1..3, j = 1..20 k = 1..30, l = 1..2
---Requirements (grabmyo_visualize_dynamic.m):
- MATLAB R2020a or newer
- Converted .mat files produced by the dynamic conversion script
For more details about the GrabMyo Database, please see: https://physionet.org/content/grabmyo/1.1.0/