Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] BEP042 - Emg examples #480

Draft
wants to merge 27 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
229f836
Add the dataset structure for EMG-BIDS examples
neuromechanist Jan 28, 2025
d5d8183
remove non-ASCII chars
neuromechanist Jan 28, 2025
bd6f081
Add example1 details
neuromechanist Jan 28, 2025
0d5657c
add example 2 details
neuromechanist Jan 29, 2025
334c956
add placement notes for each channel
neuromechanist Jan 29, 2025
0c91aae
Add example 3 details
neuromechanist Jan 29, 2025
abcda58
minor correction
neuromechanist Jan 29, 2025
133b6fd
Add sample 5
neuromechanist Jan 29, 2025
171252e
update readme
neuromechanist Jan 29, 2025
896ae02
Update sub-s3CustomBipolarFace_task-talking_channels.tsv
neuromechanist Jan 29, 2025
8d71ca6
Update sub-s5TwoHDsEMG_task-isometric_channels.tsv
neuromechanist Jan 29, 2025
6969f67
Update sub-s5TwoHDsEMG_task-isometric_channels.tsv
neuromechanist Jan 29, 2025
fe04f07
Update sub-s5TwoHDsEMG_task-isometric_electrodes.tsv
neuromechanist Jan 29, 2025
5c2d2ef
Update sub-s5TwoHDsEMG_task-isometric_electrodes.json
neuromechanist Jan 29, 2025
698941d
Update sub-s5TwoHDsEMG_task-isometric_electrodes.tsv
neuromechanist Jan 29, 2025
e9908e3
Update sub-s5TwoHDsEMG_task-isometric_electrodes.json
neuromechanist Jan 29, 2025
ff94847
Update sub-s5TwoHDsEMG_task-isometric_electrodes.json
neuromechanist Jan 29, 2025
0043b5e
Update sub-s5TwoHDsEMG_task-isometric_electrodes.json
neuromechanist Jan 29, 2025
924ae36
Reconcile example 5
neuromechanist Jan 29, 2025
b9b4174
Reconcile example 3
neuromechanist Jan 30, 2025
e4c86c6
Reconcile example 2
neuromechanist Jan 30, 2025
16e8ca0
Add example 6
neuromechanist Jan 30, 2025
892c073
Correct prev examples
neuromechanist Jan 30, 2025
7d181b3
Add example8 highdensity
neuromechanist Jan 30, 2025
eb58747
Add example8 bipolar and minor correction
neuromechanist Jan 30, 2025
55f2fe3
Add example 9
neuromechanist Jan 30, 2025
79a3133
minor corrections
neuromechanist Jan 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions emg_examples/.bidsignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Ignore any markdown file in the root directory, they include the source specifications
*.md
565 changes: 565 additions & 0 deletions emg_examples/Fields necessary to describe EMG-BIDS recordings.md

Large diffs are not rendered by default.

73 changes: 73 additions & 0 deletions emg_examples/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# EMG BIDS Examples Dataset

