The Neural Processes Underpinning Flexible Semantic Retrieval in Visual and Auditory Modalities.
The 1 match
- [1] § Methods › Procedure ↔ auditory_semantic_control.py, lines 296–340 · score 0.66 · jittered fixation, Experiment starts soon, pressed, onset, probes, stimulus
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
Python · 543 lines · 18 KB · no license · 1 match
- # -*- coding: utf-8 -*-
- """
- @author: xs1019, xw1365
- This script presents the following events in the following order:
- ITI [+] --> [cue] --> [word1] --> [word2]--> [+]
- 1. presents GUI to collect participant info
- 2. creates output file for participant (no risk of overwriting because each file is unique due to the timestamp)
- 3. presents instructions
- 4. presents stimuli and accept keypress
- """
- from psychopy import visual, core, monitors, event, sound, gui, logging
- from datetime import datetime
- from random import shuffle
- import os
- import time
- import csv
- import sys, os, errno # to get file system encoding (used in setDir())
- import numpy as np
- import random
- from collections import OrderedDict
- import numpy as np
- import sounddevice
- import soundfile
- import time
- #%%
- # Experiment constants
- instruct_file = 'semantic_relation_instru.csv'
- rest_file = 'semantic_relation_judgement_rest.csv'
- expName = 'SemanticRelationJudgement' # the experiment name
- data_folder = 'data' + '_' + expName # make a directory to store data
- stimuli_name = 'sem_stim_run'
- fixa_name = 'sem_fixa_run'
- stimul_folder = 'auditory_stimuli'
- stimul_csv_folder = 'stimuli_csv'
- # assign the monitor name
- monitor_name = 'HP ProOne 600'
- # window size = x, y
- win_size_x = 1920
- win_size_y = 1080
- # window background color
- win_bg_col = (1.0,1.0,1.0) # background color is black
- win_text_col = (-1,-1,-1) # text color is white
- # instruction, position height (font size)
- instru_pos = (0,0) # (0,0) indicates the central position
- clue_pos = (0,0)
- fixa_pos = (0,0)
- #remin_pos = (0,0)
- probe_pos = (0,0)
- target_pos = (0,0)
- image_pos = (0,0)
- instru_h = 80
- text_h = 100
- num_trials = 45 # total trial numbers of each run
- # presentation time of clue and probe
- clue_time = 1
- probe_time = 1
- # response time
- timelimit_deci = 3
- ## define functions
- # get the current directory of this script - correct
- def get_pwd():
- global curr_dic
- curr_dic = os.path.dirname(sys.argv[0])
- return curr_dic
- # make a folder in the current directory used to store data - correct
- def makedir(folder_name):
- os.chdir(curr_dic)
- if not os.path.exists(folder_name):
- os.makedirs(folder_name)
- # call the functions defined
- # get the current directory
- curr_dic = get_pwd()
- #%%
- # initialize the sound card, it takes a few seconds to initialize the sound card. So you need to play a blank/testing sound at the beginning of your experiment.
- filename = os.path.join(curr_dic,'test.wav')
- data, sr = soundfile.read(filename)
- test_data = np.zeros((sr * 3, 2), dtype=np.float32)
- # Play blank sound to initialise sound card
- sounddevice.play(test_data, sr, blocking=True)
- import time
- time.sleep(10)
- # make a directory – data to store the generated data
- makedir(data_folder)
- # quit functions - to allow subjects to quit the experiment - correct
- def shutdown ():
- win.close()
- core.quit()
- # get the participants info, initialize the screen and create a data file for this subject
- def info_gui(expName):
- # Set up a dictionary in which we can store our experiment details
- expInfo={}
- expInfo['expname'] =expName
- # Create a string version of the current year/month/day hour/minute
- expInfo['expdate']=datetime.now().strftime('%Y%m%d_%H%M')
- expInfo['subjID']=''
- #expInfo['subjName']=''
- expInfo['run']=''
- # Set up our input dialog
- # Use the 'fixed' argument to stop the user changing the 'expname' parameter
- # Use the 'order' argumennt to set the order in which to display the fields
- dlg = gui.DlgFromDict(expInfo,title='input data', fixed = ['expname','expdate'],order =['expname','expdate','subjID','run'])
- if not dlg.OK:
- print ('User cancelled the experiment')
- core.quit()
- # creates a file with a name that is absolute path + info collected from GUI
- filename = data_folder + os.sep + '%s_%s_%s.csv' %(expInfo['subjID'], expInfo['expdate'], expInfo['run'])
- stimuli_file = stimuli_name +expInfo['run']+'.csv'
- fixa_file = fixa_name + expInfo['run']+'.csv'
- return expInfo, filename,stimuli_file,fixa_file
- # to avoid overwrite the data. Check whether the file exists, if not, create a new one and write the header.
- # Otherwise, rename it - repeat_n
- # correct
- def write_file_not_exist(filename):
- repeat_n = 1
- while True:
- if not os.path.isfile(filename):
- f = open(filename,'w')
- # f.write(header)
- break
- else:
- filename = data_folder + os.sep + '%s_%s_%s_repeat_%s.csv' %(expInfo['subjID'], expInfo['expdate'],str(repeat_n))
- repeat_n = repeat_n + 1
- # Open a csv file, read through from the first row # correct
- def load_conditions_dict(conditionfile):
- #load each row as a dictionary with the headers as the keys
- #save the headers in its original order for data saving
- # csv.DictReader(f,fieldnames = None): create an object that operates like a regular reader
- # but maps the information in each row to an OrderedDict whose keys
- # are given by the optional fieldnames parameter.
- with open(conditionfile) as csvfile:
- reader = csv.DictReader(csvfile)
- trials = []
- for row in reader:
- trials.append(row)
- # save field names as a list in order
- fieldnames = reader.fieldnames # filenames is the first row, which used as keys of trials
- return trials, fieldnames # trial is a list, each element is a key-value pair. Key is the
- # header of that column and value is the corresponding value
- # Create the log file to store the data of the experiment
- # create the header
- def write_header(filename, header):
- with open (filename,'a') as csvfile:
- fieldnames = header
- data_file = csv.DictWriter(csvfile,fieldnames=fieldnames,lineterminator ='\n')
- data_file.writeheader()
- #write each trial
- def write_trial(filename,header,trial):
- with open (filename,'a') as csvfile:
- fieldnames = header
- data_file = csv.DictWriter(csvfile,fieldnames=fieldnames,lineterminator ='\n')
- data_file.writerow(trial)
- def read_fix_from_csv(fixa_file):
- """
- read random fixation file from fixa_file and shuffle and write them in a list
- fixa_file is the random fixa time file
- argument:sem_fixa_run1.csv, sem_fixa_run2.csv,sem_fixa_run3.csv,sem_fixa_run4.csv
- """
- f = open(fixa_file,'r')
- fixa_list = []
- for line in f.readlines():
- line = line.strip()
- line = float(line)
- fixa_list.append(line)
- return fixa_list , sum(fixa_list)
- # generate the ideal onset of each trial
- def gen_ideal_onset(fixa_list,num_trials):
- ideal_trial_onset =[]
- for trial_num in range(1, num_trials+1,1):
- if trial_num ==1:
- trial_onset = fixa_list[0]
- else:
- fixa_sum =fixa_list[0]
- for fixa_index in range(1,(trial_num-1)*3+1,1):
- fixa_sum+= fixa_list[fixa_index]
- trial_onset = fixa_sum + (clue_time + probe_time + timelimit_deci)*(trial_num -1)
- ideal_trial_onset.append(trial_onset)
- return ideal_trial_onset
- # set up the window
- # fullscr: better timing can be achieved in full-screen mode
- # allowGUI: if set to False, window will be drawn with no frame and no buttons to close etc...
- def set_up_window():
- mon = monitors.Monitor(monitor_name)
- mon.setDistance (114)
- win = visual.Window([win_size_x,win_size_y],fullscr = True, monitor = mon,allowGUI = True, winType = 'pyglet', units="pix",color=win_bg_col)
- win.mouseVisible = False # hide the mouse
- return win
- # read the content in the csv or text file
- def read_cont (filename):
- f = open(filename,'r')
- return f
- # prepare the content on the screen - content is text
- def prep_cont(line, pos, height):
- line_text = visual.TextStim(win,line,color = win_text_col,pos = pos,height = height)
- return line_text
- # prepare the content on the screen - pictures
- # create an image stimulus for presenting the images in
- # set this to None and then you can update as you go by calling in images from a file for example
- # prepare the image on the screen
- def prep_image(image,pos):
- image_stim = visual.ImageStim(win,image,pos = pos)
- return image_stim
- # display the content on the screen
- def disp_instr_cont(line):
- line.draw()
- win.flip()
- keys = event.waitKeys(keyList =['return','escape'])
- if keys[0][0]=='escape':
- shutdown()
- def trigger_exp():
- trigger = prep_cont('trigger the scanner',instru_pos,instru_h)
- trigger.draw()
- win.flip()
- def ready():
- trigger = prep_cont('experiment starts soon',instru_pos,instru_h)
- trigger.draw()
- ready_onset = win.flip()
- return ready_onset
- def end_exp():
- trigger = prep_cont('End of Experiment',instru_pos,instru_h )
- trigger.draw()
- end_onset = win.flip()
- keys = event.waitKeys(keyList =['return'],timeStamped = True)
- print ('end of experiment:',end_onset)
- shutdown()
- return end_onset
- # display each trial on the screen at the appropriate time
- def run_stimuli(stimuli_file,fixa_list):
- """
- stimuli file is sem_stim_runi.csv file, including the stimuli for each run
- fixa_list is a list, including random jittered fixation time for each trial
- """
- # read the stimuli # re-define, not use numbers, but use keywords
- all_trials, headers = load_conditions_dict(conditionfile=stimuli_file)
- headers += ['trial_pres_num', 'conditions', 'StimType', 'fixa1_onset', 'fixa1_durat', 'clue_onset', 'clue_durat','fixa2_onset', 'fixa2_durat', 'probe_onset','probe_durat', 'fixa3_onset', 'fixa3_durat', 'target_onset', 'target_offset','RT', 'correct','KeyPress','fixa4_onset','fixa4_offset','fixa4_RT','fixa4_correct','fixa4_keypress']
- # read the fixation duration
- all_fixa, fixa_headers = load_conditions_dict(conditionfile=os.path.join(curr_dic,stimul_csv_folder,fixa_file))
- # open the result file to write the heater
- write_header(filename,headers)
- shuffle(all_trials) #-
- trial_pres_num = 1 # initize a trial_pres_num to indicate the current trial num
- fixa_num = 1
- #trigger the scanner
- trigger_exp()
- event.waitKeys(keyList=['5'], timeStamped=True)
- # remind the subjects that experiment starts soon.
- ready()
- core.wait(9) # 2 TRs
- # prepare fixation, clue, probe and target for dispaly
- # prepare the content on the screen - content is text
- fixa_1 = visual.TextStim(win,'+',color = (1,0,0),pos = fixa_pos,height = text_h)
- fixa_2 = visual.TextStim(win,'+',color = win_text_col,pos = fixa_pos,height = text_h)
- clue = prep_cont('O',clue_pos,text_h)
- probe = prep_cont('O',probe_pos,text_h)
- target = prep_cont('O',target_pos,text_h)
- run_onset = win.flip()
- print ('run_onset',run_onset)
- # draw fixation and flip the window
- fixa_1.draw()
- fixa1_onset = win.flip()
- for trial in all_trials:
- #''' trial is a ordered dictionary. The key is the first raw of the stimuli csv file'''
- data_clue, sr_clue = soundfile.read(os.path.join(curr_dic , stimul_folder, trial['clue']))
- data_probe, sr_probe = soundfile.read(os.path.join(curr_dic , stimul_folder, trial['probe']))
- data_target, sr_target = soundfile.read(os.path.join(curr_dic , stimul_folder, trial['target']))
- # draw clue and filp the window
- # when flip the window, play the clue sound
- clue.draw()
- timetodraw = run_onset + ideal_trial_onset[trial_pres_num-1]
- while core.monotonicClock.getTime() < (timetodraw - (1/120.0)):
- pass
- clue_onset = win.flip()
- # print(os.path.join(curr_dic , stimul_folder, trial['probe']))
- # print(os.path.join(curr_dic , stimul_folder, trial['target']))
- sounddevice.play(data_clue, sr_clue)
- # draw fixa between clue and probe and flip the window
- fixa_2.draw()
- timetodraw = run_onset + ideal_trial_onset[trial_pres_num-1] + clue_time
- while core.monotonicClock.getTime() < (timetodraw - (1/120.0)):
- pass
- fixa2_onset = win.flip()
- # draw probe and filp the window
- probe.draw()
- timetodraw = run_onset + ideal_trial_onset[trial_pres_num-1] + clue_time + fixa_list[fixa_num]
- while core.monotonicClock.getTime() < (timetodraw - (1/120.0)):
- pass
- probe_onset = win.flip()
- sounddevice.play(data_probe, sr_probe)
- # draw fixa between probe and target and flip the window
- fixa_2.draw()
- timetodraw = run_onset + ideal_trial_onset[trial_pres_num-1] + clue_time + fixa_list[fixa_num]+ probe_time
- while core.monotonicClock.getTime() < (timetodraw - (1/120.0)):
- pass
- fixa3_onset = win.flip()
- # draw target and flip the window
- target.draw()
- timetodraw = run_onset + ideal_trial_onset[trial_pres_num-1] + clue_time + fixa_list[fixa_num]+ probe_time+ fixa_list[fixa_num +1]
- while core.monotonicClock.getTime() < (timetodraw - (1/120.0)):
- pass
- event.clearEvents()
- target_onset = win.flip()
- sounddevice.play(data_target, sr_target)
- keys = event.waitKeys(maxWait = timelimit_deci, keyList =['1','2','3','4','6','escape'],timeStamped = True)
- # If subjects do not press the key within maxwait time, RT is the timilimit and key is none and it is false
- if keys is None:
- RT = 'None'
- keypress = 'None'
- correct = 'False'
- # If subjects press the key, record which key is pressed, RT and whether it is right
- #
- elif type(keys) is list:
- if keys[0][0]=='escape':
- shutdown()
- else:
- keypress = keys[0][0]
- RT = keys[0][1] - target_onset
- correct = (keys[0][0]==trial['correct_answer'])
- target_offset = target_onset+ timelimit_deci
- # present a fixa again to indicate the beginning of the next trial.
- # participants can still press the button if they do not press it when the target is presented.
- # record the button and RT
- if trial_pres_num==1:
- trial['fixa1_onset'] = fixa1_onset - run_onset
- trial['fixa1_durat']= fixa_list[fixa_num-1]
- fixa_1.draw()
- timetodraw = run_onset + ideal_trial_onset[trial_pres_num-1] + clue_time + fixa_list[fixa_num]+ probe_time+ fixa_list[fixa_num +1] + timelimit_deci
- while core.monotonicClock.getTime() < (timetodraw - (1/120.0)):
- pass
- fixa4_onset = win.flip()
- event.clearEvents()
- while core.monotonicClock.getTime() < (timetodraw - (1/120.0)):
- pass
- # keys_fixa4 = event.waitKeys(maxWait = fixa_list[fixa_num]-1, keyList =['1','2','escape'],timeStamped = True)
- keys_fixa4 = event.waitKeys(maxWait = 0.5, keyList =['1','2','3','4','6','escape'],timeStamped = True)
- # If subjects do not press the key within maxwait time, RT is the timilimit and key is none and it is false
- if keys_fixa4 is None:
- fixa4_keypress = 'None'
- fixa4_RT = 'None'
- fixa4_correct = 'False'
- # If subjects press the key, record which key is pressed, RT and whether it is right
- #
- elif type(keys_fixa4) is list:
- if keys_fixa4[0][0]=='escape':
- shutdown()
- else:
- fixa4_keypress = keys_fixa4[0][0]
- fixa4_RT = keys_fixa4[0][1] - target_onset
- fixa4_correct = (keys_fixa4[0][0]==trial['correct_answer'])
- fixa4_offset = fixa4_onset + fixa_list[fixa_num+2]
- trial['trial_pres_num']=trial_pres_num
- trial['clue_onset'] = clue_onset -run_onset
- trial['clue_durat'] = clue_time
- trial['fixa2_onset'] = fixa2_onset -run_onset
- trial['fixa2_durat']= fixa_list[fixa_num]
- trial['probe_onset'] = probe_onset - run_onset
- trial['probe_durat']= probe_time
- trial['fixa3_onset'] = fixa3_onset - run_onset
- trial['fixa3_durat']= fixa_list[fixa_num+1]
- trial['target_onset'] = target_onset - run_onset
- trial['target_offset'] = target_offset - run_onset
- trial['RT'] = RT
- trial['correct'] = correct
- trial['KeyPress'] = keypress
- trial['fixa4_onset'] = fixa4_onset - run_onset
- trial['fixa4_offset'] = fixa4_offset - run_onset
- trial['fixa4_RT'] =fixa4_RT
- trial['fixa4_correct'] = fixa4_correct
- trial['fixa4_keypress'] = fixa4_keypress
- write_trial(filename,headers,trial) # calls the function that writes csv output
- trial_pres_num +=1 # the number-th presentnted trial
- fixa_num +=3
- # -----------------------------------------------------------------------------------------------------------------------------------------------
- # For experiment
- # record subjects info and create a csv file with the info about subjects
- expInfo, filename, stimuli_file,fixa_file = info_gui(expName)
- # if the data does not exist, create one, otherwise, rename one –filename-repeat-n
- write_file_not_exist(filename)
- # set up the window to display the instruction
- win = set_up_window()
- # generate the jitter list for the fixation and probe
- # know the number of trials
- trials, fieldnames = load_conditions_dict(os.path.join(curr_dic,stimul_csv_folder ,stimuli_file))
- trials_num = len(trials)
- fixa_list,total_fixa_time = read_fix_from_csv(os.path.join(curr_dic,stimul_csv_folder,fixa_file))
- ideal_trial_onset = gen_ideal_onset(fixa_list,num_trials) # ideal onset list of each trial
- # sets a local clock that will be used to store timing information synced with the scanner
- expClock = core.Clock()
- expClock.reset()
- # run the stimuli
- run_stimuli(os.path.join(curr_dic,stimul_csv_folder,stimuli_file),fixa_list)
- # end of the experiment
- end_onset = end_exp()
- print ('end onset',end_onset)
- # Experiment()
auditory_semantic_control.py, no license · at the source
Overview
- Department of Psychology University of York York UK
- Department of Linguistics and Modern Languages The Chinese University of Hong Kong Hong Kong SAR China
- CAS Key Laboratory of Behavioral Science, Institute of Psychology Chinese Academy of Sciences Beijing China
- Department of Psychology Queen's University Kingston Ontario Canada
Abstract
Contemporary accounts of semantic cognition propose that conceptual knowledge is supported by a heteromodal conceptual store and controlled retrieval processes. However, it remains unclear how the neural basis of semantic control varies across modalities. Recent models of cortical organisation suggest that control networks are distributed along a unimodal‐to‐heteromodal cortical gradient, with the semantic control network (SCN) located in more heteromodal cortex than the domain‐general multiple demand network (MDN). We used fMRI to examine how these networks respond to semantic control demands in visual and auditory tasks. Participants judged the semantic relatedness of spoken and written word pairs. On half of the trials, a task cue specified the semantic feature to guide retrieval; on the remaining trials, no such cue was given. The SCN showed greater activation when task knowledge was available, consistent with a role in the top‐down control of semantic retrieval across modalities. In contrast, the MDN showed greater activation for spoken words, likely reflecting increased demands in speech perception. These findings demonstrate a dissociation between control networks, with SCN involvement modulated by task structure and MDN activity influenced by perceptual difficulty.
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 1 match between paragraphs and lines of code.
OSF swzvr
Availability: 1 check, the latest on 28 September 2026: the link answers (HTTP 200)
- 28 September 2026: the link answers (HTTP 200)
1 file
- auditory_semantic_contro
l.py , Python, 543 lines, 1 match
The paper's code and data availability statement is in the Data section.
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;
- 1 script, each with its path and the digest of its content;
- 1 match 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
Datasets cited
- neurovault.org/
collections/ , at neurovault.org; found in “Data Availability Statement”14750
Data Availability Statement
The materials and code used to run the study are publicly available on the Open Science Framework (OSF; https://
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, 8 authors, 16 MeSH terms, 1 funder, 51 references.
Cite
This paper
Shao, X., Zhang, M., Wang, X., Gouws, A., Jackson, R. L., Smallwood, J., Krieger‐Redwood, K., & Jefferies, E. (2026). The Neural Processes Underpinning Flexible Semantic Retrieval in Visual and Auditory Modalities. Human brain mapping, 47(6), e70536. https://
BibTeX
@article{shao2026neural,
author = {Shao, Ximing and Zhang, Meichao and Wang, Xiuyi and Gouws, Andre and Jackson, Rebecca L. and Smallwood, Jonathan and Krieger‐Redwood, Katya and Jefferies, Elizabeth},
title = {{The Neural Processes Underpinning Flexible Semantic Retrieval in Visual and Auditory Modalities}},
journal = {Human brain mapping},
year = {2026},
month = apr,
volume = {47},
number = {6},
pages = {e70536},
publisher = {Wiley},
issn = {1065-9471},
doi = {10.1002/
url = {https://
pmid = {42017780},
pmcid = {PMC13101451}
}
RIS
TY - JOUR
AU - Shao, Ximing
AU - Zhang, Meichao
AU - Wang, Xiuyi
AU - Gouws, Andre
AU - Jackson, Rebecca L.
AU - Smallwood, Jonathan
AU - Krieger‐Redwood, Katya
AU - Jefferies, Elizabeth
TI - The Neural Processes Underpinning Flexible Semantic Retrieval in Visual and Auditory Modalities
T2 - Human brain mapping
J2 - Hum Brain Mapp
PY - 2026
DA - 2026/
VL - 47
IS - 6
SP - e70536
SN - 1065-9471
PB - Wiley
DO - 10.1002/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1002/
"type": "article-journal",
"title": "The Neural Processes Underpinning Flexible Semantic Retrieval in Visual and Auditory Modalities",
"container-title": "Human brain mapping",
"author": [
{
"family": "Shao",
"given": "Ximing"
},
{
"family": "Zhang",
"given": "Meichao"
},
{
"family": "Wang",
"given": "Xiuyi"
},
{
"family": "Gouws",
"given": "Andre"
},
{
"family": "Jackson",
"given": "Rebecca L."
},
{
"family": "Smallwood",
"given": "Jonathan"
},
{
"family": "Krieger‐Redwood",
"given": "Katya"
},
{
"family": "Jefferies",
"given": "Elizabeth"
}
],
"container-title-short":
"volume": "47",
"issue": "6",
"page": "e70536",
"DOI": "10.1002/
"PMID": "42017780",
"PMCID": "PMC13101451",
"ISSN": "1065-9471",
"publisher": "Wiley",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
1
]
]
}
}
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-75841-9 [code]
- Model-based semantic distance reveals adaptive coordination of distinct cognitive systems in flexible knowledge retrieval.Journal: Nature communicationsIn common: NumPy, cognitive, 15 references
- [2] doi:10.1162/imag.a.1281
- Syntactic processing engages the semantic control network.Journal: Imaging neuroscience (Cambridge, Mass.)In common: 15 references
- [3] doi:10.1073/pnas.2528851123 [code]
- Sender-receiver subdivisions of the default mode network in perceptual and memory-guided cognition.Journal: Proceedings of the National Academy of Sciences of the United States of AmericaIn common: PsychoPy, NumPy, cognitive, 5 references, author Katya Krieger-Redwood
- [4] doi:10.1016/j.neuroimage.2026.122051 [code]
- Determining hemispheric language dominance from MEG beta-power modulations: Concordance with fMRI.Journal: NeuroImageIn common: NumPy, cognitive, 4 references
- [5] doi:10.1162/nol.a.244 [code]
- A Novel Approach to Map the Causal Impact of Brain Stimulation on Semantic Processing With Language Models.Journal: Neurobiology of language (Cambridge, Mass.)In common: NumPy, 4 references
- [6] doi:10.1162/imag.a.1201 [code]
- All spectral frequencies of neural activity reveal semantic representation in the human anterior ventral temporal cortex.Journal: Imaging neuroscience (Cambridge, Mass.)In common: NumPy, 4 references
- [7] doi:10.1073/pnas.2603114123 [code]
- The human hippocampus can pattern separate memories by meaning.Journal: Proceedings of the National Academy of Sciences of the United States of AmericaIn common: PsychoPy, NumPy, cognitive, 2 references
- [8] doi:10.1093/braincomms/fcag151
- Brain function in language and associated networks in non- or minimally verbal children.Journal: Brain communicationsIn common: 4 references
- [9] doi:10.7554/elife.109842 [code]
- Dissociable neural substrates of integration and segregation in exogenous attention.Journal: eLifeIn common: cognitive, 3 references
- [10] doi:10.7554/elife.107933 [code]
- Modality-agnostic decoding of vision and language from fMRI.Journal: eLifeIn common: NumPy, cognitive, 3 references
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.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 1 repository of the authors' code, each at its verified commit and with its license, 1 script, and 1 match between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:d6acef1d211836be…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[.
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.
