Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[codespell]
skip = .git,env,venv,ds*,asl*,qmr*,genetics*,fnirs*,eeg*,meg*,pet*,ieeg*,motion*,synthetic*
skip = .git,env,venv,ds*,asl*,qmr*,genetics*,fnirs*,eeg*,meg*,pet*,ieeg*,motion*,synthetic*,emg*
builtin = clear,rare
ignore-words-list = nd,te
ignore-words-list = nd,te,FLE
12 changes: 7 additions & 5 deletions .github/workflows/validate_datasets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,17 +69,19 @@ jobs:
run: |
# If unmerged validator PRs are needed for testing, you can use
# https://github.com/<FORK>/bids-validator/raw/<BRANCH>/bids-validator/src/bids-validator.ts
deno install -Agf https://github.com/bids-standard/bids-validator/raw/deno-build/bids-validator.js
deno install -Agf https://github.com/bids-standard/bids-validator/raw/deno-build/bids-validator.js

- name: Install BIDS validator (dev)
if: matrix.bids-validator == 'dev'
run: |
git clone -b dev https://github.com/bids-standard/bids-validator/ ../bids-validator
cd ../bids-validator
git fetch origin refs/pull/268/head
git checkout FETCH_HEAD
deno compile -A -o $HOME/.deno/bin/bids-validator src/bids-validator.ts

- name: Install BIDS validator (legacy)
if: "matrix.bids-validator == 'legacy'"
if: matrix.bids-validator == 'legacy'
run: |
npm install -g bids-validator

Expand All @@ -93,7 +95,7 @@ jobs:
echo "bids-validator"; bids-validator --version

- name: Check that no large files are present
if: "matrix.bids-validator == 'stable'"
if: matrix.bids-validator == 'stable'
run: |
echo "Checking for big files ..."
found=`find . -not -path "./.git*" -type f -size +500k`
Expand All @@ -119,7 +121,7 @@ jobs:
- name: Skip main validation for datasets with unreleased spec features
# Replace ${EMPTY} with dataset patterns, when this is needed
# Reset to "for DS in ${EMPTY}; ..." after a spec release
run: for DS in dwi_deriv pheno004; do touch $DS/.SKIP_VALIDATION; done
run: for DS in emg_*; do touch $DS/.SKIP_VALIDATION; done
if: matrix.bids-validator != 'dev'

- name: Set BIDS_SCHEMA variable for dev version
Expand All @@ -128,7 +130,7 @@ jobs:
# Update this URL to the schema.json from PRs to the spec, when needed.
# If this variable is unset, dev will generally track the latest development
# release of https://jsr.io/@bids/schema
run: echo BIDS_SCHEMA=https://bids-specification.readthedocs.io/en/latest/schema.json >> $GITHUB_ENV
run: echo BIDS_SCHEMA=https://bids-specification--1998.org.readthedocs.build/en/1998/schema.json >> $GITHUB_ENV

