OSCR

Direct electrical stimulation of the human amygdala enhances recognition memory for objects but not scenes.

Code ↔ Paper

4 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 4 matches
  1. [1] § Methods › Electrophysiological data analysis ↔ CCEPPrepro.ipynb, lines 125–180 · score 0.84 · Butterworth bandpass filter, 0.1–150 Hz, notch filters, rejected, baseline, epochs
  2. [2] § Methods › Behavioral tasks › Recognition-memory task procedure ↔ BLAES_Aim2_StudyPhase_BehavioralAnalysis.m, lines 1–139 · score 0.75 · 0.5–1.5 s, dislike, instructions, fixation, encoding, phase
  3. [3] § Methods › Electrophysiological data analysis ↔ CCEPAnalyses.ipynb, lines 148–226 · score 0.59 · peak amplitude, 900, scored, 10 ms, 0.1 Hz
  4. [4] § Methods › Behavioral tasks › Recognition-memory task procedure ↔ BLAES_Aim2_ItemScene_ResponseTime.m, lines 38–123 · score 0.54 · image onset, 1.5 s, offset, fixation, scene, stimuli

Paper

Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

Jupyter notebook · 205 lines · 6.5 KB · no license · 1 match

  1. # %% [markdown]
  2. # # CCEP Preprocessing
  3. #
  4. # Load in re-structured data (created in `createStimTrialEpochs.m`) and preprocesses the CCEPs.
  5. #
  6. #
  7. # ---
  8. # > Justin Campbell & Krista Wahlstrom
  9. # > Version: 3/05/2024
  10. # %% [markdown]
  11. # ### 1. Setup
  12. # %%
  13. # Import libraries
  14. import os
  15. import mne
  16. import sys
  17. import glob
  18. import scipy.io
  19. import numpy as np
  20. import pandas as pd
  21. import seaborn as sns
  22. import matplotlib.pyplot as plt
  23. from scipy.signal import savgol_filter
  24. from scipy.signal import iirnotch, lfilter, sosfilt, butter
  25. # Load utility functions
  26. sys.path.insert(0, 'MNE Utils')
  27. from prepro_utils import select_BLAES_macros, create_bipolar_montage
  28. # Notebook settings
  29. %matplotlib inline
  30. %config InlineBackend.figure_format='retina'
  31. # %% [markdown]
  32. # ### 2. Import Data
  33. # Load the `*StimEpochs.mat` file generated by `createStimTrialEpochs.m`.
  34. # %%
  35. # Define file to analyze
  36. pID = 'UIC202208'
  37. stimPair = 'RAMG2-RAMG3'
  38. # %%
  39. # Define datapath and find datafiles
  40. #datapath = '/Users/justincampbell/Library/CloudStorage/Box-Box/INMANLab/BCI2000/BLAES Aim 2.1/CCEPs/Data/' # Justin's path
  41. datapath = '/Users/inmanlab/Library/CloudStorage/Box-Box/INMANLab/BCI2000/BLAES Aim 2.1/CCEPs/Data' #Krista's path
  42. if pID[0:3] == 'UIC':
  43. fileType = 'Utah'
  44. datapath = os.path.join(datapath, 'Utah_Data')
  45. else:
  46. fileType = 'WashU'
  47. datapath = os.path.join(datapath, 'WashU_Data')
  48. # Find all files for this patient
  49. dataFile = glob.glob(os.path.join(datapath, pID) + '/' + pID + '_' + stimPair + '*.mat')
  50. filepath = dataFile[0]
  51. # Create Prepro folder if it does not already exist
  52. preproDataPath = os.path.join(datapath, 'Prepro')
  53. if not os.path.exists(preproDataPath):
  54. os.mkdir(preproDataPath)
  55. # %%
  56. # Load data
  57. mat = scipy.io.loadmat(filepath, simplify_cells = True)
  58. data = mat['epochData'] # samples x channels x trials (± 900ms peri-stim onset)
  59. chanNames = mat['chanNames']
  60. fs = mat['fs']
  61. # %% [markdown]
  62. # ### 3. Data Processing
  63. # - Select macroelectrode channels
  64. # - Convert from uV to V
  65. # - Create `MNE` objects
  66. # - Bipolar re-reference
  67. # - 60/120 Hz notch filter
  68. # - Manually reject bad channels ± epochs
  69. # %%
  70. def find_macro_idxs(pID, chans):
  71. # Use helper function from prepro_utils.py
  72. macro_chan_idxs = select_BLAES_macros(chans)
  73. # Special cases (remove non sEEG channels)
  74. if pID == 'BJH025':
  75. bad_chan_idxs = [i for i, s in enumerate(chans) if s in ['FP1', 'P3', 'O1', 'FP2', 'P4', 'O2', 'P7', 'P8', 'F9', 'F10']]
  76. macro_chan_idxs = [i for i in macro_chan_idxs if i not in bad_chan_idxs]
  77. elif pID == 'BJH019':
  78. bad_chan_idxs = [i for i, s in enumerate(chans) if s in ['fp1', 'f3', 'c3', 'p3', 'o1', 'f7', 't7', 'p7', 'f9', 'fp2', 'f4', 'p4', 'o2', 'f8', 'p8', 'f10']]
  79. macro_chan_idxs = [i for i in macro_chan_idxs if i not in bad_chan_idxs]
  80. return macro_chan_idxs
  81. # %%
  82. # Get macroelectrode indices for each patient
  83. macro_idxs = find_macro_idxs(pID, chanNames)
  84. macro_labels = chanNames[macro_idxs]
  85. # Filter data to include only macroelectrode channels
  86. data = data[:, macro_idxs, :]
  87. data = data[:-1,:,:]
  88. # Convert from uV to V
  89. data = data / 1e6
  90. # Reshape data
  91. data = np.ravel(data.transpose(1,2,0))
  92. data = data.reshape(len(macro_idxs), -1)
  93. # Add pseudo-sample to prevent epoch cutoff
  94. data = np.append(data, np.zeros((len(macro_idxs), 1)), axis = 1)
  95. # Create MNE info and raw objects
  96. info = mne.create_info(ch_names = chanNames[macro_idxs].tolist(), ch_types = 'seeg', sfreq = fs)
  97. macros = mne.io.RawArray(data, info)
  98. # Visualize data to reject bad channels
  99. macros.plot()
  100. # %%
  101. # Bipolar re-reference
  102. anodes, cathodes = create_bipolar_montage(macro_labels, display = True)
  103. #Eliminate duplicate channels (issue for BJH025 in particular)
  104. anodes_clean = []
  105. cathodes_clean = []
  106. for x in anodes:
  107. if x not in anodes_clean:
  108. anodes_clean.append(x)
  109. for x in cathodes:
  110. if x not in cathodes_clean:
  111. cathodes_clean.append(x)
  112. macrosBIP = mne.set_bipolar_reference(macros.pick(np.unique(anodes_clean+cathodes_clean)), anode = anodes_clean, cathode = cathodes_clean, drop_refs = True)
  113. chanNamesBIP = macrosBIP.ch_names
  114. # Create list of events
  115. events = mne.make_fixed_length_events(macrosBIP, id = 1, start = 0, duration = 1.8)
  116. # Re-create epochs using MNE
  117. epochs = mne.Epochs(macrosBIP, events, tmin=0, tmax = 1.8, baseline=None, preload=True)
  118. #### FILTERING
  119. # Separate pre- and post- data
  120. preData = epochs.copy().crop(tmin = 0, tmax = 0.9).get_data()
  121. postData = epochs.copy().crop(tmin = 0.9).get_data()
  122. # Create 60/120 Hz notch filters
  123. b60, a60 = iirnotch(w0 = 60, Q = 25, fs = fs)
  124. b120, a120 = iirnotch(w0 = 120, Q = 25, fs = fs)
  125. # Create bandpass filter
  126. sosButter = butter(N = 7, Wn = [0.1, 150], fs = fs, btype = 'bandpass', output = 'sos')
  127. # Apply CAUSAL filters towards stim (pre-)
  128. preData = lfilter(b60, a60, preData, axis = 2) # 60 Hz notch
  129. preData = lfilter(b120, a120, preData, axis = 2) # 120 Hz notch
  130. preData = sosfilt(sosButter, preData, axis = 2) # 7th order butterworth bandpass
  131. # Apply CAUSAL filters towards stim (post-)
  132. postData = np.fliplr(postData)
  133. postData = lfilter(b60, a60, postData, axis = 2) # 60 Hz notch
  134. postData = lfilter(b120, a120, postData, axis = 2) # 120 Hz notch
  135. postData = sosfilt(sosButter, postData, axis = 2) # 7th order butterworth bandpass
  136. postData = np.fliplr(postData)
  137. # Concatenate pre- and post- data
  138. procData = np.concatenate((preData, postData), axis = 2)
  139. # Re-create MNE epochs
  140. epochs = mne.EpochsArray(procData, epochs.info, events)
  141. # Visualize to reject epochs
  142. epochs.plot()
  143. # %% [markdown]
  144. # #### 3.1 Export Processed Data
  145. # %%
  146. savestr = pID + "_" + stimPair
  147. if not os.path.exists(os.path.join(preproDataPath, savestr)):
  148. os.mkdir(os.path.join(preproDataPath, savestr))
  149. # Get processed data, list of rejected epochs, list of bad_chans
  150. drop_epochs = [n for n, dl in enumerate(epochs.drop_log) if len(dl)]
  151. events_mask = np.ones(events.shape[0], dtype = bool)
  152. events_mask[drop_epochs] = False
  153. keep_events = events[events_mask]
  154. drop_chans = epochs.info['bads']
  155. # Export dropped epochs, dropped chans, events, and channel labels to .csv files
  156. np.save(os.path.join(preproDataPath, savestr, ('PreproData')), epochs.get_data())
  157. np.save(os.path.join(preproDataPath, savestr, ('Events')), keep_events)
  158. pd.DataFrame(drop_epochs, columns = ['Dropped Epochs']).to_csv(os.path.join(preproDataPath, savestr, 'DroppedEpochs.csv'))
  159. pd.DataFrame(drop_chans, columns = ['Dropped Chans']).to_csv(os.path.join(preproDataPath, savestr, 'DroppedChans.csv'))
  160. pd.DataFrame(epochs.ch_names, columns = ['Chan']).to_csv(os.path.join(preproDataPath, savestr, 'ChanLabels.csv'))
  161. # %%

