DS004944: ieeg dataset, 22 subjects#
Dataset of BCI2000-compatible intraoperative ECoG with neuromorphic encoding
Citation: Filippo Costa, Niklaus Krayenbühl, Georgia Ramantani, Ece Boran, Kristina König, Johannes Sarnthein (20). Dataset of BCI2000-compatible intraoperative ECoG with neuromorphic encoding. 10.18112/openneuro.ds004944.v1.1.0
22-participant iEEG dataset — Dataset of BCI2000-compatible intraoperative ECoG with neuromorphic encoding.
Quickstart#
Install
pip install eegdash
Access the data
from eegdash.dataset import DS004944
dataset = DS004944(cache_dir="./data")
# Get the raw object of the first recording
raw = dataset.datasets[0].raw
print(raw.info)
Filter by subject
dataset = DS004944(cache_dir="./data", subject="01")
Advanced query
dataset = DS004944(
cache_dir="./data",
query={"subject": {"$in": ["01", "02"]}},
)
Iterate recordings
for rec in dataset:
print(rec.subject, rec.raw.info['sfreq'])
If you use this dataset in your research, please cite the original authors.
BibTeX
@dataset{ds004944,
title = {Dataset of BCI2000-compatible intraoperative ECoG with neuromorphic encoding},
author = {Filippo Costa and Niklaus Krayenbühl and Georgia Ramantani and Ece Boran and Kristina König and Johannes Sarnthein},
doi = {10.18112/openneuro.ds004944.v1.1.0},
url = {https://doi.org/10.18112/openneuro.ds004944.v1.1.0},
}
About This Dataset#
This dataset comprises recordings of intraoperative Electrocorticography (ECoG) from 22 patients undergoing resective epilepsy surgery.
For each patient, the dataset is organized into pre-resection recording (referred to as SITUATION1A) and post-resection recording (referred to as SITUATION2A).
We provide raw ECoG recordings for each patient and a derivative folder that contains all the main processing stages performed with our neuromorphic processing pipeline: https://doi.org/10.1038/s41467-024-47495-y.
Overview
The pipeline preprocesses ECoG recordings in real-time and performs Asynchronous Delta Modulator (ADM) encoding with a custom BCI2000 module. The ADM-encoded data are processed by a hardware Spiking Neural Network (SNN). The SNN-encoded data are then used to detect epileptiform patterns in the ECoG.
The code to perform preprocessing and ADM encoding in BCI2000, together with the code to detect epileptiform patterns from SNN-encoded data, are provided at CostaFilippo/BCI2000_DYNAP-SE.git. In a previous publication, this dataset has been analyzed with a offline software algorithm: https://doi.org/10.1016/j.clinph.2019.07.008.
The annotations of the epileptiform patterns detected with the offline approach are provided at: sub-*/ses-SITUATION*/sub-*_ses-SITUATION*_task-acute_events.tsv. The annotations of the epileptiform patterns detected with the online neuromorphic processing are provided at derivative/sub-*/ses-SITUATION*/sub-*_ses-SITUATION*_task-EV.csv.
View full README
Overview
The pipeline preprocesses ECoG recordings in real-time and performs Asynchronous Delta Modulator (ADM) encoding with a custom BCI2000 module. The ADM-encoded data are processed by a hardware Spiking Neural Network (SNN). The SNN-encoded data are then used to detect epileptiform patterns in the ECoG.
The code to perform preprocessing and ADM encoding in BCI2000, together with the code to detect epileptiform patterns from SNN-encoded data, are provided at CostaFilippo/BCI2000_DYNAP-SE.git. In a previous publication, this dataset has been analyzed with a offline software algorithm: https://doi.org/10.1016/j.clinph.2019.07.008.
The annotations of the epileptiform patterns detected with the offline approach are provided at: sub-*/ses-SITUATION*/sub-*_ses-SITUATION*_task-acute_events.tsv. The annotations of the epileptiform patterns detected with the online neuromorphic processing are provided at derivative/sub-*/ses-SITUATION*/sub-*_ses-SITUATION*_task-EV.csv.
Dataset Structure
- The derivative folder is structured as follows:
sub-*
ses-SITUATION1A - *task-BCI.dat - *task-ADM.csv - *task-SNN.csv - *task-EV.csv
ses-SITUATION2A - *task-BCI.dat - *task-ADM.csv - *task-SNN.csv - *task-EV.csv
File Descriptions
derivative
task-BCI.dat: BCI2000-compatible file containing the ECoG recording.
task-ADM.csv: ADM encoding of the ECoG recording.
task-SNN.csv: SNN encoding of the ECoG recording.
task-EV.cvs: Annotations of the detected epileptiform patterns in the ECoG recording.
Data Formats
Details of the neuromorphic processing pipeline can be found at https://doi.org/10.1038/s41467-024-47495-y.
task-BCI.dat
The BCI2000-compatible file contains the raw ECoG recording.
It can be streamed in real-time using the ‘FilePlayback’ BCI2000 module.
task-ADM.csv
- The ADM file is formatted as follows:
_pulseType_: -1 for DN pulse, +1 for UP pulse.
_pulseTime_: Time at which the pulse occurred.
_channel_: Channel in which the pulse occurred.
_band_: 0 for EEG band, 1 for HFO band
task-SNN.csv
- The SNN file is formatted as follows:
_time_: Time at which the SNN neuron activated.
_neuronId_: Number id of the SNN neuron (DYNAP-SE numbering from 0 to 1024).
_neuronCounter_: Number id of the SNN neuron (sequential numbering from 0 to 40).
_moduleName_: Population (ACC_4_0; ACC_0_4), band (EEG; HFO) and module number (ch 0-7) of the neuron. - ACC_4_0 = ACC UP - ACC_0_4 = ACC DN
_moduleId_: Module number (0-7).
_channelId_: Channel for which the SNN neuron activated.
task-EV.csv
- The EV file contains annotations of the detected epileptiform patterns with the following format:
_time_: time of the detected event.
_channelId_: channel id of the detected event.
_location_: channel name of the detected event.
Contact Information
For inquiries or additional information, please contact Filippo.Costa@usz.ch or Johannes.Sarnthein@usz.ch
Acknowledgements
We thank V. Dimakopoulos for help in reformatting the data to BIDS. We acknowledge a grant awarded by the Swiss National Science Foundation (funded by the SNSF 204651 to JS and GI with GR and NK as project partners). The funder had no role in the design or analysis of the study.
Cohort#
Dataset Statistics#
Age distribution by gender (n=22, range 1–67 yr, mean 19.9 yr)
Sex composition
Channel counts (ch)
Sampling frequencies: 2000.0 Hz (n=44 recordings)
Total recording duration: 3 h 3 min
Signal · Electrodes & live trace#
Live trace viewer — sub-13 · ses-SITUATION2A · task-acute
Showing one representative recording out of
22 subjects and 44 recordings in this dataset.
Browse the full set on OpenNeuro;
drop any other _ieeg.{set,edf,bdf,vhdr} file onto the
viewer (or pass ?ieeg=<url>) to inspect it.
No scalp electrode layout is currently indexed for this dataset. Once the eegdash montage registry ingests it, the interactive viewer will appear here automatically.
NEMAR Processing Statistics#
The plots below are generated by NEMAR’s automated EEG pipeline. The histogram shows pipeline success for data cleaning and ICA decomposition, the percentage of data frames and EEG channels retained after artefact removal, line noise per channel (RMS, dB), and the age/gender distribution of participants.
HED event descriptors word cloud
Manifest#
File Explorer#
Browse the BIDS file structure of this dataset. Records are fetched on demand from the EEGDash catalog the first time you open the explorer.
Full dataset metadata table
Dataset ID |
|
Title |
Dataset of BCI2000-compatible intraoperative ECoG with neuromorphic encoding |
Author (year) |
|
Canonical |
— |
Importable as |
|
Year |
20 |
Authors |
Filippo Costa, Niklaus Krayenbühl, Georgia Ramantani, Ece Boran, Kristina König, Johannes Sarnthein |
License |
CC0 |
Citation / DOI |
|
Source links |
OpenNeuro | NeMAR | Source URL |
Copy-paste BibTeX
@dataset{ds004944,
title = {Dataset of BCI2000-compatible intraoperative ECoG with neuromorphic encoding},
author = {Filippo Costa and Niklaus Krayenbühl and Georgia Ramantani and Ece Boran and Kristina König and Johannes Sarnthein},
doi = {10.18112/openneuro.ds004944.v1.1.0},
url = {https://doi.org/10.18112/openneuro.ds004944.v1.1.0},
}
API Reference#
eegdash.datasetEEGDashDatasetDS004944 · Costa2024eegdash/dataset/registry.py · [source ↗]- class eegdash.dataset.DS004944(cache_dir: str, query: dict | None = None, s3_bucket: str | None = None, **kwargs)[source]#
Dataset of BCI2000-compatible intraoperative ECoG with neuromorphic encoding
- Study:
ds004944(OpenNeuro)- Author (year):
Costa2024- Canonical:
—
Also importable as:
DS004944,Costa2024.Modality:
ieeg; Experiment type:Clinical/Intervention; Subject type:Epilepsy. Subjects: 22; recordings: 44; tasks: 1.- Parameters:
cache_dir (str | Path) – Directory where data are cached locally.
query (dict | None) – Additional MongoDB-style filters to AND with the dataset selection. Must not contain the key
dataset.s3_bucket (str | None) – Base S3 bucket used to locate the data.
**kwargs (dict) – Additional keyword arguments forwarded to
EEGDashDataset.
- data_dir#
Local dataset cache directory (
cache_dir / dataset_id).- Type:
Path
Notes
Each item is a recording; recording-level metadata are available via
dataset.description.querysupports MongoDB-style filters on fields inALLOWED_QUERY_FIELDSand is combined with the dataset filter. Dataset-specific caveats are not provided in the summary metadata.References
OpenNeuro dataset: https://openneuro.org/datasets/ds004944 NeMAR dataset: https://nemar.org/dataexplorer/detail?dataset_id=ds004944 DOI: https://doi.org/10.18112/openneuro.ds004944.v1.1.0 NEMAR citation count: 1
Examples
>>> from eegdash.dataset import DS004944 >>> dataset = DS004944(cache_dir="./data") >>> recording = dataset[0] >>> raw = recording.load()
- __init__(cache_dir: str, query: dict | None = None, s3_bucket: str | None = None, **kwargs)[source]#
- save(path: str, overwrite: bool = False, offset: int = 0)[source]#
Save datasets to files by creating one subdirectory for each dataset:
path/ 0/ 0-raw.fif | 0-epo.fif description.json raw_preproc_kwargs.json (if raws were preprocessed) window_kwargs.json (if this is a windowed dataset) window_preproc_kwargs.json (if windows were preprocessed) target_name.json (if target_name is not None and dataset is raw) 1/ 1-raw.fif | 1-epo.fif description.json raw_preproc_kwargs.json (if raws were preprocessed) window_kwargs.json (if this is a windowed dataset) window_preproc_kwargs.json (if windows were preprocessed) target_name.json (if target_name is not None and dataset is raw)
- Parameters:
path (str) –
- Directory in which subdirectories are created to store
-raw.fif | -epo.fif and .json files to.
overwrite (bool) – Whether to delete old subdirectories that will be saved to in this call.
offset (int) – If provided, the integer is added to the id of the dataset in the concat. This is useful in the setting of very large datasets, where one dataset has to be processed and saved at a time to account for its original position.
BaseDataset from braindecode — windowed via create_windows_from_events.braindecodeDataLoader; supports parallel workers and on-the-fly augmentations.pytorchdatasets.load_dataset("EEGDash/ds004944").huggingfaceSwap any load_dataset(...) call for ds004944 to reproduce the tutorial on this dataset.
Citation
Filippo Costa, Niklaus Krayenbühl, Georgia Ramantani, Ece Boran, Kristina König, … (20). Dataset of BCI2000-compatible intraoperative ECoG with neuromorphic encoding. 10.18112/openneuro.ds004944.v1.1.0
Provenance
¹Contributed to openneuro in BIDS format.
²Curated & ingested by the EEGDash catalog; see CITATION.cff for canonical reference.
³Persistent identifier: 10.18112/openneuro.ds004944.v1.1.0.
See Also#
eegdash.dataset.EEGDashDataseteegdash.dataset