Materials and surface HDEMG data for hands-on training on motor unit identification in dynamic and fatiguing muscle contractions

  • Authors: Nina Murks, Leon Kutoš, Matjaž Divjak, Aleš Holobar

Keywords: HybridNeuro, hands-on training, teaching materials, surface high density electromyogram (HDEMG), motor unit, EMG decomposition, DEMUSE Tool, dynamic contractions, fatigue, simulated HDEMG, evaluation, dataset, Matlab.

SHARING/ACCESS INFORMATION
License: The data files (in Matlab MAT format) in this dataset are available under the Creative Commons Attribution (CC BY) 4.0 license. The software (Matlab scripts) in this dataset is available under the Apache 2.0 license.

Publicly accessible location of the data: https://dk.um.si/IzpisGradiva.php?lang=eng&id=96399

PID: 20.500.12556/DKUM-96399

Recommended citation for this dataset:
Murks Nina, Kutoš Leon, Divjak Matjaž, Holobar Aleš. “Materials and surface HDEMG data for hands-on training on motor unit identification in dynamic and fatiguing muscle contractions (HybridNeuro project)”. System Software Laboratory, Faculty of Electrical Engineering and Computer Science, University of Maribor, Slovenia. Digital library of University of Maribor. https://dk.um.si/IzpisGradiva.php?lang=eng&id=96399