CCEPPrepro.ipynb at commit fdbba9c, no license · at the source

Overview

Authors: Krista L. Wahlstrom1, Justin M. Campbell2, Martina K. Hollearn1, James Swift3,4, Markus Adamek3,4, Gansheng Tan3,4, Lou Blanpain5, Tao Xie3,4, Tyler Davis6, Peter Brunner3,4, Stephan B. Hamann7, Amir Arain8, Lawrence N. Eisenman9, John D. Rolston10, Shervin Rahimpour6, Joseph R. Manns7, Jon T. Willie4,11, Cory S. Inman1,2
  1. Department of Psychology, University of Utah,Salt Lake City, UT USA
  2. Interdepartmental Program in Neuroscience, University of Utah,Salt Lake City, UT USA
  3. Department of Neurological Surgery, Washington University School of Medicine,St. Louis, MO USA
  4. National Center for Adaptive Neurotechnologies, St. Louis, MO USA
  5. Department of Neuroscience, Emory University,Atlanta, GA USA
  6. Department of Neurosurgery, University of Utah,Salt Lake City, UT USA
  7. Department of Psychology, Emory University,Atlanta, GA USA
  8. Department of Neurology, University of Utah,Salt Lake City, UT USA
  9. Department of Neurology, Washington University School of Medicine,St. Louis, MO USA
  10. Department of Neurosurgery, Mass General Brigham, Harvard Medical School,Boston, MA USA
  11. Dell Medical School, The University of Texas at Austin,Austin, TX USA
