DS005558#

Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier)

Access recordings and metadata through EEGDash.

Citation: Haydn G. Herrema, Michael J. Kahana (2024). Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier). 10.18112/openneuro.ds005558.v1.0.0

Modality: ieeg Subjects: 9 Recordings: 165 License: CC0 Source: openneuro Citations: 0.0

Metadata: Complete (100%)

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#

Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier)

Description

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:

View full README

Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier)

Description

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.

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.

Dataset Information#

Dataset ID

DS005558

Title

Categorized Free Recall with Closed-Loop Stimulation at Encoding (Encoding Classifier)

Year

2024

Authors

Haydn G. Herrema, Michael J. Kahana

License

CC0

Citation / DOI

doi:10.18112/openneuro.ds005558.v1.0.0

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},
}

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!

Report an Issue on GitHub

Technical Details#

Subjects & recordings
  • Subjects: 9

  • Recordings: 165

  • Tasks: 1

Channels & sampling rate
  • Channels: 126 (6), 78 (4), 114 (4), 113 (4), 128 (4), 124 (4), 156 (4), 68 (4), 122 (2), 64 (2), 110 (2), 56 (2), 90 (2)

  • Sampling rate (Hz): 1000.0

  • Duration (hours): 0.0

Tags
  • Pathology: Not specified

  • Modality: Visual

  • Type: Memory

Files & format
  • Size on disk: 12.2 GB

  • File count: 165

  • Format: BIDS

License & citation
  • License: CC0

  • DOI: doi:10.18112/openneuro.ds005558.v1.0.0

Provenance

API Reference#

Use the DS005558 class to access this dataset programmatically.

class eegdash.dataset.DS005558(cache_dir: str, query: dict | None = None, s3_bucket: str | None = None, **kwargs)[source]#

Bases: EEGDashDataset

OpenNeuro dataset ds005558. Modality: ieeg; Experiment type: Memory; Subject type: Unknown. 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

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/ds005558 NeMAR dataset: https://nemar.org/dataexplorer/detail?dataset_id=ds005558

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, overwrite=False)[source]#

Save the dataset to disk.

Parameters:
  • path (str or Path) – Destination file path.

  • overwrite (bool, default False) – If True, overwrite existing file.

Return type:

None

See Also#