OSCR

Distorting anatomy to test MEG models and metrics.

Code ↔ Paper

7 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 7 matches · 4 of them tie a paragraph to a whole file without given lines: weak matches, whose lines are not tinted
  1. [1] § Methods › Implementation ↔ coreg_subject_distort.m, the whole file · a weak match · score 0.73 · surface mesh, single shell, FreeSurfer, cortical surface, vertex, distortion · Report a mismatch
  2. [2] § Results › Simulated data ↔ spm_distort_mesh_example.m, lines 161 to 263 · score 0.61 · distort mesh, distorted surfaces, Free energy, matching, EBB, spm · Report a mismatch
  3. [3] § Methods › Diffeomorphic modeling ↔ +brca/@model/model.m, lines 1 to 64 · score 0.60 · latent coordinates, principal component, posterior, residual, covariance, modeling · Report a mismatch
  4. [4] § Methods › Implementation ↔ surfandlf_distort.m, the whole file · a weak match · score 0.58 · single shell, random seed, vertex, field, surface, distortion · Report a mismatch
  5. [5] § Methods › Parameter space ↔ surfandlf_distort.m, the whole file · a weak match · score 0.56 · vertex distances, random seeds, deviation, mm, components, trajectories · Report a mismatch
  6. [6] § Methods › Parameter space ↔ spm_distort_mesh_example.m, lines 70 to 74 · score 0.53 · 8–100, cortical surface, scores, mesh, components, distorted · Report a mismatch
  7. [7] § Methods › Inversion schemes ↔ invert_group_matched.m, the whole file · a weak match · score 0.50 · Cross validation, source reconstruction, Inversion · Report a mismatch

Paper

Loaded from Europe PMC by your browser; OSCR does not store it: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