Institutions: University of Utah (United States); Emory University (United States); Washington University in St. Louis (United States); Mass General Brigham (United States); The University of Texas at Austin (United States)
Journal: Communications biology, volume 9, issue 1, article 1100
Dates: received 9 July 2025; accepted 5 May 2026; published online 22 May 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1038/s42003-026-10270-4 · PMID 42174234 · PMCID PMC13473522 · OpenAlex W4411123928
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: human (organism), cognitive (subfield)
Methods: Spectral & time-frequency, Preprocessing, Evoked potentials, Statistics, Machine learning
Keywords: Cognitive neuroscience, Human behaviour, Long-term memory, Neurophysiology, Hippocampus
MeSH: Amygdala*, Basolateral Nuclear Complex*, Electric Stimulation*, Memory*, Recognition, Psychology*, Adult, Female, Humans, Male, Temporal Lobe, Young Adult (* major topic)
Topic: Memory and Neural Mechanisms (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Citations: not cited yet (Europe PMC); 73 references in the paper

Abstract

Research from studies using invasive neuroanatomy-inspired direct manipulations suggests the basolateral amygdala (BLA) mediates a generalized modulation of many different types of memory. In contrast, noninvasive indirect correlations suggest that specificity exists in how the BLA prioritizes experiences in memory. We used direct electrical stimulation of the BLA to investigate the specificity of the memory enhancement in the human brain. Patients undergoing intracranial monitoring via depth electrodes viewed object and scene images, half of which were followed by BLA stimulation. Stimulation enhanced long-term memory for object but not scene images. Furthermore, BLA stimulation elicited stronger evoked responses in the anterior vs. posterior medial temporal lobe (MTL), regions that preferentially process object and scene learning, respectively. These results suggest the BLA exerts an important influence over the specificity of what information is prioritized in memory, rather than a general enhancement of all memory, and provide insight into how BLA-MTL projections contribute to the dynamics of memory prioritization.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repository

Its files are read in the Code ↔ Paper reader above, with 4 matches between paragraphs and lines of code.

INMANLab/BLAES_Objects-Scenes_Manuscript_Wahlstrom

License: none: the authors keep all their rights
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Commit: fdbba9c3a10b695ff2da3621aa49b414fc216640, 23 October 2024
Languages: MATLAB (12), Jupyter (2), Python (1)
Size: 19 files, 15 scripts
Software Heritage: not archived
Found in: “Code availability”
Holds: README, 2 notebooks
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: NumPy (3 files), Matplotlib (2 files), MNE-Python (2 files), pandas (2 files), SciPy (2 files), seaborn (2 files), Image Processing Toolbox (1 file), Statistics and Machine Learning Toolbox (1 file)
Availability: 1 check, the latest on 28 September 2026: the link answers
  • 28 September 2026: the link answers
16 files

Code availability

The code used to analyze the current study’s data is available on the INMAN Laboratory’s GitHub repository (https://github.com/INMANLab/BLAES_Objects-Scenes_Manuscript_Wahlstrom).

Reproduced under the paper's license (CC BY), from the paper cited above.

Tracing map

Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.

What the map holds:

  • 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 15 scripts, each with its path and the digest of its content;
  • 4 matches between paragraphs of the paper and lines of the code (method lexical-v1);
  • neither the text of the paper nor the code itself.

Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.

Data

No dataset and no data link were found in the paper.

Data availability

The datasets generated are available through the NIMH Data Archive (collection ID 3688).

Reproduced under the paper's license (CC BY), from the paper cited above.

Versions

The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.

Version 1, 28 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 18 authors, 5 keywords, 11 MeSH terms, 1 funder, 71 references.

Cite

This paper

Wahlstrom, K. L., Campbell, J. M., Hollearn, M. K., Swift, J., Adamek, M., Tan, G., Blanpain, L., Xie, T., Davis, T., Brunner, P., Hamann, S. B., Arain, A., Eisenman, L. N., Rolston, J. D., Rahimpour, S., Manns, J. R., Willie, J. T., & Inman, C. S. (2026). Direct electrical stimulation of the human amygdala enhances recognition memory for objects but not scenes. Communications biology, 9(1), 1100. https://doi.org/10.1038/s42003-026-10270-4

BibTeX

@article{wahlstrom2026direct,
author = {Wahlstrom, Krista L. and Campbell, Justin M. and Hollearn, Martina K. and Swift, James and Adamek, Markus and Tan, Gansheng and Blanpain, Lou and Xie, Tao and Davis, Tyler and Brunner, Peter and Hamann, Stephan B. and Arain, Amir and Eisenman, Lawrence N. and Rolston, John D. and Rahimpour, Shervin and Manns, Joseph R. and Willie, Jon T. and Inman, Cory S.},
title = {{Direct electrical stimulation of the human amygdala enhances recognition memory for objects but not scenes}},
journal = {Communications biology},
year = {2026},
month = may,
volume = {9},
number = {1},
pages = {1100},
publisher = {Nature Publishing Group},
issn = {2399-3642},
doi = {10.1038/s42003-026-10270-4},
url = {https://doi.org/10.1038/s42003-026-10270-4},
pmid = {42174234},
pmcid = {PMC13473522}
}

RIS

TY - JOUR
AU - Wahlstrom, Krista L.
AU - Campbell, Justin M.
AU - Hollearn, Martina K.
AU - Swift, James
AU - Adamek, Markus
AU - Tan, Gansheng
AU - Blanpain, Lou
AU - Xie, Tao
AU - Davis, Tyler
AU - Brunner, Peter
AU - Hamann, Stephan B.
AU - Arain, Amir
AU - Eisenman, Lawrence N.
AU - Rolston, John D.
AU - Rahimpour, Shervin
AU - Manns, Joseph R.
AU - Willie, Jon T.
AU - Inman, Cory S.
TI - Direct electrical stimulation of the human amygdala enhances recognition memory for objects but not scenes
T2 - Communications biology
J2 - Commun Biol
PY - 2026
DA - 2026/05/22
VL - 9
IS - 1
SP - 1100
SN - 2399-3642
PB - Nature Publishing Group
DO - 10.1038/s42003-026-10270-4
UR - https://doi.org/10.1038/s42003-026-10270-4
LA - en
ER -

CSL-JSON

{
"id": "10.1038/s42003-026-10270-4",
"type": "article-journal",
"title": "Direct electrical stimulation of the human amygdala enhances recognition memory for objects but not scenes",
"container-title": "Communications biology",
"author": [
{
"family": "Wahlstrom",
"given": "Krista L."
},
{
"family": "Campbell",
"given": "Justin M."
},
{
"family": "Hollearn",
"given": "Martina K."
},
{
"family": "Swift",
"given": "James"
},
{
"family": "Adamek",
"given": "Markus"
},
{
"family": "Tan",
"given": "Gansheng"
},
{
"family": "Blanpain",
"given": "Lou"
},
{
"family": "Xie",
"given": "Tao"
},
{
"family": "Davis",
"given": "Tyler"
},
{
"family": "Brunner",
"given": "Peter"
},
{
"family": "Hamann",
"given": "Stephan B."
},
{
"family": "Arain",
"given": "Amir"
},
{
"family": "Eisenman",
"given": "Lawrence N."
},
{
"family": "Rolston",
"given": "John D."
},
{
"family": "Rahimpour",
"given": "Shervin"
},
{
"family": "Manns",
"given": "Joseph R."
},
{
"family": "Willie",
"given": "Jon T."
},
{
"family": "Inman",
"given": "Cory S."
}
],
"container-title-short": "Commun Biol",
"volume": "9",
"issue": "1",
"page": "1100",
"DOI": "10.1038/s42003-026-10270-4",
"PMID": "42174234",
"PMCID": "PMC13473522",
"ISSN": "2399-3642",
"publisher": "Nature Publishing Group",
"URL": "https://doi.org/10.1038/s42003-026-10270-4",
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
22
]
]
}
}