DATA & FILE OVERVIEW
This dataset was prepared in the context of the HybridNeuro project (https://www.hybridneuro.feri.um.si/). It contains a collection of teaching materials and data that were used in the Hands-on Training on motor unit identification in dynamic and fatiguing muscle contractions, which was part of the Workshop on Invasive Interfaces (WSII25) in Gothenburg, Sweden, in January 2025. The Hands-on Training covered the practical aspects of motor unit identification in various types of muscle contractions. The teaching materials include a curated set of HDEMG signals, with simulated motor unit discharge patterns and Motor Unit Action Potentials (MUAPs) recorded from healthy volunteers in dynamic (biceps brachii) and fatiguing (abductor pollicis brevis) contractions. The HDEMG signals were decomposed using the DEMUSE software [1] (https://demuse.feri.um.si/). A dedicated MATLAB software was implemented for the accuracy assessment and visual comparison of automatic or manually edited HDEMG decomposition results and is included in the dataset. Total dataset size is 1 GB.

File list:
  • README.txt: this text file containing description of the dataset
  • README.pdf: formatted PDF file containing description of the dataset
  • metadata.xml: Dublin Core metadata in XML format
  • LICENSE-2.0.txt: plain text file with Apache 2.0 license
  • NOTICE.txt: plain text file with additional Apache 2.0 license information
  • compressed (ZIPed) folder Simulated_Dynamic: contains 3 examples of decomposed HDEMG signals and 3 files with reference decomposition; the input signals used are simulated surface HDEMG with constant excitation and dynamic movement:
    - HN_DynSig_Lib1_ramps2_SNRInf_EF40.mat: MUAP library 1, 2 repetitions of movement, no added noise, extension factor 40 - results of automatic decomposition
    - HN_DynSig_Lib1_ramps2_SNRInf_EF40_ref.mat: MUAP library 1, 2 repetitions of movement, no added noise, extension factor 40 - reference ground truth decomposition
    - HN_DynSig_Lib2_ramps2_SNR20_EF25.mat: MUAP library 2, 2 repetitions of movement, 20 dB signal-to-noise ratio, extension factor 25 - results of automatic decomposition
    - HN_DynSig_Lib2_ramps2_SNR20_EF25_ref.mat: MUAP library 2, 2 repetitions of movement, 20 dB signal-to-noise ratio, extension factor 25 - reference ground truth decomposition
    - HN_DynSig_Lib2_ramps5_SNR20_EF25.mat: MUAP library 2, 5 repetitions of movement, 20 dB signal-to-noise ratio, extension factor 25 - results of automatic decomposition
    - HN_DynSig_Lib2_ramps5_SNR20_EF25_ref.mat: MUAP library 2, 5 repetitions of movement, 20 dB signal-to-noise ratio, extension factor 25 - reference ground truth decomposition
  • compressed (ZIPed) folder Simulated_Fatigue: contains 3 examples of decomposed HDEMG signals and 3 files with reference decomposition; the input signals used are simulated surface HDEMG with constant excitation and simulated fatigue:
    - HN_FatigueSig_Lib1_Fatigue0_25_50_SNR10_EF40.mat: MUAP library 1, from 0% to 25% to 50% fatigue, 10 dB signal-to-noise ratio, extension factor 40 - results of automatic decomposition
    - HN_FatigueSig_Lib1_Fatigue0_25_50_SNR10_EF40_ref.mat: MUAP library 1, from 0% to 25% to 50% fatigue, 10 dB signal-to-noise ratio, extension factor 40 - reference ground truth decomposition
    - HN_FatigueSig_Lib1_Fatigue0_50_100_SNRInf_EF25.mat: MUAP library 1, from 0% to 50% to 100% fatigue, no added noise, extension factor 25 - results of automatic decomposition
    - HN_FatigueSig_Lib1_Fatigue0_50_100_SNRInf_EF25_ref.mat: MUAP library 1, from 0% to 50% to 100% fatigue, no added noise, extension factor 25 - reference ground truth decomposition
    - HN_FatigueSig_Lib2_Fatigue0_3_50_SNRInf_EF40.mat: MUAP library 2, from 0% to 3% to 50% fatigue, no added noise, extension factor 40 - results of automatic decomposition
    - HN_FatigueSig_Lib2_Fatigue0_3_50_SNRInf_EF40_ref.mat: MUAP library 2, from 0% to 3% to 50% fatigue, no added noise, extension factor 40 - reference ground truth decomposition
  • individual_MU_accuracy_evaluation.m: Matlab script for evaluating the accuracy of decomposed HDEMG signals at the level of individual motor units.
  • MU_editing_evaluation_tool.m: Matlab GUI application for inspection and evaluation of the results of manual editing of decomposed HDEMG signals.

All files with extension .MAT are in Matlab format, which is a proprietary format but its specifications are open and there are open source routines available for reading and writing:

  • The GNU Octave software, which is an open source alternative to Matlab, can read and write .MAT files.
  • The Python library Scipy can load MAT files.
  • The Matio project on SourceForge is a C library for reading and writing Matlab MAT files.

METHODOLOGICAL INFORMATION
Description of methods used for collection/generation of data:

Both sets of HDEMG data (dynamic and fatigue) were created by simulation, but are based on two libraries of real Motor Unit Action Potentials (MUAPs) that were recorded from healthy young volunteers during dynamic (biceps brachii) and fatiguing (abductor pollicis brevis) contractions in our previous experimental sessions. Those two libraries of MUAPs represent 2 different persons and are labeled as Lib1 and Lib2 in the file names. Motor unit discharge patterns were simulated by the motor unit recruitment and discharge modulation model from Fuglevand at el. [2]. Those discharge patterns and the recorded MUAPs were then convolved to generate the final simulated HDEMG signals. In some examples, randomly generated noise was added to the HDEMG signal, so that the final signal-to-noise ratio reached 10 dB or 20 dB (labeled as SNR10, SNR20 in the file names). Examples with no added noise are labeled with SNRInf. The generated discharde patterns were stored as ground truth reference in MAT files with suffix _ref. All generated HDEMG signals were then automatically decomposed with the DEMUSE software [1]. Those results are stored in MAT files without the _ref suffix.

Details for generating the fatigue signals:

  • Simulated muscle: Abductor pollicis brevis
  • Level of contraction: 30% of maximal voluntary contraction (MVC)
  • Sampling frequency: 2048 Hz
  • Simulator used for generation of MU discharge patterns: Fuglevand et al. 1993 [2]
  • MUAP generation: Experimental recordings of Abductor Pollicis Brevis muscle, incremental fatigue from 0% - 100% (fully fatigued muscle), discretized into 36 levels (0% represents level 1, 100% represents level 36). The level of fatigue is only simulated at the level of MUAPs, whereas the simulated MU discharge patterns are not affected by the simulated fatigue.
  • Electrode array: 12 x 5
  • Interelectrode distance: 4 mm
  • Signal length: 20s

Details for generating the dynamic movement signals:

  • Simulated muscle: Biceps brachii
  • Level of contraction: 30% of maximal voluntary contraction (MVC)
  • Sampling frequency: 2048 Hz
  • Simulator used for generation of MU discharge patterns: Fuglevand et al. 1993 [2]
  • MUAP generation: Experimental recordings of Biceps Brachii muscle
  • Level of simulated muscle shortening: from 0% (fully extended muscle) to 100% (fully shortened muscle) and back to 0% (fully extended muscle). Discretized into 36 levels (0% represents level 1, 100% represents level 36).
  • Electrode array: 13 x 5
  • Interelectrode distance: 8 mm
  • Signal length: 20s

Description of Matlab script

  • individual_MU_accuracy_evaluation.m: This is a Live Script for evaluating the accuracy of edited signals at the level of individual motor units (MUs). The script requires reference and edited signals; the signals must be decomposed, as raw recordings cannot be used directly. Each edited MU is compared to the corresponding reference MU using pulse-based matching, with cross-correlation used to identify the best match within a ±20% sampling frequency window. For each MU, Sensitivity (true positive rate), Specificity (true negative rate), and F1 score are computed, and these metrics are summarized across all MUs using minimum, maximum, mean, and standard deviation values. The results are visualized using boxplots summarizing the metrics across all MUs and bar plots showing Sensitivity, Specificity, and F1 score values per MU.
  • Description of Matlab script MU_editing_evaluation_tool.m: This application allows users to inspect and evaluate the results of manual editing of decomposed high-density electromyograms (HDEMG). Note: this app is intended only for synthetic signals, where a reference (ground truth) file is available for comparison.
    Button 1 - Load Edited File: Clicking this button opens a file selection dialogue to choose a manually edited decomposed file.
    Once the file is successfully loaded, its filename is displayed to the right of the button.
    Button 2 - Load Reference File: This button allows the user to select a reference file that serves as the ground truth for comparison with the manually edited signal. Since this app is designed for synthetic signals, the reference file is generated alongside the original data. Again, once the file is successfully loaded, its filename is displayed to the right of the button.
    Dropdown 3 - Motor Unit (MU) Selection: This dropdown lists the motor unit (MU) IDs of all MUs present in the loaded edited file. Whenever the user changes the selected MU, the signal plot 5 is updated, along with the calculated Sensitivity and Precision. Additionally, if the Ground Truth button is clicked, the figure will update to display the newly selected MU. Button 4 - Ground Truth: Clicking this button opens a new figure showing the IPT and only the true positive firings for the currently selected MU. This provides a visual reference of how the signal should look when fully and correctly edited. Signal Plot 5: After both the edited and reference files are loaded, this section displays a plot of the pulse train (PT) and discharges as denoted by the user in the edited file:
    - Vertical blue lines: represent the PT.
    - Colored circles: indicate discharge classification:
    - Green: True Positive discharges (discharges correctly identified during manual editing)
    - Orange: False Positive discharges (discharges that were added or kept incorrectly)
    - Red: False Negative discharges (discharges that were missed and should have been added)
    Below the plot, Sensitivity and Precision metrics are calculated and displayed based on these classifications.
Methods for processing the data:
All HDEMG signals underwent preprocessing and decomposition using the following methodology:
  1. Filtering: Signals were filtered with a 4th-order Butterworth bandpass filter, with a frequency range of 20-500 Hz.
  2. Decomposition: The signals were decomposed using the DEMUSE Tool software [1] with the following parameters:
    a. Decomposition Runs: 40 independent runs were performed.
    b. Extension Factor: values 25 and 40 were used (labeled as EF25 and EF40 in the file names).

Instrument- or software-specific information needed to interpret the data:
To run the Matlab code the Matlab software is required (https://www.mathworks.com). Alternatively, Matlab code can be run using the GNU Octave software which is an open source alternative to Matlab (https://octave.org/), however the included code was not verified to run correctly in Octave. For reading the MAT files we recommend the following options: - Matlab software (https://www.mathworks.com). - The GNU Octave software, an open source alternative to Matlab (https://octave.org/). - The Python library Scipy (https://docs.scipy.org/doc/scipy/reference/generated/scipy.io.loadmat.html). - The Matio project on SourceForge (https://sourceforge.net/projects/matio/). Motor unit discharge patterns were simulated by the motor unit recruitment and discharge modulation model from Fuglevand at el. [2] For decomposition of HDEMG signals we used the DEMUSE Tool software [1], version 6.3, University of Maribor, Slovenia, available at: https://demuse.feri.um.si/.

Quality-assurance procedures performed on the data:
The set of 6 HDEMG decomposition results was manually selected so that they represent the typical examples of automatic decomposition of synthetic HDEMG signals with the DEMUSE Tool software [1]. The accompanying reference decomposition results represent the ideal (ground truth) decomposition, which is known since the signals were simulated. The two Matlab scripts were extensively debugged and tested in order to ensure that they produce correct results when run on the supplied data files.
People involved with sample collection, processing, analysis and/or submission: Aleš Holobar generated the signals. Leon Kutoš implemented the script for evaluating the accuracy of decomposed HDEMG signals at the level of individual motor units. Nina Murks implemented the application for inspection and evaluation of the results of manual editing of decomposed HDEMG signals. Matjaž Divjak prepared and annotated the final dataset.

DATA-SPECIFIC INFORMATION FOR .MAT FILES WITH DECOMPOSED HDEMG SIGNALS:
Only a small subset of the following variables are needed for the analysis performed by the supplied Matlab scripts. The rest of the variables are created during the process of saving the decomposition results with the DEMUSE Tool software and are kept here for compatibility purposes.
Variable list:

  • AUXchannels: auxilary channel information, unused.
  • Cost: structure array. Contains 1 x L cells. Each cell contains result (double value) of the cost function used by DEMUSE tool to estimate the regularity of MU firing pattern (i.e. coefficient of variation of interfiring interval). L = number of detected motor units.
  • description: string. A short text description of the data.
  • discardChannelsVec: 2D array of integer values, with the same dimensions as the simulated EMG electrode grid: 12 rows x 5 columns or 13 rows x 5 columns. Contains value 1 if the related electrode channel was discarded from analysis, or value 0 otherwise.
  • DecompRuns: integer number. Number of DEMUSE Tool decomposition runs performed.
  • DecompStat: vector of integer values. Number of motor units identified in each decomposition run.
  • fsamp: integer number. Data sampling frequency in Hz.
  • IED: integer number. Interelectrode distance in mm.
  • IPTs: 2D array of double values with L rows x signal_length columns. Contains innervation pulse train (IPT) values as estimated by DEMUSE decomposition tool. L = number of detected motor units.
  • MUIDs: structure array. Contains 1 x L cells. Each cell contains a string with the motor unit label. L = number of detected motor units.
  • MUPulses: structure array. Contains 1 x L cells. Each cell contains a vector of detected motor unit dicharge instants (integer values), expressed as sample indices of the SIG vectors. L = number of detected motor units.
  • origRecMode: string. Label for the recording mode of the original EMG signals.
  • PNR: vector of double values with L elements. Contains calculated pulse-to-noise ratio for each detected motor unit. L = number of detected motor units.
  • ProcTime: vector of integer values. Processing time of each decomposition run, in seconds.
  • ref_signal: vector of double values with signal_length elements. Contains the exerted muscle force values used as a reference, expressed as percentage of the Maximum Voluntary Contraction.
  • signal_length: double number. The total length of the signals in samples.
  • startSIGInt: double number. Start time of the data interval used for decomposition, in seconds.
  • stopSIGInt: double number. End time of the data interval used for decomposition, in seconds.
  • SIG: structure array. Contains a copy of the input EMG signals. Dimensions are the same as the simulated EMG electrode grid: 12 rows x 5 columns or 13 rows x 5 columns. Each cell contains a 1 x signal_length vector of samples (double values) representing output EMG voltage.
  • SIGFileName: string. Name of the file containing the input EMG signals for decomposition.
  • SIGFilePath: string. Path of the file containing the input EMG signals for decomposition.
  • SIGlength: double number. The total length of the signals in seconds.

DATA-SPECIFIC INFORMATION FOR .MAT FILES WITH REFERENCE DECOMPOSITION (SUFFIX _ref):
Variable list:

  • fsamp: integer number. Data sampling frequency in Hz.
  • Force: double array, 1 x N in size. Contains simulated exerted force for each time instant, synchronized with the EMG data samples. N = total number of samples.
  • MUAPs: cell array. The input MUAP library. Contains L cells corresponding to L simulated motor units. Each cell contains up to 36 subcells that represent different fatigue / muscle shortening levels. Each of those subcells contains a cell matrix representing the simulated EMG electrode grid: 12 rows x 5 columns or 13 rows x 5 columns. Each of those cells contains a 1 x 51 double vector of MUAP samples.
  • sFirings: cell array. Contains L cells corresponding to L simulated motor units, each cell contains a 1 x M vector of motor unit discharge instants (integer values indicating sample indices). L = number of simulated motor units, M = number of motor unit discharges.
  • sFiringsShortID: cell array. Contains L cells corresponding to L simulated motor units, each cell contains a 1 x M vector of fatigure / muscle shortening levels (1 - 36) that were used for generating the MU discharge. M = number of motor unit discharges.
  • sig_out: cell matrix representing the output simulated EMG electrode grid: 12 rows x 5 columns or 13 rows x 5 columns. Each cell contains a 1 x N double vector of samples representing the EMG voltage. N = total number of samples.
  • Shortening: double array, 1 x N in size. Contains the target profile of muscle shortening / fatigue, ranging from 0% (MUAP level 1) to 100% (MUAP level 36). N = total number of samples.

REFERENCES:
[1] DEMUSE Tool software, version 6.3, University of Maribor, Slovenia, available at: https://demuse.feri.um.si/ .
[2] A. J. Fuglevand, D. A. Winter and A. E. Patla, "Models of recruitment and rate coding organization in motor-unit pools," Journal of neurophysiology, vol. 70, pp. 2470-2488, 1993.