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

Example of the HED schema library for SCORE implementation #324

Open
wants to merge 21 commits into
base: master
Choose a base branch
from
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
31 changes: 31 additions & 0 deletions xeeg_hed_score/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# HED schema library for SCORE annotations example

In this work, we developed a HED schema library for the Standardized Computer-based Organized Reporting of EEG (SCORE). Our SCORE implementation in HED tackles the lack of SCORE machine readability and makes it available and machine-readable by open-source software.

This work is related to the (in prep) manuscript:
Tal Pal Attia et al., (in prep). "Hierarchical Event Descriptor library schema for clinical EEG data annotation".

# General information
This BIDS project provides examples of the HED SCORE implementation in several EEG and invasive EEG datasets. We included 3 subjects that have:
- Examples of Modulators.
- Examples of Seizures.
- Examples of Artifacts.
Source data are described below.

## SCORE implementation procedure
There are two ways to annotate HED in BIDS: by defining an HED column in the _events.tsv or with accompanying _events.json sidecar that lists the HED tags. We provide examples of both.
- When annotations are specific to a particular channel, the relevant channel was annotated by including a channel column in the events.tsv file.

# Source data
- sub-ieegModulator Collected at Mayo Clinic Rochester, MN
- sub-eegSeizureTUH The TUH EEG Seizure Corpus. Database: TUH EEG Seizure Corpus (TUSZ), Version: 1.5.3, Patient: 258, Session: s003 (../tuh_eeg_seizure/v1.5.3/edf/dev/01_tcp_ar/002/00000258/s003_2003_07_22)
- sub-eegArtifactTUH The TUH EEG Artifact Corpus. Database: TUH EEG Artifact Corpus (TUAR), Version: v2.0.0, Patient: 715 , Session: s010 (../tuh_eeg_artifact/edf/01_tcp_ar/007/00000715/s010_2014_08_07)

# More information
HED: https://www.hedtags.org/
HED schema library for SCORE: https://github.com/hed-standard/hed-schema-library
Temple University Hospital EEG Data Corpus: https://isip.piconepress.com/projects/tuh_eeg/