The tracing map gets a citation of its own once an author has validated it and it has a DOI.

Similar papers

The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.

[1] doi:10.1038/s41467-026-70287-5 [code]
Cortical-limbic circuit dynamics of approach-avoidance conflict in humans.
Journal: Nature communications
In common: MNE-Python, seaborn, pandas, 3 other tools, 1 reference, 2 authors
[2] doi:10.1002/brb3.71507 [code]
Anti-Seizure Medications Alter Functional and Effective Connectivity as Measured With Intracranial Electroencephalography.
Journal: Brain and behavior
In common: Statistics and Machine Learning Toolbox, 7 references
[3] doi:10.1038/s41467-026-74099-5 [code]
Right amygdala ablation reduces maladaptive negative interpretation bias and symptoms in a patient with post-traumatic stress disorder.
Journal: Nature communications
In common: Image Processing Toolbox, Statistics and Machine Learning Toolbox, 2 authors
[4] doi:10.1093/brain/awaf317 [code]
High-resolution electrophysiological mapping of effective connectivity of lateral prefrontal cortex.
Journal: Brain : a journal of neurology
In common: MNE-Python, pandas, SciPy, 2 other tools, 4 references
[5] doi:10.1162/imag.a.1213
Neural correlates of emotional memory enhancement: The role of valence and arousal.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: cognitive, 6 references
[6] doi:10.1002/ana.78206 [code]
Multimodal Image Guidance in Subthalamic Deep Brain Stimulation for Parkinson's Disease.
Journal: Annals of neurology
In common: Image Processing Toolbox, Statistics and Machine Learning Toolbox, seaborn, 4 other tools, 2 references
[7] doi:10.1162/imag.a.105 [code]
Right posterior theta reflects human parahippocampal phase resetting by salient cues during goal-directed navigation
Journal: n/a
In common: MNE-Python, Statistics and Machine Learning Toolbox, seaborn, 4 other tools, cognitive, 1 reference
[8] doi:10.1016/j.isci.2026.116586 [code]
Condition-specific neural signatures of reactivation during post-retrieval rest: An EEG study.
Journal: iScience
In common: MNE-Python, Image Processing Toolbox, Statistics and Machine Learning Toolbox, 5 other tools, cognitive
[9] doi:10.1038/s41593-026-02258-4 [code]
Laminar organization of cellular microcircuits modulating human interictal epileptiform discharges.
Journal: Nature neuroscience
In common: MNE-Python, Image Processing Toolbox, Statistics and Machine Learning Toolbox, 5 other tools
[10] doi:10.1038/s41597-026-07215-1 [code]
The Brain, Body, and Behavior Dataset (BBBD): Multimodal Recordings during Educational Videos.
Journal: Scientific data
In common: MNE-Python, Image Processing Toolbox, Statistics and Machine Learning Toolbox, 5 other tools

Contribute

The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.

Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.

Request its removal

To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).

Discussion, reproductions, activity

Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.

Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.