MATLAB · 313 lines · 11 KB · no license · 2 matches

  1. %% DEMO SCRIPT TO RUN LOPEZ ET AL. REVISION December 2025 distortion paper
  2. %% GRB December 2025
  3. %% Run code for subject 1
  4. clear all;
  5. close all;
  6. DISTORTANAT=1; %% distort anatomies (only need to do this once)
  7. addpath('D:\spm'); %% spm directory
  8. addpath('D:\spm_distort'); %% directory with distort code from github
  9. rootdir='C:\Users\gbarnes\Documents\jimmytest\'; %% where the downloaded data sits
  10. spm('defaults','eeg');
  11. spm_jobman('initcfg');
  12. [v,r]=spm('ver'); %% Code is currently in the 2025 development version of spm (r=0.0); but not the 2025 'release' version
  13. %% next year (2026) it will be in both versions.
  14. if (str2num(v(4:end))>=26) | (str2num(r)==0),
  15. fprintf('SPM version OK\n')
  16. else
  17. error('Need to use current (>March 2025) development version of SPM : https://github.com/spm/spm')
  18. end;
  19. %% set up the directory structure
  20. datadirectory=fullfile(rootdir,'data');
  21. mri_dir=fullfile(datadirectory,'mri');
  22. outputdirectory=fullfile(rootdir,'output')
  23. mkdir(outputdirectory);
  24. %% where the PCA template for the diffeomorphic code sits
  25. PCAtemplate=fullfile(spm('Dir'),'tpm','shp','Template_0.nii');
  26. %% load in information on the 8 subjects
  27. subjects=create_anon_subject_structure();
  28. %%%% FILES OF AVERAGED MEG DATA AND Time-Frequency WINDOWS
  29. allfname=strvcat('mpinstr_rcinstr_Tafdf.mat','mpdots_rcinstr_Tafdf.mat','mprcresp_Tafdf.mat');
  30. %% inversion choices
  31. allwoi=[ 0 500; -2500 -2000;-200 300]; %% approx where evoked responses sit in these files
  32. invmethods={'EBB','IID','GS'}; %% SPM inversion algorithms
  33. foi=[5 90]; %% frequency window in Hz
  34. patch_size=0.6; %% extent of source (arb units) on cortical surface
  35. n_temp_modes=16; %% number of temporal modes
  36. Nblocks=1; pctest=0; %% no cross validation
  37. swap_subj=[];
  38. %% for cross validation: Nblocks=10; pctest=10; for example
  39. %%%%%%%%%%%%%%%%%%%%% DEFINE PARAMETERS %%%%%%%%%%%%%%%%%%%%
  40. subind=1; %% individual subject data to look at (1-8)
  41. fileind=1; %% file to look at
  42. if length(subind)*length(fileind)>1,
  43. error('Only set up to deal with one subject and one dataset in this example code')
  44. % NB although simple to modify if needed
  45. end;
  46. Npoints=17; %% points on trajectory (17 in paper)
  47. RandSeeds=[1:8]; %% seed which sets the trajectory (runs from 1 to 8 in paper)
  48. %% RandSeeds=[3] to run just one representative seed (faster)
  49. RunClean='Yes'; %% if 'No' already have all surfaces worked out
  50. %% distortion parameters
  51. Zmax=3; %% amount of distortion per component (as Z score)
  52. DistortIndices=[8 100]; %% which PCAs to distort (as in paper)
  53. HeadModel='Single Shell'; %% head model to use
  54. loc_surface='white'; %% cortical surface to use white (in paper) or pial
  55. %%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCESSING %%%%%%%%%%%%%%%%%%
  56. allFvals=[];
  57. allR2=[];
  58. allcrosserr=[];
  59. allfiles=[];
  60. gainmatfiles={};
  61. if DISTORTANAT,
  62. %% loop through the list of random seeds- each seed defines a trajectory
  63. for rs=1:length(RandSeeds),
  64. RandSeed=RandSeeds(rs);
  65. %% load in average evoked dataset
  66. fname = fullfile(datadirectory,'meg',subjects(subind).subj_id,deblank(allfname(fileind,:)));
  67. D = spm_eeg_load(fname);
  68. %% Decide on the cortical surface to use for this subject (freesurfer/laMEG output)
  69. subj_surf_dir=fullfile(datadirectory, 'surf',sprintf('%s-synth',...
  70. subjects(subind).subj_id),'surf');
  71. %%%% FROM COREG SUBJ ERF
  72. fprintf('\n Using original cortex %s \n',sprintf('%s.ds.gii', loc_surface))
  73. tmp_loc_surface=gifti(fullfile(subj_surf_dir, sprintf('%s.ds.gii', loc_surface)));
  74. %% make new surface without the surface normals (just faces and vertices)..
  75. ds_loc_surface=[]; ds_loc_surface.vertices=tmp_loc_surface.vertices;
  76. ds_loc_surface.faces=tmp_loc_surface.faces; ds_loc_surface.mat=tmp_loc_surface.mat;
  77. fprintf('Removing orienation info from original surface (if it exists)');
  78. surf_name=sprintf('ori_norm_%s_loc.gii', loc_surface);
  79. full_surf_name=fullfile(subj_surf_dir, surf_name);
  80. save(gifti(ds_loc_surface),full_surf_name);
  81. %% now make a unique file name based on datafile and surface
  82. subj_outputdirectory=fullfile(outputdirectory,subjects(subind).subj_id);
  83. mkdir(subj_outputdirectory);
  84. [a1,b1,c1]=spm_fileparts(fname)
  85. coreg_fname=fullfile(subj_outputdirectory, sprintf('loc_%s_%s_norm.mat',loc_surface,b1))
  86. %% make copy of original fname and coregister this file to the chosen surface
  87. fprintf('\n Running initial coreg')
  88. coreg_fname=coreg_subject_distort(subjects(subind), deblank(allfname(fileind,:)),full_surf_name,coreg_fname,HeadModel,datadirectory);
  89. fprintf('\n Now running distortion')
  90. %% now make some distorted brians (distorted brain)
  91. %% for each brain and brian compute a lead-field
  92. [aM,aL]=surfandlf_distort(coreg_fname,RandSeed,HeadModel,Npoints,Zmax,DistortIndices,RunClean);
  93. %% now compute distances of brians to brain.
  94. M0=gifti(aM{1}.brain); %% get original cortex
  95. for i=1:Npoints,
  96. M1=gifti(aM{1}.brians{i});
  97. d0=M1.vertices-M0.vertices;
  98. d1(i)=mean(sqrt(dot(d0',d0'))); %% mean vertex-vertex distance to M0
  99. end;% for i
  100. %% now quantify how much the lead fields for the distorted surfaces differ from the original
  101. %% first LF is the original
  102. G=load(aL{1}.gainmat{1}); %% original lead fields
  103. L0=G.G;
  104. diffL=[];
  105. for i=1:Npoints,
  106. G=load(aL{1}.gainmat{i+1});
  107. L1=G.G;
  108. diffL(i)=mean(dot(L1-L0,L1-L0));
  109. end; % for i
  110. %%&%%%%%%%%%%%%%%%%% Now run inversion models %%%%%%%%%%%
  111. %%% trajectory includes the new brians and the original brain
  112. %% get a list of the lead-field files
  113. gainmatfiles(rs,1:Npoints+1)=aL{1}.gainmat;
  114. spmfilename=aL{1}.Dc{1};
  115. end; % for rs
  116. save([rootdir filesep 'distortwkspace.mat']); % keep useful info for this subject
  117. else
  118. load([rootdir filesep 'distortwkspace.mat']); % load info on distorted surfaces
  119. end; % if DISTORTANAT
  120. INVDISTORT=1; %% run inversions on the distorted anatomies (only needs to be set first time it is run)
  121. %% make a copy (MAY NOT BE NECESSARY)
  122. [a1,b1,c1]=spm_fileparts(spmfilename);
  123. newspmfilename=[a1 filesep b1 '_copy' '.mat']
  124. Dorig=spm_eeg_load(spmfilename);
  125. Dorig.copy(newspmfilename)
  126. Dnew=spm_eeg_load(newspmfilename); %% new spmfilename is a copy of Dorig
  127. idstr=sprintf('w%d-%d_f%d-%d_Nb%d_pc%d_pt%d_Nt%d%s',round(allwoi(fileind,1)),round(allwoi(fileind,2)),...
  128. round(foi(1)),round(foi(2)),Nblocks,pctest,patch_size*10,n_temp_modes,swap_subj);
  129. fprintf('\n id is %s\n',idstr)
  130. if INVDISTORT, %% run inversions on these surfaces
  131. everyresults=[];
  132. for rs=1:length(RandSeeds),
  133. RandSeed=RandSeeds(rs);
  134. gmfiles=strvcat(gainmatfiles{rs,1:Npoints+1});
  135. spatialmodesname=fullfile(a1, sprintf('Grpmod_%s_seed%03dNb%d.mat',idstr,RandSeed,Npoints));
  136. [F_vals,R2,VE,crosserr,allresultsfiles]=invert_group_matched(Dnew,gmfiles,spatialmodesname,invmethods,allwoi(fileind,:),foi,idstr,Nblocks,pctest,patch_size,n_temp_modes)
  137. allFvals(rs,:,:)=F_vals;
  138. allR2(rs,:,:)=R2;
  139. allVE(rs,:,:)=VE;
  140. allcrosserr(rs,:,:)=crosserr;
  141. everyresults=strvcat(everyresults,allresultsfiles);
  142. end;
  143. save([rootdir filesep 'inv_distortwkspace.mat']); % keep useful info for this subject
  144. else %% DONT REDO INVERSION JUST LOAD
  145. load([rootdir filesep 'inv_distortwkspace.mat']); % load info on distorted surfaces
  146. end; % INVDISTORT
  147. markerstr={'d','o','s'}
  148. colstr={'b','r','g'}
  149. mspairs=strvcat('bd','ro','gs');
  150. Lw=4; %% line width
  151. Ms=10; %% marker size
  152. figure; %% part 1 of figure for slides
  153. for im1=1:numel(invmethods),
  154. [shortF,shortdist]=simplify_dist_metric(allFvals(:,:,im1),[0 d1]);
  155. hold on;
  156. plotSeed=8; %% shows local maximum
  157. h01=plot(shortdist,squeeze(shortF(plotSeed,:)),colstr{im1});
  158. [dum,ind]=max(squeeze(shortF(plotSeed,:)));
  159. h1=plot(shortdist(ind),shortF(plotSeed,ind),mspairs(im1,:))
  160. set(h01,'LineWidth',Lw);
  161. set(h1(1),'LineWidth',Lw);
  162. set(h1(1),'MarkerSize',Ms);
  163. end;
  164. xlabel('Distortion (mm)')
  165. ylabel('Free Energy')
  166. set(gca,'Fontsize',18);
  167. Nseed=length(RandSeeds)
  168. figure; hold on;
  169. for im1=1:numel(invmethods),
  170. plotSeed=[1:Nseed]; %% show all seeds
  171. [shortF,shortdist]=simplify_dist_metric(allFvals(:,:,im1),[0 d1]);
  172. [dum,ind]=max(squeeze(shortF(plotSeed,:))');
  173. for f=1:length(ind)
  174. h1=plot(shortdist(ind(f)),shortF(plotSeed(f),ind(f))',mspairs(im1,:))
  175. set(h1,'LineWidth',Lw);
  176. set(h1,'MarkerSize',Ms);
  177. end;
  178. end;
  179. hold on;
  180. msumdist=zeros(numel(invmethods),1);
  181. for im1=1:numel(invmethods),
  182. [shortF,shortdist]=simplify_dist_metric(allFvals(:,:,im1),[0 d1]);
  183. [dum,ind]=max(squeeze(shortF(plotSeed,:))');
  184. msumdist(im1)=0;
  185. for f=1:length(ind),
  186. msumdist(im1)=msumdist(im1)+shortdist(ind(f));
  187. end;
  188. msumdist(im1)=msumdist(im1)/length(ind);
  189. ax=axis;
  190. h=plot(msumdist(im1),ax(3),mspairs(im1,:))
  191. set(h,'Markersize',Ms*2)
  192. set(h,'LineWidth',Lw)
  193. end;
  194. xlabel('Distortion (mm)')
  195. ylabel('Free Energy')
  196. set(gca,'Fontsize',18);
  197. axis('tight')
  198. rs=8; %% seed to plot
  199. RandSeed=RandSeeds(rs);
  200. invmethod_example={'EBB'}
  201. gmfiles=strvcat(gainmatfiles{rs,1:Npoints+1});
  202. spatialmodesname=fullfile(a1, sprintf('Grpmod_%s_seed%03dNb%d.mat',idstr,RandSeed,Npoints));
  203. [F_vals,R2,VE,crosserr,allresultsfiles,Mall]=invert_group_matched(Dnew,gmfiles,spatialmodesname,invmethod_example,allwoi(fileind,:),foi,idstr,Nblocks,pctest,patch_size,n_temp_modes);
  204. %% PLOT SOME REAL DATA AND INVERSIONS
  205. figure;
  206. megind=setdiff(Dnew.indchantype('MEG'),Dnew.badchannels)
  207. data=squeeze(D(megind,:,1));
  208. plot(D.time,data)
  209. set(gca,'Fontsize',18);
  210. xlabel('Time (s)')
  211. ylabel('Field (fT)')
  212. ind0=1;
  213. indmaxdist=Npoints+1;
  214. J0=squeeze(Mall(ind0,1,:,:))*data;
  215. Jmax=squeeze(Mall(indmaxdist,1,:,:))*data;
  216. rmsJ0=std(J0');
  217. rmsJmax=std(Jmax');
  218. rmsJtot=rmsJ0+rmsJmax;
  219. [dum,maxsurfind]=max(rmsJtot);
  220. M0=Dnew.inv{1}.mesh.tess_mni;
  221. M0.vertices=M0.vert;
  222. M0.faces=M0.face;
  223. M0i=spm_mesh_inflate(gifti(M0));
  224. figure;
  225. h=trisurf(M0i.faces,M0i.vertices(:,1),M0i.vertices(:,2),M0i.vertices(:,3),rmsJ0)
  226. set(h,'EdgeColor','none');
  227. F_valsrel=F_vals-min(F_vals);
  228. colorbar;
  229. title(sprintf('F rel=%3.2f',F_valsrel(ind0)))
  230. xlabel('x'); ylabel('y');zlabel('z');
  231. set(gca,'Fontsize',18)
  232. caxis([0 0.065])
  233. figure;
  234. h=trisurf(M0i.faces,M0i.vertices(:,1),M0i.vertices(:,2),M0i.vertices(:,3),rmsJmax)
  235. set(h,'EdgeColor','none')
  236. title(sprintf('F rel=%3.2f',F_valsrel(indmaxdist)))
  237. xlabel('x'); ylabel('y');zlabel('z');
  238. set(gca,'Fontsize',18)
  239. caxis([0 0.065])
  240. colorbar;
  241. figure;
  242. h=plot(D.time,J0(maxsurfind,:),D.time,Jmax(maxsurfind,:))
  243. set(h,'Linewidth',3)
  244. legend('True','Distorted')
  245. title(sprintf('At MNI %3.2f %3.2f %3.2f',M0.vertices(maxsurfind,1),M0.vertices(maxsurfind,2),M0.vertices(maxsurfind,3)));
  246. set(gca,'FontSize',18)

spm_distort_mesh_example.m at commit 9f16cc0, no license · at the source

Overview

Authors: José David López1,2, Yael Balbastre3,4, John Ashburner3, Alberto Mariola3, James J. Bonaiuto5,6, Gareth Barnes3
ORCID iDs: Gareth Barnes
  1. Engineering Faculty, Universidad de Antioquia UDEA, Medellín, Colombia
  2. Global Brain Health Institute, Trinity College Dublin, Dublin, Ireland
  3. Department of Imaging Neuroscience, UCL Institute of Neurology, University College London, London, United Kingdom
  4. Department of Experimental Psychology, University College London, London, United Kingdom
  5. Institut de Sciences Cognitives Marc Jeannerod, CNRS, UMR5229, Lyon, France
  6. Université de Lyon, Université Claude Bernard Lyon 1, Lyon, France
Journal: Imaging neuroscience (Cambridge, Mass.), volume 4, article IMAG.a.1189
Dates: received 1 April 2025; accepted 5 March 2026; published online 30 March 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1162/imag.a.1189 · PMID 41924033 · PMCID PMC13037658 · OpenAlex W7135089158
Open access: diamond, a free copy (OpenAlex)
Status: code verified (how the code is found and verified)
Categories: EEG (modality), MEG (modality)
Methods: Spectral & time-frequency, Preprocessing, Smoothing, state filtering, decompositions, Machine learning, Physiology & signal measures
Keywords: MEG/EEG brain imaging, diffeomorphic modeling, brain anatomy
Topic: Functional Brain Connectivity Studies (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Funding: Colombian MinCiencias (1222-852-69927); MRC and Spinal Research Charity through the ERA-NET Neuron (MR/R000050/1); Royal Society (NIF\R1\232460); Wellcome Trust (226793/Z/22/Z, 203147/Z/16/Z); BBSRC (BB/M009645/1)
Citations: not cited yet (Europe PMC); 50 references in the paper

Abstract

The magnetoencephalographic and electroencephalographic (M/EEG) source reconstruction problem is an ill-posed model inversion, so it must be constrained by imposing biologically and physically plausible assumptions. Different M/EEG source reconstruction methods entail different assumptions about the underlying current distribution, yet all produce subjectively plausible current estimates. This work aims to develop an objective method that can be used to test any M/EEG analysis pathway. We make use of advances in diffeomorphic brain shape modeling to construct a set of parametrically deformable cortical surfaces that are representative of the population. These deformed (surrogate) brains provide a quantifiable parametric distortion from the ground-truth anatomy. If the current flow giving rise to the MEG data were generated on the true cortical manifold, MEG current estimates should be selective of the true anatomy. We show in simulation and with empirical data how the correct reconstruction assumptions depend closely on the true anatomy. We present a method to quantify the performance of MEG source reconstruction algorithms (and metrics of fit) in terms of millimeters of distortion.

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 7 matches between paragraphs and lines of code.

balbasty/BRCA

License: GPL-3.0
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: 0fdeba175a3f5b362e805364340d8a7865c59d60, 3 December 2025
Languages: MATLAB (58)
Size: 61 files, 58 scripts
Software Heritage: not archived
Found in: “Data and Code Availability”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Tools: SPM (2 files), Statistics and Machine Learning Toolbox (1 file)
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
60 files

barnesgr123/spm_distort

License: none: the authors keep all their rights
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: 9f16cc0ddd12f8343ef6d802628075a944fa2777, 5 March 2026
Languages: MATLAB (6)
Size: 12 files, 6 scripts
Software Heritage: not archived
Found in: “Data and Code Availability”
Holds: README
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: SPM (4 files), GIfTI library for MATLAB (3 files)
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
6 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:

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

Datasets cited

Data and Code Availability

The code is part of the current development version of SPM (https://github.com/spm/spm). The deformation templates will be automatically downloaded the first time the algorithm is used. The code to train the Bayesian Residual Component Analysis model is available at https://github.com/balbasty/BRCA. The MEG-evoked response data, individual MRIs, and cortical surfaces are available here: https://figshare.com/s/e3ff829753a76bcfda22. The additional code to reproduce the simulations and single-subject analyses can be found at https://github.com/barnesgr123/spm_distort/ and within the latest version of SPM. The complete dataset, originally from Bonaiuto, Meyer, et al. (2018) and Little et al. (2018), can be found at https://osf.io/eu6nx.

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

Recorded: type, language, journal, volume, pages, dates, 6 authors, 3 keywords, 5 funders, 46 references.

Cite

This paper

López, J. D., Balbastre, Y., Ashburner, J., Mariola, A., Bonaiuto, J. J., & Barnes, G. (2026). Distorting anatomy to test MEG models and metrics. Imaging neuroscience (Cambridge, Mass.), 4, IMAG.a.1189. https://doi.org/10.1162/imag.a.1189

BibTeX

@article{lopez2026distorting,
author = {López, José David and Balbastre, Yael and Ashburner, John and Mariola, Alberto and Bonaiuto, James J. and Barnes, Gareth},
title = {{Distorting anatomy to test MEG models and metrics}},
journal = {Imaging neuroscience (Cambridge, Mass.)},
year = {2026},
month = mar,
volume = {4},
pages = {IMAG.a.1189},
publisher = {MIT Press},
issn = {2837-6056},
doi = {10.1162/imag.a.1189},
url = {https://doi.org/10.1162/imag.a.1189},
pmid = {41924033},
pmcid = {PMC13037658}
}

RIS

TY - JOUR
AU - López, José David
AU - Balbastre, Yael
AU - Ashburner, John
AU - Mariola, Alberto
AU - Bonaiuto, James J.
AU - Barnes, Gareth
TI - Distorting anatomy to test MEG models and metrics
T2 - Imaging neuroscience (Cambridge, Mass.)
J2 - Imaging Neurosci (Camb)
PY - 2026
DA - 2026/03/30
VL - 4
SP - IMAG.a.1189
SN - 2837-6056
PB - MIT Press
DO - 10.1162/imag.a.1189
UR - https://doi.org/10.1162/imag.a.1189
LA - en
ER -

CSL-JSON

{
"id": "10.1162/imag.a.1189",
"type": "article-journal",
"title": "Distorting anatomy to test MEG models and metrics",
"container-title": "Imaging neuroscience (Cambridge, Mass.)",
"author": [
{
"family": "López",
"given": "José David"
},
{
"family": "Balbastre",
"given": "Yael"
},
{
"family": "Ashburner",
"given": "John"
},
{
"family": "Mariola",
"given": "Alberto"
},
{
"family": "Bonaiuto",
"given": "James J."
},
{
"family": "Barnes",
"given": "Gareth"
}
],
"container-title-short": "Imaging Neurosci (Camb)",
"volume": "4",
"page": "IMAG.a.1189",
"DOI": "10.1162/imag.a.1189",
"PMID": "41924033",
"PMCID": "PMC13037658",
"ISSN": "2837-6056",
"publisher": "MIT Press",
"URL": "https://doi.org/10.1162/imag.a.1189",
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
30
]
]
}
}

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.1101/2025.04.03.646622 [code]
Distorting anatomy to test MEG models and metrics
Journal: bioRxiv (preprint)
In common: GIfTI library for MATLAB, SPM, OSF eu6nx, MEG, EEG, 25 references, author Gareth R. Barnes
[2] doi:10.1038/s41467-026-77782-9 [code]
Multilayer MEG source modelling enables depth-resolved laminar inference in humans.
Journal: Nature communications
In common: GIfTI library for MATLAB, SPM, Statistics and Machine Learning Toolbox, MEG, 10 references, author Gareth R. Barnes
[3] doi:10.1101/2025.05.28.656642 [code]
Multilayer MEG source modelling enables depth-resolved laminar inference in humans
Journal: bioRxiv (preprint)
In common: GIfTI library for MATLAB, SPM, Statistics and Machine Learning Toolbox, MEG, 7 references, author Gareth R. Barnes
[4] doi:10.1038/s41598-024-51857-3 [code]
Combining OPM and lesion mapping data for epilepsy surgery planning: a simulation study.
Journal: Scientific reports
In common: GIfTI library for MATLAB, SPM, MEG, EEG, 7 references, author Gareth R. Barnes
[5] doi:10.1016/j.neuroimage.2023.120252 [code]
Real-time, model-based magnetic field correction for moving, wearable MEG.
Journal: NeuroImage
In common: GIfTI library for MATLAB, SPM, Statistics and Machine Learning Toolbox, MEG, 6 references, author Gareth R. Barnes
[6] doi:10.1162/imag_a_00410 [code]
Inferring laminar origins of MEG signals with optically pumped magnetometers (OPMs): A simulation study.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: GIfTI library for MATLAB, SPM, Statistics and Machine Learning Toolbox, MEG, 8 references
[7] doi:10.1162/imag.a.1353 [code]
Model-based cardiac field artefact correction for OP-MEG.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: GIfTI library for MATLAB, SPM, Statistics and Machine Learning Toolbox, MEG, EEG, 5 references, author Gareth R. Barnes
[8] doi:10.3390/s25134160 [code]
Using Wearable MEG to Study the Neural Control of Human Stepping.
Journal: Sensors (Basel, Switzerland)
In common: SPM, Statistics and Machine Learning Toolbox, MEG, 4 references, author Gareth R. Barnes
[9] doi:10.1016/j.isci.2022.105177
Spatial accuracy evaluation of magnetic source imaging methods on OPM-based MEG.
Journal: iScience
In common: MEG, 9 references
[10] doi:10.1162/imag_a_00495 [code]
Combining video telemetry and wearable MEG for naturalistic imaging.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: MEG, 5 references, author Gareth R. Barnes

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.

Add the badge to the code's README

OSCR: the badge of this paper

If you are an author or a maintainer of this paper's code, you can add this badge. It says what OSCR knows of the paper (its code, its validated tracing map) and links the code to this page. Paste one of these snippets under the README's title. Keep the two marks around it, so that the badge can be replaced in place and is never added twice. OSCR changes nothing in your repository.

Markdown
<!-- oscr-badge:start -->
[![OSCR](https://openscicode.org/badge/doi/10.1162/imag.a.1189.svg)](https://openscicode.org/badge/doi/10.1162/imag.a.1189)
<!-- oscr-badge:end -->
reStructuredText
.. oscr-badge:start

.. image:: https://openscicode.org/badge/doi/10.1162/imag.a.1189.svg
   :target: https://openscicode.org/badge/doi/10.1162/imag.a.1189
   :alt: OSCR

.. oscr-badge:end
HTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1162/imag.a.1189"><img src="https://openscicode.org/badge/doi/10.1162/imag.a.1189.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->

On GitHub, open the README, choose Edit (the pencil), paste the snippet under the title, then "Commit changes".

If you choose to, you can have the badge kept up to date for you, with oscr badge --write from the command line or with the GitHub Action in your repository's workflows. Every other form and option (a card, AsciiDoc, LaTeX, shields.io) is on the badge 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: code errors and mismatches between the code and the paper about this paper and its code, from readers and its authors, beside the paper and its tracing map.

Report a mismatch between the code and the paper · Report a code error (signed in)

Reproductions: reports from readers who ran the authors' code and did not get the paper's result, what they ran, with which environment, commit and data.

Report a reproduction failure (signed in)

Versions of its code: the releases of its code tied to a version of this paper (the preprint, the accepted manuscript, the version of record…), each with the tracing map versioned with it.

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