OSCR

Midfrontal theta power relates to response speeding following frustrative nonreward.

Code ↔ Paper

9 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 9 matches
  1. [1] § Method › EEG recording and preprocessing ↔ code/MATLAB/Step1_PREPROCESS.m, lines 91–176 · score 0.95 · eye blinks, clearly identifiable nonbrain, ICLabel, removed channels, preprocessing, EEGLAB
  2. [2] § Method › Time-frequency analysis ↔ code/MATLAB/Step3_GED.m, lines 298–359 · score 0.89 · Gaussian centered, best component, selected component, best theta, R2, selection
  3. [3] § Method › Time-frequency analysis ↔ code/MATLAB/Step3_GED.m, lines 72–184 · score 0.79 · 0–700 ms, theta peak frequency, 4–9 Hz, dB, wavelets, baseline
  4. [4] § Method › Time-frequency analysis ↔ code/MATLAB/Step3_GED.m, lines 190–295 · score 0.72 · narrowband filters, covariance matrices, theta peaks, window, width, channel
  5. [5] § Method › Time-frequency analysis › Single-trial LMM of MFθ and RT adjustment ↔ code/R/analysis_code_AffectivePosner.R, lines 565–634 · score 0.65 · probe_interaction, subsequent RT, intervals, profile, predicted, LMM
  6. [6] § Method › Time-domain analysis ↔ code/MATLAB/Step2_ERP.m, lines 2–45 · score 0.58 · RewP, Reward Positivity, waveforms, amplitude, ERP, feedback
  7. [7] § Method › Time-frequency analysis ↔ code/MATLAB/Step3_GED.m, lines 2–39 · score 0.52 · multivariate source separation, GED, band, neural, filter, power
  8. [8] § Method › Time-frequency analysis ↔ code/MATLAB/Step3_GED.m, lines 362–456 · score 0.52 · 0–600 ms, 4–8 Hz, power, theta, feedback, win
  9. [9] § Method › Time-frequency analysis ↔ code/MATLAB/Step3_GED.m, lines 72–184 · score 0.51 · baseline normalization, convolution, wavelet, window, power, EEG

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 · 461 lines · 15 KB · no license · 6 matches

  1. %% STEP 3 — MULTIVARIATE SOURCE SEPARATION GED — AFFECTIVE POSNER TASK
  2. % ------------------------------------------------------------------------
  3. % Paper: Midfrontal theta power relates to response speeding following frustrative nonreward
  4. % Author: Nellia Bellaert
  5. % Version: 2025-10-30
  6. % Contact: [email hidden]
  7. %
  8. % Requires the FilterFGx function for narrow-band filtering
  9. % This works with EEG data structures in the EEGLAB format
  10. % This code is largely based on the scripts from Duprez et al. (2020): https://doi.org/10.1016/j.neuroimage.2019.116340 ,
  11. % and on the equations and scripts accompanying the book 'Analyzing Neural Time Series Data' by Mike X. Cohen : mikexcohen.com
  12. eeglab('nogui')
  13. data_dir = './data/preprocessed/';
  14. % List all preprocessed AFP feedback .set files
  15. set_files = dir(fullfile(data_dir, 'sub-*AFP_fb_ICA_interp.set'));
  16. % Storage
  17. nSubs = length(set_files);
  18. matrices = cell(nSubs, 1);
  19. subject_ids = cell(nSubs, 1);
  20. % Load data
  21. for i = 1:nSubs
  22. % Extract subject ID from filename
  23. filename = set_files(i).name;
  24. subject_id = extractBefore(filename, '_AFP_fb_ICA_interp.set');
  25. EEG = pop_loadset('filename', filename, 'filepath', data_dir);
  26. % Store the matrix and subject number
  27. matrices{i} = EEG;
  28. subject_ids{i} = subject_id;
  29. end
  30. %% Fix event structure for subjects 121 & 122
  31. fields = ["eventlatency", "eventurevent", "eventduration", "eventtype"];
  32. for idx = 21:22
  33. epochs_n = matrices{idx, 1}.epoch;
  34. for i = 1:length(epochs_n)
  35. for f = fields
  36. matrices{idx, 1}.epoch(i).(f) = matrices{idx, 1}.epoch(i).(f){1,1};
  37. end
  38. matrices{idx, 1}.epoch(i).event = matrices{idx, 1}.epoch(i).event(1);
  39. end
  40. end
  41. matrices_eegfiles = matrices;
  42. % select channel FCz
  43. chan = 6;
  44. %% Initialize storage
  45. matrix_power = cell(nSubs,1);
  46. maxtheta = zeros(2,nSubs); % store peak frequency and time
  47. mapsTh_avg = zeros(126, nSubs); % forward model storage
  48. %% Main loop over subjects
  49. for subj_n = 1:size(matrices_eegfiles, 1)
  50. EEG = matrices_eegfiles{subj_n,1};
  51. FB_type = {'F_win', 'F_loss'}; % feedback types in the frustrating cond
  52. epochs = struct2table(EEG.epoch);
  53. % time window for baseline normalization.
  54. baseline_window = [ -150 -50 ];
  55. baseidx = dsearchn(EEG.times',baseline_window'); % convert baseline time into indices
  56. % wavelet parameters
  57. numfrex = 100;
  58. lowfreq = 1; % Hz
  59. highfreq = 20; % Hz
  60. frex = logspace(log10(lowfreq),log10(highfreq),numfrex);
  61. s=logspace(log10(2),log10(10),numfrex)./(2*pi*frex);
  62. time = -2:1/EEG.srate:2;
  63. half_wavelet = (length(time)-1)/2;
  64. % FFT parameters
  65. n_wavelet = length(time);
  66. n_data = EEG.pnts*EEG.trials;
  67. n_conv = n_wavelet+n_data-1;
  68. % initialize output time-frequency data for plotting
  69. power_fb = zeros(1, length(frex), EEG.pnts, length(chan));
  70. % FFT of data
  71. data_fft = fft( reshape(EEG.data(chan,:,:),1,[]) ,n_conv);
  72. chanid = 1;
  73. for fi=1:length(frex) % loop over frequency
  74. % create wavelet and get its FFT
  75. wavelet_fft = fft( exp(2*1i*pi*frex(fi).*time) .* exp(-time.^2./(2*(s(fi)^2))) , n_conv );
  76. % run convolution and get its ifft
  77. EEG_conv = ifft(wavelet_fft.*data_fft);
  78. EEG_conv = EEG_conv(half_wavelet+1:end-half_wavelet);
  79. EEG_conv = reshape(EEG_conv,EEG.pnts,EEG.trials);
  80. % get power by feedback types
  81. for cond=1:2
  82. thisidx = string(table2array(epochs(:,2))) == string(FB_type(cond));
  83. power_fb(cond,fi,:, chanid) = mean(abs(EEG_conv(:, thisidx)).^2,2);
  84. end
  85. end % end of frequency loop
  86. % db conversion by feedback types
  87. for cond=1:2
  88. power_fb(cond,:,:, chanid) = 10*log10( bsxfun(@rdivide, squeeze(power_fb(cond,:,:, chanid)), ...
  89. mean(power_fb(cond,:,baseidx(1):baseidx(2), chanid),3)' ) );
  90. end
  91. % define time-frequency window to look for theta peak
  92. thetatime = dsearchn(EEG.times',[0 700]');
  93. thetafreq = dsearchn(frex',[4 9]');
  94. tf_ave = squeeze(mean(mean(power_fb(:, :, :, :),1),4));
  95. tf_win = squeeze(mean(mean(power_fb(1, :, :, :),1),4));
  96. tf_loss = squeeze(mean(mean(power_fb(2, :, :, :),1),4));
  97. % get the index of the peak frequency and peak time based on the
  98. % average of all trials
  99. [maxfreq_theta,maxtime_theta] = ind2sub(size(tf_ave),find(tf_ave==max(reshape(tf_ave(thetafreq(1):thetafreq(2),thetatime(1):thetatime(2)),1,[]))));
  100. % visually inspect the delta and theta peaks
  101. figure(1);
  102. colormap(jet(256))
  103. subplot(2,2,1)
  104. contourf(EEG.times,frex, tf_win,40,'linecolor','none')
  105. set(gca,'clim',[-3 3], 'ylim', [1 10], 'xlim', [-200 1000])
  106. xlabel('Time (ms)'), ylabel('Frequency (Hz)')
  107. title([ 'F Win trials for ' char(subject_ids(subj_n))])
  108. hold on;
  109. plot(EEG.times(maxtime_theta), frex(maxfreq_theta), 'ko', 'MarkerSize', 10, 'MarkerFaceColor', 'm');
  110. hold off;
  111. subplot(2,2,2)
  112. contourf(EEG.times,frex, tf_loss,40,'linecolor','none')
  113. set(gca,'clim',[-3 3], 'ylim', [1 10], 'xlim', [-200 1000])
  114. xlabel('Time (ms)'), ylabel('Frequency (Hz)')
  115. title([ 'F Loss trials for ' char(subject_ids(subj_n))])
  116. hold on;
  117. plot(EEG.times(maxtime_theta), frex(maxfreq_theta), 'ko', 'MarkerSize', 10, 'MarkerFaceColor', 'm');
  118. hold off;
  119. subplot(2,2,3)
  120. contourf(EEG.times,frex, tf_ave,40,'linecolor','none')
  121. set(gca,'clim',[-3 3], 'ylim', [1 10], 'xlim', [-200 1000])
  122. xlabel('Time (ms)'), ylabel('Frequency (Hz)')
  123. title([ 'Average trials for ' char(subject_ids(subj_n))])
  124. hold on;
  125. plot(EEG.times(maxtime_theta), frex(maxfreq_theta), 'ko', 'MarkerSize', 10, 'MarkerFaceColor', 'm');
  126. hold off;
  127. maxtheta(1,subj_n) = frex(maxfreq_theta); % store max theta power frequency
  128. maxtheta(2,subj_n) = EEG.times(maxtime_theta); % store time
  129. matrix_power{subj_n,:} = power_fb;
  130. %% GED FOR THETA %%
  131. % select time window of 800ms around theta peak
  132. time_window = [EEG.times(maxtime_theta)-400 EEG.times(maxtime_theta)+400];
  133. timeidx = dsearchn(EEG.times',time_window'); % convert to indices
  134. snipn = EEG.pnts; % data points
  135. % initialize output for subject averaged TF maps
  136. tf_theta_avg = zeros(2, numfrex,length(EEG.times));
  137. % select epochs from the frustration condition
  138. n_epochs = size(EEG.data, 3); % Number of epochs
  139. channels = 1:126;
  140. % create R covariance matrix
  141. % full R
  142. R = zeros(n_epochs,length(channels),length(channels));
  143. for segi=1:n_epochs
  144. snipdat = EEG.data(channels,timeidx(1):timeidx(2),segi);
  145. snipdat = bsxfun(@minus,snipdat,mean(snipdat,2)); % mean-center
  146. R(segi,:,:) = snipdat*snipdat'/snipn;
  147. end
  148. % clean R
  149. meanR = squeeze(mean(R));
  150. dists = zeros(1,size(R,1));
  151. for segi=1:size(R,1)
  152. r = R(segi,:,:);
  153. dists(segi) = sqrt( sum((r(:)-meanR(:)).^2) ); % Euclidian distance
  154. end
  155. R = squeeze(mean( R(zscore(dists)<3,:,:) ,1));
  156. % regularized R
  157. gamma = .01;
  158. Rr = R*(1-gamma) + eye(length(channels))*gamma*mean(eig(R));
  159. % create S covariance matrix
  160. % full S
  161. S = zeros(n_epochs,length(channels),length(channels));
  162. % narrowband filter in theta
  163. fdat = filterFGx(EEG.data,EEG.srate,frex(maxfreq_theta),3, 1);
  164. for segi=1:n_epochs
  165. snipdat = fdat(channels, timeidx(1):timeidx(2), segi);
  166. snipdat = bsxfun(@minus,snipdat,mean(snipdat,2)); % mean-center
  167. S(segi,:,:) = snipdat*snipdat'/snipn;
  168. end
  169. % clean S
  170. meanS = squeeze(mean(S));
  171. dists = zeros(1,size(S,1));
  172. for segi=1:size(S,1)
  173. s = S(segi,:,:);
  174. dists(segi) = sqrt( sum((s(:)-meanS(:)).^2) );
  175. end
  176. S = squeeze(mean( S(zscore(dists)<3,:,:) ,1));
  177. % GED
  178. [evecsTh,evals] = eig( S,Rr );
  179. % sort evecs according to evals
  180. evals_extracted = diag(evals);
  181. [evals_sorted,sidx] = sort(evals_extracted, 'descend');
  182. evecsTh = evecsTh(:,sidx);
  183. % Plot eigenvalues
  184. figure(2);
  185. plot(evals_sorted, 'o-', 'LineWidth', 1.5);
  186. xlabel('Component');
  187. ylabel('Eigenvalue');
  188. title('Generalized Eigenvalues');
  189. grid on;
  190. % forward model to see activation patterns
  191. mapsTh = inv(evecsTh');
  192. % force sign of components so that topographical maps always show positive values
  193. for ci=1:126
  194. [~,idx] = max(abs(mapsTh(:,ci))); % find strongest weight
  195. mapsTh(:,ci) = mapsTh(:,ci) * sign(mapsTh(idx,ci)); % force to positive sign
  196. end
  197. % create data
  198. % keep the 15 components with the highest eigenvalues
  199. comps2keep = 1:15;
  200. thetadata = reshape( (reshape(EEG.data(:,:,:),126,[])'*evecsTh(:,comps2keep))' ,[length(comps2keep) EEG.pnts EEG.trials]);
  201. mapsTh = mapsTh(:,comps2keep); % overwrites mapsTh with only the components we want to keep
  202. % Plot forward models to inspect activation patterns
  203. chanlocs = EEG.chanlocs;
  204. figure(3), clf
  205. for topi = 1:size(mapsTh, 2)
  206. subplot(5,3,topi)
  207. topoplot(mapsTh(:,topi),chanlocs(channels),'numcontour', 6, 'gridscale', 100)
  208. title([ 'Comp ' num2str(topi) ])
  209. end
  210. %% Selection of the best theta component
  211. % Construct midfrontal theta template: Gaussian centered on FCz
  212. fczidx = strcmpi('E6',{EEG.chanlocs.labels});
  213. eucdist = zeros(1,EEG.nbchan);
  214. for chani = 1:EEG.nbchan
  215. eucdist(chani) = sqrt( (EEG.chanlocs(chani).X-EEG.chanlocs(fczidx).X)^2 + (EEG.chanlocs(chani).Y-EEG.chanlocs(fczidx).Y)^2 + (EEG.chanlocs(chani).Z-EEG.chanlocs(fczidx).Z)^2 );
  216. end
  217. midf.template = exp(-(eucdist.^2)/(2*50^2) );
  218. figure(4);
  219. colormap(jet(256));
  220. topoplot(midf.template, EEG.chanlocs, 'electrodes', 'on', 'numcontour', 6, 'gridscale', 100);
  221. title('Midfrontal Template - Gaussian Weighting Centered at FCz');
  222. clim([.981 1]);
  223. % compute shared variance between each component and the template
  224. midf.template_r2 = zeros(1, size(mapsTh,2));
  225. midf.ffm_EEG = zeros(EEG.nbchan, size(mapsTh,2));
  226. midf.ewr2 = zeros(1, size(mapsTh,2));
  227. num_figure = 900;
  228. for comp = 1:size(mapsTh,2)
  229. topo = mapsTh(:,comp);
  230. % Flip component by sign of correlation with FCz template
  231. midf.ffm_EEG(:,comp) = topo * sign(corr(topo, midf.template'));
  232. midf.template_r2(comp) = corr(topo, midf.template')^2;
  233. % formula to select the best component
  234. % eigenvalue-weighted correlation
  235. midf.ewr2(comp) = (evals_sorted(comp) / sum(evals_sorted)) * midf.template_r2(comp);
  236. figure(num_figure);
  237. subplot(5,3,comp)
  238. topoplot(midf.ffm_EEG(:,comp), EEG.chanlocs,'numcontour', 6, 'gridscale', 100)
  239. title([ 'Comp ' num2str(comp) ' r:' num2str(midf.template_r2(comp)) ])
  240. end
  241. num_figure = num_figure + 1;
  242. [maxEwr2, maxComp] = max(midf.ewr2);
  243. hold on
  244. subplot(5,3, maxComp)
  245. title([ 'Comp ' num2str(maxComp) ' r:' num2str(midf.template_r2(maxComp)) ], 'Color', 'r')
  246. hold on
  247. thetacompidx = maxComp;
  248. mapsTh_avg(:,subj_n) = mapsTh(:,thetacompidx); % store forward problem in subject averaged matrix
  249. % keep the selected component
  250. thetadata = thetadata(thetacompidx,:,:);
  251. EEG.thetadata = thetadata; % store in EEG struct
  252. % keep theta peak frequency for further analysis
  253. EEG.th_maxfreq = frex(maxfreq_theta);
  254. %% THETA: TF DECOMPOSITION TO INSPECT TIME-FREQUENCY POWER OF THE COMPONENT
  255. % recreate s because it gets overwritten
  256. s=logspace(log10(2),log10(10),numfrex)./(2*pi*frex);
  257. % fft of data
  258. eegX = fft( reshape(thetadata,1,[]) ,n_conv);
  259. power_trial = zeros(length(fi),EEG.pnts,EEG.trials);
  260. % loop over frequencies
  261. for fi=1:numfrex
  262. wavelet_fft = fft( exp(2*1i*pi*frex(fi).*time) .* exp(-time.^2./(2*(s(fi)^2))) , n_conv );
  263. as = ifft(wavelet_fft.*eegX);
  264. as = as(half_wavelet+1:end-half_wavelet);
  265. as = reshape(as,EEG.pnts,EEG.trials);
  266. % get the power per single-trial
  267. power_trial(fi,:,:) = abs(as(:, :)).^2;
  268. % concatenate the baseline
  269. baselines(fi,:,:) = power_trial(fi,baseidx(1):baseidx(2),:);
  270. %size_fused_baseline = size(baselines, 2) * size(baselines, 3);
  271. fused_baseline(fi,:) = reshape(baselines(fi,:,:), 1, []);
  272. for trial=1:EEG.trials
  273. power_trial(fi,:, trial) = ( power_trial(fi,:,trial) - mean(fused_baseline(fi,:),2) ) / std(fused_baseline(fi,:));
  274. end
  275. end % end frequencies loop
  276. thetafreq_extract = [4 8];
  277. thetatime_extract = [0 600];
  278. figure(5);
  279. colormap(jet(256))
  280. contourf(EEG.times,frex, mean(power_trial(:,:,:),3),40,'linecolor','none')
  281. set(gca, 'ylim', [.9 10], 'xlim', [-200 1000])
  282. rectangle('Position',[thetatime_extract(1) thetafreq_extract(1) diff(thetatime_extract) diff(thetafreq_extract)],'linew',3)
  283. text(thetatime_extract(1),thetafreq_extract(2),'ROI','VerticalAlignment','bottom','FontSize',10)
  284. xlabel('Time (ms)'), ylabel('Frequency (Hz)')
  285. % separate trials by feedback type for plotting
  286. power_trial_cond = zeros(2,length(frex), EEG.pnts);
  287. for cond=1:2
  288. thisidx = string(table2array(epochs(:,2))) == string(FB_type(cond));
  289. power_trial_cond(cond,:,:) = mean(power_trial(:,:,thisidx),3);
  290. end
  291. figure(6);
  292. colormap(jet(256))
  293. subplot(1,2,1)
  294. contourf(EEG.times,frex, squeeze(mean(power_trial_cond(1,:,:),1)),40,'linecolor','none')
  295. set(gca, 'ylim', [1 10], 'xlim', [-200 1000])
  296. rectangle('Position',[thetatime_extract(1) thetafreq_extract(1) diff(thetatime_extract) diff(thetafreq_extract)],'linew',3)
  297. text(thetatime_extract(1),thetafreq_extract(2),'ROI','VerticalAlignment','bottom','FontSize',10)
  298. xlabel('Time (ms)'), ylabel('Frequency (Hz)')
  299. title([ '\theta component TF power for F win ' char(subject_ids(subj_n))])
  300. subplot(1,2,2)
  301. contourf(EEG.times,frex, squeeze(mean(power_trial_cond(2,:,:),1)),40,'linecolor','none')
  302. set(gca, 'ylim', [1 10], 'xlim', [-200 1000])
  303. rectangle('Position',[thetatime_extract(1) thetafreq_extract(1) diff(thetatime_extract) diff(thetafreq_extract)],'linew',3)
  304. text(thetatime_extract(1),thetafreq_extract(2),'ROI','VerticalAlignment','bottom','FontSize',10)
  305. xlabel('Time (ms)'), ylabel('Frequency (Hz)')
  306. title([ '\theta component TF power for F loss ' char(subject_ids(subj_n))])
  307. save(fullfile(['GED_theta_AFP_fb_', char(subject_ids(subj_n)), '.mat']), 'EEG', 'mapsTh', 'thetacompidx', 'power_trial', 'power_trial_cond',"mapsTh_avg", "evals_sorted");
  308. file_name = fullfile(['GED_theta_' char(subject_ids(subj_n)) '.pdf']);
  309. % Find all open figures
  310. figHandles = findall(0, 'Type', 'figure');
  311. % Loop over figures and append them to the PDF
  312. for i = 1:length(figHandles)
  313. exportgraphics(figHandles(i), file_name, 'Append', true);
  314. end
  315. close all
  316. clearvars -except matrices_eegfiles subject_ids channel_FCz subject_ids_to_redo_idx
  317. end

Step3_GED.m, no license · at the source

Overview

Authors: Nellia Bellaert1,2, Federico Cassioli3,4, Michael J. Crowley2, Hilary P. Blumberg2,5, Mandy Rossignol1, Christen M. Deveney6, Wan-Ling Tseng2
  1. Department of Cognitive Psychology and Neuropsychology, University of Mons, Mons, Belgium
  2. Yale Child Study Center, Yale School of Medicine, New Haven, CT, USA
  3. Department of Experimental Psychology, Ghent University, Ghent, Belgium
  4. Department of Experimental Clinical and Health Psychology, Ghent University, Ghent, Belgium
  5. Departments of Psychiatry and Radiology and Biomedical Imaging, Yale School of Medicine, New Haven, CT, USA
  6. Department of Psychology, Wellesley College, MA, USA
Institutions: University of Mons (Belgium); Yale University (United States); Ghent University (Belgium); Wellesley College (United States)
Journal: NeuroImage, volume 338, article 122115
Dates: published online 8 July 2026; in print September 2026
Type: Research article · Language: English
License: CC BY-NC-ND
Identifiers: DOI 10.1016/j.neuroimage.2026.122115 · PMID 42419656 · PMCID PMC13500859 · OpenAlex W4416182346
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: EEG (modality), human (organism), cognitive (subfield)
Methods: Connectivity, Statistics, Smoothing, state filtering, decompositions, Preprocessing, Spectral & time-frequency, Evoked potentials, Physiology & signal measures
Keywords: Frustrative nonreward, Midfrontal theta, Cognitive control, Irritability, Frustration
MeSH: Adaptation, Psychological*, Executive Function*, Feedback, Psychological*, Frontal Lobe*, Frustration*, Irritable Mood*, Reaction Time*, Theta Rhythm*, Adolescent, Adult, Electroencephalography, Female, Humans, Male, Young Adult (* major topic)
Topic: Mindfulness and Compassion Interventions (Clinical Psychology, Psychology), according to OpenAlex
Funding: Belgian American Educational Foundation Inc; Charles H Hood Foundation Inc; Fund for Scientific Research; Yale Child Study Center; NIMH NIH HHS (DP2 MH140132, R00 MH110570); National Institute of Mental Health; Yale Center for Clinical Investigation
Citations: not cited yet (Europe PMC); 106 references in the paper

Abstract

The abstract is not reproduced here: the paper's license (CC BY-NC-ND) does not allow it. Read it in the paper, at the publisher or on Europe PMC.

Repository

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

OSF qspbf

License: none: the authors keep all their rights
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Languages: MATLAB (6), R (1)
Size: 19 files, 7 scripts
Software Heritage: not checked
Found in: the end of the paper
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: EEGLAB (4 files), Statistics and Machine Learning Toolbox (2 files), car (1 file), easystats (1 file), emmeans (1 file), ggplot2 (1 file), ggpubr (1 file), ICLabel (1 file), lme4 (1 file), lmerTest (1 file), Signal Processing Toolbox (1 file), patchwork (1 file), psych (1 file), reshape2 (1 file), rstatix (1 file), tidyverse (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
  • 27 September 2026: the link answers (HTTP 200)
7 files
At the source:

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;
  • 7 scripts, each with its path and the digest of its content;
  • 9 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.

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 2, 28 September 2026

  • Publisher: n/a → Elsevier BV

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, pages, dates, 7 authors, 5 keywords, 15 MeSH terms, 7 funders, 105 references.

Cite

This paper

Bellaert, N., Cassioli, F., Crowley, M. J., Blumberg, H. P., Rossignol, M., Deveney, C. M., & Tseng, W.-L. (2026). Midfrontal theta power relates to response speeding following frustrative nonreward. NeuroImage, 338, 122115. https://doi.org/10.1016/j.neuroimage.2026.122115

BibTeX

@article{bellaert2026midfrontal,
author = {Bellaert, Nellia and Cassioli, Federico and Crowley, Michael J. and Blumberg, Hilary P. and Rossignol, Mandy and Deveney, Christen M. and Tseng, Wan-Ling},
title = {{Midfrontal theta power relates to response speeding following frustrative nonreward}},
journal = {NeuroImage},
year = {2026},
month = jul,
volume = {338},
pages = {122115},
publisher = {Elsevier BV},
issn = {1053-8119},
doi = {10.1016/j.neuroimage.2026.122115},
url = {https://doi.org/10.1016/j.neuroimage.2026.122115},
pmid = {42419656},
pmcid = {PMC13500859}
}

RIS

TY - JOUR
AU - Bellaert, Nellia
AU - Cassioli, Federico
AU - Crowley, Michael J.
AU - Blumberg, Hilary P.
AU - Rossignol, Mandy
AU - Deveney, Christen M.
AU - Tseng, Wan-Ling
TI - Midfrontal theta power relates to response speeding following frustrative nonreward
T2 - NeuroImage
J2 - Neuroimage
PY - 2026
DA - 2026/07/08
VL - 338
SP - 122115
SN - 1053-8119
PB - Elsevier BV
DO - 10.1016/j.neuroimage.2026.122115
UR - https://doi.org/10.1016/j.neuroimage.2026.122115
LA - en
ER -

CSL-JSON

{
"id": "10.1016/j.neuroimage.2026.122115",
"type": "article-journal",
"title": "Midfrontal theta power relates to response speeding following frustrative nonreward",
"container-title": "NeuroImage",
"author": [
{
"family": "Bellaert",
"given": "Nellia"
},
{
"family": "Cassioli",
"given": "Federico"
},
{
"family": "Crowley",
"given": "Michael J."
},
{
"family": "Blumberg",
"given": "Hilary P."
},
{
"family": "Rossignol",
"given": "Mandy"
},
{
"family": "Deveney",
"given": "Christen M."
},
{
"family": "Tseng",
"given": "Wan-Ling"
}
],
"container-title-short": "Neuroimage",
"volume": "338",
"page": "122115",
"DOI": "10.1016/j.neuroimage.2026.122115",
"PMID": "42419656",
"PMCID": "PMC13500859",
"ISSN": "1053-8119",
"publisher": "Elsevier BV",
"URL": "https://doi.org/10.1016/j.neuroimage.2026.122115",
"language": "en",
"issued": {
"date-parts": [
[
2026,
7,
8
]
]
}
}

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.1371/journal.pone.0353990 [code]
Positive mood enhances accessibility of unrelated concepts in the first language but not in the foreign language.
Journal: PloS one
In common: ICLabel, psych, car, 9 other tools, EEG, cognitive, 3 references
[2] doi:10.1111/psyp.70265 [code]
Neurocognitive Dynamics of Translating Information From a Spatial Map Into Action.
Journal: Psychophysiology
In common: easystats, car, EEGLAB, 8 other tools, EEG, cognitive, 3 references
[3] doi:10.7554/elife.107088 [code]
Development of auditory and spontaneous movement responses to music over the first postnatal year.
Journal: eLife
In common: ICLabel, easystats, car, 9 other tools, EEG, 1 reference
[4] doi:10.1371/journal.pbio.3003979 [code]
Impaired midfrontal‑motor theta phase synchronization characterizes maladaptive motivational behavior in people with obsessive‑compulsive disorder.
Journal: PLoS biology
In common: psych, car, EEGLAB, 6 other tools, EEG, 4 references
[5] doi:10.1126/sciadv.aec9291 [code]
Computational mechanisms of perception in autism revealed using games inspired by rodent operant tasks.
Journal: Science advances
In common: psych, rstatix, easystats, 8 other tools, cognitive
[6] doi:10.1093/cercor/bhag077 [code]
The longitudinal development of intrinsic timescales in infancy and their relation to alpha brain rhythm.
Journal: Cerebral cortex (New York, N.Y. : 1991)
In common: psych, easystats, EEGLAB, 6 other tools, EEG, 3 references
[7] doi:10.1038/s41598-026-58046-4 [code]
Dissecting the interplay of model-based control, impulsivity and compulsivity on self-control in daily life.
Journal: Scientific reports
In common: psych, easystats, car, 4 other tools, EEG, cognitive, 4 references
[8] doi:10.7554/elife.103566 [code]
Effort produces after-effects costly for others but valued for self.
Journal: eLife
In common: psych, rstatix, emmeans, 5 other tools, EEG, 4 references
[9] doi:10.1162/imag.a.1245 [code]
Towards precision EEG connectomics: Evaluating the benefits of dense sampling.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: ICLabel, psych, rstatix, 8 other tools, EEG
[10] doi:10.1073/pnas.2606871123 [code]
Oxytocin modulates the neurocomputational mechanisms engaged in learning rank relationships in social networks.
Journal: Proceedings of the National Academy of Sciences of the United States of America
In common: psych, easystats, car, 8 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.