EEGdash›NeMAR›NM000433
Iss. 433 · 1 subjects · 82 recordings · CC-BY-4.0
Dataset Brief · Dareplane proof of concept

NM000433: ieeg dataset, 1 subjects#

Dareplane proof of concept: STN LFP, ECoG and EOG during the CopyDraw task with open- and closed-loop DBS (1 Parkinson’s disease patient)

Access recordings and metadata through EEGDash.

Citation: Matthias Dold, Joana Pereira, Bastian Sajonz, Volker A. Coenen, Jordy Thielen, Marcus L.F. Janssen, Michael Tangermann (2024). Dareplane proof of concept: STN LFP, ECoG and EOG during the CopyDraw task with open- and closed-loop DBS (1 Parkinson’s disease patient). 10.82901/nemar.nm000433

Modality: ieeg Subjects: 1 Recordings: 82 License: CC-BY-4.0 Source: nemar

Metadata: Complete (100%)

1-participant iEEG dataset — Dareplane proof of concept: STN LFP, ECoG and EOG during the CopyDraw task with open- and closed-loop DBS (1 Parkinson's disease patient).

iEEG · 16 (41), 24 (41) ch2750, 22000 HzBIDS 1.10.0Task · copydraw3 sessions
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 NM000433

dataset = NM000433(cache_dir="./data")
# Get the raw object of the first recording
raw = dataset.datasets[0].raw
print(raw.info)

Filter by subject

dataset = NM000433(cache_dir="./data", subject="01")

Advanced query

dataset = NM000433(
    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{nm000433,
  title = {Dareplane proof of concept: STN LFP, ECoG and EOG during the CopyDraw task with open- and closed-loop DBS (1 Parkinson's disease patient)},
  author = {Matthias Dold and Joana Pereira and Bastian Sajonz and Volker A. Coenen and Jordy Thielen and Marcus L.F. Janssen and Michael Tangermann},
  doi = {10.82901/nemar.nm000433},
  url = {https://doi.org/10.82901/nemar.nm000433},
}
§ 02Study · The README

About This Dataset#

Intracranial recordings from one patient with Parkinson’s disease (67 years, female, right-handed; “PD4” in the paper) with

externalised bilateral subthalamic DBS leads and an epidural ECoG strip over the left primary motor cortex, recorded on days 2, 3 and 4 after implantation at the Medical Center - University of Freiburg while she performed the CopyDraw task with DBS OFF, with continuous open-loop DBS ON and (day 4) with closed-loop adaptive DBS run on the Dareplane platform.

Source: Dold, M., Pereira, J., Sajonz, B., Coenen, V.A., Thielen, J., Janssen, M.L.F., Tangermann, M. (2024). “LFP and ECoG

data during CopyDraw task with deep brain stimulation - Dareplane data for proof of concept paper”. Version 1. Radboud University. https://doi.org/10.34973/d214-m342 (CC BY 4.0). Paper: Dold et al., “Dareplane: A modular open-source software platform for BCI research with application in closed-loop deep brain stimulation”, arXiv:2408.01242 (J. Neural Eng.).

DOI

Dareplane proof of concept: STN LFP, ECoG and EOG during CopyDraw with open- and closed-loop DBS

Please acknowledge: “Data were provided (in part) by the Radboud University, Nijmegen, The Netherlands”.

Contents

  • sub-P001 (release label), sessions ses-day2, ses-day3, ses-day4 (days after implantation).

  • 41 recordings, 2.72 h at 22 kHz. One recording = one Neuro Omega .mat file of the release; runs are numbered in

View full README

DOI

Dareplane proof of concept: STN LFP, ECoG and EOG during CopyDraw with open- and closed-loop DBS

Please acknowledge: “Data were provided (in part) by the Radboud University, Nijmegen, The Netherlands”.

Contents

  • sub-P001 (release label), sessions ses-day2, ses-day3, ses-day4 (days after implantation).

  • 41 recordings, 2.72 h at 22 kHz. One recording = one Neuro Omega .mat file of the release; runs are numbered in recording order (Neuro Omega clock) within a session. acq-stimoff / acq-stimon / acq-closedloop follow the file names (copydraw_off, copydraw_on, clcopydraw_on). scans.tsv gives the source file, block number and file part for every run. Several blocks were saved in more than one file (e.g. block1 parts 0001-0004 on day 2), some only a few seconds long; they are kept as separate runs, unchanged.

  • 24 channels per recording, names from the release README CHANNEL_MAP: - LFP_1-LFP_8: Boston Scientific Vercise directional lead in the left STN (LFP_1 tip, most ventral; LFP_8 most dorsal); - LFP_9-LFP_16: same for the right STN (LFP_9 tip); - ECOG_1-ECOG_4: 4-contact Ad-Tech strip, epidural over left M1 (ECOG_1 most caudal, ECOG_4 most rostral); - EOG_1 above the right eyebrow, EOG_2 below the right eye, EOG_3 left of the left eye, EOG_4 right of the right eye. Type DBS / ECOG / EOG. The README does not say which of contacts 2-7 are the directional segments.

  • Values: the Neuro Omega int16 counts are stored unchanged (BrainVision INT_16); the header resolution is BitResolution/Gain = 38.14697265625/55 = 0.6935813210 uV per count (Neuro Omega convention). Note that the authors’ load_xdf.py treats the raw counts directly as microvolts (no gain); multiply by 55/38.14697265625 to reproduce that. LFP channels saturate (int16 limits) during stimulation; counts per channel are in code/conversion_report.json.

  • Reference and ground (paper): ECoG referenced to the left earlobe, DBS recordings to the left mastoid, ground on the right mastoid. Hardware filter settings are not stated (n/a).

  • Auxiliary Neuro Omega analog inputs (CANALOG_IN_1-8, CADD_ANALOG_IN_1-8, 2.75 kHz) are written as separate acq-<condition>analog files (MISC, raw counts, unit not documented) only where they are not constant (41 recordings).

  • No coordinates are released. electrodes.tsv lists the 16 DBS and 4 ECoG contacts with x, y, z = n/a and the stated target (STN / left M1, hemisphere).

Events

events.tsv holds two kinds of markers stored in the .mat files, aligned as in the authors’ load_xdf.py (onset = marker time on the 44 kHz Neuro Omega clock - TimeBegin of the 22 kHz channels): - port_marker: non-zero values of the Neuro Omega hardware port CPORT__1 (zeros reset the port). The values are given as

recorded. They do not always equal the CopyDraw codes (README: 10-21 start of copy-drawing trace k, 110-121 end, 50 self-paced readiness): on day 3 the port only shows value 1 and on days 2 and 4 only part of the code range appears.

  • stim_marker_<k>: the Neuro Omega stimulation marker channel CStimMarker_<k> (README: arrival times of the stimulation pulses); value is the identifier stored with the marker.

The full CopyDraw marker stream (CopyDrawParadigmMarkerStream), the LSL copy of the signals (AODataStream), the closed-loop control streams and the mouse/keyboard streams are in the XDF files in sourcedata, on the LSL clock. The release does not document an alignment between the LSL clock and the .mat sample clock other than the port markers, so the XDF markers are not copied into events.tsv.

sourcedata/radboud-d214-m342

The release files of the patient (README.md, ABOUT.txt, LICENSE.txt, MANIFEST.txt, analysis_scripts/load_xdf.py and data/sub-P001_ses-day*/{ao,bv,lsl,behavioral}): Neuro Omega .mat exports, BrainAmp ExG BrainVision files (heart rate, respiration, GSR; days 2-3), LSL XDF files and the CopyDraw behavioural YAML files (stylus traces per trial, block settings, projection results). All SHA-256 sums matched MANIFEST.txt on download. Files changed for privacy are listed in PRIVACY_CHANGES.tsv with their new SHA-256 (all other files are byte-identical to the release).

Not included: the benchtop tests (AO_test, Arduino_test, CT_* XDF/pickles), the c-VEP scalp-EEG speller data of three healthy participants (data/data_p00*), and intermediate analysis results (data/*.hdf, *.npy, *.joblib). Get them from the Radboud record.

Privacy

No names or hospital identifiers were found. Dates were reduced to year and month (day set to 01, same byte length): the export date in the .mat text headers and date strings in the XDF headers/marker strings and text files (see PRIVACY_CHANGES.tsv). The BrainVision marker files already carry the placeholder date 1900-01-01. Age, sex and handedness are those published in the paper.

NEMAR Metadata#

[![DOI](https://img.shields.io/badge/DOI-10.82901%2Fnemar.nm000433-blue)](https://doi.org/10.82901/nemar.nm000433) # Dareplane proof of concept: STN LFP, ECoG and EOG during CopyDraw with open- and closed-loop DBS Intracranial recordings from one patient with Parkinson’s disease (67 years, female, right-handed; “PD4” in the paper) with externalised bilateral subthalamic DBS leads and an epidural ECoG strip over the left primary motor cortex, recorded on days 2, 3 and 4 after implantation at the Medical Center - University of Freiburg while she performed the CopyDraw task with DBS OFF, with continuous open-loop DBS ON and (day 4) with closed-loop adaptive DBS run on the Dareplane platform. Source: Dold, M., Pereira, J., Sajonz, B., Coenen, V.A., Thielen, J., Janssen, M.L.F., Tangermann, M. (2024). “LFP and ECoG data during CopyDraw task with deep brain stimulation - Dareplane data for proof of concept paper”. Version 1. Radboud University. https://doi.org/10.34973/d214-m342 (CC BY 4.0). Paper: Dold et al., “Dareplane: A modular open-source software platform for BCI research with application in closed-loop deep brain stimulation”, arXiv:2408.01242 (J. Neural Eng.). Please acknowledge: “Data were provided (in part) by the Radboud University, Nijmegen, The Netherlands”. ## Contents - sub-P001 (release label), sessions ses-day2, ses-day3, ses-day4 (days after implantation). - 41 recordings, 2.72 h at 22 kHz. One recording = one Neuro Omega .mat file of the release; runs are numbered in

recording order (Neuro Omega clock) within a session. acq-stimoff / acq-stimon / acq-closedloop follow the file names (copydraw_off, copydraw_on, clcopydraw_on). scans.tsv gives the source file, block number and file part for every run. Several blocks were saved in more than one file (e.g. block1 parts 0001-0004 on day 2), some only a few seconds long; they are kept as separate runs, unchanged.

  • 24 channels per recording, names from the release README CHANNEL_MAP: - LFP_1-LFP_8: Boston Scientific Vercise directional lead in the left STN (LFP_1 tip, most ventral; LFP_8 most dorsal); - LFP_9-LFP_16: same for the right STN (LFP_9 tip); - ECOG_1-ECOG_4: 4-contact Ad-Tech strip, epidural over left M1 (ECOG_1 most caudal, ECOG_4 most rostral); - EOG_1 above the right eyebrow, EOG_2 below the right eye, EOG_3 left of the left eye, EOG_4 right of the right eye. Type DBS / ECOG / EOG. The README does not say which of contacts 2-7 are the directional segments.

  • Values: the Neuro Omega int16 counts are stored unchanged (BrainVision INT_16); the header resolution is BitResolution/Gain = 38.14697265625/55 = 0.6935813210 uV per count (Neuro Omega convention). Note that the authors’ load_xdf.py treats the raw counts directly as microvolts (no gain); multiply by 55/38.14697265625 to reproduce that. LFP channels saturate (int16 limits) during stimulation; counts per channel are in code/conversion_report.json.

  • Reference and ground (paper): ECoG referenced to the left earlobe, DBS recordings to the left mastoid, ground on the right mastoid. Hardware filter settings are not stated (n/a).

  • Auxiliary Neuro Omega analog inputs (CANALOG_IN_1-8, CADD_ANALOG_IN_1-8, 2.75 kHz) are written as separate acq-<condition>analog files (MISC, raw counts, unit not documented) only where they are not constant (41 recordings).

  • No coordinates are released. electrodes.tsv lists the 16 DBS and 4 ECoG contacts with x, y, z = n/a and the stated target (STN / left M1, hemisphere).

## Events events.tsv holds two kinds of markers stored in the .mat files, aligned as in the authors’ load_xdf.py (onset = marker time on the 44 kHz Neuro Omega clock - TimeBegin of the 22 kHz channels): - port_marker: non-zero values of the Neuro Omega hardware port CPORT__1 (zeros reset the port). The values are given as

recorded. They do not always equal the CopyDraw codes (README: 10-21 start of copy-drawing trace k, 110-121 end, 50 self-paced readiness): on day 3 the port only shows value 1 and on days 2 and 4 only part of the code range appears.

  • stim_marker_<k>: the Neuro Omega stimulation marker channel CStimMarker_<k> (README: arrival times of the stimulation pulses); value is the identifier stored with the marker.

The full CopyDraw marker stream (CopyDrawParadigmMarkerStream), the LSL copy of the signals (AODataStream), the closed-loop control streams and the mouse/keyboard streams are in the XDF files in sourcedata, on the LSL clock. The release does not document an alignment between the LSL clock and the .mat sample clock other than the port markers, so the XDF markers are not copied into events.tsv. ## sourcedata/radboud-d214-m342 The release files of the patient (README.md, ABOUT.txt, LICENSE.txt, MANIFEST.txt, analysis_scripts/load_xdf.py and data/sub-P001_ses-day*/{ao,bv,lsl,behavioral}): Neuro Omega .mat exports, BrainAmp ExG BrainVision files (heart rate, respiration, GSR; days 2-3), LSL XDF files and the CopyDraw behavioural YAML files (stylus traces per trial, block settings, projection results). All SHA-256 sums matched MANIFEST.txt on download. Files changed for privacy are listed in PRIVACY_CHANGES.tsv with their new SHA-256 (all other files are byte-identical to the release). Not included: the benchtop tests (AO_test, Arduino_test, CT_* XDF/pickles), the c-VEP scalp-EEG speller data of three healthy participants (data/data_p00*), and intermediate analysis results (data/*.hdf, *.npy, *.joblib). Get them from the Radboud record. ## Privacy No names or hospital identifiers were found. Dates were reduced to year and month (day set to 01, same byte length): the export date in the .mat text headers and date strings in the XDF headers/marker strings and text files (see PRIVACY_CHANGES.tsv). The BrainVision marker files already carry the placeholder date 1900-01-01. Age, sex and handedness are those published in the paper.

License: CC-BY-4.0

Authors:

  • Matthias Dold

  • Joana Pereira

  • Bastian Sajonz

  • Volker A. Coenen

  • Jordy Thielen

  • … and 2 more

Versions:

Version

DOI

Released

current

10.82901/nemar.nm000433

§ 03Cohort · Participants

Cohort#

Dataset Statistics#

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

65
Female · 1

Sex composition

1
subjects
Female
1
HandednessRight · 1

Channel counts (ch)

1624

Sampling frequencies (Hz)

275022000

Total recording duration: 5 h 26 min

§ 04Signal · Electrodes & trace

Signal · Electrodes & live trace#

Fig. 01 Signal & montage 16 (41), 24 (41) ch · iEEG · 2750, 22000 Hz · 1 subjects, 82 recordings
Live trace viewer — sub-P001 · ses-day3 · task-copydraw · run-03

Showing one representative recording out of 1 subjects and 82 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 — NM000433
§ 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

NM000433

Title

Dareplane proof of concept: STN LFP, ECoG and EOG during the CopyDraw task with open- and closed-loop DBS (1 Parkinson’s disease patient)

Author (year)

—

Canonical

—

Importable as

NM000433

Year

2024

Authors

Matthias Dold, Joana Pereira, Bastian Sajonz, Volker A. Coenen, Jordy Thielen, Marcus L.F. Janssen, Michael Tangermann

License

CC-BY-4.0

Citation / DOI

10.82901/nemar.nm000433

Source links

OpenNeuro | NeMAR | Source URL

Copy-paste BibTeX
@dataset{nm000433,
  title = {Dareplane proof of concept: STN LFP, ECoG and EOG during the CopyDraw task with open- and closed-loop DBS (1 Parkinson's disease patient)},
  author = {Matthias Dold and Joana Pereira and Bastian Sajonz and Volker A. Coenen and Jordy Thielen and Marcus L.F. Janssen and Michael Tangermann},
  doi = {10.82901/nemar.nm000433},
  url = {https://doi.org/10.82901/nemar.nm000433},
}
§ 06API · Programmatic access

API Reference#

Signature
eegdash.dataset
class
eegdash.dataset.NM000433(cache_dir, query=None, s3_bucket=None, **kwargs)
Bases: EEGDashDataset
Author (year)—
Canonical—
Importable asNM000433
Sourceeegdash/dataset/registry.py · [source ↗]
class eegdash.dataset.NM000433(cache_dir: str, query: dict | None = None, s3_bucket: str | None = None, **kwargs)[source]#

Dareplane proof of concept: STN LFP, ECoG and EOG during the CopyDraw task with open- and closed-loop DBS (1 Parkinson’s disease patient)

Study:

nm000433 (NeMAR)

Author (year):

—

Canonical:

—

Also importable as: NM000433.

Modality: ieeg; Subject type: Unknown. Subjects: 1; recordings: 82; 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/nm000433 NeMAR dataset: https://nemar.org/dataexplorer/detail?dataset_id=nm000433 DOI: https://doi.org/10.82901/nemar.nm000433

Examples

>>> from eegdash.dataset import NM000433
>>> dataset = NM000433(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 FaceNo per-dataset mirror published yet — browse the EEGDash org listing for sibling datasets. See the datasets loader API.huggingface
Croissant 1.0Machine-readable JSON-LD descriptor — NM000433.croissant.json (MLCommons schema, ingestible by PyTorch / TensorFlow / JAX).mlcommons
Examples using EEGDashcurated · start here

Swap any load_dataset(...) call for nm000433 to reproduce the tutorial on this dataset.

Citation

Matthias Dold, Joana Pereira, Bastian Sajonz, Volker A. Coenen, Jordy Thielen, … (2024). Dareplane proof of concept: STN LFP, ECoG and EOG during the CopyDraw task with open- and closed-loop DBS (1 Parkinson's disease patient). 10.82901/nemar.nm000433

Provenance

¹Contributed to nemar in BIDS format.

²Curated & ingested by the EEGDash catalog; see CITATION.cff for canonical reference.

³Persistent identifier: 10.82901/nemar.nm000433.

BIDS
BIDS 1.10.0
Sidecars
events · channels · eeg.json
Provenance
Machine-readable
Mirrors

See Also#