DS004944#
Dataset of BCI2000-compatible intraoperative ECoG with neuromorphic encoding
Access recordings and metadata through EEGDash.
Citation: Filippo Costa, Niklaus Krayenbühl, Georgia Ramantani, Ece Boran, Kristina König, Johannes Sarnthein (2024). Dataset of BCI2000-compatible intraoperative ECoG with neuromorphic encoding. 10.18112/openneuro.ds004944.v1.1.0
Modality: ieeg Subjects: 22 Recordings: 379 License: CC0 Source: openneuro Citations: 1.0
Metadata: Complete (100%)
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#
Overview
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_.
View full README
Overview
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_.
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.
Dataset Information#
Dataset ID |
|
Title |
Dataset of BCI2000-compatible intraoperative ECoG with neuromorphic encoding |
Year |
2024 |
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},
}
Found an issue with this dataset?
If you encounter any problems with this dataset (missing files, incorrect metadata, loading errors, etc.), please let us know!
Technical Details#
Subjects: 22
Recordings: 379
Tasks: 1
Channels: 3 (20), 6 (12), 5 (12), 4 (10), 23 (6), 20 (4), 19 (4), 28 (2), 15 (2), 10 (2), 22 (2), 25 (2), 21 (2), 11 (2), 17 (2), 2 (2), 27 (2)
Sampling rate (Hz): 2000.0
Duration (hours): 0.0
Pathology: Epilepsy
Modality: Other
Type: Clinical/Intervention
Size on disk: 451.1 MB
File count: 379
Format: BIDS
License: CC0
DOI: doi:10.18112/openneuro.ds004944.v1.1.0
API Reference#
Use the DS004944 class to access this dataset programmatically.
- class eegdash.dataset.DS004944(cache_dir: str, query: dict | None = None, s3_bucket: str | None = None, **kwargs)[source]#
Bases:
EEGDashDatasetOpenNeuro dataset
ds004944. 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
- query#
Merged query with the dataset filter applied.
- Type:
dict
- records#
Metadata records used to build the dataset, if pre-fetched.
- Type:
list[dict] | None
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
Examples
>>> from eegdash.dataset import DS004944 >>> dataset = DS004944(cache_dir="./data") >>> recording = dataset[0] >>> raw = recording.load()
See Also#
eegdash.dataset.EEGDashDataseteegdash.dataset