OSCR

Hierarchical Bayesian Modelling Improves Microstructural Parameter Mapping in Diffusion and Exchange MRI Data.

Code ↔ Paper

10 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 10 matches
  1. [1] § Methods › Data › DKI › Human Connectom Project Data ↔ dmipy/data/saved_data.py, lines 58–81 · score 0.93 · WU Minn Consortium, Washington University, Neuroscience Research, NIH Blueprint, McDonnell, U54MH091657
  2. [2] § Methods › Model Fitting › Hierarchical Bayesian Estimation ↔ examples/example_axr_simulated_data.m, lines 1–54 · score 0.69 · BBB FEXI, regional priors, LSQ fit, Matlab, burn, bounds
  3. [3] § Methods › Data › DKI › Human Connectom Project Data ↔ dmipy/tissue_response/white_matter_response.py, lines 79–214 · score 0.68 · MRtrix, selecting voxels, gradient directions, FA, tensor, anisotropy
  4. [4] § Methods › Model Fitting › Hierarchical Bayesian Estimation ↔ examples/example_dki_simulated_data.m, lines 1–56 · score 0.60 · regional priors, LSQ fit, Matlab, DKI, burn, bounds
  5. [5] § Methods › Exemplar Microstructure Models › BBB‐FEXI ↔ fexi_fit.m, lines 36–136 · score 0.57 · encoding block, extravascular, intravascular, FEXI, filter, diffusion
  6. [6] § Methods › Data › BBB‐FEXI › Simulations ↔ examples/example_axr_simulated_data.m, lines 56–97 · score 0.56 · Gaussian noise, complex signal, noisy, gradient directions, zero, Simulations
  7. [7] § Methods › Background: A General Hierarchical Bayesian Microstructure Model ↔ examples/example_axr_simulated_data.m, lines 1–54 · score 0.54 · blood brain barrier, BBB, exchange, FEXI, Bayesian, signal
  8. [8] § Methods › Exemplar Microstructure Models › BBB‐FEXI ↔ fexi_sim.m, lines 30–108 · score 0.54 · diffusion encoding block, FEXI, filter, mixing, weighted, signal
  9. [9] § Full Derivation of the General Hierarchical Bayesian Microstructure Model › Parameter Transforms ↔ fit_bayes.py, lines 379–438 · score 0.53 · Metropolis Hastings, transformed parameter, Gibbs
  10. [10] § Full Derivation of the General Hierarchical Bayesian Microstructure Model › Parameter Transforms ↔ fit_bayes.m, lines 152–213 · score 0.53 · Metropolis Hastings, transformed parameter, Gibbs

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 · 270 lines · 12 KB · MIT · 3 matches

  1. %=========================================================================%
  2. %
  3. % Created on Thu, 21 Nov 2024
  4. % author: E Powell
  5. %
  6. % Simulate data (BBB-FEXI [1], AXR model [2])
  7. %
  8. % [1] E Powell, Y Ohene, M Battiston, BR Dickie, LM Parkes, GJM Parker.
  9. % "Blood-brain barrier water exchange measurements using FEXI: Impact
  10. % of modeling paradigm and relaxation time effects". MRM, (2023).
  11. % doi: 10.1002/mrm.29616
  12. %
  13. % [2] S Lasic, M Nilsson, J Latt, F Stahlberg, D Topgaard. "Apparent
  14. % exchange rate mapping with diffusion MRI". MRM. (2011)
  15. % doi: 10.1002/mrm.22782
  16. %
  17. %=========================================================================%
  18. clearvars -except SNR nsteps nroifit; clc; warning('off')
  19. %------------------------ USER DEFINED PARAMETERS ------------------------%
  20. basedir = fullfile('/home','epowell','code','matlab','matlab-bayesian'); % path to matlab-bayesian code directory
  21. % nsteps = 1e5; % no. MCMC steps
  22. burn_in = round(nsteps/2); % no. of steps to discard (burn-in)
  23. nupdates = 100; % how often weights are updated
  24. % nroifit = 2; % no. regional priors
  25. % SNR = 20; % SNR in bf=0, tm=min, be=0 data
  26. nsa = 6; % no. gradient directions + no. signal averages
  27. ninit = 25; % no. initial values for LSQ fit
  28. useparpool = 1; % use Matlab parallel pool for LSQ fit (1 yes; 0 no)
  29. saveflag = 1; % save output (1 yes; 0 no)
  30. plotflag = 0; % plot output (1 yes; 0 no)
  31. %-------------------------------------------------------------------------%
  32. % fitting bounds
  33. lb = [0.1e-9 0 0]; % [D, sigma, AXR] (SI units)
  34. ub = [3.5e-9 1 50]; % [D, sigma, AXR] (SI units)
  35. % load FEXI acqusition scheme (spherical mean scheme)
  36. loadloc = fullfile(basedir,'data');
  37. bf = read_text_files(fullfile(loadloc,'sim_axr.bvalf'));
  38. tm = read_text_files(fullfile(loadloc,'sim_axr.tm'));
  39. be = read_text_files(fullfile(loadloc,'sim_axr.bval'));
  40. bvecs = read_text_files(fullfile(loadloc,'sim_axr.bvec'));
  41. % load test data
  42. load(fullfile(loadloc,'sim_axr_data.mat')) % vars: adc, axr, mask, nvox, nx, ny, rois, sig
  43. if saveflag
  44. saveloc = loadloc;
  45. % savenm = ['sim_axr_fit__',char(datetime('now','Format','yyyy-MM-dd_HH-mm-SS'))];
  46. savenm = ['axr_snr',num2str(SNR),'_nsteps',num2str(nsteps),'_nroi',num2str(nroifit),char(datetime('now','Format','__yyyy-MM-dd_HH-mm-SS'))];
  47. fprintf('Saving to %s\n\n',fullfile(saveloc,savenm))
  48. end
  49. %% generate signals (noise free & noisy)
  50. E_nfree = zeros(nvox,numel(bf),nsa);
  51. E_noisy = zeros(nvox,numel(bf),nsa);
  52. for i = 1:nvox
  53. for j = 1:nsa
  54. E_nfree(i,:,j) = axr_sim(adc(i),sig(i),axr(i),bf(:),be(:),tm(:));
  55. % add Gaussian noise to complex signal (only necessary if min. SNR ~< 2)
  56. re = E_nfree(i,:,j) + (1/SNR)*randn(1,numel(bf));
  57. im = zeros(1,numel(bf)) + (1/SNR)*randn(1,numel(bf));
  58. E_noisy(i,:,j) = abs(re + 1i*im);
  59. % E_noisy(i,:,j) = E_nfree(i,:,j) + (1/SNR).*randn(1,numel(bf));
  60. end
  61. end
  62. fprintf('\n SNR set in 1 b0 = %.0f\n SNR in bf=min,tm=min,b=min = %.0f\n SNR in bf=max,tm=max,b=max = %.0f\n',...
  63. SNR,...
  64. mean(E_noisy(:,bf==min(bf)&tm==min(tm)&be==min(be)),1)/std(E_noisy(:,bf==min(bf)&tm==min(tm)&be==min(be),1)),...
  65. mean(E_noisy(:,bf==max(bf)&tm==max(tm)&be==max(be)),1)/std(E_noisy(:,bf==max(bf)&tm==max(tm)&be==max(be),1)))
  66. % figure, subplot(1,2,1), plot(repmat(be,[1 nsa]),squeeze(E_noisy(1,:,:)),'bo', repmat(be,[1 nsa]),squeeze(E_nfree(1,:,:)),'g*'), axis square, set(findobj(gca,'type','line'),'LineWidth',2,'markersize',8)
  67. % "spherically average" the simulated data
  68. E_nfree = mean(E_nfree,3);
  69. E_noisy = mean(E_noisy,3);
  70. fprintf('\n SNR averaged for %i gradient directions = %.0f\n SNR in bf=min,tm=min,b=min = %.0f\n SNR in bf=max,tm=max,b=max = %.0f\n\n',...
  71. nsa,...
  72. SNR*sqrt(nsa),...
  73. mean(E_noisy(:,bf==min(bf)&tm==min(tm)&be==min(be)))/std(E_noisy(:,bf==min(bf)&tm==min(tm)&be==min(be))),...
  74. mean(E_noisy(:,bf==max(bf)&tm==max(tm)&be==max(be)))/std(E_noisy(:,bf==max(bf)&tm==max(tm)&be==max(be))))
  75. % subplot(1,2,2), plot(be,E_noisy(1,:),'bo', be,E_nfree(1,:),'g*'), axis square, set(findobj(gca,'type','line'),'LineWidth',2,'markersize',8)
  76. %{
  77. test_SNR=10; test_nsa=1;
  78. n = 1e6;
  79. test_nfree = ones(1,n);
  80. re = test_nfree + (1/(test_SNR*sqrt(test_nsa)))*randn(1,n);
  81. im = zeros(1,n) + (1/(test_SNR*sqrt(test_nsa)))*randn(1,n);
  82. test_noisy = abs(re + 1i*im);
  83. [SNR*sqrt(nsa) mean(test_noisy)/std(test_noisy)]
  84. % figure, axis square, hold on
  85. histogram(test_noisy,100)
  86. %}
  87. %% LSQ fitting
  88. % use "ninit" initialisations for LSQ fit
  89. lsq_fit = struct;
  90. lsq_fit.adc = zeros(nvox,1);
  91. lsq_fit.sigma = zeros(nvox,1);
  92. lsq_fit.axr = zeros(nvox,1);
  93. init = [linspace(lb(1),ub(1),round(ninit^(1/3)))',...
  94. linspace(lb(2),ub(2),round(ninit^(1/3)))',...
  95. linspace(lb(3),ub(3),round(ninit^(1/3)))']; % D, sigma, AXR
  96. init = combvec(init(:,1)',init(:,2)',init(:,3)')';
  97. tic
  98. if useparpool, mypool = parpool(4); end
  99. for i = 1:nvox
  100. display_progress(i,nvox,i==1)
  101. if mask(i)
  102. [lsq_fit.adc(i), lsq_fit.sigma(i), lsq_fit.axr(i)] ...
  103. = axr_fit(bf(:), be(:), tm(:), E_noisy(i,:), init, lb, ub, useparpool);
  104. end
  105. end
  106. if useparpool, delete(mypool), end
  107. t_lsq = toc;
  108. fprintf('Time for LSQ fit: %.2f min\n',t_lsq/60)
  109. % predict signals from LSQ fit
  110. E_fit_lsq = zeros(nvox,numel(bf));
  111. for i = 1:nvox
  112. E_fit_lsq(i,:) = axr_sim(lsq_fit.adc(i),lsq_fit.sigma(i),lsq_fit.axr(i),bf(:),be(:),tm(:));
  113. end
  114. %% HBM fitting
  115. t = tic;
  116. % setup model (dmipy-style)
  117. model = [];
  118. model.partial_volume_names = {};
  119. model.parameter_cardinality.adc = 1;
  120. model.parameter_cardinality.sigma = 1;
  121. model.parameter_cardinality.axr = 1;
  122. model.parameter_names = {'adc','sigma','axr'};
  123. model.parameter_ranges.adc = [lb(1) ub(1)]*1e9;
  124. model.parameter_ranges.sigma = [lb(2) ub(2)];
  125. model.parameter_ranges.axr = [lb(3) ub(3)];
  126. model.parameter_scales.adc = 1e-9;
  127. model.parameter_scales.sigma = 1;
  128. model.parameter_scales.axr = 1;
  129. model.parameter_fixed.adc = 0;
  130. model.parameter_fixed.sigma = 0;
  131. model.parameter_fixed.axr = 0;
  132. model.simulate_signal = @(scheme,pvec) arrayfun(@(i) axr_sim(pvec.adc(i),pvec.sigma(i),pvec.axr(i),scheme.bf(:),scheme.bvalues(:),scheme.tm(:)), 1:numel(pvec.adc), 'UniformOutput',false);
  133. % setup acquisition scheme (dmipy-style)
  134. acq_scheme = struct;
  135. acq_scheme.bf = bf;
  136. acq_scheme.tm = tm;
  137. acq_scheme.bvalues = be;
  138. acq_scheme.gradient_directions = bvecs;
  139. % setup parameter vector (dmipy-style)
  140. parameter_vector_init = struct;
  141. parameter_vector_init.adc = lsq_fit.adc*1e9;
  142. parameter_vector_init.sigma = lsq_fit.sigma;
  143. parameter_vector_init.axr = lsq_fit.axr;
  144. if nroifit == 1
  145. rois = logical(rois);
  146. else
  147. % do nothing: rois = rois.
  148. end
  149. % run Bayesian fitting
  150. [params_all, ~, ~, stats_posterior, stats_prior] ...
  151. = fit_bayes(model, acq_scheme, E_noisy, parameter_vector_init, [], rois, nsteps, burn_in, nupdates, 0);
  152. t_hbm = toc(t);
  153. fprintf('Time for HBM fit: %.2f min\n',t_hbm/60)
  154. % NOTE: stats_posterior.(param).mn and params_all.(param) may be slightly
  155. % different (<0.1%) as params_all calculated over all MCMC steps post
  156. % burn-in, but stats_posterior calculated over a subsampled set of steps
  157. % post burn-in (for memory reasons)
  158. % predict signals from Bayesian fit
  159. E_fit_bayes = cell2mat(model.simulate_signal(acq_scheme, params_all))';
  160. % save
  161. if saveflag
  162. fprintf('Saving...')
  163. save(fullfile(saveloc,[savenm,'.mat']),'-v7.3')
  164. fprintf('Done.\n\n')
  165. end
  166. %% plotting
  167. if plotflag
  168. % plot parameter maps
  169. figure
  170. nr = 3; nc = 3;
  171. col_adc = autumn;
  172. col_sig = hot;
  173. col_axr = parula;
  174. lb_plot = lb; ub_plot = ub;
  175. % plot GT
  176. tmp = reshape(adc*1e9,[nx,ny]); h = subplot(nr,nc,1); imagesc(tmp) % plot fitted D
  177. clim([lb_plot(1) ub_plot(1)]*1e9), colorbar, colormap(h,col_adc)
  178. title('D (GT)'), set(get(colorbar,'label'),'string','[um^2/mm]'), axis image off
  179. tmp = reshape(sig,[nx,ny]); h = subplot(nr,nc,2); imagesc(tmp) % plot fitted sigma
  180. clim([lb_plot(2) ub_plot(2)]), colorbar, colormap(h,col_sig)
  181. title('\sigma (GT)'), set(get(colorbar,'label'),'string','[a.u.]'), axis image off
  182. tmp = reshape(axr,[nx,ny]); h = subplot(nr,nc,3); imagesc(tmp) % plot fitted AXR
  183. clim([lb_plot(3) ub_plot(3)]), colorbar, colormap(h,col_axr)
  184. title('AXR (GT)'), set(get(colorbar,'label'),'string','[s^{-1}]'), axis image off
  185. % plot LSQ fit
  186. tmp = reshape(lsq_fit.adc*1e9,[nx,ny]); h = subplot(nr,nc,4); imagesc(tmp) % plot fitted D
  187. clim([lb_plot(1) ub_plot(1)]*1e9), colorbar, colormap(h,col_adc)
  188. title('D (LSQ)'), set(get(colorbar,'label'),'string','[um^2/mm]'), axis image off
  189. tmp = reshape(lsq_fit.sigma,[nx,ny]); h = subplot(nr,nc,5); imagesc(tmp) % plot fitted sigma
  190. clim([lb_plot(2) ub_plot(2)]), colorbar, colormap(h,col_sig)
  191. title('\sigma (LSQ)'), set(get(colorbar,'label'),'string','[a.u.]'), axis image off
  192. tmp = reshape(lsq_fit.axr,[nx,ny]); h = subplot(nr,nc,6); imagesc(tmp) % plot fitted AXR
  193. clim([lb_plot(3) ub_plot(3)]), colorbar, colormap(h,col_axr)
  194. title('AXR (LSQ)'), set(get(colorbar,'label'),'string','[s^{-1}]'), axis image off
  195. % plot Bayesian fit
  196. tmp = reshape(params_all.adc*1e9,[nx,ny]); h = subplot(nr,nc,7); imagesc(tmp) % plot fitted D
  197. clim([lb_plot(1) ub_plot(1)]*1e9), colorbar, colormap(h,col_adc)
  198. title('D (HBM)'), set(get(colorbar,'label'),'string','[um^2/mm]'), axis image off
  199. tmp = reshape(params_all.sigma,[nx,ny]); h = subplot(nr,nc,8); imagesc(tmp) % plot fitted sigma
  200. clim([lb_plot(2) ub_plot(2)]), colorbar, colormap(h,col_sig)
  201. title('\sigma (HBM)'), set(get(colorbar,'label'),'string','[a.u.]'), axis image off
  202. tmp = reshape(params_all.axr,[nx,ny]); h = subplot(nr,nc,9); imagesc(tmp) % plot fitted AXR
  203. clim([lb_plot(3) ub_plot(3)]), colorbar, colormap(h,col_axr)
  204. title('AXR (HBM)'), set(get(colorbar,'label'),'string','[s^{-1}]'), axis image off
  205. % plot correlations with GT
  206. figure
  207. nr = 1; nc = 3;
  208. col_lsq = 'r';
  209. col_hbm = 'b';
  210. % D
  211. subplot(nr,nc,1), hold on
  212. plot(adc(:)*1e9,lsq_fit.adc(:)*1e9,'o','color',col_lsq) % plot LSQ fit
  213. plot(adc(:)*1e9,params_all.adc(:)*1e9,'o','color',col_hbm) % plot HBM fit
  214. plot([lb_plot(1) ub_plot(1)]*1e9, [lb_plot(1) ub_plot(1)]*1e9, 'k--') % identity line
  215. xlim([.7 1.6]), ylim([.7 1.6]), axis square
  216. legend('LSQ','HBM'), xlabel('D_{gt} [um^2/mm]'), ylabel('D_{fit} [um^2/mm]')
  217. % sigma
  218. subplot(nr,nc,2), hold on
  219. plot(sig(:),lsq_fit.sigma(:),'o','color',col_lsq) % plot LSQ fit
  220. plot(sig(:),params_all.sigma(:),'o','color',col_hbm) % plot HBM fit
  221. plot([lb_plot(2) ub_plot(2)], [lb_plot(2) ub_plot(2)], 'k--') % identity line
  222. xlim([0.05 .3]), ylim([0.05 .3]), axis square
  223. legend('LSQ','HBM'), xlabel('\sigma_{gt} [a.u.]'), ylabel('\sigma_{fit} [a.u.]')
  224. % AXR
  225. subplot(nr,nc,3), hold on
  226. plot(axr(:),lsq_fit.axr(:),'o','color',col_lsq), hold on % plot LSQ fit
  227. plot(axr(:),params_all.axr(:),'o','color',col_hbm) % plot HBM fit
  228. plot([lb_plot(3) ub_plot(3)], [lb_plot(3) ub_plot(3)], 'k--') % identity line
  229. xlim([0 4]), ylim([lb_plot(3) ub_plot(3)]), axis square
  230. legend('LSQ','HBM'), xlabel('AXR_{gt} [s^{-1}]'), ylabel('AXR_{fit} [s^{-1}]')
  231. end

example_axr_simulated_data.m at commit 743ae00, under MIT · at the source

Overview

  1. Department of Medical Physics and Biomedical Engineering, University College London, London, UK
  2. Lancaster Medical School, Lancaster University, Lancaster, UK
  3. Department of Neurology, Lancashire Teaching Hospitals NHS Foundation Trust, Preston, UK
  4. Division of Psychology, Communication and Human Neuroscience, School of Health Sciences, Faculty of Biology, Medicine and Health, University of Manchester, Manchester, UK
  5. Geoffrey Jefferson Brain Research Centre, Faculty of Biology, Medicine and Health, University of Manchester, Manchester, UK
  6. Bioxydyn Limited, Manchester, UK
  7. Cardiff University Brain Research Imaging Centre, School of Psychology, Cardiff University, Cardiff, UK
  8. School of Computer Science and Informatics, Cardiff University, Cardiff, UK
Institutions: University College London (United Kingdom); Lancashire Teaching Hospitals NHS Foundation Trust (United Kingdom); Lancaster University (United Kingdom); University of Manchester (United Kingdom); Cardiff University (United Kingdom)
Journal: NMR in biomedicine, volume 39, issue 6, article e70277
Dates: received 2 June 2025; accepted 10 February 2026; published online 11 May 2026; in print June 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1002/nbm.70277 · PMID 42115150 · PMCID PMC13160881 · OpenAlex W4414048604
Open access: hybrid, a free copy (OpenAlex)
Status: code verified
Categories: structural MRI / diffusion (modality), human (organism), computational (subfield)
Methods: fMRI & imaging, Physiology & signal measures
Keywords: Bayesian modelling, blood–brain barrier, diffusion MRI, filter exchange imaging (FEXI), kurtosis, microstructure, water exchange
MeSH: Brain*, Diffusion Magnetic Resonance Imaging*, Image Interpretation, Computer-Assisted*, Algorithms, Bayes Theorem, Computer Simulation, Humans, Reproducibility of Results, Signal-To-Noise Ratio (* major topic)
Topic: Advanced Neuroimaging Techniques and Applications (Radiology, Nuclear Medicine and Imaging, Medicine), according to OpenAlex
Funding: Engineering and Physical Sciences Research Council (EP/M020533/1, EP/S031510/1); EPSRC (EP/S031510/1, EP/M020533/1); Alzheimer's Society (577); Alzheimer's Society Heather Corrie Impact Fund (577[AS-PG-21-045])
Citations: not cited yet (Europe PMC); 54 references in the paper

Abstract

Microstructure modelling quantifies subvoxel tissue features by combining an MRI acquisition with a mathematical model, which is typically fitted voxel‐by‐voxel with least‐squares (LSQ) minimisation to give voxelwise maps of microstructural quantities such as diffusivity and compartmental fractions. Such approaches are susceptible to voxelwise noise, which can lead to erroneous values in parameter maps. Hierarchical Bayesian modelling (HBM) can address this limitation but has only been demonstrated for simple models. We previously derived an HBM approach for an arbitrary microstructure model with flexible parameter constraints, utilising a Markov chain Monte Carlo algorithm for parameter estimation; here, the method is demonstrated and evaluated using simulated and human data for two previously unexplored diffusion MRI techniques, namely, diffusion kurtosis imaging and blood–brain barrier filter exchange imaging. When compared with LSQ minimisation, HBM increased the accuracy, precision, contrast‐to‐noise ratio and parameter map quality in both simulated and human data. HBM was also able to resolve local parameter variations associated with white matter lesions in a small sample of cerebral small vessel disease subjects, which were obscured by high noise levels in the LSQ‐derived parameter maps. Finally, a noise sensitivity assessment in simulations showed that HBM improved the contrast‐to‐noise ratio and parameter map quality even at low signal‐to‐noise ratios. This generalised HBM framework can improve parameter estimation for more complex diffusion MRI microstructural models that extend beyond linear combinations of exponentials.

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

e-powell/hbm-matlab

License: MIT
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 743ae00a87339a3619503adcda0d4774aaab73d2, 19 June 2025
Languages: MATLAB (24)
Size: 28 files, 24 scripts
Software Heritage: not checked
Found in: the text, “Introduction”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
26 files

e-powell/hbm-dmipy

License: MIT
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: a6643b4367b8a70aca2084d7b9230fdd95adb3c6, 26 November 2024
Languages: Python (83), Jupyter (39), Shell (1)
Size: 309 files, 123 scripts
Software Heritage: not archived
Found in: the text, “Discussion”
Holds: README, license file, environment (requirements.txt), tests, continuous integration, documentation, 36 notebooks
Not found: CITATION.cff
Tools: NumPy (89 files), DIPY (39 files), Matplotlib (28 files), SciPy (19 files), seaborn (3 files), NiBabel (2 files)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
125 files

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;
  • 147 scripts, each with its path and the digest of its content;
  • 10 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 Availability Statement

The data that support the findings of this study are available on request from the corresponding author. The data are not publicly available due to privacy or ethical restrictions.

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

  • Publisher: n/a → Wiley

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 6 authors, 7 keywords, 9 MeSH terms, 4 funders, 54 references.

Cite

This paper

Powell, E., Maskery, M., Emsley, H. C. A., Parkes, L. M., Parker, G. J. M., & Slator, P. J. (2026). Hierarchical Bayesian Modelling Improves Microstructural Parameter Mapping in Diffusion and Exchange MRI Data. NMR in biomedicine, 39(6), e70277. https://doi.org/10.1002/nbm.70277

BibTeX

@article{powell2026hierarchical,
author = {Powell, Elizabeth and Maskery, Mark and Emsley, Hedley C A and Parkes, Laura M and Parker, Geoff J M and Slator, Paddy J},
title = {{Hierarchical Bayesian Modelling Improves Microstructural Parameter Mapping in Diffusion and Exchange MRI Data}},
journal = {NMR in biomedicine},
year = {2026},
month = jun,
volume = {39},
number = {6},
pages = {e70277},
publisher = {Wiley},
issn = {0952-3480},
doi = {10.1002/nbm.70277},
url = {https://doi.org/10.1002/nbm.70277},
pmid = {42115150},
pmcid = {PMC13160881}
}

RIS

TY - JOUR
AU - Powell, Elizabeth
AU - Maskery, Mark
AU - Emsley, Hedley C A
AU - Parkes, Laura M
AU - Parker, Geoff J M
AU - Slator, Paddy J
TI - Hierarchical Bayesian Modelling Improves Microstructural Parameter Mapping in Diffusion and Exchange MRI Data
T2 - NMR in biomedicine
J2 - NMR Biomed
PY - 2026
DA - 2026/06/01
VL - 39
IS - 6
SP - e70277
SN - 0952-3480
PB - Wiley
DO - 10.1002/nbm.70277
UR - https://doi.org/10.1002/nbm.70277
LA - en
ER -

CSL-JSON

{
"id": "10.1002/nbm.70277",
"type": "article-journal",
"title": "Hierarchical Bayesian Modelling Improves Microstructural Parameter Mapping in Diffusion and Exchange MRI Data",
"container-title": "NMR in biomedicine",
"author": [
{
"family": "Powell",
"given": "Elizabeth"
},
{
"family": "Maskery",
"given": "Mark"
},
{
"family": "Emsley",
"given": "Hedley C A"
},
{
"family": "Parkes",
"given": "Laura M"
},
{
"family": "Parker",
"given": "Geoff J M"
},
{
"family": "Slator",
"given": "Paddy J"
}
],
"container-title-short": "NMR Biomed",
"volume": "39",
"issue": "6",
"page": "e70277",
"DOI": "10.1002/nbm.70277",
"PMID": "42115150",
"PMCID": "PMC13160881",
"ISSN": "0952-3480",
"publisher": "Wiley",
"URL": "https://doi.org/10.1002/nbm.70277",
"language": "en",
"issued": {
"date-parts": [
[
2026,
6,
1
]
]
}
}

The tracing map gets a citation of its own once an author has validated it and it has a DOI.

Similar papers

The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.

[1] doi:10.1038/s43856-026-01614-6 [code]
Simulation-based inference at the theoretical limit for fast, robust microstructural MRI with minimal diffusion data.
Journal: Communications medicine
In common: DIPY, SciPy, Matplotlib, 1 other tool, computational, structural MRI / diffusion, 8 references
[2] doi:10.1002/mrm.70514 [code]
Brain Clearance of Contrast Agent in Intravenous DCE-MRI Is Measurable and Cannot Be Explained by Clearance Across the BBB Alone.
Journal: Magnetic resonance in medicine
In common: seaborn, SciPy, Matplotlib, 1 other tool, structural MRI / diffusion, 2 references, 2 authors
[3] doi:10.1002/hbm.70513 [code]
Deep Learning Empowered Microstructure Codebook: New Paradigm for Multi-Parameter Tissue Characterization Estimation.
Journal: Human brain mapping
In common: DIPY, NumPy, structural MRI / diffusion, 7 references
[4] doi:10.1162/imag.a.1341 [code]
Massively parallelized brain tractography using compute clusters, supercomputers, and graphics processing units.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: DIPY, Optimization Toolbox, Parallel Computing Toolbox, 5 other tools, structural MRI / diffusion, 3 references
[5] doi:10.1162/imag.a.1262 [code]
Frame-wise multi-echo distortion correction for superior functional MRI.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: Tools for NIfTI and ANALYZE image (MATLAB), Optimization Toolbox, Parallel Computing Toolbox, 6 other tools, 3 references
[6] doi:10.1002/mp.70599 [code]
Accurate estimation of intravoxel incoherent motion parameters based on implicit neural representation.
Journal: Medical physics
In common: NiBabel, SciPy, NumPy, structural MRI / diffusion, 6 references
[7] doi:10.1038/s41598-026-51531-w [code]
Multimodal age-dependent diffusion-MRI analysis of the neocortex in a rat model of cortical dysplasia.
Journal: Scientific reports
In common: DIPY, NiBabel, Statistics and Machine Learning Toolbox, 3 other tools, structural MRI / diffusion, 4 references
[8] doi:10.1038/s41586-026-10631-3 [code]
A prognostic human brain network for diffuse midline glioma.
Journal: Nature
In common: Tools for NIfTI and ANALYZE image (MATLAB), Optimization Toolbox, Parallel Computing Toolbox, 6 other tools, 1 reference
[9] doi:10.7554/elife.107661 [code]
In vivo mapping of striatal neurodegeneration in Huntington's disease with Soma and Neurite Density Imaging.
Journal: eLife
In common: Tools for NIfTI and ANALYZE image (MATLAB), Optimization Toolbox, Statistics and Machine Learning Toolbox, structural MRI / diffusion, 6 references
[10] doi:10.1371/journal.pone.0346132 [code]
Analysis of cortical dysplasias using b-tensor encoding diffusion MRI in an animal model.
Journal: PloS one
In common: DIPY, NiBabel, Statistics and Machine Learning Toolbox, 3 other tools, structural MRI / diffusion, 4 references

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.