OSCR

Anatomy-corrected metabolic asymmetry predicts seizure freedom after surgery in focal cortical dysplasia.

Code ↔ Paper

4 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 4 matches
  1. [1] § Materials and methods › Image processing and quality control ↔ cat12_ACAI/LCN12_calc_ACAI_GACAI_preprocessed.m, lines 1–62 · score 0.66 · v12.9, grey matter probability, CAT12, pre, PET images, asymmetries
  2. [2] § Materials and methods › Image processing and quality control ↔ ACAI_with_prior_seg/LCN12_calc_ACAI_GACAI_preprocessed.m, lines 1–64 · score 0.65 · v12.9, grey matter probability, pre, PET images, CAT12, asymmetries
  3. [3] § Materials and methods › ACAI calculation ↔ ACAI_with_prior_seg/LCN12_calc_ACAI_GACAI_preprocessed.m, lines 1–64 · score 0.55 · grey matter probability, native space, Neurological, warped, MNI, maps
  4. [4] § Materials and methods › ACAI calculation ↔ cat12_ACAI/LCN12_calc_ACAI_GACAI_preprocessed.m, lines 1–62 · score 0.55 · grey matter probability, native space, Neurological, warped, MNI, maps

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 · 384 lines · 16 KB · MIT · 2 matches

  1. function LCN12_calc_ACAI_GACAI_preprocessed(pet_image_native, gm_image_native, deformationfield_forward, deformationfield_inverse, kernel_type, kernel_size, varargin)
  2. % LCN12_calc_ACAI_GACAI_preprocessed(pet_image_native, gm_image_native, deformationfield_forward, deformationfield_inverse, kernel_type, kernel_size, target_GMactivityimage_native)
  3. %
  4. % Calculates Asymmetry Index (ACAI) based on CAT12 deformation fields
  5. % The images are expected in native space and will be warped to MNI for calculations.
  6. %
  7. % Input:
  8. % pet_image_native:
  9. % Full path to the PET image in native subject space.
  10. % gm_image_native:
  11. % Full path to the grey matter probability map in native subject space
  12. % (e.g., p1T1.nii from CAT12 before warping). This image will be warped to MNI.
  13. % deformationfield_forward:
  14. % Full path to the forward deformation field (native to MNI, e.g., y_T1.nii).
  15. % deformationfield_inverse:
  16. % Full path to the inverse deformation field (MNI to native, e.g., iy_T1.nii).
  17. % kernel_type:
  18. % Kernel type: 'Gaussian', 'Cubic' or 'Sphere'. Default: 'Gaussian'.
  19. % kernel_size:
  20. % Size of the kernel (in voxels).
  21. % 'Gaussian': FWHM; 'Cubic': cube side; 'Sphere': sphere diameter.
  22. % Optional: target_GMactivityimage_native:
  23. % Full path to a PET image of only GM contribution (e.g., from AMAP),
  24. % in native subject space. If provided, GACAI will also be calculated.
  25. %
  26. % The results will be written to file in the same directory as pet_image_native.
  27. % A subfolder 'MNI_space' will be created for intermediate MNI-space files.
  28. %
  29. % Final outputs:
  30. % ACAI_native_[pet_basename]_[gm_suffix]_[kernelinfo].nii
  31. % GACAI_native_[pet_basename]_[gm_suffix]_[kernelinfo].nii (if applicable)
  32. %
  33. % Important:
  34. % - Requires SPM12 installation and LCN12 helper functions (LCN12_read_image, LCN12_write_image).
  35. % - Assumes all input images are correctly oriented.
  36. %
  37. % Based on LCN12_calc_ACAI_GACAI.m by Lin Zhou, Kathleen Vunckx, Patrick Dupont.
  38. % Modified for pre-processed inputs.
  39. %__________________________________________________________________________
  40. % =========================================================================
  41. % CREDIT & DISCLAIMER
  42. % =========================================================================
  43. % Original ACAI implementation by Patrick Dupont and the LCN team.
  44. % Comments or questions can be sent to: [email hidden]
  45. %
  46. % Important:
  47. % - requires the installation of CAT12 v12.9 and SPM12 - http://www.fil.ion.ucl.ac.uk/spm/
  48. % - the path of SPM and this routine should be included in the Matlab path
  49. %
  50. % The package contains software (SPM12) developed under the auspices of The
  51. % Wellcome Department of Imaging Neuroscience, a department of the
  52. % Institute of Neurology at University College London. The copyright of
  53. % this software remains with that of SPM12, see
  54. % http://www.fil.ion.ucl.ac.uk/spm/.
  55. %
  56. % This routine is supplied as is.
  57. %
  58. % IMPORTANT REMARKS:
  59. % - this is research software.
  60. % - always check the orientation (especially left/right) of all images
  61. % - we assume that all images are in the same space and are coregistered!
  62. % =========================================================================
  63. %--- SETTINGS -------------------------------------------------------------
  64. threshold_GM = 0.25;
  65. datatype = 64; % float64, see spm_type.m
  66. %---------------------------------------------------------------------------
  67. calculate_GACAI = false;
  68. target_GMactivityimage_native = '';
  69. if ~isempty(varargin)
  70. if numel(varargin) >= 1
  71. target_GMactivityimage_native = varargin{1};
  72. if ~isempty(target_GMactivityimage_native) && exist(target_GMactivityimage_native, 'file')
  73. calculate_GACAI = true;
  74. fprintf('Calculating ACAI and GACAI \n');
  75. else
  76. fprintf('Calculating ACAI (target_GMactivityimage_native was empty or does not exist)\n');
  77. if ~isempty(target_GMactivityimage_native) && ~exist(target_GMactivityimage_native, 'file')
  78. fprintf('Warning: Specified target_GMactivityimage_native not found: %s\n', target_GMactivityimage_native);
  79. end
  80. target_GMactivityimage_native = ''; % Ensure it's cleared if not valid
  81. end
  82. end
  83. else
  84. fprintf('Calculating ACAI \n');
  85. end
  86. % Define kernel
  87. %---------------
  88. if strcmpi(kernel_type,'Cubic')
  89. namekernel = ['_Cubic' num2str(kernel_size)];
  90. Kernel = ones(kernel_size,kernel_size,kernel_size);
  91. elseif strcmpi(kernel_type,'Gaussian')
  92. sd = kernel_size/2.355;
  93. namekernel = ['_Gauss' num2str(kernel_size)];
  94. r = (round(2*kernel_size)-1)/2;
  95. [x,y,z]=meshgrid(-r:r,-r:r,-r:r);
  96. h = exp(-(x.*x+y.*y +z.*z)/(2*sd*sd));
  97. sumh = sum(h(:));
  98. if sumh ~= 0
  99. Kernel = h/sumh;
  100. else
  101. error('Sum of Gaussian kernel is zero. Check kernel_size.');
  102. end
  103. elseif strcmpi(kernel_type,'Sphere')
  104. namekernel = ['_Sphere' num2str(kernel_size)];
  105. r = (kernel_size-1)/2;
  106. [x_k,y_k,z_k] = meshgrid(-r:r,-r:r,-r:r);
  107. Kernel = double((x_k.^2 + y_k.^2 + z_k.^2) <= r^2);
  108. if sum(Kernel(:)) == 0 && kernel_size > 0
  109. warning('Spherical kernel is all zeros. Check kernel_size. Defaulting to single voxel.');
  110. Kernel = zeros(kernel_size,kernel_size,kernel_size);
  111. center = ceil(kernel_size/2);
  112. if center > 0 && center <= kernel_size
  113. Kernel(center,center,center) = 1;
  114. elseif kernel_size == 1
  115. Kernel(1,1,1) = 1;
  116. end
  117. elseif kernel_size <= 0
  118. error('Kernel size for Sphere must be positive.');
  119. end
  120. else
  121. error(['No valid kernel_type. Select: ' '''Cubic''' ', ' '''Gaussian''' ' or ' '''Sphere''']);
  122. end
  123. spm_jobman('initcfg');
  124. spm('defaults', 'PET');
  125. % Get path and base names for output file naming
  126. [pth_pet_native, pet_base_name_native, pet_ext_native] = fileparts(pet_image_native);
  127. [orig_pth_gm, gm_base_name_native, gm_ext_native] = fileparts(gm_image_native); % Use native GM for suffix and warping
  128. % Create a suffix from the GM image name
  129. gm_suffix = regexprep(gm_base_name_native, '^p1', ''); % e.g., p1SUBJECT_T1 -> SUBJECT_T1
  130. if isempty(gm_suffix) % if regexprep removed everything (e.g. name was just 'p1')
  131. gm_suffix = gm_base_name_native; % use full name as fallback
  132. end
  133. kernelinfo = [kernel_type(1) num2str(kernel_size)];
  134. % STEP A: Warp native images to MNI space
  135. %+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  136. clear matlabbatch;
  137. filelist_to_warp = {pet_image_native; gm_image_native}; % Add gm_image_native to be warped
  138. if calculate_GACAI
  139. filelist_to_warp{end+1,1} = target_GMactivityimage_native;
  140. end
  141. matlabbatch{1}.spm.spatial.normalise.write.subj.def = cellstr(deformationfield_forward);
  142. matlabbatch{1}.spm.spatial.normalise.write.subj.resample = filelist_to_warp;
  143. matlabbatch{1}.spm.spatial.normalise.write.woptions.bb = [-90 -126 -72; 90 90 108];
  144. matlabbatch{1}.spm.spatial.normalise.write.woptions.vox = [1 1 1];
  145. matlabbatch{1}.spm.spatial.normalise.write.woptions.interp = 4;
  146. matlabbatch{1}.spm.spatial.normalise.write.woptions.prefix = 'w_mni_';
  147. fprintf('Warping images to MNI space...\n');
  148. spm_jobman('serial', matlabbatch);
  149. % Define paths to MNI-space warped images
  150. pet_image_mni = fullfile(pth_pet_native, ['w_mni_' pet_base_name_native pet_ext_native]);
  151. gm_image_mni = fullfile(orig_pth_gm, ['w_mni_' gm_base_name_native gm_ext_native]); % Path to warped GM
  152. if calculate_GACAI
  153. [~, gm_act_base_native, gm_act_ext_native] = fileparts(target_GMactivityimage_native);
  154. target_GMactivityimage_mni = fullfile(pth_pet_native, ['w_mni_' gm_act_base_native gm_act_ext_native]);
  155. end
  156. % STEP B: Calculate ACAI (and GACAI) images in MNI space
  157. %++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  158. fprintf('Reading MNI-space PET image: %s\n', pet_image_mni);
  159. [PET_mni, Vref_mni] = LCN12_read_image(pet_image_mni);
  160. fprintf('Reading MNI-space GM image: %s\n', gm_image_mni);
  161. [GM_mni, ~] = LCN12_read_image(gm_image_mni, Vref_mni);
  162. Mask_GM_mni = (GM_mni > threshold_GM);
  163. % Replace NaN by 0
  164. PET_mni(isnan(PET_mni)) = 0;
  165. GM_mni(isnan(GM_mni)) = 0;
  166. % Initializations
  167. VI_mni = zeros(Vref_mni.dim(1:3));
  168. VI_LRflipped_mni = zeros(Vref_mni.dim(1:3));
  169. AsymIndex_mni = zeros(Vref_mni.dim(1:3));
  170. % Calculation of ACAI map
  171. %-------------------------
  172. PETGM_mni = PET_mni .* GM_mni;
  173. fprintf('Starting convolution for ACAI: PET_mni*GM_mni\n');
  174. cPETGM_mni = convn(PETGM_mni, Kernel, 'same');
  175. fprintf('Starting convolution for ACAI: GM_mni\n');
  176. cGM_mni = convn(GM_mni, Kernel, 'same');
  177. Mask_Temp1_mni = (cGM_mni > 0);
  178. VI_mni(Mask_Temp1_mni) = cPETGM_mni(Mask_Temp1_mni) ./ cGM_mni(Mask_Temp1_mni);
  179. VI_mni(isinf(VI_mni) | isnan(VI_mni)) = 0;
  180. % Flip left/right in MNI space
  181. [ixg,iyg,izg] = ind2sub(size(cGM_mni), find(Mask_Temp1_mni));
  182. XYZ_vox = [ixg';iyg';izg'];
  183. XYZ_mm = Vref_mni.mat(1:3,1:3) * XYZ_vox + repmat(Vref_mni.mat(1:3,4),1,size(XYZ_vox,2));
  184. XYZ_mm_LRflipped = XYZ_mm;
  185. XYZ_mm_LRflipped(1,:) = -XYZ_mm(1,:);
  186. XYZ_vox_LRflipped_float = inv(Vref_mni.mat(1:3,1:3)) * (XYZ_mm_LRflipped - repmat(Vref_mni.mat(1:3,4),1,size(XYZ_vox,2)));
  187. XYZ_vox_LRflipped = round(XYZ_vox_LRflipped_float);
  188. nr_voxels_to_flip = size(XYZ_vox_LRflipped,2);
  189. for i = 1:nr_voxels_to_flip
  190. orig_vx = XYZ_vox(1,i);
  191. orig_vy = XYZ_vox(2,i);
  192. orig_vz = XYZ_vox(3,i);
  193. flipped_vx = XYZ_vox_LRflipped(1,i);
  194. flipped_vy = XYZ_vox_LRflipped(2,i);
  195. flipped_vz = XYZ_vox_LRflipped(3,i);
  196. if flipped_vx >= 1 && flipped_vx <= Vref_mni.dim(1) && ...
  197. flipped_vy >= 1 && flipped_vy <= Vref_mni.dim(2) && ...
  198. flipped_vz >= 1 && flipped_vz <= Vref_mni.dim(3)
  199. VI_LRflipped_mni(flipped_vx, flipped_vy, flipped_vz) = VI_mni(orig_vx, orig_vy, orig_vz);
  200. end
  201. end
  202. Mask_calc_mni = (VI_mni ~= 0) & (VI_LRflipped_mni ~= 0) & Mask_GM_mni;
  203. AsymIndex_mni(Mask_calc_mni) = 200 * (VI_mni(Mask_calc_mni) - VI_LRflipped_mni(Mask_calc_mni)) ./ (VI_mni(Mask_calc_mni) + VI_LRflipped_mni(Mask_calc_mni));
  204. AsymIndex_mni(isinf(AsymIndex_mni) | isnan(AsymIndex_mni)) = 0;
  205. % Define MNI-space output filename for ACAI
  206. outputfilename_acai_mni = fullfile(pth_pet_native, ['ACAI_mni_' pet_base_name_native '_' gm_suffix '_' kernelinfo '.nii']);
  207. fprintf('Writing MNI-space ACAI image: %s\n', outputfilename_acai_mni);
  208. Vout_acai_mni = LCN12_write_image(AsymIndex_mni, outputfilename_acai_mni, 'MNI Asymmetry Index Image', datatype, Vref_mni);
  209. if calculate_GACAI
  210. % Reset initializations for GACAI
  211. VI_mni_gacai = zeros(Vref_mni.dim(1:3));
  212. VI_LRflipped_mni_gacai = zeros(Vref_mni.dim(1:3));
  213. AsymIndex_mni_gacai = zeros(Vref_mni.dim(1:3));
  214. fprintf('Reading MNI-space PET GM activity image: %s\n', target_GMactivityimage_mni);
  215. [PETGMact_mni, ~] = LCN12_read_image(target_GMactivityimage_mni, Vref_mni);
  216. PETGMact_mni(isnan(PETGMact_mni)) = 0;
  217. % Calculation of GACAI map
  218. PETGM_for_GACAI = PETGMact_mni .* GM_mni;
  219. fprintf('Starting convolution for GACAI: PETGMact_mni*GM_mni\n');
  220. cPETGM_gacai = convn(PETGM_for_GACAI, Kernel, 'same');
  221. VI_mni_gacai(Mask_Temp1_mni) = cPETGM_gacai(Mask_Temp1_mni) ./ cGM_mni(Mask_Temp1_mni);
  222. VI_mni_gacai(isinf(VI_mni_gacai) | isnan(VI_mni_gacai)) = 0;
  223. % Flip left/right
  224. for i = 1:nr_voxels_to_flip
  225. orig_vx = XYZ_vox(1,i);
  226. orig_vy = XYZ_vox(2,i);
  227. orig_vz = XYZ_vox(3,i);
  228. flipped_vx = XYZ_vox_LRflipped(1,i);
  229. flipped_vy = XYZ_vox_LRflipped(2,i);
  230. flipped_vz = XYZ_vox_LRflipped(3,i);
  231. if flipped_vx >= 1 && flipped_vx <= Vref_mni.dim(1) && ...
  232. flipped_vy >= 1 && flipped_vy <= Vref_mni.dim(2) && ...
  233. flipped_vz >= 1 && flipped_vz <= Vref_mni.dim(3)
  234. VI_LRflipped_mni_gacai(flipped_vx, flipped_vy, flipped_vz) = VI_mni_gacai(orig_vx, orig_vy, orig_vz);
  235. end
  236. end
  237. Mask_calc_mni_gacai = (VI_mni_gacai ~= 0) & (VI_LRflipped_mni_gacai ~= 0) & Mask_GM_mni;
  238. AsymIndex_mni_gacai(Mask_calc_mni_gacai) = 200 * (VI_mni_gacai(Mask_calc_mni_gacai) - VI_LRflipped_mni_gacai(Mask_calc_mni_gacai)) ./ (VI_mni_gacai(Mask_calc_mni_gacai) + VI_LRflipped_mni_gacai(Mask_calc_mni_gacai));
  239. AsymIndex_mni_gacai(isinf(AsymIndex_mni_gacai) | isnan(AsymIndex_mni_gacai)) = 0;
  240. outputfilename_gacai_mni = fullfile(pth_pet_native, ['GACAI_mni_' pet_base_name_native '_' gm_suffix '_' kernelinfo '.nii']);
  241. fprintf('Writing MNI-space GACAI image: %s\n', outputfilename_gacai_mni);
  242. Vout_gacai_mni = LCN12_write_image(AsymIndex_mni_gacai, outputfilename_gacai_mni, 'MNI GM-Only Asymmetry Index Image', datatype, Vref_mni);
  243. end
  244. % STEP C: Inverse warp ACAI/GACAI to native space
  245. %++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  246. clear matlabbatch;
  247. filelist_to_inverse_warp = {outputfilename_acai_mni};
  248. if calculate_GACAI
  249. filelist_to_inverse_warp{end+1,1} = outputfilename_gacai_mni;
  250. end
  251. matlabbatch{1}.spm.spatial.normalise.write.subj.def = cellstr(deformationfield_inverse);
  252. matlabbatch{1}.spm.spatial.normalise.write.subj.resample = filelist_to_inverse_warp;
  253. Vpet_native_header = spm_vol(pet_image_native);
  254. bb_native = spm_get_bbox(Vpet_native_header);
  255. vox_native = abs(diag(Vpet_native_header.mat(1:3,1:3)))';
  256. matlabbatch{1}.spm.spatial.normalise.write.woptions.bb = [-Inf -Inf -Inf
  257. Inf Inf Inf];
  258. matlabbatch{1}.spm.spatial.normalise.write.woptions.vox = [NaN NaN NaN];
  259. matlabbatch{1}.spm.spatial.normalise.write.woptions.interp = 1;
  260. matlabbatch{1}.spm.spatial.normalise.write.woptions.prefix = 'w_native_';
  261. fprintf('Inverse warping ACAI/GACAI images to native space...\n');
  262. spm_jobman('serial', matlabbatch);
  263. % Define paths to temporary native-space (inverse-warped) images
  264. [~, acai_mni_base, acai_mni_ext] = fileparts(outputfilename_acai_mni);
  265. temp_native_acai_path = fullfile(pth_pet_native, ['w_native_' acai_mni_base acai_mni_ext]);
  266. if calculate_GACAI
  267. [~, gacai_mni_base, gacai_mni_ext] = fileparts(outputfilename_gacai_mni);
  268. temp_native_gacai_path = fullfile(pth_pet_native, ['w_native_' gacai_mni_base gacai_mni_ext]);
  269. end
  270. % STEP D: Clean up directory and rename final files
  271. %+++++++++++++++++++++++++++++++++++++++++++++++++++
  272. mni_space_folder = fullfile(pth_pet_native, 'MNI_space');
  273. if ~exist(mni_space_folder, 'dir')
  274. mkdir(mni_space_folder);
  275. end
  276. % Move MNI-space files created by this script
  277. fprintf('Moving MNI-space files to: %s\n', mni_space_folder);
  278. movefile(pet_image_mni, fullfile(mni_space_folder, [pet_base_name_native pet_ext_native]));
  279. movefile(gm_image_mni, fullfile(mni_space_folder, [gm_base_name_native gm_ext_native])); % Move the warped GM to MNI_space
  280. movefile(outputfilename_acai_mni, fullfile(mni_space_folder, ['ACAI_mni_' pet_base_name_native '_' gm_suffix '_' kernelinfo '.nii']));
  281. if calculate_GACAI
  282. [~, gm_act_base_native_cleanup, gm_act_ext_native_cleanup] = fileparts(target_GMactivityimage_native);
  283. movefile(target_GMactivityimage_mni, fullfile(mni_space_folder, [gm_act_base_native_cleanup gm_act_ext_native_cleanup]));
  284. movefile(outputfilename_gacai_mni, fullfile(mni_space_folder, ['GACAI_mni_' pet_base_name_native '_' gm_suffix '_' kernelinfo '.nii']));
  285. end
  286. % Rename final native space ACAI/GACAI images
  287. final_native_acai_name = fullfile(pth_pet_native, ['ACAI_native_' pet_base_name_native '_' gm_suffix '_' kernelinfo '.nii']);
  288. movefile(temp_native_acai_path, final_native_acai_name);
  289. fprintf('Final native ACAI image: %s\n', final_native_acai_name);
  290. if calculate_GACAI
  291. final_native_gacai_name = fullfile(pth_pet_native, ['GACAI_native_' pet_base_name_native '_' gm_suffix '_' kernelinfo '.nii']);
  292. movefile(temp_native_gacai_path, final_native_gacai_name);
  293. fprintf('Final native GACAI image: %s\n', final_native_gacai_name);
  294. end
  295. fprintf('Processing complete.\n');
  296. end

LCN12_calc_ACAI_GACAI_preprocessed.m at commit c4bc4d1, under MIT · at the source

Overview

  1. Department of Neurosciences, Experimental Neurology, Laboratory for Epilepsy Research, KU Leuven, Leuven Brain Institute, Herestraat 49, 3000 Leuven, Belgium
  2. Department of Neurology, University Hospitals Leuven, Leuven, Belgium
  3. Department of Development and Regeneration, Locomotor and Neurological Disorders, KU Louvain, Leuven Brain Institute, Leuven, Belgium
  4. Department of Neurosciences, Experimental Neurology, Laboratory for Parkinson Research, KU Leuven, Leuven Brain Institute, Leuven, Belgium
  5. Department of Imaging and Pathology, Nuclear Medicine and Molecular Imaging, KU Louvain, Leuven Brain Institute, Leuven, Belgium
  6. Department of Nuclear Medicine, University Hospitals Leuven, Leuven, Belgium
  7. Department of Neurosciences, Research Group Experimental Neurosurgery and Neuroanatomy, KU Leuven, Leuven Brain Institute, Leuven, Belgium
  8. Department of Neurosurgery, University Hospitals Leuven, Leuven, Belgium
  9. Department of Imaging and Pathology, Radiology, KU Louvain, Leuven Brain Institute, Leuven, Belgium
  10. Department of Radiology, University Hospitals Leuven, Leuven, Belgium
  11. Department of Neurosciences, Experimental Neurology, Laboratory for Cognitive Neurology, KU Leuven, Leuven Brain Institute, Leuven, Belgium
Institutions: Universitair Ziekenhuis Leuven (Belgium); KU Leuven (Belgium)
Journal: European journal of nuclear medicine and molecular imaging, volume 53, issue 8, pages 5088-5100
Dates: received 16 January 2026; accepted 20 March 2026; published online 10 April 2026; in print 2026
Type: Research article · Language: English
License: CC BY-NC-ND
Identifiers: DOI 10.1007/s00259-026-07864-9 · PMID 41961276 · PMCID PMC13249913 · OpenAlex W7152998490
Open access: hybrid, a free copy (OpenAlex)
Status: code verified
Categories: PET / SPECT (modality), human (organism), epilepsy (population), clinical / translational (subfield)
Methods: Statistics, Machine learning, Connectivity, fMRI & imaging
Keywords: Epilepsy surgery, Refractory epilepsy, Neuroimaging, Prognosis, Image quantification
MeSH: Focal Cortical Dysplasia*, Positron-Emission Tomography*, Seizures*, Adolescent, Adult, Child, Female, Fluorodeoxyglucose F18, Humans, Male, Middle Aged, Reproducibility of Results, Treatment Outcome, Young Adult (* major topic)
Topic: Epilepsy research and treatment (Psychiatry and Mental health, Medicine), according to OpenAlex
Funding: Fonds Wetenschappelijk Onderzoek
Citations: not cited yet (Europe PMC); 29 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 4 matches between paragraphs and lines of code.

jeroengijs/ACAI

License: MIT
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Commit: c4bc4d1fd229d3737b7224a57d9397079c057c9a, 19 December 2025
Languages: MATLAB (13), Jupyter (1)
Size: 17 files, 14 scripts
Software Heritage: not archived
Found in: “Data availability”
Holds: README, license file, 1 notebook
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Tools: SPM (13 files), CAT12 (1 file), NiBabel (1 file), Nilearn (1 file), NumPy (1 file), pandas (1 file), SciPy (1 file)
Availability: 1 check, the latest on 29 September 2026: the link answers
  • 29 September 2026: the link answers
16 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:

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

Code and data availability statement

The paper has a code and data availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:

  • it points to the authors' code: jeroengijs/ACAI
  • it says that the data are available on request

Read it in the paper: doi.org/10.1007/s00259-026-07864-9.

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

Recorded: type, language, journal, volume, issue, pages, dates, 17 authors, 5 keywords, 14 MeSH terms, 1 funder, 28 references.

Cite

This paper

Gijs, J., Cleeren, E., Macea, J., Vandenberghe, W., Delva, A., Vanderlinden, G., Van Laere, K., Deckers, W., Smeijers, S., Theys, T., Van Loon, J., Scheldeman, L., Jansen, K., Demaerel, P., Dupont, P., Van Paesschen, W., & Goffin, K. (2026). Anatomy-corrected metabolic asymmetry predicts seizure freedom after surgery in focal cortical dysplasia. European journal of nuclear medicine and molecular imaging, 53(8), 5088-5100. https://doi.org/10.1007/s00259-026-07864-9

BibTeX

@article{gijs2026anatomy,
author = {Gijs, Jeroen and Cleeren, Evy and Macea, Jaiver and Vandenberghe, Wim and Delva, Aline and Vanderlinden, Greet and Van Laere, Koen and Deckers, Wies and Smeijers, Steven and Theys, Tom and Van Loon, Johannes and Scheldeman, Lauranne and Jansen, Katrien and Demaerel, Philippe and Dupont, Patrick and Van Paesschen, Wim and Goffin, Karolien},
title = {{Anatomy-corrected metabolic asymmetry predicts seizure freedom after surgery in focal cortical dysplasia}},
journal = {European journal of nuclear medicine and molecular imaging},
year = {2026},
month = apr,
volume = {53},
number = {8},
pages = {5088--5100},
publisher = {Springer Science+Business Media},
issn = {1619-7070},
doi = {10.1007/s00259-026-07864-9},
url = {https://doi.org/10.1007/s00259-026-07864-9},
pmid = {41961276},
pmcid = {PMC13249913}
}

RIS

TY - JOUR
AU - Gijs, Jeroen
AU - Cleeren, Evy
AU - Macea, Jaiver
AU - Vandenberghe, Wim
AU - Delva, Aline
AU - Vanderlinden, Greet
AU - Van Laere, Koen
AU - Deckers, Wies
AU - Smeijers, Steven
AU - Theys, Tom
AU - Van Loon, Johannes
AU - Scheldeman, Lauranne
AU - Jansen, Katrien
AU - Demaerel, Philippe
AU - Dupont, Patrick
AU - Van Paesschen, Wim
AU - Goffin, Karolien
TI - Anatomy-corrected metabolic asymmetry predicts seizure freedom after surgery in focal cortical dysplasia
T2 - European journal of nuclear medicine and molecular imaging
J2 - Eur J Nucl Med Mol Imaging
PY - 2026
DA - 2026/04/10
VL - 53
IS - 8
SP - 5088
EP - 5100
SN - 1619-7070
PB - Springer Science+Business Media
DO - 10.1007/s00259-026-07864-9
UR - https://doi.org/10.1007/s00259-026-07864-9
LA - en
ER -

CSL-JSON

{
"id": "10.1007/s00259-026-07864-9",
"type": "article-journal",
"title": "Anatomy-corrected metabolic asymmetry predicts seizure freedom after surgery in focal cortical dysplasia",
"container-title": "European journal of nuclear medicine and molecular imaging",
"author": [
{
"family": "Gijs",
"given": "Jeroen"
},
{
"family": "Cleeren",
"given": "Evy"
},
{
"family": "Macea",
"given": "Jaiver"
},
{
"family": "Vandenberghe",
"given": "Wim"
},
{
"family": "Delva",
"given": "Aline"
},
{
"family": "Vanderlinden",
"given": "Greet"
},
{
"family": "Van Laere",
"given": "Koen"
},
{
"family": "Deckers",
"given": "Wies"
},
{
"family": "Smeijers",
"given": "Steven"
},
{
"family": "Theys",
"given": "Tom"
},
{
"family": "Van Loon",
"given": "Johannes"
},
{
"family": "Scheldeman",
"given": "Lauranne"
},
{
"family": "Jansen",
"given": "Katrien"
},
{
"family": "Demaerel",
"given": "Philippe"
},
{
"family": "Dupont",
"given": "Patrick"
},
{
"family": "Van Paesschen",
"given": "Wim"
},
{
"family": "Goffin",
"given": "Karolien"
}
],
"container-title-short": "Eur J Nucl Med Mol Imaging",
"volume": "53",
"issue": "8",
"page": "5088-5100",
"DOI": "10.1007/s00259-026-07864-9",
"PMID": "41961276",
"PMCID": "PMC13249913",
"ISSN": "1619-7070",
"publisher": "Springer Science+Business Media",
"URL": "https://doi.org/10.1007/s00259-026-07864-9",
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
10
]
]
}
}

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.1016/j.isci.2026.117446 [code]
Volume-inflation registration (INFREG) for morphometric analysis of human focal cortical dysplasia type II.
Journal: iScience
In common: CAT12, NiBabel, pandas, 2 other tools, epilepsy, 2 references
[2] doi:10.1162/nol.a.271 [code]
Compositional Complexity in Text and Images.
Journal: Neurobiology of language (Cambridge, Mass.)
In common: Nilearn, NiBabel, pandas, 2 other tools, author Patrick Dupont
[3] doi:10.1038/s41586-026-10631-3 [code]
A prognostic human brain network for diffuse midline glioma.
Journal: Nature
In common: CAT12, Nilearn, SPM, 4 other tools, clinical / translational
[4] doi:10.1002/epi4.70336 [code]
Quantifying extra-lesional interhemispheric cortical asymmetry in focal cortical dysplasia type II.
Journal: Epilepsia open
In common: Nilearn, NiBabel, pandas, 2 other tools, epilepsy, clinical / translational, 2 references
[5] doi:10.1007/s00234-026-04103-8 [code]
Enhanced detection of subtle cortical abnormalities in focal epilepsy using 7 T MRI surface-based models and graph neural networks.
Journal: Neuroradiology
In common: Nilearn, NiBabel, pandas, 2 other tools, epilepsy, 2 references
[6] doi:10.1016/j.bbih.2026.101299 [code]
Multimodal approach to identify neuropsychophysiological subgroups in myalgic encephalomyelitis/chronic fatigue syndrome and their relevance for rehabilitation: protocol for a mechanistic cross-sectional and longitudinal study.
Journal: Brain, behavior, & immunity - health
In common: SPM, pandas, NumPy, clinical / translational, author Patrick Dupont
[7] doi:10.1002/epi.70323 [code]
Individual-specific resting-state networks predict language dominance in drug-resistant epilepsy.
Journal: Epilepsia
In common: Nilearn, SPM, NiBabel, 2 other tools, epilepsy, 1 reference
[8] doi:10.1002/hbm.70602 [code]
Neuroimaging Correlates of Post-Stroke Pain After Ischemic Stroke: Secondary Analysis of the INSPiRE-TMS Trial.
Journal: Human brain mapping
In common: CAT12, SPM, NiBabel, 3 other tools, clinical / translational
[9] doi:10.1111/ene.70678 [code]
Who Falls After a Stroke? Evidence From a Prospective Stroke Cohort.
Journal: European journal of neurology
In common: CAT12, SPM, NiBabel, 3 other tools, clinical / translational
[10] doi:10.1002/ana.78206 [code]
Multimodal Image Guidance in Subthalamic Deep Brain Stimulation for Parkinson's Disease.
Journal: Annals of neurology
In common: CAT12, SPM, NiBabel, 3 other tools, clinical / translational

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.