OSCR

Frequency and laminar profile of feature-specific visual activity revealed by interleaved EEG-fMRI.

Code ↔ Paper

18 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 18 matches · 6 of them tie a paragraph to a whole file, not to given lines: weak matches, whose lines are not tinted
  1. [1] § Materials and methods › EEG data processing ↔ scriptTemplates/eegSetParameters.m, the whole file · a weak match · score 0.83 · Pre stimulus, pass band, virtual channel, Hanning, DPSS, taper
  2. [2] § Materials and methods › EEG data processing ↔ scriptTemplates/eegProcessData.m, lines 190–268 · score 0.80 · EEG electrode positions, FEM model, janus3D, SimBio, FieldTrip, MRI
  3. [3] § Materials and methods › Combined EEG–fMRI analysis ↔ fmriRegAnalysis/a_confound_and_task_regressors.m, lines 7–38 · score 0.71 · button presses, task regressors, parametric modulation, alarm, blink, onset
  4. [4] § Materials and methods › Data processing ↔ getToolboxes.sh, lines 59–125 · score 0.67 · FreeSurfer, MRICron, FSL, Workbench, SPM12, FieldTrip
  5. [5] § Materials and methods › Combined EEG–fMRI analysis ↔ fmriRegAnalysis/a2_confound_and_hrf_regressors.m, lines 7–44 · score 0.61 · button presses, parametric modulation, alarm, blink, onset, regressors
  6. [6] § Materials and methods › fMRI motion correction and co-registration ↔ vol2mask.py, lines 359–440 · score 0.60 · Volume Masker, brain mask, TM, affine
  7. [7] § Materials and methods › Data acquisition ↔ scriptTemplates/fmriCorrectFieldDistortion.sh, the whole file · a weak match · score 0.56 · partial brain, consecutive volumes, fMRI, scan, block, EEG
  8. [8] § Results › Behavioural and intermediate results ↔ fmriRegAnalysis/final_plots.m, lines 831–904 · score 0.55 · 0.1–0.8 s, 50–70 Hz, 8–14 Hz, stimulus onset, hemisphere, 0.2 s
  9. [9] § Materials and methods › Combined EEG–fMRI analysis ↔ scriptTemplates/eegVirtualChannelOptSpacePower.m, lines 117–261 · score 0.53 · sliding window, virtual channel, TF, transformed, power, EEG
  10. [10] § Materials and methods › Experimental procedure ↔ fmriRegAnalysis/a2_confound_and_hrf_regressors.m, lines 7–44 · score 0.53 · button press, stimulus onset, hit, alarm, fixation, blinking
  11. [11] § Materials and methods › Experimental procedure ↔ fmriRegAnalysis/a_confound_and_task_regressors.m, lines 7–38 · score 0.53 · button press, stimulus onset, hit, alarm, fixation, blinking
  12. [12] § Materials and methods › Data acquisition ↔ scriptTemplates/fmriCoregistration.m, the whole file · a weak match · score 0.53 · recursive boundary, inverted, displacement, frame, mapping, volumes
  13. [13] § Results › Combined EEG–fMRI analyses ↔ scriptTemplates/eegFmriRegression_old.m, lines 51–110 · score 0.52 · fMRI regressors, SPM, 0.8 s, CSF, deep, superficial
  14. [14] § Materials and methods › Data acquisition ↔ scriptTemplates/fmriCorrectFieldDistortion.sh, the whole file · a weak match · score 0.52 · consecutive blocks, inverted, distortion, fMRI, field, pause
  15. [15] § Materials and methods › pRF mapping ↔ scriptTemplates/eegPrepareFreesurferOutput.sh, lines 41–79 · score 0.52 · pial surface, volumetric, inflated, FreeSurfer, anatomical
  16. [16] § Materials and methods › pRF mapping ↔ scriptTemplates/fmriRetGUI2ROIs.sh, the whole file · a weak match · score 0.51 · FreeSurfer, Freeview, inflated, atlas, mapping, V2
  17. [17] § Materials and methods › fMRI motion correction and co-registration ↔ python_scripts/fmriMotionCorrection.py, the whole file · a weak match · score 0.51 · ANTs, motion, rigid, transformation, mask, laminar
  18. [18] § Materials and methods › Combined EEG–fMRI analysis ↔ scriptTemplates/paper_figures_compute.m, lines 374–481 · score 0.50 · 50–70 Hz, 8–14 Hz, tailed, aros, FOI, bins

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