# Contact
Tal Pal Attia: [email protected]
Dora Hermes: [email protected]
36 changes: 36 additions & 0 deletions xeeg_hed_score/dataset_description.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"Name": "HED schema library for SCORE annotations example",
"BIDSVersion": "1.7.0",
"HEDVersion": "score_1.1.1",
"Authors": [
"Tal Pal Attia",
"Dora Hermes"
],
"Acknowledgements": "Kay Robbins, Dung Truong, Arnaud Delorme, and Scott Makeig",
"Funding": [
"National Institute of Health Grant R01MH126700 (SM)",
"National Institute of Health Grant R01MH122258 (DH)"
],
"SourceDatasets": [
{
"Name": "The TUH EEG Seizure Corpus. Database: TUH EEG Seizure Corpus (TUSZ).",
"Version": "1.5.3",
"URL": "https://isip.piconepress.com/projects/tuh_eeg/downloads/"
},
{
"Name": "The TUH EEG Artifact Corpus. Database: TUH EEG Artifact Corpus (TUAR)",
"Version": "2.0.0.",
"URL": "https://isip.piconepress.com/projects/tuh_eeg/downloads/"
}
],
"ReferencesAndLinks": ["https://github.com/hed-standard/hed-schema-library",
"https://www.hedtags.org/",
"Robbins, Kay, Dung Truong, Stefan Appelhoff, Arnaud Delorme, and Scott Makeig. 'Capturing the nature of events and event context using Hierarchical Event Descriptors (HED).' NeuroImage 245 (2021): 118766.",
"Robbins, Kay, Dung Truong, Alexander Jones, Ian Callanan, and Scott Makeig. 'Building FAIR functionality: Annotating events in time series data using Hierarchical Event Descriptors (HED).' Neuroinformatics (2021): 1-19.",
"Obeid, Iyad, and Joseph Picone. 'The temple university hospital EEG data corpus.' Frontiers in neuroscience 10 (2016): 196.",
"Shah, Vinit, Eva Von Weltin, Silvia Lopez, James Riley McHugh, Lillian Veloso, Meysam Golmohammadi, Iyad Obeid, and Joseph Picone. 'The temple university hospital seizure detection corpus.' Frontiers in neuroinformatics 12 (2018): 83.",
"Ochal, Domenic, Safwanur Rahman, Sean Ferrell, Tarek Elseify, Iyad Obeid, and Joseph Picone. 'The temple university hospital eeg corpus: Annotation guidelines.' Institute for Signal and Information Processing Report 1, no. 1 (2020).",
"Buckwalter, G., S. Chhin, S. Rahman, I. Obeid, and J. Picone. 'Recent Advances in the TUH EEG Corpus: Improving the Interrater Agreement for Artifacts and Epileptiform Events.' In 2021 IEEE Signal Processing in Medicine and Biology Symposium (SPMB), pp. 1-3. IEEE, 2021.",
"Hamid, Ahmed, Katherine Gagliano, Safwanur Rahman, Nikita Tulin, Vincent Tchiong, Iyad Obeid, and Joseph Picone. 'The temple university artifact corpus: An annotated corpus of EEG artifacts.' In 2020 IEEE Signal Processing in Medicine and Biology Symposium (SPMB), pp. 1-4. IEEE, 2020."
]
}
6 changes: 6 additions & 0 deletions xeeg_hed_score/participants.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"participant_id": {
"LongName": "Participant identifier",
"Description": "Unique subject identifier"
}
}
4 changes: 4 additions & 0 deletions xeeg_hed_score/participants.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
participant_id
sub-ieegModulator
sub-eegArtifactTUH
sub-eegSeizureTUH
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"name": {
"Description": "REQUIRED. Label of the channel."
},
"type": {
"Description": "REQUIRED. Type of channel; MUST use the channel types listed in bids-specification."
},
"units": {
"Description": "REQUIRED. Physical unit of the value represented in this channel."
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name type units
FP1-F7 EEG uV
F7-T3 EEG uV
T3-T5 EEG uV
T5-O1 EEG uV
FP2-F8 EEG uV
F8-T4 EEG uV
T4-T6 EEG uV
T6-O2 EEG uV
A1-T3 EEG uV
T3-C3 EEG uV
C3-CZ EEG uV
CZ-C4 EEG uV
C4-T4 EEG uV
T4-A2 EEG uV
FP1-F3 EEG uV
F3-C3 EEG uV
C3-P3 EEG uV
P3-O1 EEG uV
FP2-F4 EEG uV
F4-C4 EEG uV
C4-P4 EEG uV
P4-O2 EEG uV
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"onset": {
"Description": "REQUIRED. Onset (in seconds) of the event, measured from the beginning of the acquisition of the first data point stored in the corresponding task data file. Negative onsets are allowed, to account for events that occur prior to the first stored data point."
},
"duration": {
"Description": "REQUIRED. Duration of the event (measured from onset) in seconds"
},
"annotation_type": {
"LongName": "Hierarchical Event Descriptors annotations",
"Description": "EEG interpretation Hierarchical Event Descriptors annotations",
"Levels": {
"eyem": "A spike-like waveform created during patient eye movement. This artifact is usually found on all of the frontal polar electrodes with occasional echoing on the frontal electrodes.",
"elec": "An electrode artifact encompasses various electrode related artifacts. Electrode pop is an artifact characterized by channels using the same electrode 'spiking' with an electrographic phase reversal. ",
"musc": "Muscle artifact. A very common, high frequency, sharp artifact that corresponds with agitation/nervousness in a patient.",
"eyem+musc": "Eye and Muscle"
},
"HED": {
"eyem": "Eye-movement-horizontal-artifact",
"elec": "Non-biological-artifact",
"musc": "EMG-artifact",
"eyem+musc": "(Eye-movement-horizontal-artifact , EMG-artifact)"
}
},
"channel": {
"LongName": "Annotated channel",
"Description": "Comma-separated list of annotated channels corresponding to *_channels.tsv."
}
}


Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
onset duration annotation_type channel
36.2312 3.5758 eyem FP1-F7
91.5725 20.6333 eyem+musc FP1-F7
36.2146 3.7334 eyem FP2-F8
91.589 20.6416 eyem+musc FP2-F8
3.9989 2.3064 elec C3-CZ,CZ-C4
23.448 2.6466 elec C3-CZ,CZ-C4
27.2146 2.9121 elec C3-CZ,CZ-C4
31.0476 4.9861 elec C3-CZ,CZ-C4
63.2113 9.9806 elec C3-CZ,CZ-C4
91.0913 21.0564 elec C3-CZ,CZ-C4
36.4552 3.5177 eyem FP1-F3
91.5808 20.5503 eyem+musc FP1-F3
36.4054 3.6339 eyem FP2-F4
91.5559 20.5752 eyem+musc FP2-F4
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"onset": {
"Description": "REQUIRED. Onset (in seconds) of the event, measured from the beginning of the acquisition of the first data point stored in the corresponding task data file. Negative onsets are allowed, to account for events that occur prior to the first stored data point."
},
"duration": {
"Description": "REQUIRED. Duration of the event (measured from onset) in seconds"
},
"annotation_type": {
"LongName": "Hierarchical Event Descriptors annotations",
"Description": "EEG interpretation Hierarchical Event Descriptors annotations",
"Levels": {
"eyem": "A spike-like waveform created during patient eye movement. This artifact is usually found on all of the frontal polar electrodes with occasional echoing on the frontal electrodes.",
"elec": "An electrode artifact encompasses various electrode related artifacts. Electrode pop is an artifact characterized by channels using the same electrode 'spiking' with an electrographic phase reversal. ",
"musc": "Muscle artifact. A very common, high frequency, sharp artifact that corresponds with agitation/nervousness in a patient.",
"eyem+musc": "Eye and Muscle"
},
"HED": {
"eyem": "Eye-movement-horizontal-artifact",
"elec": "Non-biological-artifact",
"musc": "EMG-artifact",
"eyem+musc": "(Eye-movement-horizontal-artifact , EMG-artifact)"
}
},
"channel": {
"LongName": "Annotated channel",
"Description": "Comma-separated list of annotated channels corresponding to *_channels.tsv."
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
onset duration annotation_type channel
0.531 31.1725 eyem+musc FP1-F7,FP2-F8,FP1-F3,FP2-F4
34.1062 36.1504 eyem+musc FP1-F7,FP2-F8,FP1-F3,FP2-F4
73.1062 22.677 eyem+musc FP1-F7,FP2-F8,FP1-F3,FP2-F4
98.4823 15.0221 eyem FP1-F7,FP2-F8,FP1-F3,FP2-F4
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"onset": {
"Description": "REQUIRED. Onset (in seconds) of the event, measured from the beginning of the acquisition of the first data point stored in the corresponding task data file. Negative onsets are allowed, to account for events that occur prior to the first stored data point."
},
"duration": {
"Description": "REQUIRED. Duration of the event (measured from onset) in seconds"
},
"annotation_type": {
"LongName": "Hierarchical Event Descriptors annotations",
"Description": "EEG interpretation Hierarchical Event Descriptors annotations",
"Levels": {
"eyem": "A spike-like waveform created during patient eye movement. This artifact is usually found on all of the frontal polar electrodes with occasional echoing on the frontal electrodes.",
"elec": "An electrode artifact encompasses various electrode related artifacts. Electrode pop is an artifact characterized by channels using the same electrode 'spiking' with an electrographic phase reversal. ",
"musc": "Muscle artifact. A very common, high frequency, sharp artifact that corresponds with agitation/nervousness in a patient.",
"eyem+musc": "Eye and Muscle"
},
"HED": {
"eyem": "Eye-movement-horizontal-artifact",
"elec": "Non-biological-artifact",
"musc": "EMG-artifact",
"eyem+musc": "(Eye-movement-horizontal-artifact , EMG-artifact)"
}
},
"channel": {
"LongName": "Annotated channel",
"Description": "Comma-separated list of annotated channels corresponding to *_channels.tsv."
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
onset duration annotation_type channel
0.365 59.3031 eyem+musc FP1-F7,FP2-F8,F8-T4,FP1-F3,FP2-F4
61.0066 5.2489 eyem FP1-F7,FP2-F8,FP1-F3,FP2-F4
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"name": {
"Description": "REQUIRED. Label of the channel."
},
"type": {
"Description": "REQUIRED. Type of channel; MUST use the channel types listed in bids-specification."
},
"units": {
"Description": "REQUIRED. Physical unit of the value represented in this channel."
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name type units
FP1-F7 EEG uV
F7-T3 EEG uV
T3-T5 EEG uV
T5-O1 EEG uV
FP2-F8 EEG uV
F8-T4 EEG uV
T4-T6 EEG uV
T6-O2 EEG uV
A1-T3 EEG uV
T3-C3 EEG uV
C3-CZ EEG uV
CZ-C4 EEG uV
C4-T4 EEG uV
T4-A2 EEG uV
FP1-F3 EEG uV
F3-C3 EEG uV
C3-P3 EEG uV
P3-O1 EEG uV
FP2-F4 EEG uV
F4-C4 EEG uV
C4-P4 EEG uV
P4-O2 EEG uV
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"onset":{
"Description": "REQUIRED. Onset (in seconds) of the event, measured from the beginning of the acquisition of the first data point stored in the corresponding task data file. Negative onsets are allowed, to account for events that occur prior to the first stored data point."
},
"duration":{
"Description": "REQUIRED. Duration of the event (measured from onset) in seconds"
},
"HED_annotations": {
"LongName": "Hierarchical Event Descriptors annotations",
"Description": "EEG interpretation Hierarchical Event Descriptors annotations"
},
"channel":{
"LongName": "Annotated channel",
"Description": "Comma-separated list of annotated channels corresponding to *_channels.tsv."
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
onset duration HED_annotations channel
24.8325 102.2255 Tonic-clonic-motor-onset-seizure T3-T5,T5-O1,FP2-F8,T6-O2,A1-T3,T3-C3,C3-CZ,FP1-F3,F3-C3,C3-P3,P3-O1,FP2-F4
13.8275 159.5516 Tonic-clonic-motor-onset-seizure F8-T4,T4-T6
8.8275 118.1255 Tonic-clonic-motor-onset-seizure CZ-C4,F4-C4,C4-P4,P4-O2
8.8275 164.3851 Tonic-clonic-motor-onset-seizure C4-T4
24.8325 148.4851 Tonic-clonic-motor-onset-seizure T4-A2
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"onset":{
"Description": "REQUIRED. Onset (in seconds) of the event, measured from the beginning of the acquisition of the first data point stored in the corresponding task data file. Negative onsets are allowed, to account for events that occur prior to the first stored data point."
},
"duration":{
"Description": "REQUIRED. Duration of the event (measured from onset) in seconds"
},
"HED_annotations": {
"LongName": "Hierarchical Event Descriptors annotations",
"Description": "EEG interpretation Hierarchical Event Descriptors annotations"
},
"channel":{
"LongName": "Annotated channel",
"Description": "Comma-separated list of annotated channels corresponding to *_channels.tsv."
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
onset duration HED_annotations channel
14.034 101.027 Tonic-clonic-motor-onset-seizure FP2-F8,T6-O2,A1-T3,T3-C3,C3-CZ
14.034 160.7442 Tonic-clonic-motor-onset-seizure F8-T4,T4-T6
7.9734 107.0876 Tonic-clonic-motor-onset-seizure CZ-C4
3.9734 171.532 Tonic-clonic-motor-onset-seizure C4-T4,T4-A2
21.2327 93.7906 Tonic-clonic-motor-onset-seizure FP1-F3,F3-C3,C3-P3,P3-O1,FP2-F4
3.9623 111.0488 Tonic-clonic-motor-onset-seizure F4-C4
13.9334 101.0766 Tonic-clonic-motor-onset-seizure C4-P4
3.9789 111.0488 Tonic-clonic-motor-onset-seizure P4-O2
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"onset":{
"Description": "REQUIRED. Onset (in seconds) of the event, measured from the beginning of the acquisition of the first data point stored in the corresponding task data file. Negative onsets are allowed, to account for events that occur prior to the first stored data point."
},
"duration":{
"Description": "REQUIRED. Duration of the event (measured from onset) in seconds"
},
"HED_annotations": {
"LongName": "Hierarchical Event Descriptors annotations",
"Description": "EEG interpretation Hierarchical Event Descriptors annotations"
},
"channel":{
"LongName": "Annotated channel",
"Description": "Comma-separated list of annotated channels corresponding to *_channels.tsv."
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
onset duration HED_annotations channel
26.15 124.3657 Tonic-clonic-motor-onset-seizure FP2-F8,T6-O2,A1-T3,T3-C3,C3-CZ,FP2-F4
1 149.5157 Tonic-clonic-motor-onset-seizure F8-T4,T4-T6,C4-T4,T4-A2
20.95 129.5657 Tonic-clonic-motor-onset-seizure CZ-C4,F4-C4,C4-P4,P4-O2
26.15 76.0424 Tonic-clonic-motor-onset-seizure FP1-F3,F3-C3,C3-P3,P3-O1
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"onset":{
"Description": "REQUIRED. Onset (in seconds) of the event, measured from the beginning of the acquisition of the first data point stored in the corresponding task data file. Negative onsets are allowed, to account for events that occur prior to the first stored data point."
},
"duration":{
"Description": "REQUIRED. Duration of the event (measured from onset) in seconds"
},
"HED_annotations": {
"LongName": "Hierarchical Event Descriptors annotations",
"Description": "EEG interpretation Hierarchical Event Descriptors annotations"
},
"channel":{
"LongName": "Annotated channel",
"Description": "Comma-separated list of annotated channels corresponding to *_channels.tsv."
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
onset duration HED_annotations channel
207.9323 100.0677 Focal-onset-epileptic-seizure F8-T4
207.9434 100.0566 Focal-onset-epileptic-seizure T4-T6
240.0202 50.2626 Focal-onset-epileptic-seizure T6-O2
207.9101 100.0899 Focal-onset-epileptic-seizure C4-T4,T4-A2
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"IntendedFor": "/sub-ieegModulator/ses-preopMRI/anat/sub-ieegModulator_ses-preopMRI_T1w.nii.gz" ,
"iEEGCoordinateSystem": "Other",
"iEEGCoordinateUnits": "mm",
"iEEGCoordinateSystemDescription": "Native space. The coordinate frame of the scanner at data acquisition of the T1w volume",
"iEEGCoordinateProcessingDescription": "sEEG electrode positions from Curry",
"iEEGCoordinateProcessingReference": "n/a"
}
Loading
Loading