Distorting anatomy to test MEG models and metrics.
The 7 matches · 4 of them tie a paragraph to a whole file without given lines: weak matches, whose lines are not tinted
- [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] § 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] § 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] § 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] § 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] § 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] § 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
- %% DEMO SCRIPT TO RUN LOPEZ ET AL. REVISION December 2025 distortion paper
- %% GRB December 2025
- %% Run code for subject 1
- clear all;
- close all;
- DISTORTANAT=1; %% distort anatomies (only need to do this once)
- addpath('D:\spm'); %% spm directory
- addpath('D:\spm_distort'); %% directory with distort code from github
- rootdir='C:\Users\gbarnes\Documents\jimmytest\'; %% where the downloaded data sits
- spm('defaults','eeg');
- spm_jobman('initcfg');
- [v,r]=spm('ver'); %% Code is currently in the 2025 development version of spm (r=0.0); but not the 2025 'release' version
- %% next year (2026) it will be in both versions.
- if (str2num(v(4:end))>=26) | (str2num(r)==0),
- fprintf('SPM version OK\n')
- else
- error('Need to use current (>March 2025) development version of SPM : https://github.com/spm/spm')
- end;
- %% set up the directory structure
- datadirectory=fullfile(rootdir,'data');
- mri_dir=fullfile(datadirectory,'mri');
- outputdirectory=fullfile(rootdir,'output')
- mkdir(outputdirectory);
- %% where the PCA template for the diffeomorphic code sits
- PCAtemplate=fullfile(spm('Dir'),'tpm','shp','Template_0.nii');
- %% load in information on the 8 subjects
- subjects=create_anon_subject_structure();
- %%%% FILES OF AVERAGED MEG DATA AND Time-Frequency WINDOWS
- allfname=strvcat('mpinstr_rcinstr_Tafdf.mat','mpdots_rcinstr_Tafdf.mat','mprcresp_Tafdf.mat');
- %% inversion choices
- allwoi=[ 0 500; -2500 -2000;-200 300]; %% approx where evoked responses sit in these files
- invmethods={'EBB','IID','GS'}; %% SPM inversion algorithms
- foi=[5 90]; %% frequency window in Hz
- patch_size=0.6; %% extent of source (arb units) on cortical surface
- n_temp_modes=16; %% number of temporal modes
- Nblocks=1; pctest=0; %% no cross validation
- swap_subj=[];
- %% for cross validation: Nblocks=10; pctest=10; for example
- %%%%%%%%%%%%%%%%%%%%% DEFINE PARAMETERS %%%%%%%%%%%%%%%%%%%%
- subind=1; %% individual subject data to look at (1-8)
- fileind=1; %% file to look at
- if length(subind)*length(fileind)>1,
- error('Only set up to deal with one subject and one dataset in this example code')
- % NB although simple to modify if needed
- end;
- Npoints=17; %% points on trajectory (17 in paper)
- RandSeeds=[1:8]; %% seed which sets the trajectory (runs from 1 to 8 in paper)
- %% RandSeeds=[3] to run just one representative seed (faster)
- RunClean='Yes'; %% if 'No' already have all surfaces worked out
- %% distortion parameters
- Zmax=3; %% amount of distortion per component (as Z score)
- DistortIndices=[8 100]; %% which PCAs to distort (as in paper)
- HeadModel='Single Shell'; %% head model to use
- loc_surface='white'; %% cortical surface to use white (in paper) or pial
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCESSING %%%%%%%%%%%%%%%%%%
- allFvals=[];
- allR2=[];
- allcrosserr=[];
- allfiles=[];
- gainmatfiles={};
- if DISTORTANAT,
- %% loop through the list of random seeds- each seed defines a trajectory
- for rs=1:length(RandSeeds),
- RandSeed=RandSeeds(rs);
- %% load in average evoked dataset
- fname = fullfile(datadirectory,'meg',subjects(subind).subj_id,deblank(allfname(fileind,:)));
- D = spm_eeg_load(fname);
- %% Decide on the cortical surface to use for this subject (freesurfer/laMEG output)
- subj_surf_dir=fullfile(datadirectory, 'surf',sprintf('%s-synth',...
- subjects(subind).subj_id),'surf');
- %%%% FROM COREG SUBJ ERF
- fprintf('\n Using original cortex %s \n',sprintf('%s.ds.gii', loc_surface))
- tmp_loc_surface=gifti(fullfile(subj_surf_dir, sprintf('%s.ds.gii', loc_surface)));
- %% make new surface without the surface normals (just faces and vertices)..
- ds_loc_surface=[]; ds_loc_surface.vertices=tmp_loc_surface.vertices;
- ds_loc_surface.faces=tmp_loc_surface.faces; ds_loc_surface.mat=tmp_loc_surface.mat;
- fprintf('Removing orienation info from original surface (if it exists)');
- surf_name=sprintf('ori_norm_%s_loc.gii', loc_surface);
- full_surf_name=fullfile(subj_surf_dir, surf_name);
- save(gifti(ds_loc_surface),full_surf_name);
- %% now make a unique file name based on datafile and surface
- subj_outputdirectory=fullfile(outputdirectory,subjects(subind).subj_id);
- mkdir(subj_outputdirectory);
- [a1,b1,c1]=spm_fileparts(fname)
- coreg_fname=fullfile(subj_outputdirectory, sprintf('loc_%s_%s_norm.mat',loc_surface,b1))
- %% make copy of original fname and coregister this file to the chosen surface
- fprintf('\n Running initial coreg')
- coreg_fname=coreg_subject_distort(subjects(subind), deblank(allfname(fileind,:)),full_surf_name,coreg_fname,HeadModel,datadirectory);
- fprintf('\n Now running distortion')
- %% now make some distorted brians (distorted brain)
- %% for each brain and brian compute a lead-field
- [aM,aL]=surfandlf_distort(coreg_fname,RandSeed,HeadModel,Npoints,Zmax,DistortIndices,RunClean);
- %% now compute distances of brians to brain.
- M0=gifti(aM{1}.brain); %% get original cortex
- for i=1:Npoints,
- M1=gifti(aM{1}.brians{i});
- d0=M1.vertices-M0.vertices;
- d1(i)=mean(sqrt(dot(d0',d0'))); %% mean vertex-vertex distance to M0
- end;% for i
- %% now quantify how much the lead fields for the distorted surfaces differ from the original
- %% first LF is the original
- G=load(aL{1}.gainmat{1}); %% original lead fields
- L0=G.G;
- diffL=[];
- for i=1:Npoints,
- G=load(aL{1}.gainmat{i+1});
- L1=G.G;
- diffL(i)=mean(dot(L1-L0,L1-L0));
- end; % for i
- %%&%%%%%%%%%%%%%%%%% Now run inversion models %%%%%%%%%%%
- %%% trajectory includes the new brians and the original brain
- %% get a list of the lead-field files
- gainmatfiles(rs,1:Npoints+1)=aL{1}.gainmat;
- spmfilename=aL{1}.Dc{1};
- end; % for rs
- save([rootdir filesep 'distortwkspace.mat']); % keep useful info for this subject
- else
- load([rootdir filesep 'distortwkspace.mat']); % load info on distorted surfaces
- end; % if DISTORTANAT
- INVDISTORT=1; %% run inversions on the distorted anatomies (only needs to be set first time it is run)
- %% make a copy (MAY NOT BE NECESSARY)
- [a1,b1,c1]=spm_fileparts(spmfilename);
- newspmfilename=[a1 filesep b1 '_copy' '.mat']
- Dorig=spm_eeg_load(spmfilename);
- Dorig.copy(newspmfilename)
- Dnew=spm_eeg_load(newspmfilename); %% new spmfilename is a copy of Dorig
- 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)),...
- round(foi(1)),round(foi(2)),Nblocks,pctest,patch_size*10,n_temp_modes,swap_subj);
- fprintf('\n id is %s\n',idstr)
- if INVDISTORT, %% run inversions on these surfaces
- everyresults=[];
- for rs=1:length(RandSeeds),
- RandSeed=RandSeeds(rs);
- gmfiles=strvcat(gainmatfiles{rs,1:Npoints+1});
- spatialmodesname=fullfile(a1, sprintf('Grpmod_%s_seed%03dNb%d.mat',idstr,RandSeed,Npoints));
- [F_vals,R2,VE,crosserr,allresultsfiles]=invert_group_matched(Dnew,gmfiles,spatialmodesname,invmethods,allwoi(fileind,:),foi,idstr,Nblocks,pctest,patch_size,n_temp_modes)
- allFvals(rs,:,:)=F_vals;
- allR2(rs,:,:)=R2;
- allVE(rs,:,:)=VE;
- allcrosserr(rs,:,:)=crosserr;
- everyresults=strvcat(everyresults,allresultsfiles);
- end;
- save([rootdir filesep 'inv_distortwkspace.mat']); % keep useful info for this subject
- else %% DONT REDO INVERSION JUST LOAD
- load([rootdir filesep 'inv_distortwkspace.mat']); % load info on distorted surfaces
- end; % INVDISTORT
- markerstr={'d','o','s'}
- colstr={'b','r','g'}
- mspairs=strvcat('bd','ro','gs');
- Lw=4; %% line width
- Ms=10; %% marker size
- figure; %% part 1 of figure for slides
- for im1=1:numel(invmethods),
- [shortF,shortdist]=simplify_dist_metric(allFvals(:,:,im1),[0 d1]);
- hold on;
- plotSeed=8; %% shows local maximum
- h01=plot(shortdist,squeeze(shortF(plotSeed,:)),colstr{im1});
- [dum,ind]=max(squeeze(shortF(plotSeed,:)));
- h1=plot(shortdist(ind),shortF(plotSeed,ind),mspairs(im1,:))
- set(h01,'LineWidth',Lw);
- set(h1(1),'LineWidth',Lw);
- set(h1(1),'MarkerSize',Ms);
- end;
- xlabel('Distortion (mm)')
- ylabel('Free Energy')
- set(gca,'Fontsize',18);
- Nseed=length(RandSeeds)
- figure; hold on;
- for im1=1:numel(invmethods),
- plotSeed=[1:Nseed]; %% show all seeds
- [shortF,shortdist]=simplify_dist_metric(allFvals(:,:,im1),[0 d1]);
- [dum,ind]=max(squeeze(shortF(plotSeed,:))');
- for f=1:length(ind)
- h1=plot(shortdist(ind(f)),shortF(plotSeed(f),ind(f))',mspairs(im1,:))
- set(h1,'LineWidth',Lw);
- set(h1,'MarkerSize',Ms);
- end;
- end;
- hold on;
- msumdist=zeros(numel(invmethods),1);
- for im1=1:numel(invmethods),
- [shortF,shortdist]=simplify_dist_metric(allFvals(:,:,im1),[0 d1]);
- [dum,ind]=max(squeeze(shortF(plotSeed,:))');
- msumdist(im1)=0;
- for f=1:length(ind),
- msumdist(im1)=msumdist(im1)+shortdist(ind(f));
- end;
- msumdist(im1)=msumdist(im1)/length(ind);
- ax=axis;
- h=plot(msumdist(im1),ax(3),mspairs(im1,:))
- set(h,'Markersize',Ms*2)
- set(h,'LineWidth',Lw)
- end;
- xlabel('Distortion (mm)')
- ylabel('Free Energy')
- set(gca,'Fontsize',18);
- axis('tight')
- rs=8; %% seed to plot
- RandSeed=RandSeeds(rs);
- invmethod_example={'EBB'}
- gmfiles=strvcat(gainmatfiles{rs,1:Npoints+1});
- spatialmodesname=fullfile(a1, sprintf('Grpmod_%s_seed%03dNb%d.mat',idstr,RandSeed,Npoints));
- [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);
- %% PLOT SOME REAL DATA AND INVERSIONS
- figure;
- megind=setdiff(Dnew.indchantype('MEG'),Dnew.badchannels)
- data=squeeze(D(megind,:,1));
- plot(D.time,data)
- set(gca,'Fontsize',18);
- xlabel('Time (s)')
- ylabel('Field (fT)')
- ind0=1;
- indmaxdist=Npoints+1;
- J0=squeeze(Mall(ind0,1,:,:))*data;
- Jmax=squeeze(Mall(indmaxdist,1,:,:))*data;
- rmsJ0=std(J0');
- rmsJmax=std(Jmax');
- rmsJtot=rmsJ0+rmsJmax;
- [dum,maxsurfind]=max(rmsJtot);
- M0=Dnew.inv{1}.mesh.tess_mni;
- M0.vertices=M0.vert;
- M0.faces=M0.face;
- M0i=spm_mesh_inflate(gifti(M0));
- figure;
- h=trisurf(M0i.faces,M0i.vertices(:,1),M0i.vertices(:,2),M0i.vertices(:,3),rmsJ0)
- set(h,'EdgeColor','none');
- F_valsrel=F_vals-min(F_vals);
- colorbar;
- title(sprintf('F rel=%3.2f',F_valsrel(ind0)))
- xlabel('x'); ylabel('y');zlabel('z');
- set(gca,'Fontsize',18)
- caxis([0 0.065])
- figure;
- h=trisurf(M0i.faces,M0i.vertices(:,1),M0i.vertices(:,2),M0i.vertices(:,3),rmsJmax)
- set(h,'EdgeColor','none')
- title(sprintf('F rel=%3.2f',F_valsrel(indmaxdist)))
- xlabel('x'); ylabel('y');zlabel('z');
- set(gca,'Fontsize',18)
- caxis([0 0.065])
- colorbar;
- figure;
- h=plot(D.time,J0(maxsurfind,:),D.time,Jmax(maxsurfind,:))
- set(h,'Linewidth',3)
- legend('True','Distorted')
- title(sprintf('At MNI %3.2f %3.2f %3.2f',M0.vertices(maxsurfind,1),M0.vertices(maxsurfind,2),M0.vertices(maxsurfind,3)));
- set(gca,'FontSize',18)
spm_distort_mesh_example.m at commit 9f16cc0, no license · at the source
Overview
- Engineering Faculty, Universidad de Antioquia UDEA, Medellín, Colombia
- Global Brain Health Institute, Trinity College Dublin, Dublin, Ireland
- Department of Imaging Neuroscience, UCL Institute of Neurology, University College London, London, United Kingdom
- Department of Experimental Psychology, University College London, London, United Kingdom
- Institut de Sciences Cognitives Marc Jeannerod, CNRS, UMR5229, Lyon, France
- Université de Lyon, Université Claude Bernard Lyon 1, Lyon, France
Abstract
The magnetoencephalographic and electroencephalographic (M/
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
0fdeba175a3f5b362e805364340d8a7865c59d60, 3 December 2025Availability: 1 check, the latest on 30 September 2026: the link answers
- 30 September 2026: the link answers
60 files
- +brca/
+dataset/ , MATLAB, 31 lines@image/ image.m - +brca/
+dot/ , MATLAB, 22 lines@base/ base.m - +brca/
+dot/ , MATLAB, 58 lines@diffeo/ diffeo.m - +brca/
+dot/ , MATLAB, 25 lines@euclidean/ euclidean.m - +brca/
+dot/ , MATLAB, 52 lines@field/ field.m - +brca/
+dot/ , MATLAB, 128 lines@subspace/ subspace.m - +brca/
+example/ , MATLAB, 44 linesfaces_orl.m - +brca/
+example/ , MATLAB, 52 linesvelocity_oasis.m - +brca/
+format/ , MATLAB, 16 lines@base/ base.m - +brca/
+format/ , MATLAB, 72 lines@image/ image.m - +brca/
+format/ , MATLAB, 125 lines@nifti/ nifti.m - +brca/
+format/ , MATLAB, 82 lines@numeric/ numeric.m - +brca/
+format/ , MATLAB, 6 linesallocate.m - +brca/
+format/ , MATLAB, 36 linesauto.m - +brca/
+format/ , MATLAB, 6 linesclass.m - +brca/
+format/ , MATLAB, 6 lineslike.m - +brca/
+format/ , MATLAB, 6 linesnumel.m - +brca/
+format/ , MATLAB, 6 linesread.m - +brca/
+format/ , MATLAB, 6 linessize.m - +brca/
+format/ , MATLAB, 6 lineswrite.m - +brca/
+plot/ , MATLAB, 44 linesimshow_categorical.m - +brca/
+plot/ , MATLAB, 55 linesimshow_deformation.m - +brca/
+plot/ , MATLAB, 58 linesimshow_mri.m - +brca/
+plot/ , MATLAB, 55 linesimshow_phase.m - +brca/
+plot/ , MATLAB, 40 linesprivate/ catToColor.m - +brca/
+plot/ , MATLAB, 38 linesprivate/ defToColor.m - +brca/
+utils/ , MATLAB, 12 linesdiGamma.m - +brca/
+utils/ , MATLAB, 19 linesinvPD.m - +brca/
+utils/ , MATLAB, 13 linesloaddiag.m - +brca/
+utils/ , MATLAB, 9 lineslogGamma.m - +brca/
+utils/ , MATLAB, 25 lineslogdetPD.m - +brca/
+utils/ , MATLAB, 39 linestype_nii2num.m - +brca/
+utils/ , MATLAB, 41 linestype_num2nii.m - +brca/
@model/ , MATLAB, 18 linesapply_internal.m - +brca/
@model/ , MATLAB, 68 linescentre_latent.m - +brca/
@model/ , MATLAB, 10 lineselbo_latent.m - +brca/
@model/ , MATLAB, 15 lineselbo_latent_precision.m - +brca/
@model/ , MATLAB, 15 lineselbo_mean.m - +brca/
@model/ , MATLAB, 17 lineselbo_obs.m - +brca/
@model/ , MATLAB, 15 lineselbo_residual_precision. m - +brca/
@model/ , MATLAB, 10 lineselbo_subspace.m - +brca/
@model/ , MATLAB, 15 linesinit_data.m - +brca/
@model/ , MATLAB, 70 linesinit_elbo_parts.m - +brca/
@model/ , MATLAB, 50 linesinit_latent.m - +brca/
@model/ , MATLAB, 80 linesinit_model.m - +brca/
@model/ , MATLAB, 166 lines, 1 matchmodel.m - +brca/
@model/ , MATLAB, 65 linesorthogonalise.m - +brca/
@model/ , MATLAB, 175 linesplot.m - +brca/
@model/ , MATLAB, 102 linesprivate/ gn_scale_U.m - +brca/
@model/ , MATLAB, 22 linesprivate/ ortho_matrix.m - +brca/
@model/ , MATLAB, 67 linestrain_internal.m - +brca/
@model/ , MATLAB, 74 linesupdate_latent.m - +brca/
@model/ , MATLAB, 32 linesupdate_latent_one.m - +brca/
@model/ , MATLAB, 50 linesupdate_latent_precision. m - +brca/
@model/ , MATLAB, 118 linesupdate_mean.m - +brca/
@model/ , MATLAB, 49 linesupdate_model.m - +brca/
@model/ , MATLAB, 61 linesupdate_residual_precisio n.m - +brca/
@model/ , MATLAB, 95 linesupdate_subspace.m - LICENSE, License, 674 lines
- README.md, Text, 3 lines
barnesgr123/spm_distort
9f16cc0ddd12f8343ef6d802628075a944fa2777, 5 March 2026Availability: 1 check, the latest on 30 September 2026: the link answers
- 30 September 2026: the link answers
6 files
- coreg_subject_distort.m, MATLAB, 67 lines, 1 match
- create_anon_subject_stru
cture.m , MATLAB, 139 lines - invert_group_matched.m, MATLAB, 83 lines, 1 match
- simplify_dist_metric.m, MATLAB, 26 lines
- spm_distort_mesh_example
.m , MATLAB, 313 lines, 2 matches - surfandlf_distort.m, MATLAB, 129 lines, 2 matches
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://
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://
BibTeX
@article{lopez2026distor
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/
url = {https://
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/
VL - 4
SP - IMAG.a.1189
SN - 2837-6056
PB - MIT Press
DO - 10.1162/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1162/
"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":
"volume": "4",
"page": "IMAG.a.1189",
"DOI": "10.1162/
"PMID": "41924033",
"PMCID": "PMC13037658",
"ISSN": "2837-6056",
"publisher": "MIT Press",
"URL": "https://
"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 metricsJournal: 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 communicationsIn 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 humansJournal: 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 reportsIn 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: NeuroImageIn 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: iScienceIn 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.
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: 2 repositories of the authors' code, each at its verified commit and with its license, 64 scripts, and 7 matches 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:bcab21eb624f3158…
Add the badge to the code's README
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 -->
[](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:endHTML
<!-- 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.
