OSCR

Global search metaheuristics for neural mass model calibration.

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, not to given lines: weak matches, whose lines are not tinted
  1. [1] § Methods › Methods for model calibration ↔ NMMSO_example.m, lines 3–63 · score 0.71 · niching migratory multi, genetic algorithm, swarm optimiser, Rit model, Jansen, simulated
  2. [2] § Methods › Methods for model calibration ↔ Related_scripts/NMMSO_normalised_exit_early.m, the whole file · a weak match · score 0.69 · multi modal, swarm optimisation, multi swarm, particle, population, locations
  3. [3] § Methods › Methods for model calibration ↔ Related_scripts/NMMSO_normalised_iterative.m, lines 1–85 · score 0.67 · multi modal, swarm optimisation, multi swarm, particle, locations, space
  4. [4] § Methods › Methods for model calibration ↔ Related_scripts/NMMSO_normalised_exit_early.m, the whole file · a weak match · score 0.60 · niching migratory multi, swarm optimiser, hypercube, space, NMMSO, algorithms
  5. [5] § Methods › Methods for model calibration ↔ ABC_example.jl, lines 167–203 · score 0.59 · ABC SMC, schedule, distance, particles, tolerance, PSD
  6. [6] § Methods › Objective function and tolerance threshold ↔ Related_scripts/Fitness_TF.m, the whole file · a weak match · score 0.51 · squared error, model PSD, sum
  7. [7] § Methods › Objective function and tolerance threshold ↔ Related_scripts/Fitness_TF_inverted.m, the whole file · a weak match · score 0.51 · squared error, model PSD, sum

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 · 120 lines · 4.8 KB · MIT · 2 matches

  1. function [X,Y,mode_loc_before,mode_y_before,evaluations_before,nmmso_state, ...
  2. mode_loc_after,mode_y_after,evaluations_after] = NMMSO_normalised_exit_early( ...
  3. swarm_size, problem_func,problem_function_params, max_evaluations, ...
  4. mn,mx,max_evol,tol_val,fitness_threshold)
  5. % Implementation of the Niching Migratory Multi-Swarm Optimser, described
  6. % in:
  7. % "Running Up Those Hills: Multi-Modal Search with the Niching Migratory
  8. % Multi-Swarm Optimiser"
  9. % by Jonathan E. Fieldsend
  10. % published in Proceedings of the IEEE Congress on Evolutionary Computation,
  11. % pages 2593-2600, 2014
  12. % Please reference this paper if you undertake work utilising this code.
  13. % Implementation (c) by Jonathan Fieldsend, University of Exeter, 2014
  14. %
  15. % Thanks to Zhan Dawei for identifying the error in the tol_val check
  16. %
  17. % Assumes function maximisation
  18. %
  19. % REQUIRED ARGUMENTS
  20. %
  21. % swarm_size = maximum number of elements (particles) per swarm
  22. % problem_func = string containing name of function to be optimised
  23. % problem_funcion_params = meta-parameters needed by problem function
  24. % (distinct from optimisation (design) parameters
  25. % max_evaluations = maximum number of evaluations to be taken through the
  26. % problem function
  27. % mn = minimum design parameter values (a vector with param_num elements)
  28. % mx = maximum design parameter values (a vector with param_num elements)
  29. %
  30. % OPTIONAL ARGUMENTS
  31. %
  32. % max_evols = maximum number of swarms to update in a generation. If not
  33. % provided this is set at 100
  34. % tol_val = tolerance value for merging automatically (default 10^-6)
  35. %
  36. % OUTPUTS
  37. %
  38. % Due to the algorithm design (dynamic populations) the final generation
  39. % may exceed the alloted maximum number of evaluations. As such the final
  40. % peak estimate state and the penultimate peak estimate state are returned
  41. % (with the corresponding evaluation number tracked). Apart from X and Y,
  42. % other data stored are in the normalised range
  43. %
  44. %
  45. % X = mode locations (in original range),note that at least one is likely
  46. % to be very poor due to the new swarm spawning at the end of each
  47. % generation, and that these will be a combination of both global and
  48. % local mode estimate
  49. % Y = mode values;
  50. % mode_loc_before = design space location of penultimate mode estimates (swarm
  51. % gbests), note that at least one is likely to be very poor due to the
  52. % new swarm spawning at the end of each generation, and that these will
  53. % be a combination of both global and local mode estimate
  54. % mode_y_before = function evalutions corresponding to the mode estimates
  55. % evaluations_before = number of problem function evaluations at end of
  56. % penultimate generation
  57. % mode_loc_after = design space location of mode estimates at end
  58. % mode_y_after = function evalutions corresponding to the mode estimates
  59. % evaluations_after = number of problem function evaluationsat end
  60. %
  61. % nmmso_state = structure holding the state of the swarms. Unless you want
  62. % to pick apart the details of how the algorithm searchs the space, then
  63. % the only two elements you will probably be interested in are X and Y
  64. % which are preallocated matrices to hold all normalised locations visited
  65. % (therefore nmmso_state.X(1:evaluations,:) will hold all the design
  66. % space locations visited by the optimiser thus far. The final version is
  67. % returned (can be quite large)
  68. %
  69. % NOTE: all locations are normalised to the unit hypercube using the box
  70. % constraints in mx and mn -- you will want to rescale back woth mn and mx
  71. % to get the original decision vectors. X and Y hold mode estimated
  72. % locations in original ranges
  73. %
  74. %
  75. if exist('max_evol','var')==0
  76. display('default max_eval used, set at 100');
  77. max_evol=100;
  78. end
  79. if max_evol<=0
  80. display('Max_eval cannot be negative or zero, default max_eval used, set at 100');
  81. max_evol=100;
  82. end
  83. if exist('tol_val','var') ==0
  84. tol_val = 10^-6;
  85. end
  86. % at start no evaluations used, and NMMSO state is empty
  87. mode_loc_after=[];
  88. mode_y_after=[];
  89. evaluations_after=[];
  90. nmmso_state=[];
  91. evaluations_after=0;
  92. % exit algorithm either when max_evaluations has been reached or when we have a mode with a value less than the desired threshold.
  93. fit_val_best = 100;
  94. while ((evaluations_after < max_evaluations)&&(fit_val_best>=fitness_threshold))
  95. mode_loc_before=mode_loc_after;
  96. mode_y_before=mode_y_after;
  97. evaluations_before=evaluations_after;
  98. [mode_loc_after,mode_y_after,evaluations_after,nmmso_state] = NMMSO_normalised_iterative( ...
  99. swarm_size, problem_func,problem_function_params, max_evaluations, ...
  100. mn,mx,evaluations_after,nmmso_state,max_evol,tol_val);
  101. fit_val_best = min(100-mode_y_after);
  102. end
  103. [n,~] = size(mode_loc_after);
  104. X = mode_loc_after.*repmat(mx-mn,n,1)+repmat(mn,n,1);
  105. Y = mode_y_after;

NMMSO_normalised_exit_early.m at commit a8e4edb, under MIT · at the source

Overview

Authors: Dominic M. Dunstan1,2, Mark P. Richardson3, Jonathan E. Fieldsend4, Marc Goodfellow1,2
  1. Department of Mathematics and Statistics, University of Exeter, Exeter, United Kingdom
  2. Living Systems Institute, University of Exeter, Exeter, United Kingdom
  3. Department of Basic and Clinical Neuroscience, Institute of Psychiatry, Psychology, and Neuroscience, King’s College London, London, United Kingdom
  4. Department of Computer Science, University of Exeter, Exeter, United Kingdom
Institutions: University of Exeter (United Kingdom); King's College London (United Kingdom)
Journal: Imaging neuroscience (Cambridge, Mass.), volume 4, article IMAG.a.1249
Dates: received 29 August 2025; accepted 20 April 2026; published online 5 June 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1162/imag.a.1249 · PMID 42266203 · PMCID PMC13245216 · OpenAlex W4413421016
Open access: diamond, a free copy (OpenAlex)
Status: code verified
Categories: EEG (modality), none (in silico) (organism), computational (subfield)
Methods: Spectral & time-frequency, Statistics, Preprocessing, Single-unit activity, calcium imaging, Machine learning
Keywords: neural mass model, EEG, evolutionary search metaheuristics, approximate Bayesian computation, model calibration, parameter inference
Topic: Medical Image Segmentation Techniques (Computer Vision and Pattern Recognition, Computer Science), according to OpenAlex
Funding: Engineering and Physical Sciences Research Council (EP/T017856/1, 2407565, UKRI1460); RCUK | Medical Research Council (MRC) (MR/K013998/1)
Citations: not cited yet (Europe PMC); 57 references in the paper

Abstract

Neural mass models (NMMs) are often used to help understand the circuitry that underpins observed brain dynamics in basic and clinical research. A key step is to fuse models with data so that model parameter values can be inferred for a given data set—a process called model fitting or model calibration. This can shed light on putative physiological mechanisms underlying the observed signals. Calibration is notoriously challenging in biology since models are often non-identifiable, high-dimensional, and nonlinear. Established methods such as dynamic causal modelling (DCM) circumvent some of these issues, for example, by incorporating prior information and employing fast local search methods in the space of feasible parameter values (“parameter space”). However, it is pertinent to better understand the potential limitations of these methods so that we can increase our confidence in the use of models to interpret brain activity, and to develop new approaches as required. Here, we use tools from dynamical systems theory to illustrate some of the complexities of model calibration in an archetypal NMM. We use this information to motivate the use of calibration methods that work across large regions of parameter space, rather than focusing on informative priors or localised search methods. We subsequently evaluate the performance of approximate Bayesian computation (ABC) and evolutionary search metaheuristics (ESMs) for mapping feasible sets of parameters for which an NMM can recreate electroencephalographic recordings during an eyes-closed resting state. Our results demonstrate the superiority of ESMs in terms of computational efficiency and accuracy. Furthermore, we elucidate potential reasons why ESMs are able to perform better than ABC, that is, that they are less susceptible to biases induced by the complexity of underlying cost landscapes. These results highlight the importance of incorporating ESMs in future efforts to model brain dynamics.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repository

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

domdunstan/Global_NMM_parameter_inference

License: MIT
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: a8e4edb0114e47ab359c07037b0314e19d8dca16, 13 January 2026
Languages: MATLAB (9), Julia (1)
Size: 14 files, 10 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
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
12 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;
  • 10 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

Code supporting the findings is publicly available and maintained as a GitHub repository (https://github.com/domdunstan/Global_NMM_parameter_inference). The full EEG dataset is publicly available (https://osf.io/f2vya), with the processed power spectral data available within the GitHub repository.

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

Recorded: type, language, journal, volume, pages, dates, 4 authors, 6 keywords, 2 funders, 57 references.

Cite

This paper

Dunstan, D. M., Richardson, M. P., Fieldsend, J. E., & Goodfellow, M. (2026). Global search metaheuristics for neural mass model calibration. Imaging neuroscience (Cambridge, Mass.), 4, IMAG.a.1249. https://doi.org/10.1162/imag.a.1249

BibTeX

@article{dunstan2026global,
author = {Dunstan, Dominic M. and Richardson, Mark P. and Fieldsend, Jonathan E. and Goodfellow, Marc},
title = {{Global search metaheuristics for neural mass model calibration}},
journal = {Imaging neuroscience (Cambridge, Mass.)},
year = {2026},
month = jun,
volume = {4},
pages = {IMAG.a.1249},
publisher = {MIT Press},
issn = {2837-6056},
doi = {10.1162/imag.a.1249},
url = {https://doi.org/10.1162/imag.a.1249},
pmid = {42266203},
pmcid = {PMC13245216}
}

RIS

TY - JOUR
AU - Dunstan, Dominic M.
AU - Richardson, Mark P.
AU - Fieldsend, Jonathan E.
AU - Goodfellow, Marc
TI - Global search metaheuristics for neural mass model calibration
T2 - Imaging neuroscience (Cambridge, Mass.)
J2 - Imaging Neurosci (Camb)
PY - 2026
DA - 2026/06/05
VL - 4
SP - IMAG.a.1249
SN - 2837-6056
PB - MIT Press
DO - 10.1162/imag.a.1249
UR - https://doi.org/10.1162/imag.a.1249
LA - en
ER -

CSL-JSON

{
"id": "10.1162/imag.a.1249",
"type": "article-journal",
"title": "Global search metaheuristics for neural mass model calibration",
"container-title": "Imaging neuroscience (Cambridge, Mass.)",
"author": [
{
"family": "Dunstan",
"given": "Dominic M."
},
{
"family": "Richardson",
"given": "Mark P."
},
{
"family": "Fieldsend",
"given": "Jonathan E."
},
{
"family": "Goodfellow",
"given": "Marc"
}
],
"container-title-short": "Imaging Neurosci (Camb)",
"volume": "4",
"page": "IMAG.a.1249",
"DOI": "10.1162/imag.a.1249",
"PMID": "42266203",
"PMCID": "PMC13245216",
"ISSN": "2837-6056",
"publisher": "MIT Press",
"URL": "https://doi.org/10.1162/imag.a.1249",
"language": "en",
"issued": {
"date-parts": [
[
2026,
6,
5
]
]
}
}

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.1162/imag.a.1250 [code]
Dynamics-informed priors (DIP) for neural mass modelling.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: Optimization Toolbox, Statistics and Machine Learning Toolbox, none (in silico), EEG, 9 references, 3 authors
[2] doi:10.1371/journal.pcbi.1014222 [code]
Neural population models for EEG: From Canonical models to alternative model structures.
Journal: PLoS computational biology
In common: DifferentialEquations.jl, Distributions.jl, Plots.jl, computational, EEG, 7 references
[3] doi:10.1038/s42003-026-10957-8 [code]
Brain defence by the extracellular matrix protein Cochlin.
Journal: Communications biology
In common: DifferentialEquations.jl, Distributions.jl, Plots.jl, 2 other tools
[4] doi:10.1371/journal.pcbi.1014022 [code]
Emergence of multifrequency activity in a laminar neural mass model.
Journal: PLoS computational biology
In common: DifferentialEquations.jl, 5 references
[5] doi:10.1162/netn.a.543 [code]
High-resolution Bayesian Virtual Epileptic Patient using neural field models.
Journal: Network neuroscience (Cambridge, Mass.)
In common: computational, 5 references
[6] doi:10.1523/eneuro.0379-25.2026 [code]
Next-Generation Neural Mass Models Reproduce Features of Speech Processing.
Journal: eNeuro
In common: DifferentialEquations.jl, Distributions.jl, Plots.jl, EEG
[7] doi:10.1038/s42003-026-10164-5 [code]
The influence of nonlinear resonance on human cortical oscillations.
Journal: Communications biology
In common: Optimization Toolbox, Statistics and Machine Learning Toolbox, EEG, 3 references
[8] doi:10.1371/journal.pcbi.1014549 [code]
Inward rectifier potassium channels interact with calcium channels to promote robust and physiological bistability.
Journal: PLoS computational biology
In common: DifferentialEquations.jl, Distributions.jl, Plots.jl
[9] doi:10.7554/elife.89629 [code]
Active dendrites enable robust spiking computations despite timing jitter.
Journal: eLife
In common: DifferentialEquations.jl, Distributions.jl, Plots.jl
[10] doi:10.1093/pnasnexus/pgag213 [code]
Two-factor synaptic plasticity enables memory consolidation during neuronal burst firing.
Journal: PNAS nexus
In common: DifferentialEquations.jl, Distributions.jl, Plots.jl

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.