MATLAB · 276 lines · 11 KB · MIT · 2 matches

  1. function R_all_blocks = a_confound_and_task_regressors(parameters, delete_files)
  2. %% R_out = a_confound_and_task_regressors(mainpath, subject, delete_files)
  3. % mainpath = '/project/3018037.01/Experiment3.2_ERC/AnalysisFolder/scripts/scriptTemplates/..';
  4. tc_struct2ws('caller', parameters.main);
  5. %% setup parameters
  6. tc_struct2ws('caller', parameters.paths);
  7. tc_struct2ws('caller', parameters.experiment);
  8. tc_struct2ws('caller', parameters.convolution);
  9. fmri_high_pass_freq = 0.006;
  10. % regressors (name | selected trials | onset time rel to stim | duration | modulation | is parameter modulation)
  11. config_nuis_and_task_regs_fieldnames = {'name', 'trial_sel', 'onset', 'duration', 'modulation', 'isparmod'};
  12. config_nuis_and_task_regs = {...
  13. {'left'}, {'left', 'no_odd_balls', 'no_artifacts', 'no_false_alarm', 'no_blinks'}, {0}, {stim_duration}, {1}, {false}; ... % task regressor left
  14. {'right'}, {'right', 'no_odd_balls', 'no_artifacts', 'no_false_alarm', 'no_blinks'}, {0}, {stim_duration}, {1}, {false}; ... % task regressor right
  15. {'fix_dim'}, {}, {time_fix_change}, {-time_fix_change}, {1}, {false}; ... % fixation change before stimulus onset
  16. {'correct_target_L'}, {'left', 'hit', 'no_blinks', 'no_artifacts'}, {0}, {stim_duration}, {1}, {false}; ... % correct odd ball
  17. {'correct_target_R'}, {'right', 'hit', 'no_blinks', 'no_artifacts'}, {0}, {stim_duration}, {1}, {false}; ... % correct odd ball
  18. {'incorrect_standard_L'}, {'left', 'false_alarm', 'no_blinks', 'no_artifacts'}, {0}, {stim_duration}, {1}, {false}; ... % false alarm
  19. {'incorrect_standard_R'}, {'right', 'false_alarm', 'no_blinks', 'no_artifacts'}, {0}, {stim_duration}, {1}, {false}; ... % false alarm
  20. {'incorrect_target_L'}, {'left', 'miss', 'no_blinks', 'no_artifacts'}, {0}, {stim_duration}, {1}, {false}; ... % missed odd ball
  21. {'incorrect_target_R'}, {'right', 'miss', 'no_blinks', 'no_artifacts'}, {0}, {stim_duration}, {1}, {false}; ... % missed odd ball
  22. {'blink_L'}, {'left', 'blinks', 'no_artifacts'}, {0}, {stim_duration}, {1}, {false}; ... % blink trial
  23. {'blink_R'}, {'right', 'blinks', 'no_artifacts'}, {0}, {stim_duration}, {1}, {false}; ... % blink trial
  24. {'art_L'}, {'left', 'artifacts', 'no_blinks'}, {0}, {stim_duration}, {1}, {false}; ... % artifact trial
  25. {'art_R'}, {'right', 'artifacts', 'no_blinks'}, {0}, {stim_duration}, {1}, {false}; ... % artifact trial
  26. {'button_press'}, {'response'}, {'rt'}, {0}, {1}, {false}; ... % response button press
  27. {'rt_pmod_L'}, {'left', 'response'}, {'rt'}, {'mean_rt'}, {'rt'}, {true}; ... % response time
  28. {'rt_pmod_R'}, {'right', 'response'}, {'rt'}, {'mean_rt'}, {'rt'}, {true}}; % response time
  29. % convert to struct
  30. config_nuis_and_task_regs = cell2struct(config_nuis_and_task_regs', config_nuis_and_task_regs_fieldnames)';
  31. % convolution parameters for regressors
  32. config_conv = parameters.convolution;
  33. %% delete files if indicated
  34. if delete_files
  35. for block = 1:num_blocks
  36. delete(sprintf(design_matrix_file, block))
  37. end
  38. end
  39. %% get preprocessed data
  40. load(MRI_data_file, 'data');
  41. avg_white_matter = squeeze(mean(data.data(logical(data.maskwhite),:,:), 1));
  42. avg_not_gray_not_white_matter = squeeze(mean(data.data(logical(data.masknotgrayorwhite),:,:), 1));
  43. realign_params = squeeze(data.transvecs);
  44. %% make data noise regressors
  45. % model average white matter data
  46. avg_signal_over_blocks = mean(avg_white_matter,2); % avg over blocks
  47. avg_signal_over_blocks = reshape(avg_signal_over_blocks, num_volumes_per_trial, []); % reshape to consecutive volume per row
  48. avg_signal_over_blocks = mean(avg_signal_over_blocks, 2)'; % avg over columns
  49. T1_avg_white_drop_off = repmat(avg_signal_over_blocks, 1, num_scans_per_block / num_volumes_per_trial); % repmat to extend to number of volumes
  50. % normalize signal drop off between 0 and 1
  51. T1_avg_white_drop_off = double(T1_avg_white_drop_off);
  52. T1_avg_white_drop_off = T1_avg_white_drop_off - min(T1_avg_white_drop_off);
  53. T1_avg_white_drop_off = T1_avg_white_drop_off ./ max(T1_avg_white_drop_off);
  54. % model residuals for white matter drop off
  55. betas = [T1_avg_white_drop_off' * ones(1, num_blocks) ones(num_scans_per_block,1)] \ avg_white_matter;
  56. white_matter_signal_res = avg_white_matter -...
  57. [T1_avg_white_drop_off' * ones(1, num_blocks) ones(num_scans_per_block,1)] * betas;
  58. not_gray_not_white_matter_signal_res = avg_not_gray_not_white_matter -...
  59. [T1_avg_white_drop_off' * ones(1, num_blocks) ones(num_scans_per_block,1)] * betas;
  60. % normalize between 0 and 1
  61. white_matter_signal_res = white_matter_signal_res - ...
  62. ones(num_scans_per_block, 1) * min(white_matter_signal_res, [], 1);
  63. white_matter_signal_res = white_matter_signal_res ./ ...
  64. (ones(num_scans_per_block, 1) * max(white_matter_signal_res, [], 1));
  65. not_gray_not_white_matter_signal_res = not_gray_not_white_matter_signal_res - ...
  66. ones(num_scans_per_block, 1) * min(not_gray_not_white_matter_signal_res, [], 1);
  67. not_gray_not_white_matter_signal_res = not_gray_not_white_matter_signal_res ./ ...
  68. (ones(num_scans_per_block, 1) * max(not_gray_not_white_matter_signal_res, [], 1));
  69. % model realignment parameters
  70. decomposed_params = zeros(size(realign_params));
  71. for parameter = 1: size(realign_params, 1)
  72. for block = 1:num_blocks
  73. stats_rp = regstats(realign_params(parameter, :, block), T1_avg_white_drop_off, 'linear', {'beta', 'r'});
  74. decomposed_params(parameter, :, block) = stats_rp.r + stats_rp.beta(1);
  75. end
  76. end
  77. % compute first derivative
  78. decomposed_params = permute(decomposed_params, [2, 1, 3]);
  79. derivative_params = cat(1, zeros(1, size(decomposed_params, 2), num_blocks), diff(decomposed_params, [], 1));
  80. % model first volume separately from others due to scanner pause within
  81. % trial
  82. ders1 = zeros(size(derivative_params));
  83. ders23 = ders1;
  84. ders1(1:3:end, :, :) = derivative_params(1:3:end, :, :);
  85. sel = setdiff(1:num_scans_per_block,1:3:num_scans_per_block);
  86. ders23(sel, :, :) = derivative_params(sel, :, :);
  87. all_realignment_parameters = cat(2, ...
  88. decomposed_params,...
  89. decomposed_params .^ 2,...
  90. ders1,...
  91. ders23);
  92. %% make filter regs
  93. % initiate time vector
  94. time_vec = pseudo_TR:pseudo_TR:pseudo_TR * num_pseudo_volumes;
  95. time_end_2pi = time_vec(end) ./ 2 ./ pi;
  96. % find number of regressors
  97. num_regressors = 1:ceil(fmri_high_pass_freq / (1 / time_vec(end)));
  98. % construct sines and cosines
  99. cosines = cos(num_regressors' * (time_vec / time_end_2pi))';
  100. sines = sin(num_regressors' * (time_vec / time_end_2pi))';
  101. % make filter struct
  102. filt.regs=[cosines(mid_volume_indices,:) sines(mid_volume_indices,:)];
  103. filt.requested_freq=fmri_high_pass_freq;
  104. filt.real_freq=num_regressors(end) / time_vec(end);
  105. %% nuisance regressors
  106. nuis_names = vertcat(config_nuis_and_task_regs.name);
  107. % extract from EEG data: stim onset relative to scanner trigger before
  108. % stimulus, values of received triggers, reaction time values relative to
  109. % stimulus onset and sampling rate
  110. [...
  111. all_stim_onset_rel_to_A1, ...
  112. all_trigger_values_vec, ...
  113. all_reaction_times,...
  114. sampling_rate] = tc_get_event_times_from_eeg(EEG_parameters, scanner_trigger, skip_first_N_scanner_triggers_eeg, response_trigger);
  115. % apply slice time correction to regressors
  116. all_stim_onset_rel_to_A1 = all_stim_onset_rel_to_A1 + mark_offset + slicetime_offset;
  117. % extract trial type (e.g. odd ball or left or response, etc) and indices
  118. % of responses themselves
  119. trial_types = tc_get_events_from_trigger_values(...
  120. all_trigger_values_vec, ... % from above
  121. left_triggers,... % triggers for left stimuli
  122. right_triggers, ... % triggers for right stimuli
  123. [left_triggers(1), right_triggers(1)], ... % non odd balls
  124. 99, ... % code for response trigger value
  125. all_reaction_times, ... % reaction times for invalid eresponse detection
  126. sampling_rate, ... % sampling rate to convert reaction time
  127. stim_duration); % stimulus duration to exclude responses that were hereafter
  128. % only select valid reaction times
  129. all_valid_reaction_times = tc_get_reaction_times(parameters);
  130. % attach blink trial data
  131. load(blinks_file, 'no_blinks')
  132. trial_types.blinks = ~no_blinks;
  133. trial_types.no_blinks = no_blinks;
  134. % attach artifact trial data
  135. load(art_file, 'sel_trls')
  136. no_artifacts = sel_trls;
  137. trial_types.artifacts = ~no_artifacts;
  138. trial_types.no_artifacts = no_artifacts;
  139. % make reaction time a vector of length trial number
  140. reaction_time_vec = zeros(size(trial_types.hit));
  141. reaction_time_vec(trial_types.response) = all_valid_reaction_times;
  142. % construct regressors
  143. nuis_regs = {};
  144. % loop over regressor configuration
  145. for conf_reg = config_nuis_and_task_regs
  146. % concat logical statements to select trials
  147. % multiple selection criteria
  148. if length(conf_reg.trial_sel) > 1
  149. trial_sel = trial_types.(conf_reg.trial_sel{1});
  150. for trial_type = conf_reg.trial_sel(2:end)
  151. trial_sel = trial_sel & trial_types.(trial_type{1});
  152. end
  153. % single selection criteria
  154. elseif length(conf_reg.trial_sel) == 1
  155. trial_sel = trial_types.(conf_reg.trial_sel{1});
  156. % all trials
  157. else
  158. trial_sel = ones(size(trial_types.left));
  159. end
  160. % extract stimulus onsets
  161. rel_to_A1 = all_stim_onset_rel_to_A1(trial_sel);
  162. % determine stimulus onset offset (e.g. for change in fixation)
  163. onset_setoff = conf_reg.onset;
  164. % determine whether single or multiple parameter setup. In the later
  165. % case it has to be determined according to specifications
  166. if ischar(onset_setoff{1})
  167. switch onset_setoff{1}
  168. case 'rt'
  169. onset_setoff = reaction_time_vec(trial_sel);
  170. end
  171. else
  172. onset_setoff = onset_setoff{1};
  173. end
  174. % see above
  175. duration = conf_reg.duration;
  176. if ischar(duration{1})
  177. switch duration{1}
  178. case 'mean_rt'
  179. duration = mean(reaction_time_vec(trial_sel));
  180. end
  181. else
  182. duration = duration{1};
  183. end
  184. % see above
  185. pmod = conf_reg.modulation;
  186. if ischar(pmod{1})
  187. switch pmod{1}
  188. case 'rt'
  189. pmod = reaction_time_vec(trial_sel);
  190. end
  191. else
  192. pmod = pmod{1};
  193. end
  194. % append regressor
  195. nuis_regs = cat(1, nuis_regs, {[...
  196. rel_to_A1 + onset_setoff, ...
  197. ones(size(rel_to_A1)) .* duration,...
  198. ones(size(rel_to_A1)) .* pmod,...
  199. block_vec(trial_sel)]});
  200. end
  201. %% convolve regressors
  202. nuis_regs_conv = tc_conv_regs(nuis_regs, nuis_names, config_conv, mid_volume_indices);
  203. %% make design matrix
  204. is_parmod_vec = cell2mat([config_nuis_and_task_regs.isparmod])';
  205. R_all_blocks = [];
  206. for block = 1: num_blocks
  207. is_not_parmod = ~is_parmod_vec(cellfun(@(x) logical(sum(strcmpi(x, [nuis_regs_conv.(['b' num2str(block)]).names]))), nuis_names));
  208. R = double([...
  209. nuis_regs_conv.(['b' num2str(block)]).task(:, is_not_parmod),...
  210. nuis_regs_conv.(['b' num2str(block)]).par,...
  211. white_matter_signal_res(:, block),...
  212. not_gray_not_white_matter_signal_res(:, block),...
  213. all_realignment_parameters(:, :, block),...
  214. T1_avg_white_drop_off',...
  215. filt.regs...
  216. ]);
  217. R_all_blocks.(['b' num2str(block)]) = R;
  218. save(sprintf(design_matrix_file, block), 'R')
  219. end
  220. R_all_blocks.config_nuis_and_task_regs = config_nuis_and_task_regs;
  221. R_all_blocks.config_conv = config_conv;
  222. save(strrep(design_matrix_file, 'B%d', 'fmri'), 'R_all_blocks')

a_confound_and_task_regressors.m at commit f076311, under MIT · at the source

Overview

  1. Lyon Neuroscience Research Center, Computation, Cognition and Neurophysiology COPHY, INSERM UMRS 1028, CNRS UMR 5292, Université Claude Bernard Lyon 1 Lyon France
  2. Donders Institute for Brain Cognition and Behaviour, Radboud University Nijmegen Netherlands
  3. INRIA, Computation, Cognition and Neurophysiology COPHY Bron France
Journal: eLife, volume 14, article RP108408
Dates: published online 3 September 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.7554/elife.108408 · PMID 42689526 · PMCID PMC13541303 · OpenAlex W4415107794
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: EEG (modality), fMRI (modality), human (organism), systems (subfield)
Methods: Spectral & time-frequency, Connectivity, Statistics, Smoothing, state filtering, decompositions, Source localization, fMRI & imaging, Single-unit activity, calcium imaging, Physiology & signal measures
Keywords: laminar fMRI, EEG, oscillations, alpha, gamma, visual features, Human
MeSH: Electroencephalography*, Magnetic Resonance Imaging*, Visual Cortex*, Visual Perception*, Brain Mapping, Female, Humans, Male (* major topic)
Journal subjects: Neuroscience
Topic: Visual perception and processing mechanisms (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Funding: European Research Council (10.3030/716862); Fondation pour la Recherche Médicale (FDT202106013010); Labex Cortex (ANR-10-LABX-0042)
Citations: cited by 1 paper (Europe PMC); 117 references in the paper

Abstract

The role of cortical oscillations in brain function has been extensively debated, resulting in a variety of theoretical frameworks. Using interleaved simultaneous electroencephalography–functional magnetic resonance imaging, we examined the layer-specific relationship between oscillatory activity and visual processing. We could demonstrate that γ band activity positively correlates with feature-specific signals in superficial layers, but we were able to report a deep layer contribution as well. In addition, we could demonstrate that α band power not only correlates negatively with the feature-unspecific BOLD signal but is related to feature-specific BOLD as well. Lower frequency α was predominantly related to feature-unspecific superficial layer BOLD, while upper frequency α was found to be related to feature-specific BOLD in superficial and deep layers. We conclude that the role of α band oscillations extends beyond widespread inhibition and might be involved in active stimulus processing on the level of visual features.

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

Repositories

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

TommyClausner/laminarfMRIv2

License: MIT
State: the link answers, verified on 26 September 2026
Evidence: files inventoried
Commit: f076311ff3dd4fa924067657247603e111f615fe, 10 August 2026
Languages: MATLAB (119), Shell (72), Python (10)
Size: 470 files, 201 scripts
Software Heritage: not checked
Found in: “Data availability”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Tools: FieldTrip (44 files), Statistics and Machine Learning Toolbox (39 files), FSL (25 files), FreeSurfer (16 files), Tools for NIfTI and ANALYZE image (MATLAB) (11 files), ANTs (10 files), Matplotlib (7 files), NumPy (6 files), SPM (6 files), pandas (5 files), seaborn (5 files), Image Processing Toolbox (3 files), h5py (2 files), Signal Processing Toolbox (2 files), scikit-image (2 files), SciPy (2 files), statsmodels (2 files), NiBabel (1 file), Pingouin (1 file), Connectome Workbench (1 file)
Availability: 1 check, the latest on 26 September 2026: the link answers
  • 26 September 2026: the link answers
203 files

Zenodo 7211757

License: other-open
State: the link answers, verified on 26 September 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: the references
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: DIPY (1 file), Matplotlib (1 file), NiBabel (1 file), NumPy (1 file), scikit-image (1 file), SciPy (1 file)
Availability: 1 check, the latest on 26 September 2026: the link answers (HTTP 200)
  • 26 September 2026: the link answers (HTTP 200)
3 files
At the source:

tommyclausner/mri-volume-masker-3000-tm

License: GPL-3.0
State: the link answers, verified on 26 September 2026
Evidence: files inventoried
Commit: 28edfc8cef53197f6725c285bf914b13ddcd0305, 16 October 2022
Languages: Python (1)
Size: 7 files, 1 script
Software Heritage: not checked
Found in: the Zenodo archive record
Holds: README, license file, environment (requirements.txt)
Not found: CITATION.cff, tests, continuous integration, documentation
Tools: DIPY (1 file), Matplotlib (1 file), NiBabel (1 file), NumPy (1 file), scikit-image (1 file), SciPy (1 file)
Availability: 1 check, the latest on 26 September 2026: the link answers
  • 26 September 2026: the link answers
3 files

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:

  • 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 203 scripts, each with its path and the digest of its content;
  • 18 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

All raw eye tracking, EEG and fMRI data, as well as all derivatives have been deposited at https://doi.org/10.34973/w2z2-2c91 but are not fully publicly available due to data protection regulations. The data are available to all bona fide researchers via the Radboud Data Repository (https://data.ru.nl/login) upon agreement to the Data User Agreement, version RU-HD-SU-1.0 (https://data.ru.nl/dua/RU-HD-SU-1.0). The code for the analyses presented in this paper is openly accessible at https://github.com/TommyClausner/laminarfMRIv2 (copy archived at Clausner, 2026).

The following dataset was generated:

ClausnerT MarquesJ ScheeringaR BonnefondM 2026Frequency and Laminar Profile of Feature Specific and nonspecific Neural Activity in Human Visual Cortex Revealed by Interleaved EEG-fMRIRadboud Data Repository10.34973/w2z2-2c91PMC1354130342689526

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, 27 September 2026: the first record

Recorded: type, language, journal, volume, pages, dates, 4 authors, 7 keywords, 8 MeSH terms, 3 funders, 109 references.

Cite

This paper

Clausner, T., Marques, J. P., Scheeringa, R., & Bonnefond, M. (2026). Frequency and laminar profile of feature-specific visual activity revealed by interleaved EEG-fMRI. eLife, 14, RP108408. https://doi.org/10.7554/elife.108408

BibTeX

@article{clausner2026frequency,
author = {Clausner, Tommy and Marques, José P and Scheeringa, René and Bonnefond, Mathilde},
title = {{Frequency and laminar profile of feature-specific visual activity revealed by interleaved EEG-fMRI}},
journal = {eLife},
year = {2026},
month = sep,
volume = {14},
pages = {RP108408},
publisher = {eLife Sciences Publications, Ltd},
issn = {2050-084X},
doi = {10.7554/elife.108408},
url = {https://doi.org/10.7554/elife.108408},
pmid = {42689526},
pmcid = {PMC13541303}
}

RIS

TY - JOUR
AU - Clausner, Tommy
AU - Marques, José P
AU - Scheeringa, René
AU - Bonnefond, Mathilde
TI - Frequency and laminar profile of feature-specific visual activity revealed by interleaved EEG-fMRI
T2 - eLife
J2 - Elife
PY - 2026
DA - 2026/09/03
VL - 14
SP - RP108408
SN - 2050-084X
PB - eLife Sciences Publications, Ltd
DO - 10.7554/elife.108408
UR - https://doi.org/10.7554/elife.108408
LA - en
ER -

CSL-JSON

{
"id": "10.7554/elife.108408",
"type": "article-journal",
"title": "Frequency and laminar profile of feature-specific visual activity revealed by interleaved EEG-fMRI",
"container-title": "eLife",
"author": [
{
"family": "Clausner",
"given": "Tommy"
},
{
"family": "Marques",
"given": "José P"
},
{
"family": "Scheeringa",
"given": "René"
},
{
"family": "Bonnefond",
"given": "Mathilde"
}
],
"container-title-short": "Elife",
"volume": "14",
"page": "RP108408",
"DOI": "10.7554/elife.108408",
"PMID": "42689526",
"PMCID": "PMC13541303",
"ISSN": "2050-084X",
"publisher": "eLife Sciences Publications, Ltd",
"URL": "https://doi.org/10.7554/elife.108408",
"language": "en",
"issued": {
"date-parts": [
[
2026,
9,
3
]
]
}
}

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-76452-0 [code]
Music evokes shared neural representations of imagined narratives across sensory modalities.
Journal: Nature communications
In common: Connectome Workbench, Tools for NIfTI and ANALYZE image (MATLAB), ANTs, 14 other tools, 2 references
[2] doi:10.1038/s41398-026-04025-2 [code]
Brain energetic landscapes shape state dysregulation in major depressive disorder: a morphological network controllability perspective.
Journal: Translational psychiatry
In common: Connectome Workbench, Tools for NIfTI and ANALYZE image (MATLAB), Pingouin, 14 other tools
[3] doi:10.1162/imag.a.1262 [code]
Frame-wise multi-echo distortion correction for superior functional MRI.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: Connectome Workbench, Tools for NIfTI and ANALYZE image (MATLAB), FieldTrip, 12 other tools, fMRI, 3 references
[4] doi:10.1038/s41467-026-71151-2 [code]
Common and distinct neural correlates of social interaction processing and theory of mind in narratives.
Journal: Nature communications
In common: Connectome Workbench, ANTs, FieldTrip, 13 other tools, 2 references
[5] doi:10.1038/s41467-026-73668-y [code]
Convergent and divergent brain-cognition development in early adolescence.
Journal: Nature communications
In common: Connectome Workbench, Tools for NIfTI and ANALYZE image (MATLAB), ANTs, 13 other tools, fMRI
[6] doi:10.1038/s41586-026-10631-3 [code]
A prognostic human brain network for diffuse midline glioma.
Journal: Nature
In common: Tools for NIfTI and ANALYZE image (MATLAB), ANTs, FieldTrip, 13 other tools, 1 reference
[7] doi:10.1371/journal.pbio.3003856 [code]
Aging and metabolism contribute separately to brain-body health.
Journal: PLoS biology
In common: Connectome Workbench, Tools for NIfTI and ANALYZE image (MATLAB), ANTs, 13 other tools
[8] doi:10.1016/j.neuron.2026.04.011 [code]
Precision fMRI reveals densely interdigitated network patches with conserved motifs in the lateral prefrontal cortex.
Journal: Neuron
In common: Connectome Workbench, Tools for NIfTI and ANALYZE image (MATLAB), ANTs, 10 other tools, systems, fMRI, 2 references
[9] doi:10.1002/advs.202523009 [code]
Personalized Network-Guided Neuromodulation Enhances Human Working Memory.
Journal: Advanced science (Weinheim, Baden-Wurttemberg, Germany)
In common: Connectome Workbench, Tools for NIfTI and ANALYZE image (MATLAB), FieldTrip, 11 other tools, 3 references
[10] doi:10.1016/j.celrep.2026.117404 [code]
Action and rest tremor map to distinct networks within the primary motor cortex.
Journal: Cell reports
In common: Tools for NIfTI and ANALYZE image (MATLAB), ANTs, FieldTrip, 12 other tools, systems, 1 reference

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.