DS005558: ieeg dataset, 7 subjects#
Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier)
Citation: Haydn G. Herrema, Michael J. Kahana (—). Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier). 10.18112/openneuro.ds005558.v1.0.0
7-participant iEEG dataset — Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier).
Quickstart#
Install
pip install eegdash
Access the data
from eegdash.dataset import DS005558
dataset = DS005558(cache_dir="./data")
# Get the raw object of the first recording
raw = dataset.datasets[0].raw
print(raw.info)
Filter by subject
dataset = DS005558(cache_dir="./data", subject="01")
Advanced query
dataset = DS005558(
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{ds005558,
title = {Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier)},
author = {Haydn G. Herrema and Michael J. Kahana},
doi = {10.18112/openneuro.ds005558.v1.0.0},
url = {https://doi.org/10.18112/openneuro.ds005558.v1.0.0},
}
About This Dataset#
This dataset contains behavioral events and intracranial electrophysiology recordings from a categorized free recall task with closed-loop stimulation at encoding, using a classifier trained on encoding data. The experiment consists of participants studying a list of words, presented visually one at a time, completing simple arithmetic problems that function as a distractor, and then freely recalling the words from the just-presented list in any order. The data was collected at clinical sites across the country as part of a collaboration with the Computational Memory Lab at the University of Pennsylvania. This dataset is a closed-loop stimulation version of the catFR1 and catFR2 datasets.
The word lists in this paradigm follow a specific semantic construction. Each word comes from one of 25 semantic categories, and each list of 12 items contains 6 pairs of same-category words from 3 different categories. This means that each list has 4 words from 3 semantic categories, and in each half of the list there will be 1 pair of words from each category. For example, if a list contains words from categories A, B, and C, a possible list construction would be:
A1 - A2 - B1 - B2 - C1 - C2 - A3 - A4 - C3 - C4 - B3 - B4 This study contains closed-loop electrical stimulation of the brain during encoding. There is no stimulation during the distractor or retrieval phases. Stimulation is delivered to a single electrode at a time, and the stimulation parameters are included in the bevavioral events tsv files, denoting the anode/cathode labels, amplitude, pulse frequency, pulse width, and pulse count.
Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier)
Description
Classifier Details
The L2 logistic regression classifier is trained to predict whether an encoded item will be subsequently recalled based on the neural features during encoding, using data from a participant’s catFR1 sessions. The bipolar recordings during the 0-1366 ms interval after word presentation are filtered with a Butterworth band stop filter (58-62 Hz, 4th order) to remove 60 Hz line noise, and then a Morlet wavelet transformation (wavenumber = 5) is applied to the signal to estimate spectral power, using 8 log-spaced wavelets between 3-180 Hz (center frequencies 3.0, 5.4, 9.7, 17.4, 31.1, 55.9, 100.3, 180 Hz) and 1365 ms mirrored buffers. The powers are log-transformed and downsampled to a 50 Hz sampling frequency prior to removal of the buffer, and then z-transformed based on the within-session mean and standard deviation across all encoding events. These z-transformed log power values represent the feature matrix, and the label vector is the recalled status of the encoded items. The penalty parameter is chosen based on the value that leads to the highest average AUC for all prior participants with at least two catFR1 sessions, and is inversely weighted according to the class (i.e., recalled v. not recalled) imbalance to ensure the best fit values of the penalty parameter are comparable across different class distributions (recall rates). Class weights are computed as: (1/Na) / ((1/Na + 1/Nb) / 2) where Na and Nb are the number of events in each class.
After at least 3 training sessions with a minimum of 15 lists, each participant’s classifier is tested using leave-one-session-out (LOSO) cross validation, and the true AUC is compared to a 200-sample AUC distribution generated from classification of label-permuted data. p < 0.05 (one-sided) is used as the significance threshold for continuing to the closed-loop task.
Closed-Loop Procedure
Each session contains 26 lists (the first being a practice list) and there is no stimulation on the first 4 lists. The classifier ouput for each presented item on the first 4 lists is compared to the classifier output when tested on data from all previous sessions using a two-sample Kolmogorov-Smirnov test. The null hypothesis that the current session and the training data come from the same distribution must not be rejected (p > 0.05) for the closed-loop task to continue.
The remaining 22 lists are equally divided into stimulation and no stimulation lists, with conditions balanced in each half of the session. On stimulation lists, classifier output is evaluated during the 0-1366 ms interval following word presentation onset. The input values are normalized using the mean and standard deviation across encoding events on all prior no stimulation lists in the session. If the classifier output is below the threshold value, stimulation occurs immediately following the 1366 ms decoding interval and lasts for 500 ms. The classifier threshold is calculated for each participant individually using Youden’s J statistic and is chosen as the maximal J value across all points on the participant’s training sessions’ ROC curve. With a 750-1000 ms inter-stimulus interval, there is enough time for stimulation artifacts to subside before the next word onset (next classifier decoding).
To Note
* The iEEG recordings are labeled either “monopolar” or “bipolar.” The monopolar recordings are referenced (typically a mastoid reference), but should always be re-referenced before analysis. The bipolar recordings are referenced according to a paired scheme indicated by the accompanying bipolar channels tables. * Each subject has a unique montage of electrode locations. MNI and Talairach coordinates are provided when available. * Recordings done with the Blackrock system are in units of 250 nV, while recordings done with the Medtronic system are estimated through testing to have units of 0.1 uV. We have completed the scaling to provide values in V.
Contact
For questions or inquiries, please contact sas-kahana-sysadmin@sas.upenn.edu.
Cohort#
Dataset Statistics#
Age distribution by gender (n=7, range 41–63 yr, mean 51.0 yr)
Sex composition
Channel counts (ch)
Sampling frequencies: 1000.0 Hz (n=22 recordings)
Total recording duration: 17 h 0 min
Signal · Electrodes & live trace#
Live trace viewer — sub-R1264P · ses-0 · task-catFR3
Showing one representative recording out of
7 subjects and 22 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.
Electrode layout — iEEG · 126 sensors — 126 channels
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 |
Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier) |
Author (year) |
|
Canonical |
— |
Importable as |
|
Year |
— |
Authors |
Haydn G. Herrema, Michael J. Kahana |
License |
CC0 |
Citation / DOI |
|
Source links |
OpenNeuro | NeMAR | Source URL |
Copy-paste BibTeX
@dataset{ds005558,
title = {Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier)},
author = {Haydn G. Herrema and Michael J. Kahana},
doi = {10.18112/openneuro.ds005558.v1.0.0},
url = {https://doi.org/10.18112/openneuro.ds005558.v1.0.0},
}
API Reference#
eegdash.datasetEEGDashDatasetDS005558 · Herrema2024_Categorized_Freeeegdash/dataset/registry.py · [source ↗]- class eegdash.dataset.DS005558(cache_dir: str, query: dict | None = None, s3_bucket: str | None = None, **kwargs)[source]#
Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier)
- Study:
ds005558(OpenNeuro)- Author (year):
Herrema2024_Categorized_Free- Canonical:
—
Also importable as:
DS005558,Herrema2024_Categorized_Free.Modality:
ieeg; Experiment type:Memory; Subject type:Surgery. Subjects: 7; recordings: 22; 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/ds005558 NeMAR dataset: https://nemar.org/dataexplorer/detail?dataset_id=ds005558 DOI: https://doi.org/10.18112/openneuro.ds005558.v1.0.0 NEMAR citation count: 0
Examples
>>> from eegdash.dataset import DS005558 >>> dataset = DS005558(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/ds005558").huggingfaceSwap any load_dataset(...) call for ds005558 to reproduce the tutorial on this dataset.
Citation
Haydn G. Herrema, Michael J. Kahana (n.d.). Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier). 10.18112/openneuro.ds005558.v1.0.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.ds005558.v1.0.0.
Related & sibling datasets
+ 1 more — see See Also below →
See Also#
eegdash.dataset.EEGDashDataseteegdash.dataset