- name: Validate all BIDS datasets using bids-validator
run: |
Expand Down
19 changes: 18 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,23 @@ DO NOT EDIT DIRECTLY.
| [eeg_matchingpennies](https://github.com/bids-standard/bids-examples/tree/master/eeg_matchingpennies) | Offline data of BCI experiment decoding left vs. right hand movement. BrainVision data format (.eeg, .vhdr, .vmrk) | eeg | channels, eeg, events | [link](https://doi.org/10.17605/OSF.IO/CJ2DR) | [@sappelhoff](https://github.com/sappelhoff) |
| [eeg_rishikesh](https://github.com/bids-standard/bids-examples/tree/master/eeg_rishikesh) | Mind wandering experiment. EEG data in Biosemi (.bdf) format | eeg | channels, eeg, events | [link](https://openneuro.org/datasets/ds001787) | [@arnodelorme](https://github.com/arnodelorme) |

### EMG

<!--
TABLE BELOW IS GENERATED AUTOMATICALLY.
DO NOT EDIT DIRECTLY.
-->

| name | description | datatypes | suffixes | link to full data | maintained by |
|:--------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------|:------------|:------------------------------------------------------------------|:------------------|:-------------------------------------|
| [emg_ConcurrentIndependentUnits](https://github.com/bids-standard/bids-examples/tree/master/emg_ConcurrentIndependentUnits) | Concurrent EMG recording with multiple independent recording units at different sampling rates | emg | channels, electrodes, coordsystem, emg, events | n/a | [@neuromechanist](https://github.com/neuromechanist) |
| [emg_CustomBipolar](https://github.com/bids-standard/bids-examples/tree/master/emg_CustomBipolar) | Custom-made bipolar EMG recording setup with electrodes on flexors of the lower arm | emg | channels, emg | n/a | [@neuromechanist](https://github.com/neuromechanist) |
| [emg_CustomBipolarFace](https://github.com/bids-standard/bids-examples/tree/master/emg_CustomBipolarFace) | EMG recording from facial muscles with many-to-many mapping between sensors and muscles | emg | channels, coordsystem, electrodes, emg, events | n/a | [@neuromechanist](https://github.com/neuromechanist) |
| [emg_IndependentMod](https://github.com/bids-standard/bids-examples/tree/master/emg_IndependentMod) | Commercial bipolar EMG modules recording multiple muscles with wireless sensors | emg | channels, emg | n/a | [@neuromechanist](https://github.com/neuromechanist) |
| [emg_MultiBodyParts](https://github.com/bids-standard/bids-examples/tree/master/emg_MultiBodyParts) | EMG recording from multiple body parts with different electrode types | emg | channels, electrodes, coordsystem, emg | n/a | [@neuromechanist](https://github.com/neuromechanist) |
| [emg_TwoHDsEMG](https://github.com/bids-standard/bids-examples/tree/master/emg_TwoHDsEMG) | High-density EMG grid recordings from two body parts demonstrating grid placement documentation | emg | channels, electrodes, coordsystem, emg | n/a | [@neuromechanist](https://github.com/neuromechanist) |
| [emg_TwoWristbands](https://github.com/bids-standard/bids-examples/tree/master/emg_TwoWristbands) | EMG recordings using two wristbands with dry electrodes to capture forearm muscle activity | emg | channels, electrodes, coordsystem, emg | n/a | [@neuromechanist](https://github.com/neuromechanist) |

### DWI

<!--
Expand Down Expand Up @@ -220,7 +237,7 @@ DO NOT EDIT DIRECTLY.
| name | description | datatypes | suffixes | link to full data | maintained by |
|:--------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------|:--------------------------------|:---------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------|:-------------------------------------------|
| [ds000117](https://github.com/bids-standard/bids-examples/tree/master/ds000117) | A multi-subject, multi-modal human neuroimaging dataset of 19 subjects on a MEG visual task | anat, beh, dwi, fmap, func, meg | FLASH, T1w, bold, channels, coordsystem, dwi, events, headshape, magnitude1, magnitude2, meg, phasediff, scans | [link](https://openneuro.org/datasets/ds000117/) | [@RikHenson](https://github.com/RikHenson) |
| [ds000246](https://github.com/bids-standard/bids-examples/tree/master/ds000246) | Auditory dataset used for Brainstorms general online tutorial | anat, meg | T1w, channels, coordsystem, headshape, meg, photo, scans | [link](https://openneuro.org/datasets/ds000246/versions/00001) | [@guiomar](https://github.com/guiomar) |
| [ds000246](https://github.com/bids-standard/bids-examples/tree/master/ds000246) | Auditory dataset used for Brainstorm's general online tutorial | anat, meg | T1w, channels, coordsystem, headshape, meg, photo, scans | [link](https://openneuro.org/datasets/ds000246/versions/00001) | [@guiomar](https://github.com/guiomar) |
| [ds000247](https://github.com/bids-standard/bids-examples/tree/master/ds000247) | Five minutes, eyes-open, resting-state MEG data from 5 subjects. This is a sample from The Open MEG Archive (OMEGA). | anat, meg | T1w, channels, coordsystem, headshape, meg, scans | [link](https://openneuro.org/datasets/ds000247/versions/00001) | [@guiomar](https://github.com/guiomar) |
| [ds000248](https://github.com/bids-standard/bids-examples/tree/master/ds000248) | MNE sample data: Data with visual and auditory stimuli | anat, meg | FLASH, T1w, channels, coordsystem, events, meg, scans | [link](https://openneuro.org/datasets/ds000248/versions/00001) | [@agramfort](https://github.com/agramfort) |

Expand Down
7 changes: 7 additions & 0 deletions dataset_listing.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,11 @@ mrs_fmrs Functional MRS data involving a pain stimulus task from 15 subjects [li
xeeg_hed_score EEG and iEEG data with annotations of artifacts, seizures and modulators using HED-SCORE [@dorahermes](https://github.com/dorahermes) anat, eeg, ieeg T1w, channels, coordsystem, eeg, electrodes, events, ieeg
dwi_deriv exemplifies the storage of diffusion MRI derivates that may be generated on the Siemens XA platform. dwi dwi
pheno004 Minimal dataset with subjects with imaging and/or phenotype data [@ericearl](https://github.com/ericearl) phenotype, anat T1w
emg_ConcurrentIndependentUnits Concurrent EMG recording with multiple independent recording units at different sampling rates n/a [@neuromechanist](https://github.com/neuromechanist) emg channels, electrodes, coordsystem, emg, events
emg_CustomBipolar Custom-made bipolar EMG recording setup with electrodes on flexors of the lower arm n/a [@neuromechanist](https://github.com/neuromechanist) emg channels, emg
emg_CustomBipolarFace EMG recording from facial muscles with many-to-many mapping between sensors and muscles n/a [@neuromechanist](https://github.com/neuromechanist) emg channels, electrodes, coordsystem, emg
emg_IndependentMod Commercial bipolar EMG modules recording multiple muscles with wireless sensors n/a [@neuromechanist](https://github.com/neuromechanist) emg channels, electrodes, coordsystem, emg
emg_MultiBodyParts EMG recording from multiple body parts with different electrode types n/a [@neuromechanist](https://github.com/neuromechanist) emg channels, electrodes, coordsystem, emg
emg_TwoHDsEMG High-density EMG grid recordings from two body parts demonstrating grid placement documentation n/a [@neuromechanist](https://github.com/neuromechanist) emg channels, electrodes, coordsystem, emg
emg_TwoWristbands EMG recordings using two wristbands with dry electrodes to capture forearm muscle activity n/a [@neuromechanist](https://github.com/neuromechanist) emg channels, electrodes, coordsystem, emg
mri_chunk Example MRI dataset to illustrate BIDS chunk entity. A single subject, two chunks. [@valosekj](https://github.com/valosekj) anat T1w
30 changes: 30 additions & 0 deletions emg_CustomBipolar/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# EMG Custom Bipolar Example

This dataset demonstrates documentation of a custom-made bipolar EMG system recording:
- Single channel bipolar montage
- Precise electrode placement using anatomical landmarks
- Inter-electrode distance specifications

## Dataset Structure

The dataset includes a single subject with a custom bipolar EMG setup:

```
emg_CustomBipolar/
├── dataset_description.json
├── participants.json
├── participants.tsv
├── README.md
└── sub-01/
└── emg/
├── sub-01_task-holdWeight_channels.tsv
├── sub-01_task-holdWeight_emg.edf
└── sub-01_task-holdWeight_emg.json
```

## Recording Details

- **Electrode Setup**: Custom bipolar EMG recording from flexors of the lower arm
- **Task**: Holding a weight to activate forearm flexors
- **Electrode Placement**: Precise positioning using anatomical landmarks
- **Inter-electrode Distance**: 2 cm between recording electrodes
17 changes: 17 additions & 0 deletions emg_CustomBipolar/dataset_description.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"Name": "EMG Custom Bipolar Example",
"License": "BSD 3-Clause",
"Authors": ["BEP042", "Contributors"],
"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",
"SourceDatasets": [{"URL": "n/a"}],
"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"
}]
}
21 changes: 21 additions & 0 deletions emg_CustomBipolar/participants.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"age": {
"Description": "Age in years",
"Units": "years"
},
"sex": {
"Description": "self-reported sex, one of M, F, or O",
"Levels": {
"M": "male",
"F": "female",
"O": "other"
}
},
"group": {
"Description": "Experimental group the participant belonged to",
"Levels": {
"control": "Control group",
"experiment": "Experimental group"
}
}
}
2 changes: 2 additions & 0 deletions emg_CustomBipolar/participants.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
participant_id age sex group
sub-01 24 F control
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
name type units target_muscle
EMG1 EMG V Flexor carpi radialis, Pronator teres, Brachioradialis
Binary file not shown.
16 changes: 16 additions & 0 deletions emg_CustomBipolar/sub-01/emg/sub-01_task-holdWeight_emg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"EMGChannelCount":1,
"EMGPlacementScheme":"Other",
"EMGPlacementSchemeDescription":"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",
"Manufacturer":"Custom",
"ManufacturersModelName":"Raspberry Pi",
"RecordingDuration":1.00,
"RecordingType":"continuous",
"SamplingFrequency":2000,
"TaskDescription":"The subject was holding an object with different weights for 5 seconds.",
"TaskName":"holdWeight",
"PowerLineFrequency":60,
"SoftwareFilters":"n/a"
}
32 changes: 32 additions & 0 deletions emg_CustomBipolarFace/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# EMG Custom Bipolar Face Example

This dataset illustrates recording from facial muscles with:
- One-to-many mapping between sensors and muscles
- Functional localization for electrode placement
- Recording from muscles without bony landmarks

## Dataset Structure

The dataset includes a single subject with custom bipolar EMG setup for facial muscles:

```shell
emg_CustomBipolarFace/
├── dataset_description.json
├── participants.json
├── participants.tsv
├── README.md
└── sub-01/
└── emg/
├── sub-01_task-talking_channels.tsv
├── sub-01_task-talking_electrodes.json
├── sub-01_task-talking_electrodes.tsv
├── sub-01_task-talking_emg.edf
└── sub-01_task-talking_emg.json
```

## Recording Details

- **Electrode Setup**: Custom bipolar EMG recordings from facial muscles
- **Task**: Talking task with facial expressions
- **Challenges**: Documentation of electrode placement on non-bony landmarks
- **Muscles Recorded**: Multiple facial muscles (zygomaticus, frontalis, orbicularis oris)
17 changes: 17 additions & 0 deletions emg_CustomBipolarFace/dataset_description.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"Name": "EMG Custom Bipolar Face Example",
"License": "BSD 3-Clause",
"Authors": ["BEP042", "Contributors"],
"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",
"SourceDatasets": [{"URL": "n/a"}],
"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"
}]
}
21 changes: 21 additions & 0 deletions emg_CustomBipolarFace/participants.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"age": {
"Description": "Age in years",
"Units": "years"
},
"sex": {
"Description": "self-reported sex, one of M, F, or O",
"Levels": {
"M": "male",
"F": "female",
"O": "other"
}
},
"group": {
"Description": "Experimental group the participant belonged to",
"Levels": {
"control": "Control group",
"experiment": "Experimental group"
}
}
}
2 changes: 2 additions & 0 deletions emg_CustomBipolarFace/participants.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
participant_id age sex group
sub-01 27 F control
5 changes: 5 additions & 0 deletions emg_CustomBipolarFace/sub-01/emg/sub-01_coordsystem.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"EMGCoordinateSystem": "Other",
"EMGCoordinateUnits": "percent",
"EMGCoordinateSystemDescription": "x: left helix-tragus junction (LHJ) → right helix-tragus junction (RHJ); y: inion → nasion; z: midpoint between mastoid processes → vertex"
}
13 changes: 13 additions & 0 deletions emg_CustomBipolarFace/sub-01/emg/sub-01_electrodes.tsv
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,7 @@
name type units signal_electrode reference target_muscle
EMG1 EMG V E1 E2 tongue, anterior belly of the digastric
EMG2 EMG V E3 E4 levator angulis oris, zygomaticus major
EMG3 EMG V E5 E6 levator angulis oris, zygomaticus major
EMG4 EMG V E7 E8 platysma
EMG5 EMG V E9 E10 orbicularis oris
EMG6 EMG V E11 E12 tongue
Binary file not shown.
16 changes: 16 additions & 0 deletions emg_CustomBipolarFace/sub-01/emg/sub-01_task-talking_emg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"EMGChannelCount":6,
"EMGPlacementScheme":"Other",
"EMGPlacementSchemeDescription":"Electrodes placed over articulatory muscles on the lower face.",
"EMGReference":"Behind the ear (Mastoid)",
"EMGGround":"n/a",
"Manufacturer":"Custom",
"ManufacturersModelName":"n/a",
"RecordingDuration":1.00,
"RecordingType":"continuous",
"SamplingFrequency":2000,
"TaskDescription":"Subject performed speech tasks.",
"TaskName":"talking",
"PowerLineFrequency":60,
"SoftwareFilters":"n/a"
}
13 changes: 13 additions & 0 deletions emg_CustomBipolarFace/sub-01/emg/sub-01_task-talking_events.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"trial_type": {
"LongName": "Event category",
"Description": "Type of stimulus",
"Levels": {
"foo": "Foo stimulus was present",
"bar": "Bar stimulus was present"
}
},
"StimulusPresentation": {
"Code": "https://github.com/LABSN/expyfun/tree/58634c159404ea64e1d89c0b4e70bd13c2b77723"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
onset duration trial_type
0.0 0 foo
Loading