EEGdashOpenNeuroDS004944
Iss. 4944 · 22 subjects · 44 recordings · CC0
Dataset Brief · Dataset of BCI2000-compatible intraoperative ECoG with neurom…

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.

iEEG · 3 (10), 5 (6), 6 (6), 4 (5), 23 (3), 20 (2), 19 (2), 22, 27, 11, 10, 21, 2, 17, 25, 15, 28 ch2000 HzBIDS 1.4.0Task · acute2 sessionsEpilepsyOtherClinical/Intervention
Layer 01Study
What was asked
Hypothesis, independent & dependent variables, paradigm, cohort, and the editorial caveats around what the recordings can and cannot answer.
Layer 02Signal · BIDS
What was recorded
Sidecars, channels & electrodes, coordinate system, event semantics, and quality stats from the NEMAR pipeline when available.
Layer 03Training · ML
What you can train on
Recommended access modes — MNE Raw, braindecode windows, PyTorch DataLoader — plus the targets the metadata makes addressable.
§ 01Access · Get started

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},
}
§ 02Study · The README

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.

§ 03Cohort · Participants

Cohort#

Dataset Statistics#

Age distribution by gender (n=22, range 1–67 yr, mean 19.9 yr)

05152030354065
Female · 12Male · 10

Sex composition

22
subjects
Female
12
Male
10
F : M ratio
1.20 : 1
55% female · n = 22 subjects with reported sex.

Channel counts (ch)

23456101115171920212223252728

Sampling frequencies: 2000.0 Hz (n=44 recordings)

Total recording duration: 3 h 3 min

§ 04Signal · Electrodes & trace

Signal · Electrodes & live trace#

Fig. 01 Signal & montage 3 (10), 5 (6), 6 (6), 4 (5), 23 (3), 20 (2), 19 (2), 22, 27, 11, 10, 21, 2, 17, 25, 15, 28 ch · iEEG · 2000 Hz · 22 subjects, 44 recordings
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 HED event descriptors word cloud — DS004944
§ 05Manifest · BIDS tree

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.

Recordings
Files
Subjects
Modalities
Click to load file structure…
Full dataset metadata table

Dataset ID

DS004944

Title

Dataset of BCI2000-compatible intraoperative ECoG with neuromorphic encoding

Author (year)

Costa2024

Canonical

Importable as

DS004944, Costa2024

Year

20

Authors

Filippo Costa, Niklaus Krayenbühl, Georgia Ramantani, Ece Boran, Kristina König, Johannes Sarnthein

License

CC0

Citation / DOI

doi:10.18112/openneuro.ds004944.v1.1.0

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},
}
§ 06API · Programmatic access

API Reference#

Signature
eegdash.dataset
class
eegdash.dataset.DS004944(cache_dir, query=None, s3_bucket=None, **kwargs)
Bases: EEGDashDataset
Author (year)Costa2024
Canonical
Importable asDS004944 · Costa2024
Sourceeegdash/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

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. query supports MongoDB-style filters on fields in ALLOWED_QUERY_FIELDS and 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.

Access modesMNE → braindecode → PyTorch → ML
.rawMNE Raw object — standard tools (filter, epoch, ICA, plot_psd).mne
DataLoaderWraps the windowed dataset into a PyTorch DataLoader; supports parallel workers and on-the-fly augmentations.pytorch
Zarr cacheOptional braindecode Zarr mirror for fast resume; persisted to cache_dir.zarr
Hugging FacePre-bundled mirror at EEGDash/ds004944 · pull with datasets.load_dataset("EEGDash/ds004944").huggingface
Croissant 1.0Machine-readable JSON-LD descriptorDS004944.croissant.json (MLCommons schema, ingestible by PyTorch / TensorFlow / JAX).mlcommons
Examples using EEGDashcurated · start here

Swap 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.

BIDS
BIDS 1.4.0
Sidecars
events · events.json · channels · electrodes
Machine-readable

See Also#