This dataset contains examples of different EMG recording setups to demonstrate various ways of documenting EMG data according to the BIDS specification. Each example includes metadata files in BIDS format describing the recording setup, electrode placement, and other relevant information. The examples follow a discussion of the [EMG metadata fields](https://docs.google.com/document/d/1s4SbStsm2VXqFbHEVF6Og7BCtjsRUDhzcZj9LO07r6Q) during the development of the BIDS-EMG extension. Each subject represents a different EMG recording configuration, showcasing different aspects of EMG metadata documentation.

## Dataset Structure

The dataset includes 6 example subjects showing different EMG recording configurations:

```shell
.
├── dataset_description.json
├── participants.json
├── participants.tsv
├── sub-s1CustomBipolar/
├── sub-s2IndependentMod/
├── sub-s3CustomBipolarFace/
├── sub-s5TwoHDsEMG/
├── sub-s6MutliBodyParts/
└── sub-s8concurrentIndepndentUnits/
```

## Example Descriptions

### sub-s1CustomBipolar
Demonstrates documentation of a custom-made bipolar EMG system recording from flexors of the lower arm. Shows how to document:
- Single channel bipolar montage
- Precise electrode placement using anatomical landmarks
- Inter-electrode distance specifications

### sub-s2IndependentMod
Shows documentation for commercial bipolar EMG modules recording from multiple muscles. Highlights:
- Multiple independent bipolar channels
- Wireless sensors
- Documentation of multiple target muscles

### sub-s3CustomBipolarFace
Illustrates recording from facial muscles with:
- Many-to-many mapping between sensors and muscles
- Functional localization for electrode placement
- Recording from muscles without bony landmarks

### sub-s5TwoHDsEMG
Demonstrates high-density EMG grid recordings from two body parts:
- Multiple HD-EMG grids
- Grid placement documentation
- Channel grouping specifications

### sub-s6MutliBodyParts
Shows recording from multiple body parts with:
- Different types of electrodes
- Multiple amplifier configurations
- Complex electrode placement schemes

### sub-s8concurrentIndepndentUnits
Illustrates concurrent recording with:
- Multiple independent recording units
- Different sampling rates
- Synchronization between units

## Purpose

This dataset serves as a reference implementation showing how different EMG recording setups can be documented in BIDS format. Each example demonstrates specific aspects of EMG metadata documentation including:

- Electrode placement methods
- Montage types
- Channel configurations
- Target muscle documentation
- Recording system specifications
- Spatial relationships between electrodes

## Usage

These examples can be used as templates when converting EMG data to BIDS format. The metadata fields and documentation approaches shown here cover common EMG recording scenarios.
16 changes: 16 additions & 0 deletions emg_examples/dataset_description.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"Name": "Sample EMG dataset",
"License": "BSD 3-Clause",
"Authors": ["BEP042 Team"],
"ReferencesAndLinks": ["https://github.com/bids-standard/bids-specification/issues/1371",
"https://github.com/bids-standard/bids-specification/pull/1998"],
"EthicsApprovals": ["Datasets are de-identified hypotheticals and do not require ethics approval."],
"BIDSVersion": "1.10.0",
"HEDVersion": "8.3.0",
"DatasetType": "raw",
"Acknowledgements": "We thank the participants and their families for their time and effort. We also thank the NeuroScience Gateway team for providing computational resources.",
"GeneratedBy":[ {
"Name": "bids-matlab-tools",
"Version": "9.1"
}]
}
17 changes: 17 additions & 0 deletions emg_examples/participants.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"participant_id": {
"Description": "The prticipant name corresponding to the examples in the metadata discussion"
},
"sex": {
"LongName": "Gender",
"Description": "Gender",
"Levels": {
"F": "Female",
"M": "Male"
}
},
"age": {
"LongName": "Age",
"Description": "Age in years"
}
}
8 changes: 8 additions & 0 deletions emg_examples/participants.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
participant_id age sex
sub-s1CustomBipolar 25 M
sub-s2IndependentMod 30 F
sub-s3CustomBipolarFace 35 M
sub-s5TwoHDsEMG 40 F
sub-s6MutliBodyParts 45 M
sub-s8concurrentIndepndentUnits 50 F
sub-s9TwoWristbands 55 M
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
name type units reference interelectrode_distance target_muscle
EMG1 emg V bipolar 20 mm Flexor carpi radialis, Pronator teres, Brachioradialis
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"EMGChannelCount":1,
"EMGPlacementScheme":"Center of electrode pair placed at 50% on the line between the posterior crista of the acromion and the olecranon, 2 finger widths lateral.",
"EMGReference":"bipolar",
"EMGGround":"Medial bony landmark of the elbow",
"EMGElectrodeCount":3,
"ElectrodeMaterial":"Ag/AgCl",
"Manufacturer":"Custom",
"ManufacturersModelName":"Raspberry Pi",
"AmpifierType":"Wired",
"RecordingDuration":1.00,
"SamplingFrequency":2000,
"TaskDescription":"The subject was holding an object with differnt weights for 5 seconds.",
"TaskName":"holdWeight",
"TriggerChannelCount":0
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name type units target_muscle interelectrode_distance placement
EMG1 emg V Flexor carpi radialis 20 mm near the elbow crease on the inner forearm
EMG2 emg V Extensor radialis brevis 20 mm dorsal side of the forearm, about halfway between the elbow and the wrist
EMG3 emg V Brachioradialis 20 mm upper forearm, about one-third of the way down from the elbow, on the lateral side
EMG4 emg V Flexor digitorum superficialis 20 mm Locate the midpoint of the inner forearm
EMG5 emg V Flexor carpi ulnaris 20 mm above the wrist on the inner forearm
EMG6 emg V Abductor pollicis brevis 20 mm Over the fleshy area at the base of the thumb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"EMGChannelCount":6,
"EMGPlacementScheme":"Electrodes placed on lower arm and hand muscles; see channels.tsv for details.",
"EMGReference":"bipolar",
"EMGGround":"n/a",
"EMGElectrodeCount":12,
"ElectrodeMaterial":"Ag/AgCl",
"Manufacturer":"Cometa",
"ManufacturersModelName":"MiniX",
"AmpifierType":"Wireless",
"RecordingDuration":1.00,
"SamplingFrequency":2000,
"HardwareFilters":"loawpass at 500 Hz",
"TaskDescription":"Subject reaches out to grasp an object with different weights for 5 seconds.",
"TaskName":"grasping",
"TriggerChannelCount":0
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name type units reference target_muscle interelectrode_distance signal_electrode
EMG1 emg V E2 tongue, anterior belly of the digastric n/a E1
EMG2 emg V E4 levator angulis oris, zygomaticus major 20 mm E3
EMG3 emg V E6 levator angulis oris, zygomaticus major n/a E5
EMG4 emg V E8 platysma n/a E7
EMG5 emg V E10 orbicularis oris n/a E9
EMG6 emg V E12 tongue 20 mm E11
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"Coordsystem": {
"EMGCoordinateUnits": "percent",
"EMGCoordinateSystemDescription": "X: LHJ → RHJ; Y: Inion → Nasion; Z: MMP → Vertex; Left Helix-Tragus Junction; (LHJ) Right Helix-Tragus Junction(RHJ); Vertex Midpoint between Mastoid processs(MMP)"

Check failure on line 4 in emg_examples/sub-s3CustomBipolarFace/emg/sub-s3CustomBipolarFace_task-talking_electrodes.json

View workflow job for this annotation

GitHub Actions / codespell

processs ==> process, processes
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name x y z
E1 20 80 0
E2 40 100 50
E3 10 90 40
E4 20 90 40
E5 70 90 40
E6 0 50 30
E7 80 90 30
E8 100 50 30
E9 50 100 20
E10 100 50 30
E11 60 60 -10
E12 70 60 -10
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"EMGChannelCount":6,
"EMGPlacementScheme":"Electrodes placed over articulatory muscles on the lower face.",
"EMGReference":"Behind the ear (Mastoid)",
"EMGGround":"n/a",
"EMGElectrodeCount":13,
"ElectrodeMaterial":"Ag/AgCl",
"Manufacturer":"Custom",
"ManufacturersModelName":"n/a",
"AmpifierType":"Wired",
"RecordingDuration":1.00,
"SamplingFrequency":2000,
"TaskDescription":"Subject perofrmed speech tasks.",
"TaskName":"talking",
"TriggerChannelCount":0
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
name type units reference target_muscle group signal_electrode
EMG1 emg V R1 forearm flexors Grid1 E1
EMG2 emg V R1 forearm flexors Grid1 E2
EMG3 emg V R1 forearm flexors Grid1 E3
EMG4 emg V R1 forearm flexors Grid1 E4
EMG5 emg V R1 forearm flexors Grid1 E5
EMG6 emg V R1 forearm flexors Grid1 E6
EMG7 emg V R1 forearm flexors Grid1 E7
EMG8 emg V R1 forearm flexors Grid1 E8
EMG9 emg V R1 forearm flexors Grid1 E9
EMG10 emg V R1 forearm flexors Grid1 E10
EMG11 emg V R1 forearm flexors Grid1 E11
EMG12 emg V R1 forearm flexors Grid1 E12
EMG13 emg V R1 forearm flexors Grid1 E13
EMG14 emg V R1 forearm flexors Grid1 E14
EMG15 emg V R1 forearm flexors Grid1 E15
EMG16 emg V R1 forearm flexors Grid1 E16
EMG17 emg V R1 forearm flexors Grid1 E17
EMG18 emg V R1 forearm flexors Grid1 E18
EMG19 emg V R1 forearm flexors Grid1 E19
EMG20 emg V R1 forearm flexors Grid1 E20
EMG21 emg V R1 forearm flexors Grid1 E21
EMG22 emg V R1 forearm flexors Grid1 E22
EMG23 emg V R1 forearm flexors Grid1 E23
EMG24 emg V R1 forearm flexors Grid1 E24
EMG25 emg V R1 forearm flexors Grid1 E25
EMG26 emg V R1 forearm flexors Grid1 E26
EMG27 emg V R1 forearm flexors Grid1 E27
EMG28 emg V R1 forearm flexors Grid1 E28
EMG29 emg V R1 forearm flexors Grid1 E29
EMG30 emg V R1 forearm flexors Grid1 E30
EMG31 emg V R1 forearm flexors Grid1 E31
EMG32 emg V R1 forearm flexors Grid1 E32
EMG33 emg V R1 forearm flexors Grid1 E33
EMG34 emg V R1 forearm flexors Grid1 E34
EMG35 emg V R1 forearm flexors Grid1 E35
EMG36 emg V R1 forearm flexors Grid1 E36
EMG37 emg V R1 forearm flexors Grid1 E37
EMG38 emg V R1 forearm flexors Grid1 E38
EMG39 emg V R1 forearm flexors Grid1 E39
EMG40 emg V R1 forearm flexors Grid1 E40
EMG41 emg V R1 forearm flexors Grid1 E41
EMG42 emg V R1 forearm flexors Grid1 E42
EMG43 emg V R1 forearm flexors Grid1 E43
EMG44 emg V R1 forearm flexors Grid1 E44
EMG45 emg V R1 forearm flexors Grid1 E45
EMG46 emg V R1 forearm flexors Grid1 E46
EMG47 emg V R1 forearm flexors Grid1 E47
EMG48 emg V R1 forearm flexors Grid1 E48
EMG49 emg V R1 forearm flexors Grid1 E49
EMG50 emg V R1 forearm flexors Grid1 E50
EMG51 emg V R1 forearm flexors Grid1 E51
EMG52 emg V R1 forearm flexors Grid1 E52
EMG53 emg V R1 forearm flexors Grid1 E53
EMG54 emg V R1 forearm flexors Grid1 E54
EMG55 emg V R1 forearm flexors Grid1 E55
EMG56 emg V R1 forearm flexors Grid1 E56
EMG57 emg V R1 forearm flexors Grid1 E57
EMG58 emg V R1 forearm flexors Grid1 E58
EMG59 emg V R1 forearm flexors Grid1 E59
EMG60 emg V R1 forearm flexors Grid1 E60
EMG61 emg V R1 forearm flexors Grid1 E61
EMG62 emg V R1 forearm flexors Grid1 E62
EMG63 emg V R1 forearm flexors Grid1 E63
EMG64 emg V R1 forearm flexors Grid1 E64
EMG65 emg V R2 forearm extensors Grid2 E65
EMG66 emg V R2 forearm extensors Grid2 E66
EMG67 emg V R2 forearm extensors Grid2 E67
EMG68 emg V R2 forearm extensors Grid2 E68
EMG69 emg V R2 forearm extensors Grid2 E69
EMG70 emg V R2 forearm extensors Grid2 E70
EMG71 emg V R2 forearm extensors Grid2 E71
EMG72 emg V R2 forearm extensors Grid2 E72
EMG73 emg V R2 forearm extensors Grid2 E73
EMG74 emg V R2 forearm extensors Grid2 E74
EMG75 emg V R2 forearm extensors Grid2 E75
EMG76 emg V R2 forearm extensors Grid2 E76
EMG77 emg V R2 forearm extensors Grid2 E77
EMG78 emg V R2 forearm extensors Grid2 E78
EMG79 emg V R2 forearm extensors Grid2 E79
EMG80 emg V R2 forearm extensors Grid2 E80
EMG81 emg V R2 forearm extensors Grid2 E81
EMG82 emg V R2 forearm extensors Grid2 E82
EMG83 emg V R2 forearm extensors Grid2 E83
EMG84 emg V R2 forearm extensors Grid2 E84
EMG85 emg V R2 forearm extensors Grid2 E85
EMG86 emg V R2 forearm extensors Grid2 E86
EMG87 emg V R2 forearm extensors Grid2 E87
EMG88 emg V R2 forearm extensors Grid2 E88
EMG89 emg V R2 forearm extensors Grid2 E89
EMG90 emg V R2 forearm extensors Grid2 E90
EMG91 emg V R2 forearm extensors Grid2 E91
EMG92 emg V R2 forearm extensors Grid2 E92
EMG93 emg V R2 forearm extensors Grid2 E93
EMG94 emg V R2 forearm extensors Grid2 E94
EMG95 emg V R2 forearm extensors Grid2 E95
EMG96 emg V R2 forearm extensors Grid2 E96
EMG97 emg V R2 forearm extensors Grid2 E97
EMG98 emg V R2 forearm extensors Grid2 E98
EMG99 emg V R2 forearm extensors Grid2 E99
EMG100 emg V R2 forearm extensors Grid2 E100
EMG101 emg V R2 forearm extensors Grid2 E101
EMG102 emg V R2 forearm extensors Grid2 E102
EMG103 emg V R2 forearm extensors Grid2 E103
EMG104 emg V R2 forearm extensors Grid2 E104
EMG105 emg V R2 forearm extensors Grid2 E105
EMG106 emg V R2 forearm extensors Grid2 E106
EMG107 emg V R2 forearm extensors Grid2 E107
EMG108 emg V R2 forearm extensors Grid2 E108
EMG109 emg V R2 forearm extensors Grid2 E109
EMG110 emg V R2 forearm extensors Grid2 E110
EMG111 emg V R2 forearm extensors Grid2 E111
EMG112 emg V R2 forearm extensors Grid2 E112
EMG113 emg V R2 forearm extensors Grid2 E113
EMG114 emg V R2 forearm extensors Grid2 E114
EMG115 emg V R2 forearm extensors Grid2 E115
EMG116 emg V R2 forearm extensors Grid2 E116
EMG117 emg V R2 forearm extensors Grid2 E117
EMG118 emg V R2 forearm extensors Grid2 E118
EMG119 emg V R2 forearm extensors Grid2 E119
EMG120 emg V R2 forearm extensors Grid2 E120
EMG121 emg V R2 forearm extensors Grid2 E121
EMG122 emg V R2 forearm extensors Grid2 E122
EMG123 emg V R2 forearm extensors Grid2 E123
EMG124 emg V R2 forearm extensors Grid2 E124
EMG125 emg V R2 forearm extensors Grid2 E125
EMG126 emg V R2 forearm extensors Grid2 E126
EMG127 emg V R2 forearm extensors Grid2 E127
EMG128 emg V R2 forearm extensors Grid2 E128
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"Coordsystem": {
"forearm-coordsystem":{
"EMGCoordinateUnits": "percent",
"EMGCoordinateSystemDescription": "X: RSP → USP; Y: Right-hand rule (limits: Olecranon Process → Cubital Fossa); Z: midpoint RSP-USP → LHE; Radial Styloid Process (RSP); Ulnar Styloid Process (USP), Lateral Humerus Epicondyle (LHE), Posterior Elbow (Olecranon Process)"
},
"grid1-coordsystem":{
"EMGCoordinateUnits": "mm",
"EMGCoordinateSystemDescription": "The location of the electgrodes with respect to electrode one (1) is given in millimeters. The x-axis is left to right, the y-axis is bottom to top. note: the z-axis is not used.",
"EMGCoordSysAnchor":{
"System": "forearm-coordsystem",
"AnchorElectrode": "E1",
"AnchorCoordinate": [10,80,80]
}
},
"grid2-coordsystem":{
"EMGCoordinateUnits": "mm",
"EMGCoordinateSystemDescription": "The location of the electgrodes with respect to electrode one (1) is given in millimeters. The x-axis is left to right, the y-axis is bottom to top. note: the z-axis is not used.",
"EMGCoordSysAnchor":{
"System": "forearm-coordsystem",
"AnchorElectrode": "E65",
"AnchorCoordinate": [10,0,80]
}
}
}
}
Loading
Loading