<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD with MathML3 v1.3 20210610//EN"  "JATS-archivearticle1-3-mathml3.dtd"><article xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="1.3"><front><journal-meta><journal-id journal-id-type="nlm-ta">elife</journal-id><journal-id journal-id-type="publisher-id">eLife</journal-id><journal-title-group><journal-title>eLife</journal-title></journal-title-group><issn publication-format="electronic" pub-type="epub">2050-084X</issn><publisher><publisher-name>eLife Sciences Publications, Ltd</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="publisher-id">95135</article-id><article-id pub-id-type="doi">10.7554/eLife.95135</article-id><article-id pub-id-type="doi" specific-use="version">10.7554/eLife.95135.3</article-id><article-version article-version-type="publication-state">version of record</article-version><article-categories><subj-group subj-group-type="display-channel"><subject>Tools and Resources</subject></subj-group><subj-group subj-group-type="heading"><subject>Neuroscience</subject></subj-group></article-categories><title-group><article-title>The NeuroML ecosystem for standardized multi-scale modeling in neuroscience</article-title></title-group><contrib-group><contrib contrib-type="author" equal-contrib="yes"><name><surname>Sinha</surname><given-names>Ankur</given-names></name><contrib-id authenticated="true" contrib-id-type="orcid">https://orcid.org/0000-0001-7568-7167</contrib-id><xref ref-type="aff" rid="aff1">1</xref><xref ref-type="fn" rid="equal-contrib1">†</xref><xref ref-type="fn" rid="con1"/><xref ref-type="fn" rid="conf1"/></contrib><contrib contrib-type="author" corresp="yes" equal-contrib="yes"><name><surname>Gleeson</surname><given-names>Padraig</given-names></name><contrib-id authenticated="true" contrib-id-type="orcid">https://orcid.org/0000-0001-5963-8576</contrib-id><email>p.gleeson@ucl.ac.uk</email><xref ref-type="aff" rid="aff1">1</xref><xref ref-type="fn" rid="equal-contrib1">†</xref><xref ref-type="other" rid="fund5"/><xref ref-type="other" rid="fund6"/><xref ref-type="fn" rid="con2"/><xref ref-type="fn" rid="conf1"/></contrib><contrib contrib-type="author"><name><surname>Marin</surname><given-names>Bóris</given-names></name><xref ref-type="aff" rid="aff2">2</xref><xref ref-type="fn" rid="con3"/><xref ref-type="fn" rid="conf1"/></contrib><contrib contrib-type="author"><name><surname>Dura-Bernal</surname><given-names>Salvador</given-names></name><xref ref-type="aff" rid="aff3">3</xref><xref ref-type="aff" rid="aff4">4</xref><xref ref-type="other" rid="fund10"/><xref ref-type="other" rid="fund11"/><xref ref-type="fn" rid="con4"/><xref ref-type="fn" rid="conf1"/></contrib><contrib contrib-type="author"><name><surname>Panagiotou</surname><given-names>Sotirios</given-names></name><xref ref-type="aff" rid="aff5">5</xref><xref ref-type="other" rid="fund12"/><xref ref-type="fn" rid="con5"/><xref ref-type="fn" rid="conf1"/></contrib><contrib contrib-type="author"><name><surname>Crook</surname><given-names>Sharon</given-names></name><xref ref-type="aff" rid="aff6">6</xref><xref ref-type="other" rid="fund7"/><xref ref-type="other" rid="fund8"/><xref ref-type="other" rid="fund9"/><xref ref-type="fn" rid="con6"/><xref ref-type="fn" rid="conf1"/></contrib><contrib contrib-type="author"><name><surname>Cantarelli</surname><given-names>Matteo</given-names></name><contrib-id authenticated="true" contrib-id-type="orcid">https://orcid.org/0000-0002-0054-226X</contrib-id><xref ref-type="aff" rid="aff7">7</xref><xref ref-type="fn" rid="con7"/><xref ref-type="fn" rid="conf2"/></contrib><contrib contrib-type="author"><name><surname>Cannon</surname><given-names>Robert C</given-names></name><xref ref-type="aff" rid="aff8">8</xref><xref ref-type="fn" rid="con8"/><xref ref-type="fn" rid="conf3"/></contrib><contrib contrib-type="author"><name><surname>Davison</surname><given-names>Andrew P</given-names></name><contrib-id authenticated="true" contrib-id-type="orcid">https://orcid.org/0000-0002-4793-7541</contrib-id><xref ref-type="aff" rid="aff9">9</xref><xref ref-type="fn" rid="con9"/><xref ref-type="fn" rid="conf1"/></contrib><contrib contrib-type="author"><name><surname>Gurnani</surname><given-names>Harsha</given-names></name><xref ref-type="aff" rid="aff10">10</xref><xref ref-type="fn" rid="con10"/><xref ref-type="fn" rid="conf1"/></contrib><contrib contrib-type="author" corresp="yes"><name><surname>Silver</surname><given-names>Robin Angus</given-names></name><contrib-id authenticated="true" contrib-id-type="orcid">https://orcid.org/0000-0002-5480-6638</contrib-id><email>a.silver@ucl.ac.uk</email><xref ref-type="aff" rid="aff1">1</xref><xref ref-type="fn" rid="con11"/><xref ref-type="fn" rid="conf1"/></contrib><aff id="aff1"><label>1</label><institution-wrap><institution-id institution-id-type="ror">https://ror.org/02jx3x895</institution-id><institution>Department of Neuroscience, Physiology and Pharmacology, University College London</institution></institution-wrap><addr-line><named-content content-type="city">London</named-content></addr-line><country>United Kingdom</country></aff><aff id="aff2"><label>2</label><institution-wrap><institution-id institution-id-type="ror">https://ror.org/028kg9j04</institution-id><institution>Universidade Federal do ABC</institution></institution-wrap><addr-line><named-content content-type="city">São Bernardo do Campo</named-content></addr-line><country>Brazil</country></aff><aff id="aff3"><label>3</label><institution-wrap><institution-id institution-id-type="ror">https://ror.org/0041qmd21</institution-id><institution>SUNY Downstate Medical Center</institution></institution-wrap><addr-line><named-content content-type="city">Brooklyn</named-content></addr-line><country>United States</country></aff><aff id="aff4"><label>4</label><institution-wrap><institution-id institution-id-type="ror">https://ror.org/01s434164</institution-id><institution>Center for Biomedical Imaging and Neuromodulation, Nathan Kline Institute for Psychiatric Research</institution></institution-wrap><addr-line><named-content content-type="city">Orangeburg</named-content></addr-line><country>United States</country></aff><aff id="aff5"><label>5</label><institution-wrap><institution-id institution-id-type="ror">https://ror.org/057w15z03</institution-id><institution>Erasmus University Rotterdam</institution></institution-wrap><addr-line><named-content content-type="city">Rotterdam</named-content></addr-line><country>Netherlands</country></aff><aff id="aff6"><label>6</label><institution-wrap><institution-id institution-id-type="ror">https://ror.org/03efmqc40</institution-id><institution>Arizona State University</institution></institution-wrap><addr-line><named-content content-type="city">Tempe</named-content></addr-line><country>United States</country></aff><aff id="aff7"><label>7</label><institution>MetaCell Ltd</institution><addr-line><named-content content-type="city">Cambridge</named-content></addr-line><country>United States</country></aff><aff id="aff8"><label>8</label><institution>Opus2 International Ltd</institution><addr-line><named-content content-type="city">London</named-content></addr-line><country>United Kingdom</country></aff><aff id="aff9"><label>9</label><institution-wrap><institution-id institution-id-type="ror">https://ror.org/02feahw73</institution-id><institution>CNRS</institution></institution-wrap><addr-line><named-content content-type="city">Gif-Sur-Yvette</named-content></addr-line><country>France</country></aff><aff id="aff10"><label>10</label><institution-wrap><institution-id institution-id-type="ror">https://ror.org/00cvxb145</institution-id><institution>University of Washington</institution></institution-wrap><addr-line><named-content content-type="city">Seattle</named-content></addr-line><country>United States</country></aff></contrib-group><contrib-group content-type="section"><contrib contrib-type="editor"><name><surname>Muller</surname><given-names>Eilif B</given-names></name><role>Reviewing Editor</role><aff><institution-wrap><institution-id institution-id-type="ror">https://ror.org/0161xgx34</institution-id><institution>University of Montreal</institution></institution-wrap><country>Canada</country></aff></contrib><contrib contrib-type="senior_editor"><name><surname>Poirazi</surname><given-names>Panayiota</given-names></name><role>Senior Editor</role><aff><institution-wrap><institution-id institution-id-type="ror">https://ror.org/01gzszr18</institution-id><institution>FORTH Institute of Molecular Biology and Biotechnology</institution></institution-wrap><country>Greece</country></aff></contrib></contrib-group><author-notes><fn fn-type="con" id="equal-contrib1"><label>†</label><p>These authors contributed equally to this work</p></fn></author-notes><pub-date publication-format="electronic" date-type="publication"><day>10</day><month>01</month><year>2025</year></pub-date><volume>13</volume><elocation-id>RP95135</elocation-id><history><date date-type="sent-for-review" iso-8601-date="2024-01-31"><day>31</day><month>01</month><year>2024</year></date></history><pub-history><event><event-desc>This manuscript was published as a preprint.</event-desc><date date-type="preprint" iso-8601-date="2023-12-11"><day>11</day><month>12</month><year>2023</year></date><self-uri content-type="preprint" xlink:href="https://doi.org/10.1101/2023.12.07.570537"/></event><event><event-desc>This manuscript was published as a reviewed preprint.</event-desc><date date-type="reviewed-preprint" iso-8601-date="2024-05-03"><day>03</day><month>05</month><year>2024</year></date><self-uri content-type="reviewed-preprint" xlink:href="https://doi.org/10.7554/eLife.95135.1"/></event><event><event-desc>The reviewed preprint was revised.</event-desc><date date-type="reviewed-preprint" iso-8601-date="2024-10-30"><day>30</day><month>10</month><year>2024</year></date><self-uri content-type="reviewed-preprint" xlink:href="https://doi.org/10.7554/eLife.95135.2"/></event></pub-history><permissions><copyright-statement>© 2024, Sinha, Gleeson et al</copyright-statement><copyright-year>2024</copyright-year><copyright-holder>Sinha, Gleeson et al</copyright-holder><ali:free_to_read/><license xlink:href="http://creativecommons.org/licenses/by/4.0/"><ali:license_ref>http://creativecommons.org/licenses/by/4.0/</ali:license_ref><license-p>This article is distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License</ext-link>, which permits unrestricted use and redistribution provided that the original author and source are credited.</license-p></license></permissions><self-uri content-type="pdf" xlink:href="elife-95135-v1.pdf"/><abstract><p>Data-driven models of neurons and circuits are important for understanding how the properties of membrane conductances, synapses, dendrites, and the anatomical connectivity between neurons generate the complex dynamical behaviors of brain circuits in health and disease. However, the inherent complexity of these biological processes makes the construction and reuse of biologically detailed models challenging. A wide range of tools have been developed to aid their construction and simulation, but differences in design and internal representation act as technical barriers to those who wish to use data-driven models in their research workflows. NeuroML, a model description language for computational neuroscience, was developed to address this fragmentation in modeling tools. Since its inception, NeuroML has evolved into a mature community standard that encompasses a wide range of model types and approaches in computational neuroscience. It has enabled the development of a large ecosystem of interoperable open-source software tools for the creation, visualization, validation, and simulation of data-driven models. Here, we describe how the NeuroML ecosystem can be incorporated into research workflows to simplify the construction, testing, and analysis of standardized models of neural systems, and supports the FAIR (Findability, Accessibility, Interoperability, and Reusability) principles, thus promoting open, transparent and reproducible science.</p></abstract><kwd-group kwd-group-type="author-keywords"><kwd>systems modeling</kwd><kwd>computational</kwd><kwd>software infrastucture</kwd><kwd>simulation</kwd></kwd-group><kwd-group kwd-group-type="research-organism"><title>Research organism</title><kwd><italic>C. elegans</italic></kwd><kwd>Human</kwd><kwd>Mouse</kwd><kwd>Rat</kwd></kwd-group><funding-group><award-group id="fund1"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/100010269</institution-id><institution>Wellcome Trust</institution></institution-wrap></funding-source><award-id award-id-type="doi">10.35802/101445</award-id><principal-award-recipient><name><surname>Gleeson</surname><given-names>Padraig</given-names></name><name><surname>Silver</surname><given-names>Robin Angus</given-names></name></principal-award-recipient></award-group><award-group id="fund2"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/100010269</institution-id><institution>Wellcome Trust</institution></institution-wrap></funding-source><award-id award-id-type="doi">10.35802/212941</award-id><principal-award-recipient><name><surname>Gleeson</surname><given-names>Padraig</given-names></name><name><surname>Silver</surname><given-names>Robin Angus</given-names></name></principal-award-recipient></award-group><award-group id="fund3"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/100010269</institution-id><institution>Wellcome Trust</institution></institution-wrap></funding-source><award-id award-id-type="doi">10.35802/203048</award-id><principal-award-recipient><name><surname>Silver</surname><given-names>Robin Angus</given-names></name></principal-award-recipient></award-group><award-group id="fund4"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/100010269</institution-id><institution>Wellcome Trust</institution></institution-wrap></funding-source><award-id award-id-type="doi">10.35802/224499</award-id><principal-award-recipient><name><surname>Silver</surname><given-names>Robin Angus</given-names></name></principal-award-recipient></award-group><award-group id="fund5"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/100001201</institution-id><institution>Kavli Foundation</institution></institution-wrap></funding-source><award-id>LS-2022-GR-40-2648</award-id><principal-award-recipient><name><surname>Gleeson</surname><given-names>Padraig</given-names></name></principal-award-recipient></award-group><award-group id="fund6"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/501100000266</institution-id><institution>Engineering and Physical Sciences Research Council</institution></institution-wrap></funding-source><award-id>EP/X011151/1</award-id><principal-award-recipient><name><surname>Gleeson</surname><given-names>Padraig</given-names></name></principal-award-recipient></award-group><award-group id="fund7"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/100000002</institution-id><institution>National Institutes of Health</institution></institution-wrap></funding-source><award-id>MH081905</award-id><principal-award-recipient><name><surname>Crook</surname><given-names>Sharon</given-names></name></principal-award-recipient></award-group><award-group id="fund8"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/100000002</institution-id><institution>National Institutes of Health</institution></institution-wrap></funding-source><award-id>EB014640</award-id><principal-award-recipient><name><surname>Crook</surname><given-names>Sharon</given-names></name></principal-award-recipient></award-group><award-group id="fund9"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/100000002</institution-id><institution>National Institutes of Health</institution></institution-wrap></funding-source><award-id>MH106674</award-id><principal-award-recipient><name><surname>Crook</surname><given-names>Sharon</given-names></name></principal-award-recipient></award-group><award-group id="fund10"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/100000002</institution-id><institution>National Institutes of Health</institution></institution-wrap></funding-source><award-id>U24EB028998</award-id><principal-award-recipient><name><surname>Dura-Bernal</surname><given-names>Salvador</given-names></name></principal-award-recipient></award-group><award-group id="fund11"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/100004857</institution-id><institution>New York State Department of Health - Wadsworth Center</institution></institution-wrap></funding-source><award-id>DOH01-C38328GG</award-id><principal-award-recipient><name><surname>Dura-Bernal</surname><given-names>Salvador</given-names></name></principal-award-recipient></award-group><award-group id="fund12"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/100018693</institution-id><institution>HORIZON EUROPE Framework Programme</institution></institution-wrap></funding-source><award-id>SEPTON (Gr. Agr. No. 101094901)</award-id><principal-award-recipient><name><surname>Panagiotou</surname><given-names>Sotirios</given-names></name></principal-award-recipient></award-group><funding-statement>The funders had no role in study design, data collection and interpretation, or the decision to submit the work for publication. For the purpose of Open Access, the authors have applied a CC BY public copyright license to any Author Accepted Manuscript version arising from this submission.</funding-statement></funding-group><custom-meta-group><custom-meta specific-use="meta-only"><meta-name>Author impact statement</meta-name><meta-value>The NeuroML model description language, with its extensive software ecosystem, supports researchers in the development of FAIR, data-driven, biologically detailed models of neural systems.</meta-value></custom-meta><custom-meta specific-use="meta-only"><meta-name>publishing-route</meta-name><meta-value>prc</meta-value></custom-meta></custom-meta-group></article-meta></front><body><sec id="s1" sec-type="intro"><title>Introduction</title><p>Development of an in-depth, mechanistic understanding of brain function in health and disease requires different scientific approaches spanning multiple scales, from gene expression to behavior. Although ‘wet’ experimental approaches are essential for characterizing the properties of neural systems and testing hypotheses, theory and modeling are critical for exploring how these complex systems behave across a wider range of conditions, and for generating new experimentally testable, physically plausible hypotheses. Theory and modeling also provide a way to integrate a panoply of experimentally measured parameters, functional properties, and responses to perturbations into a physio-chemically coherent framework that reproduces the properties of the neural system of interest (<xref ref-type="bibr" rid="bib28">Einevoll et al., 2019</xref>; <xref ref-type="bibr" rid="bib106">Yao et al., 2022</xref>; <xref ref-type="bibr" rid="bib78">Poirazi and Papoutsi, 2020</xref>; <xref ref-type="bibr" rid="bib49">Gurnani and Silver, 2021</xref>; <xref ref-type="bibr" rid="bib39">Gleeson et al., 2018</xref>; <xref ref-type="bibr" rid="bib19">Cayco-Gajic et al., 2017</xref>; <xref ref-type="bibr" rid="bib9">Billings et al., 2014</xref>; <xref ref-type="bibr" rid="bib101">Vervaeke et al., 2010</xref>; <xref ref-type="bibr" rid="bib60">Kriener et al., 2022</xref>; <xref ref-type="bibr" rid="bib8">Billeh et al., 2020</xref>; <xref ref-type="bibr" rid="bib65">Markram et al., 2015</xref>).</p><p>Computational models in neuroscience often focus on different levels of description. For example, a cellular physiologist may construct a complex multi-compartmental model to explain the dynamical behavior of an individual neuron in terms of its morphology, biophysical properties, and ionic conductances (<xref ref-type="bibr" rid="bib51">Hay et al., 2011</xref>; <xref ref-type="bibr" rid="bib24">De Schutter and Bower, 1994</xref>; <xref ref-type="bibr" rid="bib70">Migliore et al., 2005</xref>). In contrast, to relate neural population activity to sensory processing and behavior, a systems neurophysiologist may build a circuit-level model consisting of thousands of much simpler integrate-and-fire neurons (<xref ref-type="bibr" rid="bib61">Lapicque, 1907</xref>; <xref ref-type="bibr" rid="bib80">Potjans and Diesmann, 2014</xref>; <xref ref-type="bibr" rid="bib15">Brunel, 2000</xref>). Domain specific tools have been developed to aid the construction and simulation of models at varying levels of biological detail and scales. An ecosystem of diverse tools is powerful and flexible, but it also creates serious challenges for the research community (<xref ref-type="bibr" rid="bib17">Cannon et al., 2007</xref>). Each tool typically has its own design, features, Application Programming Interface (API) and syntax, a custom set of utility libraries, and finally, a distinct machine-readable representation of the model’s physiological components. This represents a complex landscape for users to navigate. Additionally, models developed in different simulators cannot be mixed and matched or easily compared, and the translation of a model from one tool-specific implementation to another can be non-trivial and error-prone. This fragmentation in modeling tools and approaches can act as a barrier to neuroscientists who wish to use models in their research, as well as impede how Findable, Accessible, Interoperable, and Reusable (FAIR) models are (<xref ref-type="bibr" rid="bib104">Wilkinson et al., 2016</xref>).</p><p>To counter fragmentation and promote cooperation and interoperability within and across fields, standardization is required. The International Neuroinformatics Co-ordinating Facility (INCF) (<xref ref-type="bibr" rid="bib1">Abrams et al., 2022</xref>) has highlighted the need for standards to ‘make research outputs machine-readable and computable and are necessary for making research FAIR’ (<xref ref-type="bibr" rid="bib58">INCF, 2023</xref>). In biology, several community standards have been developed to describe experimental data (e.g. Brain Imaging Data Structure [BIDS; <xref ref-type="bibr" rid="bib48">Gorgolewski et al., 2016</xref>], Neurodata Without Borders [NWB; <xref ref-type="bibr" rid="bib96">Teeters et al., 2015</xref>]) and computational models (e.g. Systems Biology Markup Language [SBML; <xref ref-type="bibr" rid="bib55">Hucka et al., 2003</xref>], CellML [<xref ref-type="bibr" rid="bib63">Lloyd et al., 2004</xref>], Scalable Open Network Architecture TemplAte [SONATA; <xref ref-type="bibr" rid="bib21">Dai et al., 2020</xref>], PyNN [<xref ref-type="bibr" rid="bib22">Davison et al., 2008</xref>] and Neural Open Markup Language [NeuroML; <xref ref-type="bibr" rid="bib38">Gleeson et al., 2010</xref>]). These standards have enabled open and interoperable ecosystems of software applications, libraries, and databases to emerge, facilitating the sharing of research outputs, an endeavor encouraged by a growing number of funding agencies and scientific journals.</p><p>The initial version of the NeuroML standard, version 1 (NeuroMLv1), was originally conceived as a model description format (<xref ref-type="bibr" rid="bib47">Goddard et al., 2001</xref>) and implemented as a three-layered, declarative, modular, simulator-independent language (<xref ref-type="bibr" rid="bib38">Gleeson et al., 2010</xref>). NeuroMLv1 could describe detailed neuronal morphologies and their biophysical properties as well as specific instantiations of networks. It enabled the archiving of models in a standardized format and addressed the issue of simulator fragmentation by acting as the common language for model exchange between established simulation environments—NEURON (<xref ref-type="bibr" rid="bib53">Hines and Carnevale, 1997</xref>; <xref ref-type="bibr" rid="bib4">Awile et al., 2022</xref>), GENESIS (<xref ref-type="bibr" rid="bib13">Bower and Beeman, 1998</xref>), and MOOSE (<xref ref-type="bibr" rid="bib83">Ray and Bhalla, 2008</xref>). While solving a number of long-standing problems in computational neuroscience, NeuroMLv1 had several key limitations. The most restrictive of these was that the dynamical behavior of model elements was not formally described in the standard itself, making it only partially machine readable. Information on the dynamics of elements (i.e. how the state variables should evolve in time) was only provided in the form of human-readable documentation, requiring the developers of each new simulator to re-implement the behavior of these elements in their native format. Additionally, the introduction of new model components required updates to the standard and all supporting simulators, making extension of the language difficult. Finally, the use of Extensible Markup Language (XML) as the primary interface language limited usability—applications would generally have to add their own code to read/write XML files.</p><p>To address these limitations, NeuroML was redesigned from the ground up in version 2 (NeuroMLv2) using the Low Entropy Modeling Specification (LEMS) language (<xref ref-type="bibr" rid="bib18">Cannon et al., 2014</xref>). LEMS was designed to define a wide range of physio-chemical systems, enabling the creation of fully machine-readable, formal definitions of the structure and dynamics of any model components. Modeling elements in NeuroMLv2 (cells, ion channels, synapses) have their mathematical and structural definitions described in LEMS (e.g. the parameters required and how the state variables change with time). Thus, NeuroMLv2 retains all the features of NeuroMLv1—it remains modular, declarative, and continues to support multiple simulation engines—but unlike version 1, it is extensible, and all specifications are fully machine-readable. NeuroMLv2 also moved to Python as its main interface language and provides a comprehensive set of Python libraries to improve usability (<xref ref-type="bibr" rid="bib99">Vella et al., 2014</xref>), with XML retained as a machine-readable serialization format (i.e. the form in which the model files are saved/shared).</p><p>Since its release in 2014, the NeuroMLv2 standard, the software ecosystem, and the community have all steadily grown. An open, community-based governance structure was put in place—an elected Editorial Board, overseen by an independent Scientific Committee, maintains the standard and core software tools—APIs, reference simulators, and utilities. Although these tools were initially focused on enabling the simulation of models on multiple platforms, they have been expanded to support all stages of the model life cycle (<xref ref-type="fig" rid="fig1">Figure 1</xref>). Modelers can use these tools to easily create, inspect and visualize, validate, simulate, fit and optimize, share and disseminate NeuroMLv2 models and outputs (<xref ref-type="bibr" rid="bib9">Billings et al., 2014</xref>; <xref ref-type="bibr" rid="bib19">Cayco-Gajic et al., 2017</xref>; <xref ref-type="bibr" rid="bib49">Gurnani and Silver, 2021</xref>; <xref ref-type="bibr" rid="bib60">Kriener et al., 2022</xref>; <xref ref-type="bibr" rid="bib41">Gleeson et al., 2019b</xref>). To provide clear, concise, searchable information for both users and developers, the NeuroML documentation has been significantly expanded and re-deployed using the latest modern web technologies (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org">https://docs.neuroml.org</ext-link>). Increased community-wide collaborations have also extended the software ecosystem well beyond the NeuroMLv2 tools developed by the NeuroML team: additional simulators such as Brian (<xref ref-type="bibr" rid="bib95">Stimberg et al., 2019</xref>), NetPyNE (<xref ref-type="bibr" rid="bib27">Dura-Bernal et al., 2019</xref>), Arbor (<xref ref-type="bibr" rid="bib2">Akar et al., 2019</xref>) and EDEN (<xref ref-type="bibr" rid="bib76">Panagiotou et al., 2022</xref>) all support NeuroMLv2. We have worked to ensure interoperability with other structured formats for model development in neuroscience such as PyNN (<xref ref-type="bibr" rid="bib22">Davison et al., 2008</xref>) and SONATA (<xref ref-type="bibr" rid="bib21">Dai et al., 2020</xref>). Platforms for collaboratively developing, visualizing, and sharing NeuroML models (Open Source Brain (OSB) <xref ref-type="bibr" rid="bib41">Gleeson et al., 2019b</xref>) as well as a searchable database of NeuroML model components NeuroML Database (NeuroML-DB) (<xref ref-type="bibr" rid="bib11">Birgiolas et al., 2023</xref>) have been developed. These enhancements, driven by an ever-expanding community, have helped NeuroMLv2 grow into a standard that has been officially endorsed by international organizations such as the INCF and COmputational Modeling in Biology NEtwork (COMBINE) (<xref ref-type="bibr" rid="bib56">Hucka et al., 2015</xref>), and that is now sufficiently mature to be incorporated into a wide range of research workflows.</p><fig id="fig1" position="float"><label>Figure 1.</label><caption><title>The NeuroML software ecosystem supports all stages of the model development life cycle.</title></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig1-v1.tif"/></fig><p>In this paper, we provide an overview of the current scope of version 2 of the NeuroML standard, describe the current software ecosystem and community, and outline the extensive resources to assist researchers in incorporate NeuroML into their modeling work. We demonstrate, with examples, that NeuroML supports users at all stages of the model development life cycle (<xref ref-type="fig" rid="fig1">Figure 1</xref>) and promotes FAIR principles in computational neuroscience. We highlight the various NeuroML tools and libraries, additional utilities, supported simulation engines, and the related projects that build upon NeuroML for automated model validation, advanced analysis, visualization, and sharing/re-use of models. Finally, we summarize the organizational aspects of NeuroML, its governance structure and its community.</p></sec><sec id="s2" sec-type="results"><title>Results</title><sec id="s2-1"><title>NeuroML provides a ready-to-use set of curated model elements</title><p>A central aim of the NeuroML initiative is to enable and encourage the use of multi-scale biophysically detailed models of neurons and neuronal circuits in neuroscience research. The initiative takes a range of steps to achieve this aim.</p><p>NeuroML provides users with a curated library of model elements that form the NeuroML standard (An index of all the model elements included in version 2.3 of NeuroML, with links to further online documentation, is provided in <xref ref-type="table" rid="table1 table2">Tables 1 and 2</xref>; <xref ref-type="fig" rid="fig2">Figure 2</xref>). The standard is maintained by the NeuroML Editorial Board that has identified a fundamental set of model types to support, to ensure that a significant proportion of commonly used neurobiological modeling entities can be described with the language. This includes (but is not limited to): active membrane conductances (using Hodgkin-Huxley style [<xref ref-type="bibr" rid="bib54">Hodgkin and Huxley, 1952</xref>] or kinetic scheme-based ionic conductances), multiple synapse and plasticity mechanisms, detailed multi-compartmental neuron models with morphologies and biophysical properties, abstract point neuron models, and networks of such cells spatially arranged in populations, connected by targeted projections, receiving spiking and currently based inputs.</p><fig id="fig2" position="float"><label>Figure 2.</label><caption><title>NeuroML is a modular, hierarchical format that supports multi-scale modeling.</title><p>Elements in NeuroML are formally defined, independent, self-contained building blocks with hierarchical relationships between them. (<bold>a</bold>) Models of <bold>ionic conductances</bold> can be defined as a composition of gates, each with specific voltage (and potentially [Ca<sup>2+</sup>]) dependence that controls the conductance. (<bold>b</bold>) Morphologically detailed <bold>neuronal models</bold> specify the 3D structure of the cells, along with passive electrical properties, and reference ion channels that confer membrane conductances. (<bold>c</bold>) <bold>Network models</bold> contain populations of these cells connected via synaptic projections. (<bold>d</bold>) A truncated illustration of the main categories of the NeuroMLv2 standard elements and their hierarchies. The standard includes commonly used model elements/building blocks that have been pre-defined for users: <bold>Cells</bold>: neuronal models ranging from simple spiking point neurons to biophysically detailed cells with multi-compartmental morphologies and active membrane conductances; <bold>Synapses and ionic conductance models</bold>: commonly used chemical and electrical synapse models (gap junctions), and multiple representations for ionic conductances; <bold>Inputs</bold>: to drive cell and network activity, e.g., current or voltage clamp, spiking background inputs; <bold>Networks</bold>: of populations (containing any of the aforementioned cell types), and projections. The full list of standard NeuroML elements can be found in <xref ref-type="table" rid="table1 table2">Tables 1 and 2</xref>.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig2-v1.tif"/></fig><table-wrap id="table1" position="float"><label>Table 1.</label><caption><title>Index of standard NeuroMLv2 ComponentTypes.</title></caption><table frame="hsides" rules="groups"><thead><tr><th align="left" valign="bottom" colspan="3">Core components</th></tr></thead><tbody><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-annotation">annotation</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqbiol-encodes">bqbiol_encodes</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqbiol-haspart">bqbiol_hasPart</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqbiol-hasproperty">bqbiol_hasProperty</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqbiol-hastaxon">bqbiol_hasTaxon</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqbiol-hasversion">bqbiol_hasVersion</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqbiol-is">bqbiol_is</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqbiol-isdescribedby">bqbiol_isDescribedBy</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqbiol-isencodedby">bqbiol_isEncodedBy</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqbiol-ishomologto">bqbiol_isHomologTo</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqbiol-ispartof">bqbiol_isPartOf</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqbiol-ispropertyof">bqbiol_isPropertyOf</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqbiol-isversionof">bqbiol_isVersionOf</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqbiol-occursin">bqbiol_occursIn</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqmodel-is">bqmodel_is</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqmodel-isderivedfrom">bqmodel_isDerivedFrom</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-bqmodel-isdescribedby">bqmodel_isDescribedBy</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-rdf-bag">rdf_Bag</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-rdf-description">rdf_Description</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-rdf-li">rdf_li</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-rdf-rdf">rdf_RDF</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-property">property</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-point3dwithdiam">point3DWithDiam</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreCompTypes.html#schema-notes">notes</ext-link></td></tr><tr><td align="left" valign="bottom" colspan="3"><bold>Core dimensions</bold></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-area">area</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-capacitance">capacitance</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-charge">charge</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-charge-per-mole">charge_per_mole</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-concentration">concentration</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-conductance">conductance</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-conductance-per-voltage">conductance_per_voltage</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-conductancedensity">conductanceDensity</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-current">current</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-currentdensity">currentDensity</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-idealgasconstantdims">idealGasConstantDims</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-length">length</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-per-time">per_time</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-per-voltage">per_voltage</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-permeability">permeability</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-resistance">resistance</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-resistivity">resistivity</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-rho-factor">rho_factor</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-specificcapacitance">specificCapacitance</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-substance">substance</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-temperature">temperature</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-time">time</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-voltage">voltage</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/NeuroMLCoreDimensions.html#schema-dimensions-volume">volume</ext-link></td></tr><tr><td align="left" valign="bottom" colspan="3"><bold>Abstract cell models</bold></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-adexiafcell">adExIaFCell</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-fitzhughnagumocell">fitzHughNagumoCell</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-hindmarshrose1984cell">hindmarshRose1984Cell</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-iafcell">iafCell</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-iafrefcell">iafRefCell</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-iaftaucell">iafTauCell</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-iaftaurefcell">iafTauRefCell</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-izhikevich2007cell">izhikevich2007Cell</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-izhikevichcell">izhikevichCell</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-pinskyrinzelca3cell">pinskyRinzelCA3Cell</ext-link></td><td align="left" valign="bottom"/><td align="left" valign="bottom"/></tr><tr><td align="left" valign="bottom" colspan="3"><bold>ComponentTypes related to biophysically detailed cells</bold></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-biophysicalproperties">biophysical Properties</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-biophysicalproperties2capools">biophysicalProperties2CaPools</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-cell">cell</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-cell2capools">cell2CaPools</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-concentrationmodel">concentration Model</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-decayingpoolconcentrationmodel">decayingPoolConcentrationModel</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-distal">distal</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-distalproperties">distalProperties</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-fixedfactorconcentrationmodel">fixedFactorConcentrationModel</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-fixedfactorconcentrationmodeltraub">fixedFactorConcentrationModelTraub</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-from">from</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-include">include</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-inhomogeneousparameter">inhomogeneousParameter</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-inhomogeneousvalue">inhomogeneousValue</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-initmembpotential">initMembPotential</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-intracellularproperties">intracellular Properties</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-intracellularproperties2capools">intracellularProperties2CaPools</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-member">member</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-membraneproperties">membraneProperties</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-membraneproperties2capools">membraneProperties2CaPools</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-morphology">morphology</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-parent">parent</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-path">path</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-pointcellcondbased">pointCellCondBased</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-pointcellcondbasedca">pointCellCondBasedCa</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-proximal">proximal</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-proximalproperties">proximalProperties</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-segment">segment</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-segmentgroup">segment Group</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-species">species</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-spikethresh">spikeThresh</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-subtree">subTree</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-to">to</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-variableparameter">variable Parameter</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-channeldensity">channel Density</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-channeldensityghk">channelDensityGHK</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-channeldensityghk2">channelDensityGHK2</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-channeldensitynernst">channelDensityNernst</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-channeldensitynernstca2">channelDensityNernstCa2</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-channeldensitynonuniform">channelDensityNonUniform</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-channeldensitynonuniformghk">channelDensityNonUniformGHK</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-channeldensitynonuniformnernst">channelDensityNonUniformNernst</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-channeldensityvshift">channelDensityVShift</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-channelpopulation">channelPopulation</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#schema-channelpopulationnernst">channelPopulationNernst</ext-link></td></tr><tr><td align="left" valign="bottom" colspan="3"><bold>ComponentTypes related to ion channels</bold></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-fixedtimecourse">fixedTimeCourse</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-forwardtransition">forward Transition</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-gate">gate</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-gatefractional">gateFractional</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-gatehhinstantaneous">gateHHInstantaneous</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-gatehhrates">gateHHrates</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-gatehhratesinf">gateHHratesInf</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-gatehhratestau">gateHHratesTau</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-gatehhratestauinf">gateHHratesTauInf</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-gatehhtauinf">gateHHtauInf</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-gateks">gateKS</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-hhexplinearrate">HHExpLinearRate</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-hhexplinearvariable">HHExpLinearVariable</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-hhexprate">HHExpRate</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-hhexpvariable">HHExpVariable</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-hhsigmoidrate">HHSigmoidRate</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-hhsigmoidvariable">HHSigmoidVariable</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-ionchannel">ionChannel</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-ionchannelhh">ionChannelHH</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-ionchannelks">ionChannelKS</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-ionchannelpassive">ionChannelPassive</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-ionchannelvshift">ionChannelVShift</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-ksstate">KSState</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-kstransition">KSTransition</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-openstate">open State</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-q10conductancescaling">q10ConductanceScaling</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-q10exptemp">q10ExpTemp</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-q10fixed">q10Fixed</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-reversetransition">reverse Transition</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-subgate">sub Gate</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-tauinftransition">tauInfTransition</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-vhalftransition">vHalfTransition</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Channels.html#schema-closedstate">closedState</ext-link></td></tr></tbody></table></table-wrap><table-wrap id="table2" position="float"><label>Table 2.</label><caption><title>Index of standard NeuroMLv2 ComponentTypes (continued).</title></caption><table frame="hsides" rules="groups"><thead><tr><th align="left" valign="bottom" colspan="3">ComponentTypes related to synapses</th></tr></thead><tbody><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-alphacurrentsynapse">alphaCurrentSynapse</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-alphasynapse">alphaSynapse</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-blockingplasticsynapse">blockingPlasticSynapse</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-doublesynapse">doubleSynapse</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-exponesynapse">expOneSynapse</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-expthreesynapse">expThreeSynapse</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-exptwosynapse">expTwoSynapse</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-gapjunction">gap Junction</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-gradedsynapse">gradedSynapse</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-lineargradedsynapse">linearGradedSynapse</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-silentsynapse">silentSynapse</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-stdpsynapse">stdpSynapse</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-tsodyksmarkramdepfacmechanism">tsodyksMarkramDepFacMechanism</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-tsodyksmarkramdepmechanism">tsodyksMarkramDepMechanism</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Synapses.html#schema-voltageconcdepblockmechanism">voltageConcDepBlockMechanism</ext-link></td></tr><tr><td align="left" valign="bottom" colspan="3"><bold>ComponentTypes related to inputs</bold></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-compoundinput">compoundInput</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-compoundinputdl">compoundInputDL</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-poissonfiringsynapse">poissonFiringSynapse</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-pulsegenerator">pulseGenerator</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-pulsegeneratordl">pulseGeneratorDL</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-rampgenerator">rampGenerator</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-rampgeneratordl">rampGeneratorDL</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-sinegenerator">sineGenerator</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-sinegeneratordl">sineGeneratorDL</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-spike">spike</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-spikearray">spikeArray</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-spikegenerator">spike Generator</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-spikegeneratorpoisson">spikeGeneratorPoisson</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-spikegeneratorrandom">spikeGeneratorRandom</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-spikegeneratorrefpoisson">spikeGeneratorRefPoisson</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-timedsynapticinput">timedSynapticInput</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-transientpoissonfiringsynapse">transientPoissonFiringSynapse</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-voltageclamp">voltage Clamp</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Inputs.html#schema-voltageclamptriple">voltageClampTriple</ext-link></td><td align="left" valign="bottom"/><td align="left" valign="bottom"/></tr><tr><td align="left" valign="bottom" colspan="3"><bold>ComponentTypes related to networks</bold></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-connection">connection</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-connectionwd">connectionWD</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-continuousconnection">continuous Connection</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-continuousconnectioninstance">continuousConnectionInstance</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-continuousconnectioninstancew">continuousConnectionInstanceW</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-continuousprojection">continuous Projection</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-electricalconnection">electrical Connection</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-electricalconnectioninstance">electricalConnectionInstance</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-electricalconnectioninstancew">electricalConnectionInstanceW</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-electricalprojection">electrical Projection</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-explicitconnection">explicit Connection</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-explicitinput">explicitInput</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-input">input</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-inputlist">inputList</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-inputw">inputW</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-instance">instance</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-location">location</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-network">network</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-networkwithtemperature">networkWithTemperature</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-population">population</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-populationlist">population List</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-projection">projection</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-rectangularextent">rectangularExtent</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-region">region</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-synapticconnection">synaptic Connection</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Networks.html#schema-synapticconnectionwd">synapticConnectionWD</ext-link></td><td align="left" valign="bottom"/></tr><tr><td align="left" valign="bottom" colspan="3"><bold>ComponentTypes related to model simulation</bold></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Simulation.html#schema-display">Display</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Simulation.html#schema-eventoutputfile">EventOutputFile</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Simulation.html#schema-eventselection">EventSelection</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Simulation.html#schema-line">Line</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Simulation.html#schema-outputcolumn">OutputColumn</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Simulation.html#schema-outputfile">OutputFile</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Simulation.html#id1">Simulation</ext-link></td><td align="left" valign="bottom"/><td align="left" valign="bottom"/></tr><tr><td align="left" valign="bottom" colspan="3"><bold>ComponentTypes related to PyNN</bold></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/PyNN.html#schema-alphacondsynapse">alphaCondSynapse</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/PyNN.html#schema-alphacurrsynapse">alphaCurrSynapse</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/PyNN.html#schema-eif-cond-alpha-isfa-ista">EIF_cond_alpha_isfa_ista</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/PyNN.html#schema-eif-cond-exp-isfa-ista">EIF_cond_exp_isfa_ista</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/PyNN.html#schema-expcondsynapse">expCondSynapse</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/PyNN.htm#schema-expcurrsynapse">expCurrSynapse</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/PyNN.html#schema-hh-cond-exp">HH_cond_exp</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/PyNN.html#schema-if-cond-alpha">IF_cond_alpha</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/PyNN.html#schema-if-cond-exp">IF_cond_exp</ext-link></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/PyNN.html#schema-if-curr-alpha">IF_curr_alpha</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/PyNN.html#schema-if-curr-exp">IF_curr_exp</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/PyNN.html#schema-spikesourcepoisson">SpikeSourcePoisson</ext-link></td></tr></tbody></table></table-wrap><p>The NeuroMLv2 standard consists of two levels that are designed to enable users to easily create their models without worrying about simulator-specific details. The first level defines a formal ‘schema’ for the standard model elements, their attributes/parameters (e.g. an integrate and fire cell model and its necessary attributes: a threshold parameter, a reset parameter, etc.), and the relationships between them (e.g. a network contains populations; a multi-compartmental cell morphology contains segments). This allows the validation of the completeness of the description of individual NeuroML model elements and models, <italic>prior to simulation</italic>. The second level defines the underlying dynamical behavior of the model elements (e.g. how the time-varying membrane potential of a cell model is to be calculated). Most users do not need to interact with this level (which is enabled by LEMS), which, among other features, enables the automated translation of <italic>simulator-independent</italic> NeuroML models into <italic>simulator-specific</italic> code.</p><p>Thus, modelers can use the standard NeuroML elements to conveniently build simulator-independent models, while also being able to examine and extend the underlying implementations of models. As a simulator-independent language, NeuroML also promotes interoperability between different computational modeling tools, and as a result, the standard library is complemented by a large, well-maintained ecosystem of software tools that support all stages of the model life cycle—from creation, analysis, simulation, and fitting, to sharing and reuse. Finally, as discussed in later sections, for advanced use cases where the existing NeuroML model building blocks are insufficient, NeuroML also includes a framework for creating and including new model elements.</p></sec><sec id="s2-2"><title>NeuroML is a modular, structured language for defining FAIR models</title><p>NeuroMLv2 is a modular, structured, hierarchical, simulator-independent format. All NeuroML elements are formally defined, independent, and self-contained with hierarchical relationships between them. An ‘ionic conductance’ model element in NeuroML, for example, can contain zero, one, or more ‘gates’ and be added into a ‘cell’ model element along with a ‘morphology’ element, which can then fit into a ‘population’ of a ‘network’ (<xref ref-type="fig" rid="fig2">Figure 2</xref>). To support the range of electrical properties found in biological neurons, ionic conductances with distinct ionic selectivities and dynamics can be generated in NeuroML through the inclusion of different types of gates (e.g. activation, inactivation), their dependence on variables such as voltage and [Ca<sup>2+</sup>] and their reversal potential. Cell types with different functional and biophysical properties can then be generated by conferring combinations of ionic conductances on their membranes. The conductance density can be adjusted to generate the electrophysiological properties found in real neurons. In practice, many examples of ionic conductances that underlie the electrical behavior of neurons are already available in NeuroMLv2 and can simply be inserted into a cell membrane (<xref ref-type="fig" rid="fig2">Figure 2</xref>). Indeed, a model element, once defined in NeuroML, acts as a building block that may be reused any number of times within or across models. Elements such as ionic conductances, cell biophysics, cell morphologies, and cell definitions that incorporate them can be serialized in separate files and ‘included’ in other models (e.g. morphologies <ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/ImportingMorphologyFiles.html#neuroml2">https://docs.neuroml.org/Userdocs/ImportingMorphologyFiles.html#neuroml2</ext-link>). Such reuse of model components speeds model construction and prototyping irrespective of the simulation engine used.</p><p>The defined structure of each model element and the relationships between them inform users of exactly how model elements are to be created and combined. This encourages the construction of well-structured models, reduces errors and redundancy, and ensures that FAIR principles are firmly embedded in NeuroML models and the ecosystem of tools. As we will see in the following sections, NeuroML’s formal structure also enables features such as model validation prior to simulation, translation into simulation specific formats, and the use of NeuroML as a common language of exchange between different tools.</p></sec><sec id="s2-3"><title>NeuroML supports a large ecosystem of software tools that cover all stages of the model life cycle</title><p>Model building and the generation of scientific knowledge from simulation and analysis of models is a multi-step, iterative process requiring an array of software tools. NeuroML supports all stages of the model development life cycle (<xref ref-type="fig" rid="fig1">Figure 1</xref>), by providing a single model description format that interacts with a myriad of tools throughout the process. Researchers typically assemble ad-hoc sets of scripts, applications, and processes to help them in their investigations. In the absence of standardization, they must work with the specific model formats and APIs that each tool they use requires, and somehow convert model descriptions when using multiple applications in a toolchain. NeuroML addresses this issue by providing a common language for the use and exchange of models and their components between different simulation engines and modeling tools. The NeuroML ecosystem includes a large collection of software tools, both developed and maintained by the main NeuroML contributors (the ‘core NeuroML tools and libraries:’ jNeuroML, pyNeuroML, APIs) and those external applications that have added NeuroML support (<xref ref-type="fig" rid="fig3">Figures 3</xref> and <xref ref-type="fig" rid="fig4">4a</xref>, <xref ref-type="table" rid="table3 table4">Tables 3 and 4</xref>).</p><fig id="fig3" position="float"><label>Figure 3.</label><caption><title>NeuroML compliant tools and their relation to the model life cycle.</title><p>The inner circle shows the core NeuroML tools and libraries that are maintained by the NeuroML developers. These provide the functionality to read, modify, or create new NeuroML models, as well as to validate, analyze, visualize and simulate the models. The outermost layer shows NeuroML-compliant tools that have been developed independently to allow various interactions with NeuroML models. These complement the core tools by facilitating model creation, validation, visualization, simulation, fitting/optimization, sharing, and reuse. Further information on each of the tools shown here can be found in <xref ref-type="table" rid="table3 table4">Tables 3 and 4</xref>.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig3-v1.tif"/></fig><fig id="fig4" position="float"><label>Figure 4.</label><caption><title>The core NeuroML software stack, and an example NeuroML model created using the Python NeuroML tools.</title><p>(<bold>a</bold>) The core NeuroML software stack consists of Java (blue) and Python (orange) based applications/libraries, and the LEMS model ComponentType definitions (green), wrapped up in a single package, pyNeuroML. Each of these modules can be used independently or the whole stack can be obtained by installing pyNeuroML with the default Python package manager, Pip: pip install pyneuroml. (<bold>b</bold>) An example of how to create a simple NeuroML model is shown, using the NeuroMLv2 Python API (libNeuroML) to describe a model consisting of a population of 10 integrate and fire point neurons (IafTauCell) in a network. The IafTauCell, Network, Population, and NeuroMLDocument model ComponentTypes are provided by the NeuroMLv2 standard. The underlying dynamics of the model are hidden from the user, being specified in the LEMS ComponentType definitions of the elements (see Methods). The simulator-independent NeuroML model description can be simulated on any of the supported simulation engines. (<bold>c</bold>) Extensible Markup Language (XML) serialization of the NeuroMLv2 model description shows the correspondence between the Python object model and the XML serialization.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig4-v1.tif"/></fig><table-wrap id="table3" position="float"><label>Table 3.</label><caption><title>NeuroML software core tools and libraries, with a description of their scope, the main programming language they use (or other interaction means, e.g. Command Line Interface (CLI)), and links for more information.</title></caption><table frame="hsides" rules="groups"><thead><tr><th align="left" valign="bottom">Tool</th><th align="left" valign="bottom">Language/interface</th><th align="left" valign="bottom">Description</th><th align="left" valign="bottom">URL</th></tr></thead><tbody><tr><td align="left" valign="bottom">pyNeuroML</td><td align="left" valign="bottom">Python/CLI</td><td align="left" valign="bottom">Recommended Python library for NeuroML; provides pynml, primary command line tool for NeuroML</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/pyNeuroML.html">https://docs.neuroml.org/Userdocs/Software/pyNeuroML.html</ext-link></td></tr><tr><td align="left" valign="bottom">libNeuroML</td><td align="left" valign="bottom">Python</td><td align="left" valign="bottom">Python API for NeuroML</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/libNeuroML.html">https://docs.neuroml.org/Userdocs/Software/libNeuroML.html</ext-link></td></tr><tr><td align="left" valign="bottom">NeuroMLlite</td><td align="left" valign="bottom">Python</td><td align="left" valign="bottom">High level library for creating NeuroML network models (beta)</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/NeuroMLlite.html">https://docs.neuroml.org/Userdocs/Software/NeuroMLlite.html</ext-link></td></tr><tr><td align="left" valign="bottom">PyLEMS</td><td align="left" valign="bottom">Python/CLI</td><td align="left" valign="bottom">Python API and simulator for LEMS</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/pyLEMS.html">https://docs.neuroml.org/Userdocs/Software/pyLEMS.html</ext-link></td></tr><tr><td align="left" valign="bottom">jLEMS</td><td align="left" valign="bottom">Java/CLI</td><td align="left" valign="bottom">Java API for LEMS and reference simulator</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/jLEMS.html">https://docs.neuroml.org/Userdocs/Software/jLEMS.html</ext-link></td></tr><tr><td align="left" valign="bottom">org.neuroml.model</td><td align="left" valign="bottom">Java</td><td align="left" valign="bottom">Java API for NeuroML, DOI:<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.5783290">10.5281/zenodo.5783290</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML/org.neuroml.model/">https://github.com/NeuroML/org.neuroml.model/</ext-link></td></tr><tr><td align="left" valign="bottom">org.neuroml.export</td><td align="left" valign="bottom">Java</td><td align="left" valign="bottom">Java API for translating NeuroML into different formats such as NEURON, DOI:<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.1346272">10.5281/zenodo.1346272</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML/org.neuroml.export">https://github.com/NeuroML/org.neuroml.export</ext-link></td></tr><tr><td align="left" valign="bottom">org.neuroml.import</td><td align="left" valign="bottom">Java</td><td align="left" valign="bottom">Java API for importing formats into LEMS and NeuroML, DOI:<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.5783295">10.5281/zenodo.5783295</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML/org.neuroml.import">https://github.com/NeuroML/org.neuroml.import</ext-link></td></tr><tr><td align="left" valign="bottom">jNeuroML</td><td align="left" valign="bottom">Java/CLI</td><td align="left" valign="bottom">Wraps jLEMS and all export/import packages and provides the jnml tool, DOI:<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.593108">10.5281/zenodo.593108</ext-link></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/jNeuroML.html">https://docs.neuroml.org/Userdocs/Software/jNeuroML.html</ext-link></td></tr><tr><td align="left" valign="bottom">NeuroML-C++</td><td align="left" valign="bottom">C++</td><td align="left" valign="bottom">C++ API for NeuroML</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/NeuroML_API.html">https://docs.neuroml.org/Userdocs/Software/NeuroML_API.html</ext-link></td></tr><tr><td align="left" valign="bottom">NeuroML Toolbox</td><td align="left" valign="bottom">MATLAB</td><td align="left" valign="bottom">MATLAB NeuroML Toolbox</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/MatLab.html">https://docs.neuroml.org/Userdocs/Software/MatLab.html</ext-link></td></tr></tbody></table></table-wrap><table-wrap id="table4" position="float"><label>Table 4.</label><caption><title>Tools in the wi main programming language they use (or other interaction means, e.g. through a web browser, Graphical User Interface (GUI) or Command Line Interface (CLI)), and links for more information.</title></caption><table frame="hsides" rules="groups"><thead><tr><th align="left" valign="bottom">Tool</th><th align="left" valign="bottom">Language/interface</th><th align="left" valign="bottom">Description</th><th align="left" valign="bottom">URL</th></tr></thead><tbody><tr><td align="left" valign="bottom" colspan="4">Simulation engines</td></tr><tr><td align="left" valign="bottom">NEURON</td><td align="left" valign="bottom">Python/Hoc/CLI/GUI</td><td align="left" valign="bottom">Empirically-based simulations of neurons and networks of neurons</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/Tools/NEURON.html">https://docs.neuroml.org/Userdocs/Software/Tools/NEURON.html</ext-link></td></tr><tr><td align="left" valign="bottom">NetPyNE</td><td align="left" valign="bottom">Python/web</td><td align="left" valign="bottom">Package to facilitate the development, parallel simulation, analysis, and optimization of biological neuronal networks using the NEURON simulator. Also has a graphical web interface, NetPyNE-UI</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/Tools/NetPyNE.html">https://docs.neuroml.org/Userdocs/Software/Tools/NetPyNE.html</ext-link></td></tr><tr><td align="left" valign="bottom">EDEN</td><td align="left" valign="bottom">NeuroML</td><td align="left" valign="bottom">NeuroML-based neural simulator</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/Tools/EDEN.html">https://docs.neuroml.org/Userdocs/Software/Tools/EDEN.html</ext-link></td></tr><tr><td align="left" valign="bottom">MOOSE</td><td align="left" valign="bottom">Python</td><td align="left" valign="bottom">The Multiscale Object-Oriented Simulation Environment is the base and numerical core for large, detailed multi-scale simulations that span computational neuroscience and systems biology. Based on a reimplementation of the GENESIS 2 core.</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/Tools/MOOSE.html">https://docs.neuroml.org/Userdocs/Software/Tools/MOOSE.html</ext-link></td></tr><tr><td align="left" valign="bottom">PyNN</td><td align="left" valign="bottom">Python</td><td align="left" valign="bottom">A simulator-independent language for building neuronal network models</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/Tools/PyNN.html">https://docs.neuroml.org/Userdocs/Software/Tools/PyNN.html</ext-link></td></tr><tr><td align="left" valign="bottom">NEST</td><td align="left" valign="bottom">Python/SLI</td><td align="left" valign="bottom">Simulator for spiking neural network models focusing on dynamics, size, and structure of neural systems</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/Tools/NEST.html">https://docs.neuroml.org/Userdocs/Software/Tools/NEST.html</ext-link></td></tr><tr><td align="left" valign="bottom">Brian2</td><td align="left" valign="bottom">Python</td><td align="left" valign="bottom">Easy to learn and use simulator for spiking neural networks</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/Tools/Brian.html">https://docs.neuroml.org/Userdocs/Software/Tools/Brian.html</ext-link></td></tr><tr><td align="left" valign="bottom">Arbor</td><td align="left" valign="bottom">Python</td><td align="left" valign="bottom">A multi-compartment neuron simulation library</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/Tools/Arbor.html">https://docs.neuroml.org/Userdocs/Software/Tools/Arbor.html</ext-link></td></tr><tr><td align="left" valign="bottom">N2A</td><td align="left" valign="bottom">Java/GUI</td><td align="left" valign="bottom">Language and IDE for writing and simulating models</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/Tools/N2A.html">https://docs.neuroml.org/Userdocs/Software/Tools/N2A.html</ext-link></td></tr><tr><td align="left" valign="bottom" colspan="4">Databases</td></tr><tr><td align="left" valign="bottom">OSB</td><td align="left" valign="bottom">Web</td><td align="left" valign="bottom">Resource for sharing and collaboratively developing computational models of neural systems</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://www.opensourcebrain.org/">https://www.opensourcebrain.org/</ext-link></td></tr><tr><td align="left" valign="bottom">NeuroML-DB</td><td align="left" valign="bottom">Web</td><td align="left" valign="bottom">NeuroML database of cell and channel models</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://neuroml-db.org/">https://neuroml-db.org/</ext-link></td></tr><tr><td align="left" valign="bottom" colspan="4">Other tools</td></tr><tr><td align="left" valign="bottom">OMV</td><td align="left" valign="bottom">Python</td><td align="left" valign="bottom">Open Source Brain Model Validation framework</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/osb-model-validation">https://github.com/OpenSourceBrain/osb-model-validation</ext-link></td></tr><tr><td align="left" valign="bottom">SciUnit</td><td align="left" valign="bottom">Python</td><td align="left" valign="bottom">Data driven unit testing framework</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/scidash/sciunit">https://github.com/scidash/sciunit</ext-link></td></tr><tr><td align="left" valign="bottom">BluePyOpt</td><td align="left" valign="bottom">Python</td><td align="left" valign="bottom">Blue Brain Python Optimization Library</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://bluepyopt.readthedocs.io/">https://bluepyopt.readthedocs.io/</ext-link></td></tr><tr><td align="left" valign="bottom">NeuroTune</td><td align="left" valign="bottom">Python</td><td align="left" valign="bottom">Package for fitting/optimization <break/>of NeuroML models</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/NeuralEnsemble/neurotune">https://github.com/NeuralEnsemble/neurotune</ext-link></td></tr><tr><td align="left" valign="bottom">PyElectro</td><td align="left" valign="bottom">Python</td><td align="left" valign="bottom">Electrophysiology analysis package</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/NeuralEnsemble/pyelectro">https://github.com/NeuralEnsemble/pyelectro</ext-link></td></tr></tbody></table></table-wrap><p>The core NeuroML tools and libraries include APIs in several programming languages—Python, Java, C++, and MATLAB. These tools provide critical functionality to allow users to interact with NeuroML components and build models. Using these, researchers can build models from scratch, or read, modify, analyze, visualize, and simulate existing NeuroML models on supported simulation platforms. Furthermore, developers can also use the core tools, libraries, and APIs to support NeuroML in their own applications.</p><p>The simulation platforms e.g. EDEN (<xref ref-type="bibr" rid="bib76">Panagiotou et al., 2022</xref>), NEURON (<xref ref-type="bibr" rid="bib53">Hines and Carnevale, 1997</xref>), along with other independently developed tools, form the next layer of the software ecosystem—providing extra functionality such as interactive model construction (e.g. neuroConstruct <xref ref-type="bibr" rid="bib37">Gleeson et al., 2007</xref>), NetPyNE (<xref ref-type="bibr" rid="bib27">Dura-Bernal et al., 2019</xref>), additional visualization (e.g. OSB <xref ref-type="bibr" rid="bib41">Gleeson et al., 2019b</xref>), analysis (e.g. NeuroML-DB <xref ref-type="bibr" rid="bib11">Birgiolas et al., 2023</xref>), data-driven validation (e.g. SciUnit <xref ref-type="bibr" rid="bib35">Gerkin et al., 2019</xref>), and archival/sharing (e.g. OSB, NeuroML-DB). Indeed, OSB and NeuroML-DB are prime examples of how advanced neuroinformatics resources can be built on top of standards such as NeuroML.</p><p><xref ref-type="table" rid="table5">Table 5</xref> lists interactive, step-by-step guides in the NeuroML documentation, which can be followed to learn the fundamental NeuroML concepts, as well as illustrate how NeuroML-compliant tools can be used to achieve specific tasks across the model development life cycle. In the following sections, we discuss the specific functionality available at each stage of model development.</p><table-wrap id="table5" position="float"><label>Table 5.</label><caption><title>Step-by-step guides for using NeuroML illustrating the various stages of the model development life cycle.</title><p>These include Introductory guides aimed at teaching the fundamental NeuroML concepts, Advanced guides illustrating specific modeling workflows, and Walkthrough guides discussing the steps required for converting models to NeuroML. An updated list is available at <ext-link ext-link-type="uri" xlink:href="http://neuroml.org/gettingstarted">http://neuroml.org/gettingstarted</ext-link>.</p></caption><table frame="hsides" rules="groups"><thead><tr><th align="left" valign="bottom">Link</th><th align="left" valign="bottom">Description</th><th align="left" valign="bottom">Model life cycle stages</th></tr></thead><tbody><tr><td align="left" valign="bottom" colspan="3"><bold>Introductory guides</bold></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/NML2_examples/SingleNeuron.html">Guide 1</ext-link></td><td align="left" valign="bottom">Create and simulate a simple regular spiking Izhikevich neuron in NeuroML</td><td align="left" valign="bottom">Create, Validate, Simulate</td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/IzhikevichNetworkExample.html">Guide 2</ext-link></td><td align="left" valign="bottom">Create a network of two synaptically connected populations of Izhikevich neurons</td><td align="left" valign="bottom">Create, Validate, Visualize, Simulate</td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/SingleCompartmentHHExample.html">Guide 3</ext-link></td><td align="left" valign="bottom">Build and simulate a single compartment Hodgkin-Huxley neuron</td><td align="left" valign="bottom">Create, Validate, Visualize, Simulate</td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/MultiCompartmentOLMexample.html">Guide 4</ext-link></td><td align="left" valign="bottom">Create and simulate a multi compartment hippocampal OLM neuron</td><td align="left" valign="bottom">Create, Validate, Visualize, Simulate</td></tr><tr><td align="left" valign="bottom" colspan="3"><bold>Advanced guides</bold></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/NML2_examples/NeuroML-DB.html">Guide 5</ext-link></td><td align="left" valign="bottom">Create novel NeuroML models from components on NeuroML-DB</td><td align="left" valign="bottom">Reuse, Create, Validate, Simulate</td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/OptimisingNeuroMLModels.html">Guide 6</ext-link></td><td align="left" valign="bottom">Optimize/fit NeuroML models to experimental data</td><td align="left" valign="bottom">Create, Validate, Simulate, Fit</td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/ExtendingNeuroMLv2.html#example-lorenz-model-for-cellular-convection">Guide 7</ext-link></td><td align="left" valign="bottom">Extend NeuroML by creating a novel model type in LEMS</td><td align="left" valign="bottom">Create, Simulate</td></tr><tr><td align="left" valign="bottom" colspan="3"><bold>Walkthroughs</bold></td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/CreatingNeuroMLModels.html#converting-cell-models-to-neuroml-and-sharing-them-on-open-source-brain">Guide 8</ext-link></td><td align="left" valign="bottom">Guide to converting cell models to NeuroML and sharing them on Open Source Brain</td><td align="left" valign="bottom">Create, Validate, Simulate, Share</td></tr><tr><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Walkthroughs/RayEtAl2020/RayEtAl2020.html#userdocs-walkthroughs-rayetal2020">Guide 9</ext-link></td><td align="left" valign="bottom">Conversion of <xref ref-type="bibr" rid="bib84">Ray et al., 2020</xref></td><td align="left" valign="bottom">Create, Validate, Visualize, Simulate, Share</td></tr></tbody></table></table-wrap></sec><sec id="s2-4"><title>Creating NeuroML models</title><p>The structured declarative elements of NeuroMLv2, when combined with a procedural scripting language such as Python, provide a powerful and yet intuitive ‘building block’ approach to model construction. For this reason, Python is now the recommended language for interacting with NeuroML (<xref ref-type="fig" rid="fig4">Figure 4</xref>), although XML remains the primary serialization language for the format (i.e. for saving to disk and depositing in model repositories (<xref ref-type="fig" rid="fig5">Figure 5</xref>)). Python has emerged as a key programming language in science, including many areas of neuroscience (<xref ref-type="bibr" rid="bib73">Muller et al., 2015</xref>). A Python-based NeuroML ecosystem ensures that users can take advantage of Python’s features, and also use packages from the wider Python ecosystem in their work (e.g. Numpy (<xref ref-type="bibr" rid="bib50">Harris et al., 2020</xref>), Matplotlib <xref ref-type="bibr" rid="bib57">Hunter, 2007</xref>). pyNeuroML, the Python interface for working with NeuroML, is built on top of the Python NeuroML API, libNeuroML (<xref ref-type="bibr" rid="bib99">Vella et al., 2014</xref>; <xref ref-type="bibr" rid="bib89">Sinha, 2023</xref>; <xref ref-type="fig" rid="fig4">Figure 4</xref>).</p><fig id="fig5" position="float"><label>Figure 5.</label><caption><title>Workflow showing how to create and simulate NeuroML models using Python.</title><p>The Python API can be used to create models which may include elements built from scratch from the NeuroML standard, re-use elements from previously created models, or create new components based on novel model definitions expressed in LEMS (red). The generated model elements are saved in the default XML-based serialization (blue). The NeuroML core tools and libraries (orange) include modules to import model descriptions expressed in the XML serialization, and support multiple options for how simulators can execute these models (green). These include: (1) execution of the NeuroML models by reference simulators; (2) execution by other independently developed simulators that natively support NeuroML, such as EDEN; (3) generation of Python ‘import scripts’ which allow NeuroML models to be imported (and converted to internal formats) by simulators which support this; (4) fully expanding the LEMS description of the models, which can be mapped to generated simulator specific scripts for target simulators; (5) mapping to other standardized formats in neuroscience and systems biology.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig5-v1.tif"/></fig><p>As illustrated in <xref ref-type="fig" rid="fig5">Figure 5</xref>, Python can be used to combine different NeuroML components into a model. NeuroML supports several pathways for the creation of new models. Modelers may use elements included in the NeuroML standard, re-use user-defined NeuroML model elements from other models, or define completely new model elements using LEMS (<xref ref-type="fig" rid="fig5">Figure 5</xref>) (see section on extending NeuroML below). It is common for models to use a combination of these strategies, e.g., <xref ref-type="bibr" rid="bib49">Gurnani and Silver, 2021</xref>; <xref ref-type="bibr" rid="bib60">Kriener et al., 2022</xref>; <xref ref-type="bibr" rid="bib19">Cayco-Gajic et al., 2017</xref>, highlighting the flexibility provided by the modular design of NeuroML. NeuroML APIs support all of these workflows. The Python tools also include many additional higher-level utilities to speed up model construction, such as factory functions, type hints, and convenience functions for building complex multi-compartmental neuron models (<xref ref-type="fig" rid="fig6">Figure 6</xref>).</p><fig id="fig6" position="float"><label>Figure 6.</label><caption><title>PyNeuroML provides Python functions and command line utilities supporting all stages of the model life cycle.</title></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig6-v1.tif"/></fig><p>For the construction of complex 3D circuit models, or for users who are not experienced with Python, a range of NeuroML-compliant online and standalone applications with graphical user interfaces are available. These include NetPyNE’s interactive web interface (<xref ref-type="bibr" rid="bib27">Dura-Bernal et al., 2019</xref>) (which is available on the latest version of OSB (<ext-link ext-link-type="uri" xlink:href="https://v2.opensourcebrain.org">https://v2.opensourcebrain.org</ext-link>)) and neuroConstruct (<xref ref-type="bibr" rid="bib37">Gleeson et al., 2007</xref>) which can export models directly into NeuroML and LEMS. These applications can be used to build and simulate new NeuroML models without requiring programming. Thus, users can take advantage of the individual features provided by these applications to generate NeuroML-compliant models and model elements.</p></sec><sec id="s2-5"><title>Validating NeuroML models</title><p>Ensuring a model is ‘valid’ can have different meanings at different stages of the life cycle—from checking whether the source files are in the correct format, to ensuring the model reproduces a significant feature of its biological counterpart. NeuroML’s hierarchical, well-defined structure allows users to check their model descriptions for correctness at multiple levels (<xref ref-type="fig" rid="fig7">Figure 7</xref>), in a manner similar to multi-level testing in software development. Importantly, most of the validation tests in NeuroML are run on the models’ NeuroML descriptions <italic>prior to simulation</italic>.</p><fig id="fig7" position="float"><label>Figure 7.</label><caption><title>NeuroML model development incorporates multi-level validation of models.</title><p>Checks are performed on the model descriptions (blue) before simulation using validation at both the NeuroML and LEMS levels (green). After the models are simulated (yellow), further checks can be run to ensure the output is in line with expected behavior (brown). The OSB Model Validation (OMV) framework can be used to ensure consistent behavior across simulators, and comparisons can be made of model activity to their biological equivalents using SciUnit.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig7-v1.tif"/></fig><p>A first level of validation checks the structure of individual model elements against their formal specifications contained in the NeuroML standard. The standard includes information on the parameters of each model element, restrictions on parameter values, their allowed units, their cardinality, and the location of the model element in the model hierarchy—i.e., parent/children relationships. A second level of validation includes a suite of semantic and logical checks. For example, at this level, a model of a multi-compartmental cell can be checked to ensure that all segments referenced in segment groups (e.g. the group of dendritic segments) have been defined, and only defined once with unique identifiers. A list of validation tests currently included in the NeuroML core tools can be found in <xref ref-type="table" rid="table6">Table 6</xref>. These can be run against NeuroML files at the command line or programmatically in Python (<xref ref-type="fig" rid="fig6">Figure 6</xref>).</p><table-wrap id="table6" position="float"><label>Table 6.</label><caption><title>Listing of validation tests run by NeuroML.</title></caption><table frame="hsides" rules="groups"><thead><tr><th align="left" valign="bottom">Test</th><th align="left" valign="bottom">Description</th></tr></thead><tbody><tr><td align="left" valign="bottom" colspan="2"><bold>Schema tests</bold></td></tr><tr><td align="left" valign="bottom">Check names</td><td align="left" valign="bottom">Check that names of all elements, attributes, parameters match those provided in the schema</td></tr><tr><td align="left" valign="bottom">Check types</td><td align="left" valign="bottom">Check that the types of all included elements</td></tr><tr><td align="left" valign="bottom">Check values</td><td align="left" valign="bottom">Check that values follow given restrictions</td></tr><tr><td align="left" valign="bottom">Check inclusion</td><td align="left" valign="bottom">Check that required elements are included</td></tr><tr><td align="left" valign="bottom">Check cardinality</td><td align="left" valign="bottom">Check the number of elements</td></tr><tr><td align="left" valign="bottom">Check hierarchy</td><td align="left" valign="bottom">Check that child/children elements are included in the correct parent elements</td></tr><tr><td align="left" valign="bottom">Check sequence order</td><td align="left" valign="bottom">Check that child/children elements are included in the correct order</td></tr><tr><td align="left" valign="bottom" colspan="2"><bold>Additional tests</bold></td></tr><tr><td align="left" valign="bottom">Check top level ids</td><td align="left" valign="bottom">Check that top level (root) elements have unique ids</td></tr><tr><td align="left" valign="bottom">Check Network level ids</td><td align="left" valign="bottom">Check that child/children of the Network element have unique ids</td></tr><tr><td align="left" valign="bottom">Check Cell Segment ids</td><td align="left" valign="bottom">Check that all Segments in a Cell have unique ids</td></tr><tr><td align="left" valign="bottom">Check single Segment without parent</td><td align="left" valign="bottom">Check that only one Segment is without parents (the soma Segment)</td></tr><tr><td align="left" valign="bottom">Check SegmentGroup ids</td><td align="left" valign="bottom">Check that all SegmentGroups in a Cell have unique ids</td></tr><tr><td align="left" valign="bottom">Check Member segment ids exist</td><td align="left" valign="bottom">Check that Segments referred to in SegmentGroup Members exist</td></tr><tr><td align="left" valign="bottom">Check SegmentGroup definition</td><td align="left" valign="bottom">Check that SegmentGroups being referenced are defined</td></tr><tr><td align="left" valign="bottom">Check SegmentGroup definition order</td><td align="left" valign="bottom">Check that SegmentGroups are defined before being referenced</td></tr><tr><td align="left" valign="bottom">Check included SegmentGroups</td><td align="left" valign="bottom">Check that SegmentGroups referenced by Include elements of other SegmentGroups exist</td></tr><tr><td align="left" valign="bottom">Check numberInternalDivisions</td><td align="left" valign="bottom">Check that SegmentGroups define numberInternalDivisions (used by simulators to discretize un-branched branches into compartments for simulation)</td></tr><tr><td align="left" valign="bottom">Check included model files</td><td align="left" valign="bottom">Check that model files included by other files exist</td></tr><tr><td align="left" valign="bottom">Check Population component</td><td align="left" valign="bottom">Check that a component id provided to a Population exists</td></tr><tr><td align="left" valign="bottom">Check ion channel exists</td><td align="left" valign="bottom">Check that an ion channel used to define a ChannelDensity element exists</td></tr><tr><td align="left" valign="bottom">Check concentration model species</td><td align="left" valign="bottom">Check that the species used in ConcentrationModel elements are defined</td></tr><tr><td align="left" valign="bottom">Check Population size</td><td align="left" valign="bottom">Check that the size attribute of a PopulationList matches the number of defined Instances</td></tr><tr><td align="left" valign="bottom">Check Projection component</td><td align="left" valign="bottom">Check that Populations used in the Projection elements exist</td></tr><tr><td align="left" valign="bottom">Check Connection Segment</td><td align="left" valign="bottom">Check that the Segment used in Connection elements exist</td></tr><tr><td align="left" valign="bottom">Check Connection pre/post cells</td><td align="left" valign="bottom">Check that the pre- and post-synaptic cells used in Connection elements exist and are correctly specified</td></tr><tr><td align="left" valign="bottom">Check Synapse</td><td align="left" valign="bottom">Check that the Synapse component used in a Projection element exists</td></tr><tr><td align="left" valign="bottom">Check root id</td><td align="left" valign="bottom">Check that the root Segment in a Cell morphology has id 0</td></tr></tbody></table></table-wrap><p>A key advantage of using the NeuroML2/LEMS framework is that dimensions and units are inbuilt into LEMS descriptions. This enables automated conversions of units, unit checking, together with the validation of equations. Any expressions in models which are dimensionally inconsistent will be highlighted at this stage. Note that LEMS handles unit conversions internally—modelers have flexibility in how they enter the <italic>units</italic> of parameter values (e.g. specifying conductance density in <inline-formula><mml:math id="inf1"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>S</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo>/</mml:mo></mml:mrow><mml:msup><mml:mi>m</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mstyle></mml:math></inline-formula> or <inline-formula><mml:math id="inf2"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>m</mml:mi><mml:mi>S</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo>/</mml:mo></mml:mrow><mml:mi>c</mml:mi><mml:msup><mml:mi>m</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mstyle></mml:math></inline-formula>) in the NeuroML files, with the underlying LEMS definitions ensuring that a consistent set of <italic>dimensions</italic> are used in model equations (<xref ref-type="bibr" rid="bib18">Cannon et al., 2014</xref>). LEMS then takes care of mapping the entered units to the target simulator’s preferred units. This makes model definition, inspection, use, extension, and translation easier and less error-prone.</p><p>Once the set of NeuroML files are validated, the model can be simulated, and checks can be made to test whether execution produces consistent results (e.g. firing rate of neurons in a given population) across multiple simulators (or versions of the same simulator). For this, the OSB Model Validation (OMV) framework has been developed (<xref ref-type="bibr" rid="bib41">Gleeson et al., 2019b</xref>). This framework can automatically check that the output (e.g. spike times) of a NeuroML model running on a given simulator is within an allowed tolerance of the expected value. OMV has been applied to NeuroML models that have been shared on OSB, to test consistent behavior of models as the models themselves, and all supported simulators, are updated. This has proven to be a valuable process for ensuring uniform usage and interpretation of NeuroML across the ecosystem of supporting tools.</p><p>A final level of validation concerns checking whether the model elements have emergent features that are in line with experimentally observed behavior of the biological equivalents. NeuronUnit (<xref ref-type="bibr" rid="bib35">Gerkin et al., 2019</xref>), a SciUnit (<xref ref-type="bibr" rid="bib75">Omar et al., 2014</xref>) package for data-driven unit testing and validation of neuronal and ion channel models, is also fully NeuroML compliant, and also supports automated validation of NeuroML models shared on NeuroML-DB and OSB.</p></sec><sec id="s2-6"><title>Visualizing/analyzing NeuroML models</title><p>Multiple visualization, inspection, and analysis tools are available in the NeuroML software ecosystem. Since NeuroML models have a fixed, well-defined structure, NeuroML libraries can extract all information from their descriptions. This information can be used by modelers and their programs/tools to run automated programmatic analyses on models.</p><p>pyNeuroML includes a range of ready-made inspection utilities for users (<xref ref-type="fig" rid="fig6">Figure 6</xref>) that can be used via Python scripts, interactive Jupyter Notebooks, and command line tools. Examining the structure of cell and network models with 2D and 3D views is important for manual validation and to compare them to their biological counterparts. Graphical views of cell model morphology and the 3-dimensional network layout (<xref ref-type="fig" rid="fig8">Figure 8</xref>), population and connectivity matrices/graphs at different levels (<xref ref-type="fig" rid="fig9">Figure 9</xref>), and model summaries can all be generated (<xref ref-type="fig" rid="fig10">Figure 10</xref>). In addition to these inspection functions, a variety of utilities for the inspection of NeuroML descriptions of electrophysiological properties of membrane conductances and their spatial distribution over the neuronal membrane are also provided (<xref ref-type="fig" rid="fig10">Figure 10</xref>).</p><fig id="fig8" position="float"><label>Figure 8.</label><caption><title>Visualization of detailed neuronal morphology of neurons and networks together with their functional properties (results from model simulation) enabled by NeuroML.</title><p>(<bold>a</bold>) Interactive 3-D (VisPy (<xref ref-type="bibr" rid="bib16">Campagnola, 2023</xref>) based) visualization of an olfactory bulb network with detailed mitral and granule cells (<xref ref-type="bibr" rid="bib71">Migliore et al., 2014</xref>), generated using pyNeuroML. (<bold>b</bold>) Visualization of an inhibition stabilized network based on <xref ref-type="bibr" rid="bib87">Sadeh et al., 2017</xref> using Open Source Brain (OSB) version 1 (<xref ref-type="bibr" rid="bib41">Gleeson et al., 2019b</xref>). (<bold>c</bold>) Visualization of 3D network of simplified multi-compartmental cortical neurons (from <xref ref-type="bibr" rid="bib97">Traub et al., 2005</xref>, imported as NeuroML <xref ref-type="bibr" rid="bib40">Gleeson, 2019a</xref>) and simulated spiking activity using NetPyNE’s GUI (<xref ref-type="bibr" rid="bib27">Dura-Bernal et al., 2019</xref>), which is embedded in OSB version 2.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig8-v1.tif"/></fig><fig id="fig9" position="float"><label>Figure 9.</label><caption><title>Analysis and visualization of network connectivity from NeuroML model descriptions <italic>prior to simulation</italic>.</title><p>Network connectivity schematic (<bold>a</bold>) and connectivity matrix (<bold>b</bold>) for a half scale implementation of the human layer 2/3 cortical network model (<xref ref-type="bibr" rid="bib106">Yao et al., 2022</xref>) generated using pyNeuroML.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig9-v1.tif"/></fig><fig id="fig10" position="float"><label>Figure 10.</label><caption><title>Examples of visualizing biophysical properties of a NeuroML model neuron.</title><p>(<bold>a</bold>) Electrophysiological properties generated by the NeuroML-DB web-based platform (<xref ref-type="bibr" rid="bib11">Birgiolas et al., 2023</xref>). (Plots show four superimposed voltage traces in the top panel and corresponding current injection traces below). (<bold>b</bold>) Example plots of steady states of activation (na_channel na_m inf) and inactivation (na_channel na_h inf) variables and their time courses (na_channel na_m tau and na_channel na_h tau) for the Na channel from the classic Hodgkin Huxley model (<xref ref-type="bibr" rid="bib54">Hodgkin and Huxley, 1952</xref>). (<bold>c</bold>) The distribution of the peak conductances for the Ih channel over a layer 5 Pyramidal cell (<xref ref-type="bibr" rid="bib51">Hay et al., 2011</xref>). Both (<bold>b</bold>) and (<bold>c</bold>) were generated using the analysis features in pyNeuroML, and similar functionality is also available in OSBv1 (<xref ref-type="bibr" rid="bib41">Gleeson et al., 2019b</xref>).</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig10-v1.tif"/></fig><p>The graphical applications included in the NeuroML ecosystem (e.g. neuroConstruct, NeuroML-DB, OSB (v1 [<ext-link ext-link-type="uri" xlink:href="https://v1.opensourcebrain.org">https://v1.opensourcebrain.org</ext-link>] and v2), NetPyNE, and Arbor-GUI) also provide many of their own analysis and visualization functions. OSBv1, for example, supports automated 3D visualization of networks and cell morphologies, network connectivity graphs and metrics, and advanced model inspection features (<xref ref-type="bibr" rid="bib41">Gleeson et al., 2019b</xref>; <xref ref-type="fig" rid="fig8">Figure 8b</xref>). On OSBv2, NetPyNE provides advanced graphical plotting and analysis facilities (<xref ref-type="fig" rid="fig8">Figure 8c</xref>). A complete JupyterLab (<ext-link ext-link-type="uri" xlink:href="https://jupyter.org/">https://jupyter.org/</ext-link>) interface is also included in OSBv2 for Python scripting, allowing interactive notebooks to be created and shared, mixing scripting and graphical elements, including those generated by pyNeuroML. NeuroML-DB also provides information on electrophysiology, morphology, and the simulation aspects of neuronal models (<xref ref-type="bibr" rid="bib11">Birgiolas et al., 2023</xref>; <xref ref-type="fig" rid="fig10">Figure 10a</xref>). In general, any NeuroML-compliant application can be used to inspect and analyze elements of NeuroML models, each having their own distinct advantages.</p></sec><sec id="s2-7"><title>Simulating NeuroML models</title><p>Users can simulate NeuroML models using a number of simulation engines without making any changes to their models. This is because the NeuroML/LEMS descriptions of the models are simulator independent and can be translated to simulator specific formats. pyNeuroML facilitates access to all available simulation options, both from the command line and using function calls in Python scripts when using the Python API (<xref ref-type="fig" rid="fig6">Figure 6</xref>).</p><p>Simulation engines can be classified into five broad categories (<xref ref-type="fig" rid="fig5">Figure 5</xref>):</p><list list-type="order"><list-item><p>reference NeuroML/LEMS simulators.</p></list-item><list-item><p>independently developed simulators that natively support NeuroML.</p></list-item><list-item><p>simulators that import/translate NeuroML to their own internal formats.</p></list-item><list-item><p>simulators that are supported through generation of simulator-specific scripts by the core NeuroML tools.</p></list-item><list-item><p>export to other standardized formats which may allow simulation/analysis in other packages.</p></list-item></list><p>Each simulation engine supports a different set of features that NeuroML users can take advantage of (<xref ref-type="table" rid="table7">Table 7</xref>). For example, the reference NeuroML and LEMS simulators, jNeuroML, jLEMS, and PyLEMS, can simulate all LEMS models and most NeuroML models. They cannot, however, simulate multi-compartmental models, and users should opt for a simulator that does, e.g., NEURON (<xref ref-type="bibr" rid="bib53">Hines and Carnevale, 1997</xref>) or EDEN (<xref ref-type="bibr" rid="bib76">Panagiotou et al., 2022</xref>).</p><table-wrap id="table7" position="float"><label>Table 7.</label><caption><title>Features supported by NeuroML in different simulation engines.</title><p>Note: the simulators themselves may support more features, but these have not been mapped onto by the NeuroML tools. <bold>Abstract cell models</bold>: abstract cell models included in the NeuroML standard (see <xref ref-type="table" rid="table1">Table 1</xref>). <bold>Single compartmental cells</bold>: neuronal models that include a single compartment (these engines do not support multi-compartmental cells). <bold>Multiple compartmental cells</bold>: neuronal models that include multiple compartments. <bold>Conductance-based models</bold>: models that support ionic conductances. <bold>Parallel execution</bold>: engines that support parallel execution using MPI/GPUs. <bold>Y</bold>: full support; <bold>N</bold>: no support; <bold>L</bold>: limited support in NeuroML toolchain.</p></caption><table frame="hsides" rules="groups"><thead><tr><th align="left" valign="bottom">Tool</th><th align="left" valign="bottom">Abstract cell models</th><th align="left" valign="bottom">Single compartment cells</th><th align="left" valign="bottom">Multiple compartment cells</th><th align="left" valign="bottom">Conductance-based models</th><th align="left" valign="bottom">Parallel execution</th></tr></thead><tbody><tr><td align="left" valign="bottom">jNeuroML/pyNeuroML</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">N</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">N</td></tr><tr><td align="left" valign="bottom">NEURON</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">N</td></tr><tr><td align="left" valign="bottom">NetPyNE</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td></tr><tr><td align="left" valign="bottom">EDEN</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td></tr><tr><td align="left" valign="bottom">MOOSE</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">L</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">N</td></tr><tr><td align="left" valign="bottom">PyNN</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">L</td><td align="left" valign="bottom">L</td><td align="left" valign="bottom">Y</td></tr><tr><td align="left" valign="bottom">NEST</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">N</td><td align="left" valign="bottom">N</td><td align="left" valign="bottom">Y</td></tr><tr><td align="left" valign="bottom">Brian2</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">L</td></tr><tr><td align="left" valign="bottom">Arbor</td><td align="left" valign="bottom">L</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">Y</td><td align="left" valign="bottom">L</td><td align="left" valign="bottom">Y</td></tr></tbody></table></table-wrap><p>Another criteria that is relevant when choosing a simulation engine is the efficiency of simulation. Simulation engines implement different computing techniques—e.g., NetPyNE, Arbor, and EDEN support parallel execution on clusters and super computers via MPI—to enable simulation of large-scale models. Thus, for efficient large-scale simulation, users may prefer one of these simulation engines.</p><p>The preferred programming language for working with NeuroML is Python (<xref ref-type="bibr" rid="bib73">Muller et al., 2015</xref>). A Python-based ecosystem ensures that automated simulation of models can easily be carried out either using scripts, or the command line tools. Utilities to enable the execution of simulations on dedicated supercomputing resources, such as the Neuroscience Gateway (NSG) (<xref ref-type="bibr" rid="bib92">Sivagnanam, 2013</xref>; <ext-link ext-link-type="uri" xlink:href="http://www.nsgportal.org/">http://www.nsgportal.org/</ext-link>) are also available within the ecosystem. OSBv1 takes advantage of these to support the submission of NeuroML model simulation jobs using the NEURON simulator on NSG. NetPyNE also includes parallel execution of simulations, batch processing, and parameter exploration features, and its deployment on OSBv2 allows users to easily access these features on a scalable, cloud-based platform. Finally, the JupyterLab environment on OSBv2 contains all of the core NeuroML tools and various simulation engines as pre-installed software packages, ready to use.</p></sec><sec id="s2-8"><title>Optimizing NeuroML models</title><p>Development of biologically detailed models of brain function requires that components and emergent properties match the behavior of the corresponding biology as closely as possible. Thus, fitting neurons and networks to experimental data is a critical step in the model life cycle (<xref ref-type="bibr" rid="bib85">Rossant et al., 2011</xref>; <xref ref-type="bibr" rid="bib25">Druckmann et al., 2007</xref>). pyNeuroML promotes data-driven modeling by providing functions to fit and optimize NeuroML models against experimental data. It includes the NeuroMLTuner module (<ext-link ext-link-type="uri" xlink:href="https://pyneuroml.readthedocs.io/en/development/pyneuroml.tune.html">https://pyneuroml.readthedocs.io/en/development/pyneuroml.tune.html</ext-link>), which builds on the Neurotune package (<ext-link ext-link-type="uri" xlink:href="https://github.com/NeuralEnsemble/neurotune">https://github.com/NeuralEnsemble/neurotune</ext-link>; <xref ref-type="bibr" rid="bib100">Vella and Gleeson, 2023</xref>) for tuning and optimizing NeuroML models against data using evolutionary computation techniques. This module allows users to select a set of weighted features from their data to calculate the fitness of populations of candidate models. In each generation, the fittest models are found and mutated to create the next generation of models, until a set of models that best exhibit the selected data features are isolated (see Guide 6 in <xref ref-type="table" rid="table5">Table 5</xref>) (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/OptimisingNeuroMLModels.html">https://docs.neuroml.org/Userdocs/OptimisingNeuroMLModels.html</ext-link>).</p><p>The NeuroML ecosystem includes multiple tools that also provide model fitting features. The Blue Brain Python Optimisation Library (BluePyOpt) (<xref ref-type="bibr" rid="bib98">Van Geit et al., 2016</xref>), an extensible framework for data-driven model parameter optimization, supports exporting optimized models to NeuroML files (<ext-link ext-link-type="uri" xlink:href="https://github.com/BlueBrain/BluePyOpt/blob/master/examples/neuroml/neuroml.ipynb">https://github.com/BlueBrain/BluePyOpt/blob/master/examples/neuroml/neuroml.ipynb</ext-link>). Similar to pyNeuroML, NetPyNE also uses the inspyred Python package (<ext-link ext-link-type="uri" xlink:href="https://github.com/aarongarrett/inspyred">https://github.com/aarongarrett/inspyred</ext-link>; <xref ref-type="bibr" rid="bib91">Sinha and Garrett, 2024</xref>) to provide evolutionary computation-based model optimization features (<xref ref-type="bibr" rid="bib27">Dura-Bernal et al., 2019</xref>).</p></sec><sec id="s2-9"><title>Sharing NeuroML models</title><p>The NeuroML ecosystem includes the advanced web-based model sharing platforms NeuroML-DB (<xref ref-type="bibr" rid="bib11">Birgiolas et al., 2023</xref>; <ext-link ext-link-type="uri" xlink:href="https://neuroml-db.org">https://neuroml-db.org</ext-link>) and OSB (<xref ref-type="bibr" rid="bib41">Gleeson et al., 2019b</xref>). These resources have been designed specifically for the dissemination of models and model elements standardized in NeuroML. The OSB platform also supports visualization, analysis, simulation, and development of NeuroML models. Researchers can create shared, collaborative NeuroML projects on it and can take advantage of the in-built automated visualization and analysis pipelines to explore and re-use models and their components. Whereas version 1 (OSBv1) focused on providing an interactive 3D interface for running pre-existing NeuroML models (e.g. sourced from linked GitHub repositories) (<xref ref-type="bibr" rid="bib41">Gleeson et al., 2019b</xref>), OSBv2 provides cloud-based workspaces for researchers to construct NeuroML-based computational models as well as analyze, and compare them to, the experimental data on which they are based, thus facilitating data-driven computational modeling. <xref ref-type="table" rid="table8">Table 8</xref> provides a list of stable, well-tested NeuroML compliant models from brain regions including the neocortex, cerebellum, and hippocampus, which have been shared on OSB.</p><table-wrap id="table8" position="float"><label>Table 8.</label><caption><title>Listing of NeuroML models and example repositories.</title></caption><table frame="hsides" rules="groups"><thead><tr><th align="left" valign="bottom">Model</th><th align="left" valign="bottom">Description</th><th align="left" valign="bottom">URL</th></tr></thead><tbody><tr><td align="left" valign="bottom" colspan="3"><bold>Neocortex</bold></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib8">Billeh et al., 2020</xref></td><td align="left" valign="bottom">Morphologically detailed and point neuron models based on electrophysiological recordings from visual cortex neurons</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/AllenInstituteNeuroML">https://github.com/OpenSourceBrain/AllenInstituteNeuroML</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib15">Brunel, 2000</xref></td><td align="left" valign="bottom">Spiking network illustrating balance between excitation and inhibition</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/Brunel2000">https://github.com/OpenSourceBrain/Brunel2000</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib51">Hay et al., 2011</xref></td><td align="left" valign="bottom">Layer 5 pyramidal cell model constrained by somatic and dendritic recordings</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/L5bPyrCellHayEtAl2011">https://github.com/OpenSourceBrain/L5bPyrCellHayEtAl2011</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib59">Izhikevich, 2004</xref></td><td align="left" valign="bottom">Spiking neuron model reproducing wide range of neuronal activity</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/IzhikevichModel">https://github.com/OpenSourceBrain/IzhikevichModel</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib65">Markram et al., 2015</xref></td><td align="left" valign="bottom">Cell models from Neocortical Microcircuit of Blue Brain Project</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/BlueBrainProjectShowcase">https://github.com/OpenSourceBrain/BlueBrainProjectShowcase</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib79">Pospischil et al., 2008</xref></td><td align="left" valign="bottom">HH-based models for different classes of cortical and thalamic neurons</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/PospischilEtAl2008">https://github.com/OpenSourceBrain/PospischilEtAl2008</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib80">Potjans and Diesmann, 2014</xref></td><td align="left" valign="bottom">Microcircuit model of sensory cortex with 8 populations across 4 layers</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/PotjansDiesmann2014">https://github.com/OpenSourceBrain/PotjansDiesmann2014</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib26">Dura-Bernal et al., 2017</xref></td><td align="left" valign="bottom">Model of mouse primary motor cortex (M1)</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/M1NetworkModel">https://github.com/OpenSourceBrain/M1NetworkModel</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib87">Sadeh et al., 2017</xref></td><td align="left" valign="bottom">Point neuron model of Inhibition Stabilized Network</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/SadehEtAl2017-InhibitionStabilizedNetworks">https://github.com/OpenSourceBrain/SadehEtAl2017-InhibitionStabilizedNetworks</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib93">Smith et al., 2013</xref></td><td align="left" valign="bottom">Layer 2/3 cell model used to investigate dendritic spikes</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/SmithEtAl2013-L23DendriticSpikes">https://github.com/OpenSourceBrain/SmithEtAl2013-L23DendriticSpikes</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib97">Traub et al., 2005</xref></td><td align="left" valign="bottom">Single column network model containing 14 cell populations from cortex and thalamus</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/Thalamocortical">https://github.com/OpenSourceBrain/Thalamocortical</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib5">Bahl et al., 2012</xref></td><td align="left" valign="bottom">A set of reduced models of layer 5 pyramidal neurons</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/BahlEtAl2012_ReducedL5PyrCell">https://github.com/OpenSourceBrain/BahlEtAl2012_ReducedL5PyrCell</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib105">Wilson and Cowan, 1972</xref></td><td align="left" valign="bottom">A classic rate-based model describing the dynamics and interactions between the excitatory and inhibitory populations of neurons</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/WilsonCowan">https://github.com/OpenSourceBrain/WilsonCowan</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib34">Garcia Del Molino et al., 2017</xref></td><td align="left" valign="bottom">Rate-based model showing paradoxical response reversal of top-down modulation in cortical circuits with three interneuron types</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/del-Molino2017">https://github.com/OpenSourceBrain/del-Molino2017</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib68">Mejias et al., 2016</xref></td><td align="left" valign="bottom">A rate-based model simulating the dynamics of a cortical laminar structure across multiple scales: intralaminar, interlaminar, interareal and whole cortex</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/MejiasEtAl2016">https://github.com/OpenSourceBrain/MejiasEtAl2016</ext-link></td></tr><tr><td align="left" valign="bottom" colspan="3"><bold>Cerebellum</bold></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib64">Maex and Schutter, 1998</xref></td><td align="left" valign="bottom">Cerebellar granule cell</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/GranuleCell">https://github.com/OpenSourceBrain/GranuleCell</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib19">Cayco-Gajic et al., 2017</xref></td><td align="left" valign="bottom">Cerebellar granule cell layer network</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/SilverLabUCL/MF-GC-network-backprop-public">https://github.com/SilverLabUCL/MF-GC-network-backprop-public</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib64">Maex and Schutter, 1998</xref></td><td align="left" valign="bottom">3D Cerebellar granule cell layer network</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/GranCellLayer">https://github.com/OpenSourceBrain/GranCellLayer</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib94">Solinas et al., 2007</xref></td><td align="left" valign="bottom">Cerebellar Golgi cell model</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/SolinasEtAl-GolgiCell">https://github.com/OpenSourceBrain/SolinasEtAl-GolgiCell</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib101">Vervaeke et al., 2010</xref></td><td align="left" valign="bottom">Electrically connected cerebellar Golgi cell network model</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/VervaekeEtAl-GolgiCellNetwork">https://github.com/OpenSourceBrain/VervaekeEtAl-GolgiCellNetwork</ext-link></td></tr><tr><td align="left" valign="bottom" colspan="3"><bold>Hippocampus</bold></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib7">Bezaire et al., 2016</xref></td><td align="left" valign="bottom">Full scale network model of CA1 region of hippocampus</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/mbezaire/ca1">https://github.com/mbezaire/ca1</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib30">Ferguson et al., 2013</xref></td><td align="left" valign="bottom">Parvalbumin-positive interneuron from CA1, based on Izhikevich cell model</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/FergusonEtAl2013-PVFastFiringCell">https://github.com/OpenSourceBrain/FergusonEtAl2013-PVFastFiringCell</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib31">Ferguson et al., 2014</xref></td><td align="left" valign="bottom">Pyramidal cell from CA1, based on Izhikevich cell model</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/FergusonEtAl2014-CA1PyrCell">https://github.com/OpenSourceBrain/FergusonEtAl2014-CA1PyrCell</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib70">Migliore et al., 2005</xref></td><td align="left" valign="bottom">Multi-compartmental model of pyramidal cell from CA1 region of hippocampus</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/CA1PyramidalCell">https://github.com/OpenSourceBrain/CA1PyramidalCell</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib77">Pinsky and Rinzel, 1994</xref></td><td align="left" valign="bottom">Simplified model of CA3 pyramidal cell</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/PinskyRinzelModel">https://github.com/OpenSourceBrain/PinskyRinzelModel</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib103">Wang and Buzsáki, 1996</xref></td><td align="left" valign="bottom">Hippocampal interneuronal network model exhibiting gamma oscillations</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/WangBuzsaki1996">https://github.com/OpenSourceBrain/WangBuzsaki1996</ext-link></td></tr><tr><td align="left" valign="bottom" colspan="3"><bold>Olfactory bulb</bold></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib71">Migliore et al., 2014</xref></td><td align="left" valign="bottom">Large-scale 3D olfactory bulb network with detailed mitral cells and granule cells</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/MiglioreEtAl14_OlfactoryBulb3D">https://github.com/OpenSourceBrain/MiglioreEtAl14_OlfactoryBulb3D</ext-link></td></tr><tr><td align="left" valign="bottom" colspan="3"><bold>Invertebrate</bold></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib54">Hodgkin and Huxley, 1952</xref></td><td align="left" valign="bottom">Classic investigation of the ionic basis of the action potential</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/openworm/hodgkin_huxley_tutorial">https://github.com/openworm/hodgkin_huxley_tutorial</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib32">FitzHugh, 1961</xref></td><td align="left" valign="bottom">Simplified form of Hodgkin Huxley model</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/FitzHugh-Nagumo">https://github.com/OpenSourceBrain/FitzHugh-Nagumo</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib81">Prinz et al., 2004</xref></td><td align="left" valign="bottom">Pyloric network of the lobster stomatogastric ganglion system</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/PyloricNetwork">https://github.com/OpenSourceBrain/PyloricNetwork</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib14">Boyle and Cohen, 2008</xref></td><td align="left" valign="bottom">Model of body wall muscle from <italic>C. elegans</italic></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/openworm/muscle_model">https://github.com/openworm/muscle_model</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib39">Gleeson et al., 2018</xref></td><td align="left" valign="bottom">A multiscale framework for modeling the nervous system of <italic>C. elegans</italic></td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/openworm/c302">https://github.com/openworm/c302</ext-link></td></tr><tr><td align="left" valign="bottom" colspan="3"><bold>General</bold></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib72">Morris and Lecar, 1981</xref></td><td align="left" valign="bottom">Two dimensional reduced neuron model with calcium and potassium conductances</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/MorrisLecarModel">https://github.com/OpenSourceBrain/MorrisLecarModel</ext-link></td></tr><tr><td align="left" valign="bottom"><xref ref-type="bibr" rid="bib52">Hindmarsh and Rose, 1984</xref></td><td align="left" valign="bottom">A simplified point cell model which captures complex firing patterns of single neurons, such as periodic and chaotic bursting</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/HindmarshRose1984">https://github.com/OpenSourceBrain/HindmarshRose1984</ext-link></td></tr><tr><td align="left" valign="bottom" colspan="3"><bold>Showcases</bold></td></tr><tr><td align="left" valign="bottom">NEST Showcase</td><td align="left" valign="bottom">Examples of interactions with simulator NEST</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/NESTShowcase">https://github.com/OpenSourceBrain/NESTShowcase</ext-link></td></tr><tr><td align="left" valign="bottom">PyNN Showcase</td><td align="left" valign="bottom">Examples of interactions between NeuroML and PyNN</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/PyNNShowcase">https://github.com/OpenSourceBrain/PyNNShowcase</ext-link></td></tr><tr><td align="left" valign="bottom">NetPyNE Showcase</td><td align="left" valign="bottom">Examples of interactions between NeuroML and NetPyNE</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/NetPyNEShowcase">https://github.com/OpenSourceBrain/NetPyNEShowcase</ext-link></td></tr><tr><td align="left" valign="bottom">SBML Showcase</td><td align="left" valign="bottom">Examples of interactions between NeuroML and SBML</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/SBMLShowcase">https://github.com/OpenSourceBrain/SBMLShowcase</ext-link></td></tr><tr><td align="left" valign="bottom">Brian Showcase</td><td align="left" valign="bottom">Examples of interactions between NeuroML and Brian</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/BrianShowcase">https://github.com/OpenSourceBrain/BrianShowcase</ext-link></td></tr><tr><td align="left" valign="bottom">MOOSE Showcase</td><td align="left" valign="bottom">Examples of interactions between NeuroML and MOOSE</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/MOOSEShowcase">https://github.com/OpenSourceBrain/MOOSEShowcase</ext-link></td></tr><tr><td align="left" valign="bottom">Arbor Showcase</td><td align="left" valign="bottom">Examples of interactions between NeuroML and Arbor</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/ArborShowcase">https://github.com/OpenSourceBrain/ArborShowcase</ext-link></td></tr><tr><td align="left" valign="bottom">EDEN Showcase</td><td align="left" valign="bottom">Examples of interactions between NeuroML and EDEN</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/EDENShowcase">https://github.com/OpenSourceBrain/EDENShowcase</ext-link></td></tr><tr><td align="left" valign="bottom">The Virtual Brain Showcase</td><td align="left" valign="bottom">Examples of interactions between NeuroML and TVB</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/TheVirtualBrainShowcase">https://github.com/OpenSourceBrain/TheVirtualBrainShowcase</ext-link></td></tr><tr><td align="left" valign="bottom">NEURON Showcase</td><td align="left" valign="bottom">Examples of interactions between NeuroML and NEURON</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/NEURONShowcase">https://github.com/OpenSourceBrain/NEURONShowcase</ext-link></td></tr><tr><td align="left" valign="bottom">neuroConstruct Showcase</td><td align="left" valign="bottom">Examples of neuroConstruct projects</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/neuroConstructShowcase">https://github.com/OpenSourceBrain/neuroConstructShowcase</ext-link></td></tr><tr><td align="left" valign="bottom">NeuroMorpho.Org</td><td align="left" valign="bottom">Examples of reconstructions from NeuroMorpho.Org</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/NeuroMorpho">https://github.com/OpenSourceBrain/NeuroMorpho</ext-link></td></tr><tr><td align="left" valign="bottom">Janelia MouseLight</td><td align="left" valign="bottom">Janelia MouseLight project neuronal reconstructions</td><td align="left" valign="bottom"><ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/MouseLightShowcase">https://github.com/OpenSourceBrain/MouseLightShowcase</ext-link></td></tr></tbody></table></table-wrap><p>NeuroML-DB aims to promote the uptake of standardized NeuroML models by providing a convenient location for archiving and exploration. It includes advanced database search functions, including ontology-based search (<xref ref-type="bibr" rid="bib10">Birgiolas et al., 2015</xref>), coupled with pre-computed analyses on models’ electrophysiological and morphological properties, as well as an indication of the relative speed of execution of different models.</p><p>NeuroML’s modular nature ensures that models and their components can be easily shared with others through standard code sharing resources. The simplest way of sharing NeuroML models and components is to make their Python descriptions or their XML serializations available through these resources. Indeed, it is straightforward to make Python descriptions or the XML serializations available via different file, code (GitHub, GitLab), model sharing (ModelDB <xref ref-type="bibr" rid="bib69">Migliore et al., 2003</xref>; <xref ref-type="bibr" rid="bib67">McDougal et al., 2017</xref>), and archival (Zenodo, Open Science Framework) platforms, just like any other code/data produced in scientific investigations. Complex models with many components, spanning multiple files, such as networks and neuronal models that reference multiple cell and ionic conductance definitions, can also be exported into a COMBINE zip archive (<xref ref-type="bibr" rid="bib6">Bergmann et al., 2014</xref>), a zip file that includes metadata about its contents. pyNeuroML includes functions to easily create COMBINE archives from NeuroML models and simulations (<xref ref-type="fig" rid="fig6">Figure 6</xref>).</p><p>OSB is designed so that researchers can share their code on their chosen platform (e.g. GitHub), while retaining full control over write access to their repositories. Afterwards, a page for the model can be created on OSB which lists the latest files present there, with links to OSB visualization/analysis/simulation features which can use the standardized files found in the resource.</p><p>NeuroML supports the embedding of structured ontological information in model descriptions (<xref ref-type="bibr" rid="bib74">Neal et al., 2019</xref>). Models can include NeuroLex (now InterLex) (<xref ref-type="bibr" rid="bib62">Larson and Martone, 2013</xref>) identifiers for their components (e.g. neuro_lex_id in <xref ref-type="fig" rid="fig6">Figure 6</xref>). This links model components to their biological counterparts and makes them more transparent, findable, and reusable. For example, different types of neurons and brain regions have unique ontological ids. A user can use these ids to search for relevant model components on NeuroML-DB. More general information to maintain provenance can also be included in NeuroML models (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Provenance.html">https://docs.neuroml.org/Userdocs/Provenance.html</ext-link>).</p></sec><sec id="s2-10"><title>Reusing NeuroML models</title><p>NeuroML models, once openly shared, become community resources that are accessible to all. Researchers can use models shared on NeuroML-DB and OSB without restrictions. Guide 5 in <xref ref-type="table" rid="table5">Table 5</xref> provides an example of finding NeuroML-based model components using the API of NeuroML-DB, and creating novel models incorporating these elements.</p><p>In addition to these platforms, other experimental data and model dissemination platforms also provide standardized NeuroML versions of relevant models to promote uptake and reuse. For example, NeuroMorpho.org (<xref ref-type="bibr" rid="bib3">Ascoli et al., 2007</xref>) includes a tool to download NeuroML compliant versions of its cellular reconstructions (<ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML/Cvapp-NeuroMorpho.org">https://github.com/NeuroML/Cvapp-NeuroMorpho.org</ext-link>, <ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/Tools/SWC.html">https://docs.neuroml.org/Userdocs/Software/Tools/SWC.html</ext-link>). NeuroML versions of models released by organizations such as the Blue Brain Project (<xref ref-type="bibr" rid="bib65">Markram et al., 2015</xref>) (whole cell models as well as ion channel models from Channelpedia <xref ref-type="bibr" rid="bib82">Ranjan et al., 2011</xref>), the Allen Institute for Brain Science (<xref ref-type="bibr" rid="bib8">Billeh et al., 2020</xref>), and the OpenWorm project (<xref ref-type="bibr" rid="bib39">Gleeson et al., 2018</xref>) are also openly available for reuse (<xref ref-type="table" rid="table8">Table 8</xref>).</p><p>NeuroML can also interact with other standards to further promote model re-use. Whereas NeuroML is a declarative standard, PyNN (<xref ref-type="bibr" rid="bib22">Davison et al., 2008</xref>) is a procedural standard with a Python API for creating network models that can be simulated on multiple simulators. NeuroML models which are within the scope of PyNN can be converted to the PyNN format, and vice-versa. Similarly, NeuroML also interacts with SONATA (<xref ref-type="bibr" rid="bib21">Dai et al., 2020</xref>) data format by supporting the two way conversion of the network structures of NeuroML models into SONATA. In standards not specific to neuroscience, models from the well established SBML standard (<xref ref-type="bibr" rid="bib55">Hucka et al., 2003</xref>) can be converted to LEMS (<xref ref-type="bibr" rid="bib18">Cannon et al., 2014</xref>), for inclusion in neuroscience-related modeling pipelines, and a subset of NeuroML/LEMS models can be exported to SBML, which allows use with simulators and analysis packages compliant to this standard, e.g., Tellurium (<xref ref-type="bibr" rid="bib20">Choi et al., 2018</xref>). Simulation execution details of NeuroML/LEMS models can also be exported to Simulation Experiment Description Markup Language (SED-ML) (<xref ref-type="bibr" rid="bib102">Waltemath et al., 2011</xref>), allowing advanced resources such as Biosimulators (<xref ref-type="bibr" rid="bib88">Shaikh et al., 2022</xref>) (<ext-link ext-link-type="uri" xlink:href="https://biosimulators.org">https://biosimulators.org</ext-link>) to feature NeuroML models.</p></sec><sec id="s2-11"><title>NeuroML is extensible</title><p>While the standard NeuroML elements (<xref ref-type="table" rid="table1 table2">Tables 1 and 2</xref>) provide a broad range of curated model types for simulation-based investigations, NeuroML can be extended (using LEMS) to incorporate novel model elements and types when they are not (yet) available in the standard.</p><p>LEMS is a general purpose model specification language for creating fully machine readable definitions of the structure and behavior of model elements (<xref ref-type="bibr" rid="bib18">Cannon et al., 2014</xref>). The dynamics of NeuroML elements are described in LEMS. The hierarchical nature of LEMS means that new elements can build on pre-existing elements of the modular NeuroML framework. For example, a novel ionic conductance element can extend the ‘ionChannelHH’ element, which in turn extends ‘baseIonChannel.’ Thus, the new element will be known to the NeuroML elements as depending on an external voltage and producing a conductance, properties that are inherited from ‘baseIonChannel.’ Other elements, such as a cell, can incorporate this new type without needing any other information about its internal workings.</p><p>LEMS (and, therefore, NeuroML) element definitions (called ‘ComponentTypes’) specify the dynamical behavior of the model element in terms of a list of yet to be set parameters. Once the generic model behavior is defined, modelers only need to fill in the appropriate values of the required parameters (e.g. conductance density, reversal potential, etc.) to create new instances (called ‘Components’) of the element (see Methods for more details). Users can, therefore create arbitrary, reusable model elements in LEMS, which can be treated the same way as the standard model elements (for an example see Guide 7 in <xref ref-type="table" rid="table5">Table 5</xref>).</p><p>Another major advantage of NeuroML’s use of the LEMS language is its translatability. Since LEMS is fully machine readable, its primitives (e.g. state variables and their dynamics, expressed as ordinary differential equations) can be readily mapped into other languages. As a result, simulator specific code (<xref ref-type="bibr" rid="bib12">Blundell et al., 2018</xref>) can be generated from NeuroML models and their LEMS extensions (<xref ref-type="fig" rid="fig5">Figure 5</xref>), allowing NeuroML to remain simulator-independent while supporting multiple simulation engines.</p><p>Newly created elements that may be of interest to the wider research community can be submitted to the NeuroML Editorial Board for inclusion into the standard. The standard, therefore, evolves as new model elements are added and improved versions of the standard and associated software tool chain are regularly released to the community.</p></sec><sec id="s2-12"><title>NeuroML is a global open community initiative</title><p>NeuroML is a global open community standard that is used and maintained collectively by a diverse set of stakeholders. The NeuroML Scientific Committee (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/NeuroMLOrg/ScientificCommittee.html">https://docs.neuroml.org/NeuroMLOrg/ScientificCommittee.html</ext-link>) and the elected NeuroML Editorial Board (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/NeuroMLOrg/Board.html">https://docs.neuroml.org/NeuroMLOrg/Board.html</ext-link>) oversee the standard, the core tools, and the initiative. This ensures that NeuroML supports the myriad of use cases generated by a multi-disciplinary computational modeling community.</p><p>NeuroML is an endorsed INCF (<xref ref-type="bibr" rid="bib1">Abrams et al., 2022</xref>) community standard (<xref ref-type="bibr" rid="bib66">Martone and Das, 2019</xref>) and is one of the main standards of the international COMBINE initiative (<xref ref-type="bibr" rid="bib56">Hucka et al., 2015</xref>), which supports the development of other standards in computational biology as well (e.g. SBML (<xref ref-type="bibr" rid="bib55">Hucka et al., 2003</xref>) and CellML <xref ref-type="bibr" rid="bib63">Lloyd et al., 2004</xref>). Participation in these organizations guarantees that NeuroML follows current best practices in standardization, and remains linked to and interoperable with other standards wherever possible. The NeuroML community also participates in training and outreach activities such as Google Summer of Code (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/NeuroMLOrg/OutreachTraining.html">https://docs.neuroml.org/NeuroMLOrg/OutreachTraining.html</ext-link>), tutorials, and internships under these and other organizations.</p><p>The NeuroML community maintains public open communication channels to ensure that all community members can easily participate in troubleshooting, discussions, and development activities. A public mailing list (<ext-link ext-link-type="uri" xlink:href="https://lists.sourceforge.net/lists/listinfo/neuroml-technology">https://lists.sourceforge.net/lists/listinfo/neuroml-technology</ext-link>) is used for asynchronous communication and announcements while open chat channels on Gitter (now Matrix/Element (#/#NeuroML_community:gitter.im)) provide immediate access to the NeuroML community. All software repositories hosted on GitHub also have issue trackers for software specific queries. A community Code of Conduct (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/NeuroMLOrg/CoC.html">https://docs.neuroml.org/NeuroMLOrg/CoC.html</ext-link>) sets the standards of communication and behavior expected on all community channels.</p><p>A crucial aim of NeuroML is to enable Open Science and ensure models in computational neuroscience are FAIR. To this end, all development and discussions related to NeuroML are done publicly. The schema, all core software tools, and relevant resources such as documentation are made freely available under suitable Free/Open Source Software (FOSS) licenses on public platforms. Everyone can, therefore, use, modify, study, and share all NeuroML artifacts without restriction. Users and developers are encouraged to contribute modifications and improvements to the schema and core tools and to participate in the general maintenance and release process.</p></sec></sec><sec id="s3" sec-type="discussion"><title>Discussion</title><p>NeuroMLv2 has matured into a widely adopted community standard for computational neuroscience. Its modular, hierarchical structure can define a wide range of neuronal and circuit model types including simplified representations and those with a high degree of biological detail. The standardized, machine readable format of the NeuroMLv2/LEMS framework provides a flexible, common language for communicating between a wide range of tools and simulators used to create, validate, visualize, analyze, simulate, share, and reuse models. By enabling this interoperability, NeuroMLv2 has spawned a large ecosystem of interacting tools that cover all stages of the model development life cycle, bringing greater coherence to a previously fragmented landscape. Moreover, the modular nature of the model components and hierarchical structure conferred by NeuroMLv2, combined with the flexibility of coding in Python, has created a powerful ‘building block’ approach for constructing standardized models from scratch.</p><p>NeuroML has, therefore, evolved from a standardized archiving format into a mature language that supports an ecosystem of tools for the creation and execution of models that support the FAIR principles and promote open, transparent, and reproducible science.</p><sec id="s3-1"><title>Evolution of NeuroML and emergence of the NeuroMLv2 tool ecosystem</title><p>NeuroML was conceived (<xref ref-type="bibr" rid="bib47">Goddard et al., 2001</xref>) and developed (<xref ref-type="bibr" rid="bib38">Gleeson et al., 2010</xref>) as a declarative XML-based framework for defining biophysical models of neurons and networks in a standardized form in order to compare model properties across simulators and to promote transparency and reuse. NeuroML version 1 achieved these aims and was mainly used to archive and visualize existing models (<xref ref-type="bibr" rid="bib38">Gleeson et al., 2010</xref>). Building on this, the subsequent development of the NeuroMLv2/LEMS framework provided a way to describe models as a hierarchical set of components with dimensional parameters and state variables, so that their structure and dynamics are fully machine readable (<xref ref-type="bibr" rid="bib18">Cannon et al., 2014</xref>). This enabled models to be losslessly mapped to other representations, greatly promoting interoperability between tools through read-write and automated code generation (<xref ref-type="bibr" rid="bib12">Blundell et al., 2018</xref>). As NeuroMLv2 matured and became a community standard recognized by the INCF with a formal governance structure, an increasingly wide range of models and modeling tools have been developed or modified to be NeuroMLv2 compliant (<xref ref-type="table" rid="table8 table3 table4">Tables 8, 3 and 4</xref>). The core tools, maintained directly by the NeuroML developers (<xref ref-type="fig" rid="fig4">Figure 4</xref>), provide functionality to read, modify, or create new NeuroML models, as well as to analyze and visualize, and simulate the models. Furthermore, there are now a larger number of tools that have been developed by other members of the community (<xref ref-type="fig" rid="fig3">Figure 3</xref>) including a neuronal simulator designed specifically for NeuroMLv2 (<xref ref-type="bibr" rid="bib76">Panagiotou et al., 2022</xref>). The emergence of an ecosystem of NeuroMLv2 compliant tools enables modelers to build tool chains that span the model life cycle and build and reuse standardized models.</p></sec><sec id="s3-2"><title>NeuroML and other standards in computational neuroscience</title><p>Several other standards and formats exist to support computational modeling of neuronal systems. Whereas NeuroML is a modular, declarative simulator independent standard for biophysical neuronal modeling, PyNN (<xref ref-type="bibr" rid="bib22">Davison et al., 2008</xref>) and SONATA (<xref ref-type="bibr" rid="bib21">Dai et al., 2020</xref>) provide a procedural Python-based simulator independent API and a framework for efficiently handling large-scale network simulations, respectively. Even though there is some overlap in the functionality provided by these standards, they each target distinct use cases and have their own goals and features. The teams developing these standards work in concert to ensure that they remain interoperable with each other, frequently sharing methods and techniques (<xref ref-type="bibr" rid="bib21">Dai et al., 2020</xref>). This allows researchers to use their standard of choice and easily combine with another if the need arises. PyNN and SONATA are, therefore, integral parts of the wider NeuroML ecosystem.</p></sec><sec id="s3-3"><title>Why using NeuroML and Python promotes the construction of FAIR models</title><p>The modular and hierarchical structure of NeuroMLv2, when combined with Python, provides a powerful combination of structured declarative elements and flexible procedural approaches that enables a ‘Lego-like’ building block approach for constructing biologically detailed models (<xref ref-type="bibr" rid="bib19">Cayco-Gajic et al., 2017</xref>; <xref ref-type="bibr" rid="bib9">Billings et al., 2014</xref>; <xref ref-type="bibr" rid="bib60">Kriener et al., 2022</xref>; <xref ref-type="bibr" rid="bib49">Gurnani and Silver, 2021</xref>). This has been advanced by the development of pyNeuroML, which provides a single installable package offering direct access to a range of functionality for handling NeuroML models (<xref ref-type="fig" rid="fig6">Figure 6</xref>). Moreover, the web-based documentation of NeuroMLv2, with multiple Python scripts illustrating the usage of the language and associated tools (<xref ref-type="table" rid="table5">Table 5</xref>), has recently been updated and expanded (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org">https://docs.neuroml.org</ext-link>). This provides a central resource for both new and experienced users of NeuroML supporting its use in model building. As the examples of this resource illustrate, building models using NeuroMLv2 is efficient and intuitive, as the model components are pre-made and how they fit together specified. The structured format allows APIs like libNeuroML to incorporate features such as auto-completion and inline validation of model parameters and structure as scripts are being developed. In addition, automated multi-stage model validation ensures the code, equations and internal structure are validated against the NeuroML schema minimizing human errors and model simulations outputs are within acceptable bounds (<xref ref-type="fig" rid="fig7">Figure 7</xref>). The NeuroMLv2 ecosystem also provides convenient ways to visualize and inspect the inner structure of models. pyNeuroML provides Python functions and corresponding command line utilities to view neuronal morphology (<xref ref-type="fig" rid="fig8">Figure 8</xref>), neuronal electrophysiology (<xref ref-type="fig" rid="fig10">Figure 10</xref>), circuit connectivity and schematics (<xref ref-type="fig" rid="fig9">Figure 9</xref>). In addition, custom analysis pipelines and advanced neuroinformatics resources can easily be built using the APIs. For example, loading a NeuroML model of a neuron into OSB enables visualization of the morphology and the spatial distribution of ionic conductance over the membrane as well as inspection of the conductance state variables, while the connectivity and synaptic weight matrices can be automatically displayed for circuit models (<xref ref-type="fig" rid="fig8">Figure 8</xref>; <xref ref-type="bibr" rid="bib41">Gleeson et al., 2019b</xref>). Such features of OSB, which are made possible by the structured format of NeuroMLv2, promote model transparency, reproducibility, and sharing. By enabling the development and sharing of well tested and transparent models the wider NeuroMLv2 ecosystem promotes Open Science.</p></sec><sec id="s3-4"><title>Limitations of NeuroML and current work</title><p>A limitation of any standardized framework is that there will always be models and model elements that fall outside the current scope of the standard. Although NeuroML suffers from this limitation, the underlying LEMS-based framework provides a flexible route to develop a wide range of new types of physio-chemical models (<xref ref-type="bibr" rid="bib18">Cannon et al., 2014</xref>). This is relatively straightforward if the new model component, such as a synaptic plasticity mechanism, fits within the existing hierarchical structure of NeuroMLv2 as the new type of synaptic element can build on an existing base synapse type which specifies the relevant input and outputs (e.g. local voltage and synaptic current). For more radical shifts in model types (e.g. neuronal morphologies that grow during learning) that do not fit neatly into the current NeuroMLv2 schema, structural changes to the language would be required. This route is more involved as the pros and cons of changes to the structure of NeuroMLv2 would need to be considered by the Scientific Committee and, if approved, implemented by the Editorial Board.</p><p>Whereas the current scope of NeuroMLv2 encompasses models of spiking neurons and networks at different levels of biological detail, plans are in place to extend its scope to include more abstract, rate-based models of neuronal populations (e.g. see <xref ref-type="bibr" rid="bib105">Wilson and Cowan, 1972</xref>; <xref ref-type="bibr" rid="bib68">Mejias et al., 2016</xref> in <xref ref-type="table" rid="table8">Table 8</xref>). Additionally, work is under way to extend current support for SBML (<xref ref-type="bibr" rid="bib55">Hucka et al., 2003</xref>) based descriptions of chemical signaling pathways (<xref ref-type="bibr" rid="bib18">Cannon et al., 2014</xref>), to enable better biochemical descriptions of sub-cellular activity in neurons and synapses.</p><p>There is a growing interest in the field for the efficient generation and serialization of large-scale network models, containing numbers of neurons closer to their biological equivalents (<xref ref-type="bibr" rid="bib65">Markram et al., 2015</xref>; <xref ref-type="bibr" rid="bib8">Billeh et al., 2020</xref>; <xref ref-type="bibr" rid="bib28">Einevoll et al., 2019</xref>). While a multitude of applications in the NeuroML ecosystem support large-scale model generation (e.g. NetPyNE, neuroConstruct, PyNN), the default serialization of NeuroML (XML) is inefficient for reading/writing/storing such extensive descriptions. NeuroML does have an internal format for serializing in the binary format HDF5 (see Methods), but has also recently added support for export of models to the SONATA data format (<xref ref-type="bibr" rid="bib21">Dai et al., 2020</xref>) allowing efficient serialization of large-scale models. Even though individual instances of large-scale models are useful, the ability to generate families of these for multiple simulation runs and more particularly a way to encapsulate, examine and reuse templates for network models, is also required. A prototype package, NeuroMLlite (<ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML/NeuroMLlite">https://github.com/NeuroML/NeuroMLlite</ext-link>), has been developed which allows these concise network templates to be described and multiple instances of networks to be generated, and facilitates interaction with simulation platforms and efficient serialization formats.</p><p>As discoveries and insights in neuroscience inform machine learning and visa versa, there is an increasing need to develop a common framework for describing both biological and artificial neural networks. Model Description Format (MDF) has been developed to address this (<xref ref-type="bibr" rid="bib43">Gleeson et al., 2023</xref>). This initiative has developed a standardized format, along with a Python API, which allows the specification of artificial neural networks (e.g. Convolutional Neural Networks, Recurrent Neural Networks) and biological neurons using the same underlying entities. Support for mapping MDF to/from NeuroMLv2/LEMS has been included from the start. This work will enable deeper integration of computational neuroscience and ‘brain-inspired’ networks in Artificial Intelligence (AI).</p></sec><sec id="s3-5"><title>Conclusion and vision for the future</title><p>NeuroMLv2 is already a mature community standard that provides a framework for standardizing biologically detailed neuronal network models. By providing a stable, common framework defining the essential entities required for biologically detailed neuronal modeling, NeuroML has spawned an ecosystem of tools that span all stages of the model development life cycle. In the short term, we envision the functionality of NeuroML to expand further and for new online resources that encourage the construction of FAIR models using pyNeuroML to be taken up by the community. The NeuroML development team are also beginning to explore how to combine NeuroML-based circuit models with musculo-skeletal simulations to enable models of the neural control of behavior. In the longer term, developing seamless interfaces between NeuroML and other domain specific standards will enable the development of more holistic models of the neural control of body systems across a wide range of organisms, as well as greater exchange of models and insights between computational neuroscience and AI.</p></sec></sec><sec id="s4" sec-type="materials|methods"><title>Materials and methods</title><p>NeuroMLv2 is formally specified by the NeuroMLv2 XML schema, which defines the allowed structure of XML files which comply to the standard, and the LEMS ComponentType definitions, which define the internal state variables of the underlying elements, providing a machine-readable specification of the time evolution of model components. The specification is backed up by a suite of software tools that support the model life cycle and the accompanying usage and development documentation.</p><p>We illustrate the key parts of this framework using the HindmarshRose cell model (<xref ref-type="bibr" rid="bib52">Hindmarsh and Rose, 1984</xref>; <xref ref-type="fig" rid="fig11">Figure 11</xref>), which as an abstract point neuron model, serves as an appropriate simple NeuroMLv2 ComponentType.</p><fig id="fig11" position="float"><label>Figure 11.</label><caption><title>Example model description of a HindmarshRose1984Cell NeuroML component.</title><p>(<bold>a</bold>) XML serialization of the model description containing the main hindmarshRose1984Cell element with a set of parameters which result in regular bursting. A current clamp stimulus is applied using a pulseGenerator, and a population of one cell is added with this in a network. This XML can be validated against the NeuroML Schema. (<bold>b</bold>) Membrane potentials generated from a simulation of the model in (<bold>a</bold>). The LEMS simulation file to execute this is shown in <xref ref-type="fig" rid="fig15">Figure 15</xref>. The code used in this example is available here: <ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/HindmarshRose1984/tree/master/NeuroML2/examples">https://github.com/OpenSourceBrain/HindmarshRose1984/tree/master/NeuroML2/examples</ext-link>.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig11-v1.tif"/></fig><sec id="s4-1"><title>The NeuroML XML Schema</title><p>We begin with the NeuroMLv2 standard. The standard consists of two parts, each serving different functions:</p><list list-type="order"><list-item><p>the NeuroMLv2 XML schema</p></list-item><list-item><p>corresponding LEMS component type definitions</p></list-item></list><p>The NeuroMLv2 schema is a language independent data model that constrains the structure of a NeuroMLv2 <italic>model description</italic>. The NeuroML schema is formally described as an XML Schema document (<ext-link ext-link-type="uri" xlink:href="https://neuroml.org/schema/neuroml2">https://neuroml.org/schema/neuroml2</ext-link>) in the XML Schema Definition (XSD) format, a recommendation of the World Wide Web Consortium (W3C) (<ext-link ext-link-type="uri" xlink:href="https://www.w3.org/TR/xmlschema-1/">https://www.w3.org/TR/xmlschema-1/</ext-link>). An XML document that claims to conform to a particular schema can be <italic>validated</italic> against the schema. All NeuroMLv2 model descriptions can, therefore, be validated against the NeuroMLv2 schema.</p><p>The basic building blocks of an XSD schema are ‘simple’ or ‘complex’ types and their ‘attributes.’ All types are created as ‘extensions’ or ‘restrictions’ of other types. Complex types may contain other types and attributes whereas simple types may not. <xref ref-type="fig" rid="fig12">Figure 12</xref> shows some example types defined in the NeuroMLv2 schema. For example, the <monospace>Nml2Quantity_none</monospace> simple type restricts the in-built ‘string’ type using a regular expression ‘pattern’ that limits what string values it can contain. The type is <monospace>Nml2Quantity_none</monospace> is to be used for unit-less quantities (e.g. 3, 6.7, –1.1e-5) and the restriction pattern for translates to ‘a string that may start with a hyphen (negative sign), followed by any number of numerical characters (potentially containing a decimal point) and a string containing capital or small ‘e’ (to specify the exponent).’ The restriction pattern for the <monospace>Nml2Quantity_voltage</monospace> type is similar, but must be followed by a ‘V’ or ‘mV.’ In this way, the restriction ensures that a value of type ‘Nml2Quantity_voltage’ represents a physical voltage quantity with units ‘V’ (volt) or ‘mV’ (millivolt). Furthermore, a NeuroMLv2 model description that uses a voltage value that does not match this pattern, for example ‘0.5 s,’ will be invalid.</p><fig id="fig12" position="float"><label>Figure 12.</label><caption><title>Type definitions taken from the NeuroMLv2 schema (<ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML/NeuroML2/blob/master/Schemas/NeuroML2/NeuroML_v2.3.1.xsd">https://github.com/NeuroML/NeuroML2/blob/master/Schemas/NeuroML2/NeuroML_v2.3.1.xsd</ext-link>) which describes the structure of NeuroMLv2 elements.</title><p>Top: ‘simple’ types may not include other elements or attributes. Here, the <monospace>Nml2Quantity_none</monospace> and <monospace>Nml2Quantity_voltage</monospace> types define restrictions on the default string type to limit what strings can be used as valid values for attributes of these types. Bottom: example of a ‘complex’ type, the HindmarshRose cell model (<xref ref-type="bibr" rid="bib52">Hindmarsh and Rose, 1984</xref>), that can also include other elements of other types, and extend other types.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig12-v1.tif"/></fig><p>The example of a complex type in <xref ref-type="fig" rid="fig12">Figure 12</xref> is the <monospace>HindmarshRose1984Cell</monospace> type that extends the <monospace>BaseCellMembPotCap</monospace> complex type (the base type for any cell producing a membrane potential <monospace>v</monospace> with a capacitance parameter <monospace>C</monospace>), and defines new ‘required’ (compulsory) attributes. These attributes are of simple types—these are all unit-less quantities apart from <monospace>v_scaling</monospace>, which has dimension voltage. Note that inherited attributes are not re-listed in the complex type definition—the compulsory capacitance attribute, <monospace>C</monospace>, is inherited here from <monospace>BaseCellMembPotCap</monospace>.</p><p>The NeuroMLv2 schema serves multiple critical functions. A variety of tools and libraries support the validation of files against XSD schema definitions. Therefore, the NeuroMLv2 schema enables the validation of model descriptions—model structure, parameters, parameter values and their units, cardinality, element positioning in the model hierarchy (level 1 validation in <xref ref-type="fig" rid="fig7">Figure 7</xref>)—<italic>prior to simulation</italic>. XSD schema definitions, as language independent data models, also allow the generation of APIs in different languages. More information on how APIs in different languages are generated using the NeuroMLv2 XSD schema definition is provided in later sections.</p><p>The NeuroMLv2 XSD schema is also released and maintained as a versioned artifact, similar to the software packages. The current version is 2.3, and can be found in the NeuroML2 repository on GitHub (<ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML/NeuroML2/tree/master/Schemas/NeuroML2">https://github.com/NeuroML/NeuroML2/tree/master/Schemas/NeuroML2</ext-link>).</p></sec><sec id="s4-2"><title>LEMS ComponentType definitions</title><p>The second part of the NeuroMLv2 standard consists of the corresponding LEMS ComponentType definitions. Whereas the XSD Schema describes the <italic>structure</italic> of a NeuroMLv2 model description, the LEMS <monospace>ComponentType</monospace> definitions formally describe the <italic>dynamics</italic> of the model elements.</p><p>LEMS (<xref ref-type="bibr" rid="bib18">Cannon et al., 2014</xref>) is a domain independent general purpose machine-readable language for describing models and their simulations. A complete description of LEMS is provided in <xref ref-type="bibr" rid="bib18">Cannon et al., 2014</xref> and in our documentation (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/LEMSSchema.html">https://docs.neuroml.org/Userdocs/LEMSSchema.html</ext-link>). Here, we limit ourselves to a short summary necessary for understanding the NeuroMLv2 <monospace>ComponentType</monospace> definitions.</p><p>LEMS allows the definition of new model types called <monospace>ComponentTypes</monospace>. These are formal descriptions of how a generic model element of that type behaves (the ‘dynamics’), <italic>independent of the specific set of parameters in any instance</italic>. To describe the dynamics, such descriptions must list any necessary parameters that are required, as well as the time-varying state variables. The dimensions of these parameters and state variables must be specified, and any expressions involving them must be dimensionally consistent. An instance of such a generic model is termed a <monospace>Component</monospace> and can be instantiated from a <monospace>ComponentType</monospace> by providing the necessary parameters. One can think of <monospace>ComponentTypes</monospace> as user defined data types similar to ‘classes’ in many programming languages and Components as ‘objects’ of these types with particular sets of parameters. Types in LEMS can also extend other types, enabling the construction of a hierarchical library of types. In addition, since LEMS is designed for model simulation, <monospace>ComponentType</monospace> definitions also include other simulation-related features such as <monospace>Exposures</monospace>, specifying quantities that may be accessed/recorded by users.</p><p>For model elements included in the NeuroML standard, there is a one-to-one mapping between types specified in the NeuroML XSD schema and LEMS <monospace>ComponentTypes</monospace>, with the same parameters specified in each. The addition of new model elements to the NeuroML standard, therefore, requires the addition of new type definitions to both the XSD schema and the LEMS definitions. New user defined <monospace>ComponentTypes</monospace>, nevertheless, can be defined in LEMS and used freely in models, and these do not need to be added to the standard before use. The only limitation here is that new user defined <monospace>ComponentTypes</monospace> cannot be validated against the NeuroML schema since their type definitions will not be included there.</p><p><xref ref-type="fig" rid="fig13">Figure 13</xref> shows the <monospace>ComponentType</monospace> definition for the <monospace>HindmarshRose1984Cell</monospace> model element. Here, the <monospace>HindmarshRose1984Cell</monospace> <monospace>ComponentType</monospace> extends <monospace>baseCellMembPotCap</monospace> and inherits its elements. The <monospace>ComponentType</monospace> includes parameters that users must provide when creating a new instance (component): <inline-formula><mml:math id="inf3"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>a</mml:mi><mml:mtext>,</mml:mtext><mml:mtext> </mml:mtext><mml:mi>b</mml:mi><mml:mtext>,</mml:mtext><mml:mtext> </mml:mtext><mml:mi>c</mml:mi><mml:mtext>,</mml:mtext><mml:mtext> </mml:mtext><mml:mi>d</mml:mi><mml:mtext>,</mml:mtext><mml:mtext> </mml:mtext><mml:mi>r</mml:mi><mml:mtext>,</mml:mtext><mml:mtext> </mml:mtext><mml:mi>v</mml:mi><mml:mtext>,</mml:mtext><mml:mtext> </mml:mtext><mml:mi>x</mml:mi><mml:mn>1</mml:mn><mml:mtext>,</mml:mtext><mml:mtext> </mml:mtext><mml:mi>v</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>s</mml:mi><mml:mi>c</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>g</mml:mi></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula>.</p><fig id="fig13" position="float"><label>Figure 13.</label><caption><title>LEMS <monospace>ComponentType</monospace> definition of the HindmarshRose cell model (<xref ref-type="bibr" rid="bib52">Hindmarsh and Rose, 1984</xref>, <ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML/NeuroML2/blob/master/NeuroML2CoreTypes/Cells.xml">https://github.com/NeuroML/NeuroML2/blob/master/NeuroML2CoreTypes/Cells.xml</ext-link>).</title></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig13-v1.tif"/></fig><p>Other parameters, <inline-formula><mml:math id="inf4"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>x</mml:mi><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula>, <inline-formula><mml:math id="inf5"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>y</mml:mi><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula>, and <inline-formula><mml:math id="inf6"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>z</mml:mi><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula> are used to initialize the three state variables of the model, <inline-formula><mml:math id="inf7"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula>. <italic>x</italic> is the proxy for the membrane potential of the cell used in the original formulation of the model (<xref ref-type="bibr" rid="bib52">Hindmarsh and Rose, 1984</xref>) and is here scaled by a factor <inline-formula><mml:math id="inf8"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>v</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>s</mml:mi><mml:mi>c</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>d</mml:mi></mml:mstyle></mml:math></inline-formula> to expose a more physiological value for the membrane potential of the cell in <monospace>StateVariable</monospace> <inline-formula><mml:math id="inf9"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>v</mml:mi></mml:mstyle></mml:math></inline-formula>. A <monospace>Constant</monospace>, <inline-formula><mml:math id="inf10"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="normal">M</mml:mi><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">E</mml:mi><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>, is defined to hold the value of <inline-formula><mml:math id="inf11"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mn>1</mml:mn><mml:mtext> </mml:mtext><mml:mtext>ms</mml:mtext></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> for use in the <monospace>ComponentType</monospace>. Next, an <monospace>Attachment</monospace> enables the addition of entities that would provide external inputs to the <monospace>ComponentType</monospace>. Here, synapses are <monospace>Attachments</monospace> of the type <monospace>basePointCurrent</monospace> and provide synaptic current input to this <monospace>ComponentType</monospace>.</p><p>The <monospace>Dynamics</monospace> block lists the mathematical formalism required to simulate the <monospace>ComponentType</monospace>. By default, variables defined in the <monospace>Dynamics</monospace> block are private, i.e., they are not visible outside the <monospace>ComponentType</monospace>. To make these visible to other <monospace>ComponentTypes</monospace> and to allow users to record them, they must be connected to <monospace>Exposures</monospace>. Exposures for this <monospace>ComponentType</monospace> include the three state variables and also the internal derived variables, which while not used by other components, are useful in inspecting the <monospace>ComponentType</monospace> and its dynamics. An extra exposure, <inline-formula><mml:math id="inf12"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>s</mml:mi><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mi>k</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>g</mml:mi></mml:mstyle></mml:math></inline-formula>, is added to allow other NeuroML components access to the spiking state of the cell that will be determined in the <monospace>Dynamics</monospace> block.</p><p><monospace>StateVariable</monospace> definitions are followed by <monospace>DerivedVariables</monospace>, variables whose values depend on other variables but are not time derivatives (which are handled separately in <monospace>TimeDerivative</monospace> blocks (below)). The total synaptic current, <inline-formula><mml:math id="inf13"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>i</mml:mi><mml:mi>S</mml:mi><mml:mi>y</mml:mi><mml:mi>n</mml:mi></mml:mstyle></mml:math></inline-formula>, is a summation of all the synaptic currents, <inline-formula><mml:math id="inf14"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>i</mml:mi></mml:mstyle></mml:math></inline-formula> received by the synapses that may be attached on to this <monospace>ComponentType</monospace>. The <monospace>synapse[*]/i</monospace> value of the select field tells LEMS to collect all the <monospace>i</monospace> exposures from any synapses <monospace>Attachments</monospace>, and the <monospace>add</monospace> value of the reduce field tells LEMS to sum the multiple values. As noted, <inline-formula><mml:math id="inf15"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>x</mml:mi></mml:mstyle></mml:math></inline-formula> is a scaled version of the membrane potential variable, <inline-formula><mml:math id="inf16"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>v</mml:mi></mml:mstyle></mml:math></inline-formula>. This is followed by the three derived variables, <inline-formula><mml:math id="inf17"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>p</mml:mi><mml:mi>h</mml:mi><mml:mi>i</mml:mi></mml:mstyle></mml:math></inline-formula>, <inline-formula><mml:math id="inf18"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>c</mml:mi><mml:mi>h</mml:mi><mml:mi>i</mml:mi></mml:mstyle></mml:math></inline-formula>, <inline-formula><mml:math id="inf19"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>r</mml:mi><mml:mi>h</mml:mi><mml:mi>o</mml:mi></mml:mstyle></mml:math></inline-formula> where:<disp-formula id="equ1"><label>(1)</label><mml:math id="m1"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>p</mml:mi><mml:mi>h</mml:mi><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mi>y</mml:mi><mml:mo>−</mml:mo><mml:mi>a</mml:mi><mml:msup><mml:mi>x</mml:mi><mml:mn>3</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>b</mml:mi><mml:msup><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mstyle></mml:mrow></mml:math></disp-formula><disp-formula id="equ2"><label>(2)</label><mml:math id="m2"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>c</mml:mi><mml:mi>h</mml:mi><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mi>c</mml:mi><mml:mo>−</mml:mo><mml:mi>d</mml:mi><mml:msup><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>−</mml:mo><mml:mi>y</mml:mi></mml:mstyle></mml:mrow></mml:math></disp-formula><disp-formula id="equ3"><label>(3)</label><mml:math id="m3"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>r</mml:mi><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mo>=</mml:mo><mml:mi>s</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>x</mml:mi><mml:mo>−</mml:mo><mml:mi>x</mml:mi><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mi>z</mml:mi></mml:mstyle></mml:mrow></mml:math></disp-formula></p><p>The total membrane potential of the cell, <inline-formula><mml:math id="inf20"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>i</mml:mi><mml:mi>M</mml:mi><mml:mi>e</mml:mi><mml:mi>m</mml:mi><mml:mi>b</mml:mi></mml:mstyle></mml:math></inline-formula>, is calculated as the sum of the capacitive current and the synaptic current:<disp-formula id="equ4"><label>(4)</label><mml:math id="m4"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>i</mml:mi><mml:mi>M</mml:mi><mml:mi>e</mml:mi><mml:mi>m</mml:mi><mml:mi>b</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>C</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>v</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>s</mml:mi><mml:mi>c</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>g</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>h</mml:mi><mml:mi>i</mml:mi><mml:mo>−</mml:mo><mml:mi>z</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">M</mml:mi><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">E</mml:mi><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mi>i</mml:mi><mml:mi>S</mml:mi><mml:mi>y</mml:mi><mml:mi>n</mml:mi></mml:mstyle></mml:mrow></mml:math></disp-formula></p><p><inline-formula><mml:math id="inf21"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>v</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mstyle></mml:math></inline-formula> are TimeDerivatives, with the ‘value’ representing the rate of change of each variable:<disp-formula id="equ5"><label>(5)</label><mml:math id="m5"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>d</mml:mi><mml:mi>v</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mi>i</mml:mi><mml:mi>M</mml:mi><mml:mi>e</mml:mi><mml:mi>m</mml:mi><mml:mi>b</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>C</mml:mi></mml:mstyle></mml:mrow></mml:math></disp-formula><disp-formula id="equ6"><label>(6)</label><mml:math id="m6"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>d</mml:mi><mml:mi>y</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mi>c</mml:mi><mml:mi>h</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">M</mml:mi><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">E</mml:mi><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:mstyle></mml:mrow></mml:math></disp-formula><disp-formula id="equ7"><label>(7)</label><mml:math id="m7"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>d</mml:mi><mml:mi>z</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>r</mml:mi><mml:mo>×</mml:mo><mml:mi>r</mml:mi><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">M</mml:mi><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">E</mml:mi><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:mstyle></mml:mrow></mml:math></disp-formula></p><p>The final few blocks set the initial state of the component (OnStart),<disp-formula id="equ8"><label>(8)</label><mml:math id="m8"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>v</mml:mi><mml:mo>=</mml:mo><mml:mi>x</mml:mi><mml:mn>0</mml:mn><mml:mo>×</mml:mo><mml:mi>v</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>s</mml:mi><mml:mi>c</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>g</mml:mi></mml:mstyle></mml:mrow></mml:math></disp-formula><disp-formula id="equ9"><label>(9)</label><mml:math id="m9"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mi>y</mml:mi><mml:mn>0</mml:mn></mml:mstyle></mml:mrow></mml:math></disp-formula><disp-formula id="equ10"><label>(10)</label><mml:math id="m10"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mi>z</mml:mi><mml:mn>0</mml:mn></mml:mstyle></mml:mrow></mml:math></disp-formula></p><p>and define conditional expressions to set the spiking state of the cell:<disp-formula id="equ11"><label>(11)</label><mml:math id="m11"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>s</mml:mi><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mi>k</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mtable columnalign="left left" rowspacing=".2em" columnspacing="1em" displaystyle="false"><mml:mtr><mml:mtd><mml:mn>1</mml:mn></mml:mtd><mml:mtd><mml:mtext>if </mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mi>v</mml:mi><mml:mo>&gt;</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>∧</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>s</mml:mi><mml:mi>p</mml:mi><mml:mi>i</mml:mi><mml:mi>k</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>g</mml:mi><mml:mo>&lt;</mml:mo><mml:mn>0.5</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mtext>if </mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mi>v</mml:mi><mml:mo>&lt;</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable><mml:mo fence="true" stretchy="true" symmetric="true"/></mml:mrow></mml:mstyle></mml:mrow></mml:math></disp-formula></p><p>Both the XSD schema and the LEMS <monospace>ComponentType</monospace> definitions enable model validation. However, despite some overlap, they support different types of validation. Whereas the XSD schema allows for the validation of <italic>model descriptions</italic> (e.g. the XML files), the LEMS <monospace>ComponentType</monospace> definitions enable validation of <italic>model instances</italic>, i.e., the ‘runnable’ instances of models that are constructed once components have been created by instantiating <monospace>ComponentTypes</monospace> with the necessary parameters, and various attachments created between source and target components. A model description may be used to create many different model instances for simulation. Indeed, it is common practice to run models that include stochasticity with different seeds for random number generators to verify the robustness of simulation results. Thus, the validation of dimensions and units that LEMS carries out is done only after a runnable instance of a model has been created.</p><p>The LEMS <monospace>ComponentType</monospace> definitions for NeuroMLv2 are also maintained as versioned files that are updated along with the XSD schema. These can also be seen in the NeuroMLv2 GitHub repository (<ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML/NeuroML2/tree/master/NeuroML2CoreTypes">https://github.com/NeuroML/NeuroML2/tree/master/NeuroML2CoreTypes</ext-link>). An index of the <monospace>ComponentTypes</monospace> included in version 2.3 of the NeuroML standard, with links to online documentation, is also provided in <xref ref-type="table" rid="table1 table2">Tables 1 and 2</xref>.</p></sec><sec id="s4-3"><title>NeuroML APIs</title><p>The NeuroMLv2 software stack relies on the NeuroML APIs that provide functionality to read, write, validate, and inspect NeuroML models. The APIs are programmatically generated from the machine readable XSD schema, thus ensuring that the class for defining a specific NeuroML element in a given language (e.g. Java) has the correct set of fields with the appropriate type (e.g. float or string) corresponding to the allowed parameters in the corresponding NeuroML element. NeuroMLv2 currently provides APIs in numerous languages—Python (libNeuroML which is generated via generateDS (<ext-link ext-link-type="uri" xlink:href="http://www.davekuhlman.org/generateDS.html">http://www.davekuhlman.org/generateDS.html</ext-link>)), Java (org.neuroml.model via JAXB XJC (<ext-link ext-link-type="uri" xlink:href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</ext-link>)), C++ (NeuroML_CPP via XSD (<ext-link ext-link-type="uri" xlink:href="https://www.codesynthesis.com/products/xsd/">https://www.codesynthesis.com/products/xsd/</ext-link>)) and MATLAB (NeuroMLToolbox which accesses the Java API from MATLAB), and APIs for other languages can also be easily generated as required. LEMS is also supported by a similar set of APIs—PyLEMS in Python, and jLEMS in Java—and since a NeuroMLv2 model description is a set of LEMS <monospace>Components</monospace>, the LEMS APIs also support them (e.g. the <monospace>hindmarshRose1984</monospace>Cell example in <xref ref-type="fig" rid="fig11">Figure 11</xref> could be loaded by jLEMS and treated as a LEMS <monospace>Component</monospace>).</p><p><xref ref-type="fig" rid="fig14">Figure 14</xref> shows the use of the NeuroML Python API to describe a model with one HindmarshRose cell. In Python, the instances of <monospace>ComponentTypes</monospace>, their <monospace>Components</monospace>, are represented as Python objects. The <monospace>hr0</monospace> Python variable stores the created <monospace>HindmarshRose1984</monospace>Cell component/object. This is added to a <monospace>Population pop0</monospace> in the <monospace>Network net</monospace>. The network also includes a <monospace>PulseGenerator</monospace> with amplitude 5 nA as an <monospace>ExplicitInput</monospace> that is targeted at the cell in the population. The model description is serialized to XML (<xref ref-type="fig" rid="fig11">Figure 11</xref>) and validated. Note that as the standard convention for classes in Python is to use capitalized names, <monospace>HindmarshRose1984Cell</monospace> is used in Python but is serialized as &lt;<monospace>hindmarshRose1984Cell</monospace>&gt;in the XML. Users can either share the Python script itself or share the XML serialization. Any valid XML serialization can be also loaded into a Python object model and modified.</p><fig id="fig14" position="float"><label>Figure 14.</label><caption><title>Example model description of a HindmarshRose1984Cell NeuroML component in Python using parameters for regular bursting.</title><p>This script generates the XML in <xref ref-type="fig" rid="fig11">Figure 11</xref>. The code used in this example is available here: <ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/HindmarshRose1984/tree/master/NeuroML2/examples">https://github.com/OpenSourceBrain/HindmarshRose1984/tree/master/NeuroML2/examples</ext-link>.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig14-v1.tif"/></fig><p>XML is the default serialization of NeuroML and all existing APIs can read and write the format (and it should be seen as a minimal requirement for new APIs to support XML). There is, however, an alternative HDF5 (<ext-link ext-link-type="uri" xlink:href="https://www.hdfgroup.org/solutions/hdf5">https://www.hdfgroup.org/solutions/hdf5</ext-link>) based serialization of NeuroML files which is supported by both libNeuroML and the Java API, org.neuroml.model (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/HDF5.html">https://docs.neuroml.org/Userdocs/HDF5.html</ext-link>). This format is based on an efficient representation of cell positions and connectivity data as HDF5 data sets which can be serialized in compact binary format and loaded into memory for optimized access (e.g. as numpy arrays in libNeuroML). This reduces the size of the saved files for large-scale networks and speeds up loading/writing models eliminating the need to parse/generate large text files containing XML. Models serialized in this format can be loaded and transformed to simulator code in the same way as XML-based models by the Java and Python APIs.</p></sec><sec id="s4-4"><title>Simulating NeuroML models</title><p>The model description shown in <xref ref-type="fig" rid="fig11">Figure 11</xref> contains no information about how it is to be simulated, or on the dynamics of each model component. Providing this simulation information and linking in the <monospace>ComponentType</monospace> definition requires creating a LEMS file to fully specify the simulation. <xref ref-type="fig" rid="fig15">Figure 15</xref> shows the use of utilities included in the Python pyNeuroML package to describe a LEMS simulation of the HindmarshRose model defined in <xref ref-type="fig" rid="fig11">Figure 11</xref>. The <monospace>LEMSSimulation</monospace> object includes simulation specific information such as the duration of the simulation, the integration time step, and the seed value. It also allows the specification of files for the storage of data recorded from the simulation. In this example, we record the membrane potential, <inline-formula><mml:math id="inf22"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>v</mml:mi></mml:mstyle></mml:math></inline-formula>, of our cell in its population, <monospace>HRPop0[0]</monospace>. Similar to the NeuroMLv2 model description, the simulation object can also be serialized to XML for storage and sharing (<xref ref-type="fig" rid="fig15">Figure 15</xref>, bottom).</p><fig id="fig15" position="float"><label>Figure 15.</label><caption><title>An example simulation of the HindmarshRose model description shown in <xref ref-type="fig" rid="fig14">Figure 14</xref> with the LEMS serialization shown at the bottom.</title><p>The code used in this example is available here: <ext-link ext-link-type="uri" xlink:href="https://github.com/OpenSourceBrain/HindmarshRose1984/tree/master/NeuroML2/examples">https://github.com/OpenSourceBrain/HindmarshRose1984/tree/master/NeuroML2/examples</ext-link>.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig15-v1.tif"/></fig><p>As noted previously, NeuroML/LEMS model and simulation descriptions are machine readable and simulator independent and can be simulated by simulation engines using a multitude of strategies (<xref ref-type="fig" rid="fig5">Figure 5</xref>).</p><p>The first category of tools consists of the reference NeuroML and LEMS simulation engines. These work directly with NeuroML and LEMS as their base descriptions of modeling entities and do not have their own specific formats. They are maintained by the NeuroML Editorial Board—jLEMS, jNeuroML, and PyLEMS (<xref ref-type="fig" rid="fig4">Figure 4</xref>). jLEMS serves as the reference implementation for the LEMS language and as such it can simulate any model described in LEMS (not necessarily from neuroscience). When coupled with the LEMS definitions of NeuroML standard entity structure/dynamics, it can simulate most NeuroML models, though it does not currently support multi-compartmental neurons. jNeuroML bundles the NeuroML standard LEMS definitions, jLEMS, and other functionality into a single package for ease of installation/usage. There is also a pure Python implementation of a LEMS interpreter, PyLEMS, which can be used in a similar way to jLEMS. The pyNeuroML package encapsulates all of these tools to give easy access (at both command line and in Python) to all of their functionality (<xref ref-type="fig" rid="fig6">Figure 6</xref>).</p><p>The second category consists of other simulators which support NeuroML natively. The EDEN simulator is an independently developed tool that was designed from its inception to read NeuroML and LEMS models for efficient, parallel simulation (<xref ref-type="bibr" rid="bib76">Panagiotou et al., 2022</xref>).</p><p>The third category involves simulators which have their own internal formats and include methods to translate NeuroMLv2/LEMS models to their own formats. Examples include NetPyNE (<xref ref-type="bibr" rid="bib27">Dura-Bernal et al., 2019</xref>), MOOSE (<xref ref-type="bibr" rid="bib83">Ray and Bhalla, 2008</xref>), and N2A (<xref ref-type="bibr" rid="bib86">Rothganger et al., 2014</xref>).</p><p>The fourth category comprises tools for which the NeuroML tools generate simulator specific scripts. The simulation engines then execute these scripts, similar to how they would execute handwritten user scripts. These include NEURON (<xref ref-type="bibr" rid="bib53">Hines and Carnevale, 1997</xref>) for which the NeuroML tools generate scripts in Python and the simulator’s hoc and NMODL formats and the Brian simulator (<xref ref-type="bibr" rid="bib95">Stimberg et al., 2019</xref>) which uses Python scripts.</p><p>The final category consists of export options to standardized formats in neuroscience and the wider computational biology field, which enable interaction with simulators and applications supporting those formats. These include the PyNN package (<xref ref-type="bibr" rid="bib22">Davison et al., 2008</xref>), which can be run in either NEURON, NEST (<xref ref-type="bibr" rid="bib36">Gewaltig and Diesmann, 2007</xref>) or Brian, the SONATA data format (<xref ref-type="bibr" rid="bib21">Dai et al., 2020</xref>) and the SBML standard (<xref ref-type="bibr" rid="bib55">Hucka et al., 2003</xref>) (see Reusing NeuroML models for more details).</p><p>Having multiple strategies in place for supporting NeuroML gives more freedom to simulator developers to choose how much they wish to be involved with implementing and supporting NeuroML functionality in their applications, while maximizing the options available for end users.</p><p>The primary tool for simulating NeuroML/LEMS models via different engines is jNeuroML, which is included in pyNeuroML. jNeuroML supports all simulator engine categories (<xref ref-type="fig" rid="fig5">Figure 5</xref>). It includes jLEMS for simulation of LEMS and single compartmental NeuroML models. It can also pass simulations to the EDEN simulator (<xref ref-type="bibr" rid="bib76">Panagiotou et al., 2022</xref>) for direct simulation. Using the org.neuroml.export library (<ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML/org.neuroml.export">https://github.com/NeuroML/org.neuroml.export</ext-link>), jNeuroML can also generate import scripts for simulators (e.g. NetPyNE <xref ref-type="bibr" rid="bib27">Dura-Bernal et al., 2019</xref>) or convert NeuroML/LEMS models to simulator specific formats (e.g. NEURON <xref ref-type="bibr" rid="bib53">Hines and Carnevale, 1997</xref>). Supporting a new simulation engine that requires translation of NeuroML/LEMS into another format can be done by adding a new ‘writer’ to the org.neuroml.export library. Finally, jNeuroML also includes the org.neuroml.import (<ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML/jNeuroML">https://github.com/NeuroML/jNeuroML</ext-link>) library that converts from other formats (e.g. SBML <xref ref-type="bibr" rid="bib55">Hucka et al., 2003</xref>) to LEMS for combination with NeuroML models.</p><p>It is important to note though that not all NeuroML models can be exported to/are supported by each of these target simulators (<xref ref-type="table" rid="table7">Table 7</xref>). This depends on the capabilities of the simulator in question (whether it supports networks, or morphologically detailed cells) and pyNeuroML/jNeuroML will provide feedback if a feature of the model is not supported in a chosen environment.</p><p>All NeuroML and LEMS software packages are made available under FOSS licenses. The source code for all NeuroML packages and the standard can be obtained from the NeuroML GitHub organization (<ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML">https://github.com/NeuroML</ext-link>). The NeuroML Python API (<ext-link ext-link-type="uri" xlink:href="https://github.com/NeuralEnsemble/libNeuroML">https://github.com/NeuralEnsemble/libNeuroML</ext-link>) was developed in collaboration with the NeuralEnsemble initiative (<ext-link ext-link-type="uri" xlink:href="https://github.com/NeuralEnsemble/">https://github.com/NeuralEnsemble/</ext-link>), which also maintains other commonly used Python packages such as PyNN (<xref ref-type="bibr" rid="bib22">Davison et al., 2008</xref>), Neo (<xref ref-type="bibr" rid="bib33">Garcia et al., 2014</xref>) and Elephant (<xref ref-type="bibr" rid="bib23">Denker, 2018</xref>). LEMS packages are available from the LEMS GitHub organization (<ext-link ext-link-type="uri" xlink:href="https://github.com/LEMS">https://github.com/LEMS</ext-link>).</p><p>To ensure replication and reproduction of studies, it is important to note the exact versions of software used in studies. For NeuroML and LEMS packages, archives of each release along with citations are published on Zenodo (<ext-link ext-link-type="uri" xlink:href="https://zenodo.org">https://zenodo.org</ext-link>) to enable researchers to cite them in their work (<xref ref-type="bibr" rid="bib42">Gleeson, 2021</xref>; <xref ref-type="bibr" rid="bib44">Gleeson, 2024a</xref>; <xref ref-type="bibr" rid="bib41">Gleeson et al., 2019b</xref>; <xref ref-type="bibr" rid="bib45">Gleeson, 2024b</xref>; <xref ref-type="bibr" rid="bib90">Sinha, 2024</xref>).</p></sec><sec id="s4-5"><title>Documentation</title><p>A standard and its accompanying software ecosystem must be supported by comprehensive documentation if it is to be of use to the research community. The primary NeuroML documentation for users that accompanies this paper has been consolidated into a JupyterBook (<xref ref-type="bibr" rid="bib29">Executable Books Community, 2020</xref>) at <ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org">https://docs.neuroml.org</ext-link>. This includes explanations of NeuroML and computational modeling concepts, interactive tutorials with varying levels of complexity, information about tools and what functions they provide to support different stages of the model life cycle. The JupyterBook framework supports ‘executable’ documentation through the inclusion of interactive Jupyter notebooks which may be run in the users’ web browser on free services such as OSBv2, Binder.org (<ext-link ext-link-type="uri" xlink:href="https://mybinder.org/">https://mybinder.org/</ext-link>) and Google Colab (<ext-link ext-link-type="uri" xlink:href="https://colab.research.google.com/">https://colab.research.google.com/</ext-link>). Finally, the machine readable nature of the schema and LEMS also enables the automated generation of human readable documentation for the standard and low level APIs (<xref ref-type="fig" rid="fig16">Figure 16</xref>) along with their examples (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#hindmarshrose1984cell">https://docs.neuroml.org/Userdocs/Schemas/Cells.html#hindmarshrose1984cell</ext-link>). In addition, the individual NeuroML software packages each have their own individual documentation (e.g. pyNeuroML (<ext-link ext-link-type="uri" xlink:href="https://pyneuroml.readthedocs.io/en/stable/">https://pyneuroml.readthedocs.io/en/stable/</ext-link>,) libNeuroML (<ext-link ext-link-type="uri" xlink:href="https://libneuroml.readthedocs.io/en/stable/">https://libneuroml.readthedocs.io/en/stable/</ext-link>)).</p><fig id="fig16" position="float"><label>Figure 16.</label><caption><title>Documentation for the <monospace>HindmarshRose1984Cell</monospace> NeuroMLv2 <monospace>ComponentType </monospace>generated from the XSD schema and LEMS definitions on the NeuroML documentation website showing its dynamics (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Schemas/Cells.html#hindmarshrose1984cell">https://docs.neuroml.org/Userdocs/Schemas/Cells.html#hindmarshrose1984cell</ext-link>).</title><p>More information about the ComponentType can be obtained from the tabs provided.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-95135-fig16-v1.tif"/></fig><p>As with the rest of the NeuroML ecosystem, the documentation is hosted on GitHub (<ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML/Documentation">https://github.com/NeuroML/Documentation</ext-link>), licensed under a FOSS license, and community contributions to it are welcomed. A PDF version of the documentation can also be downloaded for offline use (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/_static/files/neuroml-documentation.pdf">https://docs.neuroml.org/_static/files/neuroml-documentation.pdf</ext-link>).</p></sec><sec id="s4-6"><title>Maintenance of the Schema and core software</title><p>The NeuroML Scientific Committee (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/NeuroMLOrg/ScientificCommittee.html">https://docs.neuroml.org/NeuroMLOrg/ScientificCommittee.html</ext-link>) and the elected NeuroML Editorial Board (<ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/NeuroMLOrg/Board.html">https://docs.neuroml.org/NeuroMLOrg/Board.html</ext-link>) oversee the standard, the core tools, and the initiative. The Scientific Committee sets the scientific focus of the NeuroML initiative. It ensures that the standard represents the state of the art—that it can encapsulate the latest knowledge in neuronal anatomy and physiology in their corresponding model components. The Scientific Committee also defines the governance structure of the initiative and works with the wider scientific community to gather feedback on NeuroML and promote its use. The Editorial Board manages the day-to-day development and maintenance of LEMS, the NeuroML schema, the core software tools, and critical resources such as the documentation. The Editorial Board works with simulator developers in the extended ecosystem to help make tools NeuroML compliant by testing reference implementations and answering technical queries about NeuroML and the core software tools.</p></sec></sec></body><back><sec sec-type="additional-information" id="s5"><title>Additional information</title><fn-group content-type="competing-interest"><title>Competing interests</title><fn fn-type="COI-statement" id="conf1"><p>No competing interests declared</p></fn><fn fn-type="COI-statement" id="conf2"><p>MetaCell Ltd. was contracted by UCL to develop some of the NeuroML support on the Open Source Brain platform; MC has a financial interest in MetaCell Ltd</p></fn><fn fn-type="COI-statement" id="conf3"><p>Employee of Opus2 International Ltd</p></fn></fn-group><fn-group content-type="author-contribution"><title>Author contributions</title><fn fn-type="con" id="con1"><p>Conceptualization, Resources, Data curation, Software, Formal analysis, Validation, Investigation, Visualization, Methodology, Writing – original draft, Project administration, Writing – review and editing</p></fn><fn fn-type="con" id="con2"><p>Conceptualization, Resources, Data curation, Software, Formal analysis, Supervision, Funding acquisition, Validation, Investigation, Visualization, Methodology, Writing – original draft, Project administration, Writing – review and editing</p></fn><fn fn-type="con" id="con3"><p>Conceptualization, Resources, Software, Validation, Investigation, Methodology, Writing – review and editing</p></fn><fn fn-type="con" id="con4"><p>Conceptualization, Resources, Software, Funding acquisition, Investigation, Visualization, Methodology, Writing – review and editing</p></fn><fn fn-type="con" id="con5"><p>Resources, Software, Validation, Investigation, Methodology, Writing – review and editing</p></fn><fn fn-type="con" id="con6"><p>Conceptualization, Resources, Software, Supervision, Funding acquisition, Validation, Investigation, Methodology, Writing – review and editing</p></fn><fn fn-type="con" id="con7"><p>Conceptualization, Resources, Software, Validation, Investigation, Visualization, Methodology, Writing – review and editing</p></fn><fn fn-type="con" id="con8"><p>Conceptualization, Resources, Software, Investigation, Methodology</p></fn><fn fn-type="con" id="con9"><p>Software, Investigation, Methodology, Writing – review and editing</p></fn><fn fn-type="con" id="con10"><p>Data curation, Software, Validation, Investigation, Methodology</p></fn><fn fn-type="con" id="con11"><p>Conceptualization, Formal analysis, Supervision, Funding acquisition, Investigation, Methodology, Writing – original draft, Project administration, Writing – review and editing</p></fn></fn-group></sec><sec sec-type="supplementary-material" id="s6"><title>Additional files</title><supplementary-material id="mdar"><label>MDAR checklist</label><media xlink:href="elife-95135-mdarchecklist1-v1.docx" mimetype="application" mime-subtype="docx"/></supplementary-material></sec><sec sec-type="data-availability" id="s7"><title>Data availability</title><p>No data was generated in this study. All software noted in this manuscript is open source. The NeuroML core libraries can be found at <ext-link ext-link-type="uri" xlink:href="https://github.com/neuroml">https://github.com/neuroml</ext-link> (copy archived at <xref ref-type="bibr" rid="bib46">Gleeson and Sinha , 2024</xref>). Tables 3 and 4 provide links to the software packages and their source code repositories include DOI information for each software release.</p></sec><ack id="ack"><title>Acknowledgements</title><p>We thank all the members of the NeuroML Community who have contributed to the development of the standard over the years, have added support for the language to their applications, or who have converted published models to NeuroML. We would particularly like to thank the following for contributions to the NeuroML Scientific Committee: Upi Bhalla, Avrama Blackwell, Hugo Cornells, Robert McDougal, Lyle Graham, Cengiz Gunay, and Michael Hines. The following have also contributed to developments related to the named tools/simulators/resources: EDEN - Mario Negrello and Christos Strydis, SONATA - Anton Arkhipov and Kael Dai, MOOSE - Subhasis Ray, NeuroML-DB - Justas Birgiolas, NeuroMorpho.Org - Giorgio Ascoli, N2A - Fred Rothganger, pyLEMS - Gautham Ganapathy, MDF - Manifest Chakalov, libNeuroML and NeuroTune - Mike Vella, Open Source Brain - Matt Earnshaw, Adrian Quintana and Eugenio Piasini, SciUnit/NeuronUnit - Richard C Gerkin, Brian - Marcel Stimberg and Dominik Krzemiński, Arbor - Nora Abi Akar, Thorsten Hater and Brent Huisman, BluePyOpt - Jaquier Aurélien Tristan and Werner van Geit, C++/MATLAB APIs - Jonathan Cooper. We thank Rokas Stanislavos, András Ecker, Jessica Dafflon, Ronaldo Nunes, Anuja Negi, and Shayan Shafquat for their work converting models to NeuroML format as part of the Google Summer of Code program. We also thank Diccon Coyle for feedback on the manuscript.</p></ack><ref-list><title>References</title><ref id="bib1"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Abrams</surname><given-names>MB</given-names></name><name><surname>Bjaalie</surname><given-names>JG</given-names></name><name><surname>Das</surname><given-names>S</given-names></name><name><surname>Egan</surname><given-names>GF</given-names></name><name><surname>Ghosh</surname><given-names>SS</given-names></name><name><surname>Goscinski</surname><given-names>WJ</given-names></name><name><surname>Grethe</surname><given-names>JS</given-names></name><name><surname>Kotaleski</surname><given-names>JH</given-names></name><name><surname>Ho</surname><given-names>ETW</given-names></name><name><surname>Kennedy</surname><given-names>DN</given-names></name><name><surname>Lanyon</surname><given-names>LJ</given-names></name><name><surname>Leergaard</surname><given-names>TB</given-names></name><name><surname>Mayberg</surname><given-names>HS</given-names></name><name><surname>Milanesi</surname><given-names>L</given-names></name><name><surname>Mouček</surname><given-names>R</given-names></name><name><surname>Poline</surname><given-names>JB</given-names></name><name><surname>Roy</surname><given-names>PK</given-names></name><name><surname>Strother</surname><given-names>SC</given-names></name><name><surname>Tang</surname><given-names>TB</given-names></name><name><surname>Tiesinga</surname><given-names>P</given-names></name><name><surname>Wachtler</surname><given-names>T</given-names></name><name><surname>Wójcik</surname><given-names>DK</given-names></name><name><surname>Martone</surname><given-names>ME</given-names></name></person-group><year iso-8601-date="2022">2022</year><article-title>A standards organization for open and fair neuroscience: the international neuroinformatics coordinating facility</article-title><source>Neuroinformatics</source><volume>20</volume><fpage>25</fpage><lpage>36</lpage><pub-id pub-id-type="doi">10.1007/s12021-020-09509-0</pub-id><pub-id pub-id-type="pmid">33506383</pub-id></element-citation></ref><ref id="bib2"><element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Akar</surname><given-names>NA</given-names></name><name><surname>Cumming</surname><given-names>B</given-names></name><name><surname>Karakasis</surname><given-names>V</given-names></name><name><surname>Kusters</surname><given-names>A</given-names></name><name><surname>Klijn</surname><given-names>W</given-names></name><name><surname>Peyser</surname><given-names>A</given-names></name><name><surname>Yates</surname><given-names>S</given-names></name></person-group><year iso-8601-date="2019">2019</year><article-title>Arbor — a morphologically-detailed neural network simulation library for contemporary high-performance computing architectures</article-title><conf-name>2019 27th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP</conf-name><fpage>274</fpage><lpage>282</lpage><pub-id pub-id-type="doi">10.1109/EMPDP.2019.8671560</pub-id></element-citation></ref><ref id="bib3"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Ascoli</surname><given-names>GA</given-names></name><name><surname>Donohue</surname><given-names>DE</given-names></name><name><surname>Halavi</surname><given-names>M</given-names></name></person-group><year iso-8601-date="2007">2007</year><article-title>NeuroMorpho.Org: a central resource for neuronal morphologies</article-title><source>The Journal of Neuroscience</source><volume>27</volume><fpage>9247</fpage><lpage>9251</lpage><pub-id pub-id-type="doi">10.1523/JNEUROSCI.2055-07.2007</pub-id><pub-id pub-id-type="pmid">17728438</pub-id></element-citation></ref><ref id="bib4"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Awile</surname><given-names>O</given-names></name><name><surname>Kumbhar</surname><given-names>P</given-names></name><name><surname>Cornu</surname><given-names>N</given-names></name><name><surname>Dura-Bernal</surname><given-names>S</given-names></name><name><surname>King</surname><given-names>JG</given-names></name><name><surname>Lupton</surname><given-names>O</given-names></name><name><surname>Magkanaris</surname><given-names>I</given-names></name><name><surname>McDougal</surname><given-names>RA</given-names></name><name><surname>Newton</surname><given-names>AJH</given-names></name><name><surname>Pereira</surname><given-names>F</given-names></name><name><surname>Săvulescu</surname><given-names>A</given-names></name><name><surname>Carnevale</surname><given-names>NT</given-names></name><name><surname>Lytton</surname><given-names>WW</given-names></name><name><surname>Hines</surname><given-names>ML</given-names></name><name><surname>Schürmann</surname><given-names>F</given-names></name></person-group><year iso-8601-date="2022">2022</year><article-title>Modernizing the NEURON simulator for sustainability, portability, and performance</article-title><source>Frontiers in Neuroinformatics</source><volume>16</volume><elocation-id>884046</elocation-id><pub-id pub-id-type="doi">10.3389/fninf.2022.884046</pub-id><pub-id pub-id-type="pmid">35832575</pub-id></element-citation></ref><ref id="bib5"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Bahl</surname><given-names>A</given-names></name><name><surname>Stemmler</surname><given-names>MB</given-names></name><name><surname>Herz</surname><given-names>AVM</given-names></name><name><surname>Roth</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2012">2012</year><article-title>Automated optimization of a reduced layer 5 pyramidal cell model based on experimental data</article-title><source>Journal of Neuroscience Methods</source><volume>210</volume><fpage>22</fpage><lpage>34</lpage><pub-id pub-id-type="doi">10.1016/j.jneumeth.2012.04.006</pub-id><pub-id pub-id-type="pmid">22524993</pub-id></element-citation></ref><ref id="bib6"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Bergmann</surname><given-names>FT</given-names></name><name><surname>Adams</surname><given-names>R</given-names></name><name><surname>Moodie</surname><given-names>S</given-names></name><name><surname>Cooper</surname><given-names>J</given-names></name><name><surname>Glont</surname><given-names>M</given-names></name><name><surname>Golebiewski</surname><given-names>M</given-names></name><name><surname>Hucka</surname><given-names>M</given-names></name><name><surname>Laibe</surname><given-names>C</given-names></name><name><surname>Miller</surname><given-names>AK</given-names></name><name><surname>Nickerson</surname><given-names>DP</given-names></name><name><surname>Olivier</surname><given-names>BG</given-names></name><name><surname>Rodriguez</surname><given-names>N</given-names></name><name><surname>Sauro</surname><given-names>HM</given-names></name><name><surname>Scharm</surname><given-names>M</given-names></name><name><surname>Soiland-Reyes</surname><given-names>S</given-names></name><name><surname>Waltemath</surname><given-names>D</given-names></name><name><surname>Yvon</surname><given-names>F</given-names></name><name><surname>Le Novère</surname><given-names>N</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>COMBINE archive and OMEX format: one file to share all information to reproduce a modeling project</article-title><source>BMC Bioinformatics</source><volume>15</volume><elocation-id>369</elocation-id><pub-id pub-id-type="doi">10.1186/s12859-014-0369-z</pub-id><pub-id pub-id-type="pmid">25494900</pub-id></element-citation></ref><ref id="bib7"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Bezaire</surname><given-names>MJ</given-names></name><name><surname>Raikov</surname><given-names>I</given-names></name><name><surname>Burk</surname><given-names>K</given-names></name><name><surname>Vyas</surname><given-names>D</given-names></name><name><surname>Soltesz</surname><given-names>I</given-names></name></person-group><year iso-8601-date="2016">2016</year><article-title>Interneuronal mechanisms of hippocampal theta oscillations in a full-scale model of the rodent CA1 circuit</article-title><source>eLife</source><volume>5</volume><elocation-id>e18566</elocation-id><pub-id pub-id-type="doi">10.7554/eLife.18566</pub-id><pub-id pub-id-type="pmid">28009257</pub-id></element-citation></ref><ref id="bib8"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Billeh</surname><given-names>YN</given-names></name><name><surname>Cai</surname><given-names>B</given-names></name><name><surname>Gratiy</surname><given-names>SL</given-names></name><name><surname>Dai</surname><given-names>K</given-names></name><name><surname>Iyer</surname><given-names>R</given-names></name><name><surname>Gouwens</surname><given-names>NW</given-names></name><name><surname>Abbasi-Asl</surname><given-names>R</given-names></name><name><surname>Jia</surname><given-names>X</given-names></name><name><surname>Siegle</surname><given-names>JH</given-names></name><name><surname>Olsen</surname><given-names>SR</given-names></name><name><surname>Koch</surname><given-names>C</given-names></name><name><surname>Mihalas</surname><given-names>S</given-names></name><name><surname>Arkhipov</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2020">2020</year><article-title>Systematic integration of structural and functional data into multi-scale models of mouse primary visual cortex</article-title><source>Neuron</source><volume>106</volume><fpage>388</fpage><lpage>403</lpage><pub-id pub-id-type="doi">10.1016/j.neuron.2020.01.040</pub-id><pub-id pub-id-type="pmid">32142648</pub-id></element-citation></ref><ref id="bib9"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Billings</surname><given-names>G</given-names></name><name><surname>Piasini</surname><given-names>E</given-names></name><name><surname>Lőrincz</surname><given-names>A</given-names></name><name><surname>Nusser</surname><given-names>Z</given-names></name><name><surname>Silver</surname><given-names>RA</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>Network structure within the cerebellar input layer enables lossless sparse encoding</article-title><source>Neuron</source><volume>83</volume><fpage>960</fpage><lpage>974</lpage><pub-id pub-id-type="doi">10.1016/j.neuron.2014.07.020</pub-id><pub-id pub-id-type="pmid">25123311</pub-id></element-citation></ref><ref id="bib10"><element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Birgiolas</surname><given-names>J</given-names></name><name><surname>Dietrich</surname><given-names>SW</given-names></name><name><surname>Crook</surname><given-names>S</given-names></name><name><surname>Rajadesingan</surname><given-names>A</given-names></name><name><surname>Zhang</surname><given-names>C</given-names></name><name><surname>Penchala</surname><given-names>SV</given-names></name><name><surname>Addepalli</surname><given-names>V</given-names></name></person-group><year iso-8601-date="2015">2015</year><article-title>Ontology-assisted keyword search for NeuroML models</article-title><conf-name>SSDBM 2015</conf-name><pub-id pub-id-type="doi">10.1145/2791347.2791360</pub-id></element-citation></ref><ref id="bib11"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Birgiolas</surname><given-names>J</given-names></name><name><surname>Haynes</surname><given-names>V</given-names></name><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Gerkin</surname><given-names>RC</given-names></name><name><surname>Dietrich</surname><given-names>SW</given-names></name><name><surname>Crook</surname><given-names>S</given-names></name></person-group><year iso-8601-date="2023">2023</year><article-title>NeuroML-DB: Sharing and characterizing data-driven neuroscience models described in NeuroML</article-title><source>PLOS Computational Biology</source><volume>19</volume><elocation-id>e1010941</elocation-id><pub-id pub-id-type="doi">10.1371/journal.pcbi.1010941</pub-id><pub-id pub-id-type="pmid">36867658</pub-id></element-citation></ref><ref id="bib12"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Blundell</surname><given-names>I</given-names></name><name><surname>Brette</surname><given-names>R</given-names></name><name><surname>Cleland</surname><given-names>TA</given-names></name><name><surname>Close</surname><given-names>TG</given-names></name><name><surname>Coca</surname><given-names>D</given-names></name><name><surname>Davison</surname><given-names>AP</given-names></name><name><surname>Diaz-Pier</surname><given-names>S</given-names></name><name><surname>Fernandez Musoles</surname><given-names>C</given-names></name><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Goodman</surname><given-names>DFM</given-names></name><name><surname>Hines</surname><given-names>M</given-names></name><name><surname>Hopkins</surname><given-names>MW</given-names></name><name><surname>Kumbhar</surname><given-names>P</given-names></name><name><surname>Lester</surname><given-names>DR</given-names></name><name><surname>Marin</surname><given-names>B</given-names></name><name><surname>Morrison</surname><given-names>A</given-names></name><name><surname>Müller</surname><given-names>E</given-names></name><name><surname>Nowotny</surname><given-names>T</given-names></name><name><surname>Peyser</surname><given-names>A</given-names></name><name><surname>Plotnikov</surname><given-names>D</given-names></name><name><surname>Richmond</surname><given-names>P</given-names></name><name><surname>Rowley</surname><given-names>A</given-names></name><name><surname>Rumpe</surname><given-names>B</given-names></name><name><surname>Stimberg</surname><given-names>M</given-names></name><name><surname>Stokes</surname><given-names>AB</given-names></name><name><surname>Tomkins</surname><given-names>A</given-names></name><name><surname>Trensch</surname><given-names>G</given-names></name><name><surname>Woodman</surname><given-names>M</given-names></name><name><surname>Eppler</surname><given-names>JM</given-names></name></person-group><year iso-8601-date="2018">2018</year><article-title>Code generation in computational neuroscience: a review of tools and techniques</article-title><source>Frontiers in Neuroinformatics</source><volume>12</volume><elocation-id>68</elocation-id><pub-id pub-id-type="doi">10.3389/fninf.2018.00068</pub-id><pub-id pub-id-type="pmid">30455637</pub-id></element-citation></ref><ref id="bib13"><element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Bower</surname><given-names>JM</given-names></name><name><surname>Beeman</surname><given-names>D</given-names></name></person-group><year iso-8601-date="1998">1998</year><source>The Book of GENESIS: Exploring Realistic Neural Models with the GEneral NEural SImu Lation System</source><publisher-name>Springer</publisher-name><pub-id pub-id-type="doi">10.1007/978-1-4612-1634-6</pub-id></element-citation></ref><ref id="bib14"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Boyle</surname><given-names>JH</given-names></name><name><surname>Cohen</surname><given-names>N</given-names></name></person-group><year iso-8601-date="2008">2008</year><article-title><italic>Caenorhabditis elegans</italic> body wall muscles are simple actuators</article-title><source>Biosystems</source><volume>94</volume><fpage>170</fpage><lpage>181</lpage><pub-id pub-id-type="doi">10.1016/j.biosystems.2008.05.025</pub-id></element-citation></ref><ref id="bib15"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Brunel</surname><given-names>N</given-names></name></person-group><year iso-8601-date="2000">2000</year><article-title>Brunel N. Dynamics of sparsely connected networks of excitatory and inhibitory spiking neurons</article-title><source>Journal of Computational Neuroscience</source><volume>8</volume><fpage>183</fpage><lpage>208</lpage><pub-id pub-id-type="doi">10.1023/A:1008925309027</pub-id></element-citation></ref><ref id="bib16"><element-citation publication-type="software"><person-group person-group-type="author"><name><surname>Campagnola</surname><given-names>L</given-names></name></person-group><year iso-8601-date="2023">2023</year><data-title>Vispy/vispy</data-title><version designator="0.13.0">0.13.0</version><source>Zenodo</source><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.7945364">https://doi.org/10.5281/zenodo.7945364</ext-link></element-citation></ref><ref id="bib17"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Cannon</surname><given-names>RC</given-names></name><name><surname>Gewaltig</surname><given-names>MO</given-names></name><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Bhalla</surname><given-names>US</given-names></name><name><surname>Cornelis</surname><given-names>H</given-names></name><name><surname>Hines</surname><given-names>ML</given-names></name><name><surname>Howell</surname><given-names>FW</given-names></name><name><surname>Muller</surname><given-names>E</given-names></name><name><surname>Stiles</surname><given-names>JR</given-names></name><name><surname>Wils</surname><given-names>S</given-names></name><name><surname>De Schutter</surname><given-names>E</given-names></name></person-group><year iso-8601-date="2007">2007</year><article-title>Interoperability of neuroscience modeling software: current status and future directions</article-title><source>Neuroinformatics</source><volume>5</volume><fpage>127</fpage><lpage>138</lpage><pub-id pub-id-type="doi">10.1007/s12021-007-0004-5</pub-id><pub-id pub-id-type="pmid">17873374</pub-id></element-citation></ref><ref id="bib18"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Cannon</surname><given-names>RC</given-names></name><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Crook</surname><given-names>S</given-names></name><name><surname>Ganapathy</surname><given-names>G</given-names></name><name><surname>Marin</surname><given-names>B</given-names></name><name><surname>Piasini</surname><given-names>E</given-names></name><name><surname>Silver</surname><given-names>RA</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>LEMS: a language for expressing complex biological models in concise and hierarchical form and its use in underpinning NeuroML 2</article-title><source>Frontiers in Neuroinformatics</source><volume>8</volume><elocation-id>79</elocation-id><pub-id pub-id-type="doi">10.3389/fninf.2014.00079</pub-id><pub-id pub-id-type="pmid">25309419</pub-id></element-citation></ref><ref id="bib19"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Cayco-Gajic</surname><given-names>NA</given-names></name><name><surname>Clopath</surname><given-names>C</given-names></name><name><surname>Silver</surname><given-names>RA</given-names></name></person-group><year iso-8601-date="2017">2017</year><article-title>Sparse synaptic connectivity is required for decorrelation and pattern separation in feedforward networks</article-title><source>Nature Communications</source><volume>8</volume><elocation-id>1116</elocation-id><pub-id pub-id-type="doi">10.1038/s41467-017-01109-y</pub-id><pub-id pub-id-type="pmid">29061964</pub-id></element-citation></ref><ref id="bib20"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Choi</surname><given-names>K</given-names></name><name><surname>Medley</surname><given-names>JK</given-names></name><name><surname>König</surname><given-names>M</given-names></name><name><surname>Stocking</surname><given-names>K</given-names></name><name><surname>Smith</surname><given-names>L</given-names></name><name><surname>Gu</surname><given-names>S</given-names></name><name><surname>Sauro</surname><given-names>HM</given-names></name></person-group><year iso-8601-date="2018">2018</year><article-title>Tellurium: An extensible python-based modeling environment for systems and synthetic biology</article-title><source>Bio Systems</source><volume>171</volume><fpage>74</fpage><lpage>79</lpage><pub-id pub-id-type="doi">10.1016/j.biosystems.2018.07.006</pub-id><pub-id pub-id-type="pmid">30053414</pub-id></element-citation></ref><ref id="bib21"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Dai</surname><given-names>K</given-names></name><name><surname>Hernando</surname><given-names>J</given-names></name><name><surname>Billeh</surname><given-names>YN</given-names></name><name><surname>Gratiy</surname><given-names>SL</given-names></name><name><surname>Planas</surname><given-names>J</given-names></name><name><surname>Davison</surname><given-names>AP</given-names></name><name><surname>Dura-Bernal</surname><given-names>S</given-names></name><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Devresse</surname><given-names>A</given-names></name><name><surname>Dichter</surname><given-names>BK</given-names></name><name><surname>Gevaert</surname><given-names>M</given-names></name><name><surname>King</surname><given-names>JG</given-names></name><name><surname>Van Geit</surname><given-names>WAH</given-names></name><name><surname>Povolotsky</surname><given-names>AV</given-names></name><name><surname>Muller</surname><given-names>E</given-names></name><name><surname>Courcol</surname><given-names>JD</given-names></name><name><surname>Arkhipov</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2020">2020</year><article-title>The SONATA data format for efficient description of large-scale network models</article-title><source>PLOS Computational Biology</source><volume>16</volume><elocation-id>e1007696</elocation-id><pub-id pub-id-type="doi">10.1371/journal.pcbi.1007696</pub-id><pub-id pub-id-type="pmid">32092054</pub-id></element-citation></ref><ref id="bib22"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Davison</surname><given-names>AP</given-names></name><name><surname>Brüderle</surname><given-names>D</given-names></name><name><surname>Eppler</surname><given-names>J</given-names></name><name><surname>Kremkow</surname><given-names>J</given-names></name><name><surname>Muller</surname><given-names>E</given-names></name><name><surname>Pecevski</surname><given-names>D</given-names></name><name><surname>Perrinet</surname><given-names>L</given-names></name><name><surname>Yger</surname><given-names>P</given-names></name></person-group><year iso-8601-date="2008">2008</year><article-title>PyNN: a common interface for neuronal network simulators</article-title><source>Frontiers in Neuroinformatics</source><volume>2</volume><elocation-id>11</elocation-id><pub-id pub-id-type="doi">10.3389/neuro.11.011.2008</pub-id><pub-id pub-id-type="pmid">19194529</pub-id></element-citation></ref><ref id="bib23"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Denker</surname><given-names>M</given-names></name></person-group><year iso-8601-date="2018">2018</year><article-title>Collaborative HPC-enabled workflows on the HBP Collaboratory using the Elephant framework</article-title><source>Neuroinformatics</source><volume>19</volume><elocation-id>0019</elocation-id><pub-id pub-id-type="doi">10.12751/incf.ni2018.0019</pub-id></element-citation></ref><ref id="bib24"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>De Schutter</surname><given-names>E</given-names></name><name><surname>Bower</surname><given-names>JM</given-names></name></person-group><year iso-8601-date="1994">1994</year><article-title>An active membrane model of the cerebellar Purkinje cell. I. Simulation of current clamps in slice</article-title><source>Journal of Neurophysiology</source><volume>71</volume><fpage>375</fpage><lpage>400</lpage><pub-id pub-id-type="doi">10.1152/jn.1994.71.1.375</pub-id><pub-id pub-id-type="pmid">7512629</pub-id></element-citation></ref><ref id="bib25"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Druckmann</surname><given-names>S</given-names></name><name><surname>Banitt</surname><given-names>Y</given-names></name><name><surname>Gidon</surname><given-names>A</given-names></name><name><surname>Schürmann</surname><given-names>F</given-names></name><name><surname>Markram</surname><given-names>H</given-names></name><name><surname>Segev</surname><given-names>I</given-names></name></person-group><year iso-8601-date="2007">2007</year><article-title>A novel multiple objective optimization framework for constraining conductance-based neuron models by experimental data</article-title><source>Frontiers in Neuroscience</source><volume>1</volume><fpage>7</fpage><lpage>18</lpage><pub-id pub-id-type="doi">10.3389/neuro.01.1.1.001.2007</pub-id><pub-id pub-id-type="pmid">18982116</pub-id></element-citation></ref><ref id="bib26"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Dura-Bernal</surname><given-names>S</given-names></name><name><surname>Neymotin</surname><given-names>SA</given-names></name><name><surname>Kerr</surname><given-names>CC</given-names></name><name><surname>Sivagnanam</surname><given-names>S</given-names></name><name><surname>Majumdar</surname><given-names>A</given-names></name><name><surname>Francis</surname><given-names>JT</given-names></name><name><surname>Lytton</surname><given-names>WW</given-names></name></person-group><year iso-8601-date="2017">2017</year><article-title>Evolutionary algorithm optimization of biological learning parameters in a biomimetic neuroprosthesis</article-title><source>IBM Journal of Research and Development</source><volume>61</volume><elocation-id>6</elocation-id><pub-id pub-id-type="doi">10.1147/JRD.2017.2656758</pub-id><pub-id pub-id-type="pmid">29200477</pub-id></element-citation></ref><ref id="bib27"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Dura-Bernal</surname><given-names>S</given-names></name><name><surname>Suter</surname><given-names>BA</given-names></name><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Cantarelli</surname><given-names>M</given-names></name><name><surname>Quintana</surname><given-names>A</given-names></name><name><surname>Rodriguez</surname><given-names>F</given-names></name><name><surname>Kedziora</surname><given-names>DJ</given-names></name><name><surname>Chadderdon</surname><given-names>GL</given-names></name><name><surname>Kerr</surname><given-names>CC</given-names></name><name><surname>Neymotin</surname><given-names>SA</given-names></name><name><surname>McDougal</surname><given-names>RA</given-names></name><name><surname>Hines</surname><given-names>M</given-names></name><name><surname>Shepherd</surname><given-names>GM</given-names></name><name><surname>Lytton</surname><given-names>WW</given-names></name></person-group><year iso-8601-date="2019">2019</year><article-title>NetPyNE, a tool for data-driven multiscale modeling of brain circuits</article-title><source>eLife</source><volume>8</volume><elocation-id>e44494</elocation-id><pub-id pub-id-type="doi">10.7554/eLife.44494</pub-id><pub-id pub-id-type="pmid">31025934</pub-id></element-citation></ref><ref id="bib28"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Einevoll</surname><given-names>GT</given-names></name><name><surname>Destexhe</surname><given-names>A</given-names></name><name><surname>Diesmann</surname><given-names>M</given-names></name><name><surname>Grün</surname><given-names>S</given-names></name><name><surname>Jirsa</surname><given-names>V</given-names></name><name><surname>de Kamps</surname><given-names>M</given-names></name><name><surname>Migliore</surname><given-names>M</given-names></name><name><surname>Ness</surname><given-names>TV</given-names></name><name><surname>Plesser</surname><given-names>HE</given-names></name><name><surname>Schürmann</surname><given-names>F</given-names></name></person-group><year iso-8601-date="2019">2019</year><article-title>The scientific case for brain simulations</article-title><source>Neuron</source><volume>102</volume><fpage>735</fpage><lpage>744</lpage><pub-id pub-id-type="doi">10.1016/j.neuron.2019.03.027</pub-id><pub-id pub-id-type="pmid">31121126</pub-id></element-citation></ref><ref id="bib29"><element-citation publication-type="software"><person-group person-group-type="author"><collab>Executable Books Community</collab></person-group><year iso-8601-date="2020">2020</year><data-title>Executable books community, jupyter book</data-title><version designator="01">01</version><source>Zenodo</source><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.4539666">https://doi.org/10.5281/zenodo.4539666</ext-link></element-citation></ref><ref id="bib30"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Ferguson</surname><given-names>KA</given-names></name><name><surname>Huh</surname><given-names>CYL</given-names></name><name><surname>Amilhon</surname><given-names>B</given-names></name><name><surname>Williams</surname><given-names>S</given-names></name><name><surname>Skinner</surname><given-names>FK</given-names></name></person-group><year iso-8601-date="2013">2013</year><article-title>Experimentally constrained CA1 fast-firing parvalbumin-positive interneuron network models exhibit sharp transitions into coherent high frequency rhythms</article-title><source>Frontiers in Computational Neuroscience</source><volume>7</volume><elocation-id>144</elocation-id><pub-id pub-id-type="doi">10.3389/fncom.2013.00144</pub-id><pub-id pub-id-type="pmid">24155715</pub-id></element-citation></ref><ref id="bib31"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Ferguson</surname><given-names>KA</given-names></name><name><surname>Huh</surname><given-names>CYL</given-names></name><name><surname>Amilhon</surname><given-names>B</given-names></name><name><surname>Williams</surname><given-names>S</given-names></name><name><surname>Skinner</surname><given-names>FK</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>Simple, biologically-constrained CA1 pyramidal cell models using an intact, whole hippocampus context</article-title><source>F1000Research</source><volume>3</volume><elocation-id>104</elocation-id><pub-id pub-id-type="doi">10.12688/f1000research.3894.1</pub-id><pub-id pub-id-type="pmid">25383182</pub-id></element-citation></ref><ref id="bib32"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>FitzHugh</surname><given-names>R</given-names></name></person-group><year iso-8601-date="1961">1961</year><article-title>Impulses and physiological states in theoretical models of nerve membrane</article-title><source>Biophysical Journal</source><volume>1</volume><fpage>445</fpage><lpage>466</lpage><pub-id pub-id-type="doi">10.1016/S0006-3495(61)86902-6</pub-id></element-citation></ref><ref id="bib33"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Garcia</surname><given-names>S</given-names></name><name><surname>Guarino</surname><given-names>D</given-names></name><name><surname>Jaillet</surname><given-names>F</given-names></name><name><surname>Jennings</surname><given-names>T</given-names></name><name><surname>Pröpper</surname><given-names>R</given-names></name><name><surname>Rautenberg</surname><given-names>PL</given-names></name><name><surname>Rodgers</surname><given-names>CC</given-names></name><name><surname>Sobolev</surname><given-names>A</given-names></name><name><surname>Wachtler</surname><given-names>T</given-names></name><name><surname>Yger</surname><given-names>P</given-names></name><name><surname>Davison</surname><given-names>AP</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>Neo: an object model for handling electrophysiology data in multiple formats</article-title><source>Frontiers in Neuroinformatics</source><volume>8</volume><elocation-id>10</elocation-id><pub-id pub-id-type="doi">10.3389/fninf.2014.00010</pub-id><pub-id pub-id-type="pmid">24600386</pub-id></element-citation></ref><ref id="bib34"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Garcia Del Molino</surname><given-names>LC</given-names></name><name><surname>Yang</surname><given-names>GR</given-names></name><name><surname>Mejias</surname><given-names>JF</given-names></name><name><surname>Wang</surname><given-names>X-J</given-names></name></person-group><year iso-8601-date="2017">2017</year><article-title>Paradoxical response reversal of top-down modulation in cortical circuits with three interneuron types</article-title><source>eLife</source><volume>6</volume><elocation-id>e29742</elocation-id><pub-id pub-id-type="doi">10.7554/eLife.29742</pub-id><pub-id pub-id-type="pmid">29256863</pub-id></element-citation></ref><ref id="bib35"><element-citation publication-type="preprint"><person-group person-group-type="author"><name><surname>Gerkin</surname><given-names>RC</given-names></name><name><surname>Birgiolas</surname><given-names>J</given-names></name><name><surname>Jarvis</surname><given-names>RJ</given-names></name><name><surname>Omar</surname><given-names>C</given-names></name><name><surname>Crook</surname><given-names>SM</given-names></name></person-group><year iso-8601-date="2019">2019</year><article-title>NeuronUnit: a package for data-driven validation of neuron models using sciunit</article-title><source>bioRxiv</source><pub-id pub-id-type="doi">10.1101/665331</pub-id></element-citation></ref><ref id="bib36"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Gewaltig</surname><given-names>MO</given-names></name><name><surname>Diesmann</surname><given-names>M</given-names></name></person-group><year iso-8601-date="2007">2007</year><article-title>NEST (NEural Simulation Tool)</article-title><source>Scholarpedia</source><volume>2</volume><elocation-id>1430</elocation-id><pub-id pub-id-type="doi">10.4249/scholarpedia.1430</pub-id></element-citation></ref><ref id="bib37"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Steuber</surname><given-names>V</given-names></name><name><surname>Silver</surname><given-names>RA</given-names></name></person-group><year iso-8601-date="2007">2007</year><article-title>neuroConstruct: a tool for modeling networks of neurons in 3D space</article-title><source>Neuron</source><volume>54</volume><fpage>219</fpage><lpage>235</lpage><pub-id pub-id-type="doi">10.1016/j.neuron.2007.03.025</pub-id><pub-id pub-id-type="pmid">17442244</pub-id></element-citation></ref><ref id="bib38"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Crook</surname><given-names>S</given-names></name><name><surname>Cannon</surname><given-names>RC</given-names></name><name><surname>Hines</surname><given-names>ML</given-names></name><name><surname>Billings</surname><given-names>GO</given-names></name><name><surname>Farinella</surname><given-names>M</given-names></name><name><surname>Morse</surname><given-names>TM</given-names></name><name><surname>Davison</surname><given-names>AP</given-names></name><name><surname>Ray</surname><given-names>S</given-names></name><name><surname>Bhalla</surname><given-names>US</given-names></name><name><surname>Barnes</surname><given-names>SR</given-names></name><name><surname>Dimitrova</surname><given-names>YD</given-names></name><name><surname>Silver</surname><given-names>RA</given-names></name></person-group><year iso-8601-date="2010">2010</year><article-title>NeuroML: a language for describing data driven models of neurons and networks with a high degree of biological detail</article-title><source>PLOS Computational Biology</source><volume>6</volume><elocation-id>e1000815</elocation-id><pub-id pub-id-type="doi">10.1371/journal.pcbi.1000815</pub-id><pub-id pub-id-type="pmid">20585541</pub-id></element-citation></ref><ref id="bib39"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Lung</surname><given-names>D</given-names></name><name><surname>Grosu</surname><given-names>R</given-names></name><name><surname>Hasani</surname><given-names>R</given-names></name><name><surname>Larson</surname><given-names>SD</given-names></name></person-group><year iso-8601-date="2018">2018</year><article-title>c302: a multiscale framework for modelling the nervous system of <italic>Caenorhabditis elegans</italic></article-title><source>Philosophical Transactions of the Royal Society of London. Series B, Biological Sciences</source><volume>373</volume><elocation-id>20170379</elocation-id><pub-id pub-id-type="doi">10.1098/rstb.2017.0379</pub-id><pub-id pub-id-type="pmid">30201842</pub-id></element-citation></ref><ref id="bib40"><element-citation publication-type="software"><person-group person-group-type="author"><name><surname>Gleeson</surname><given-names>P</given-names></name></person-group><year iso-8601-date="2019">2019a</year><data-title>OpenSourceBrain/thalamocortical</data-title><version designator="0.4">0.4</version><source>Zenodo</source><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.2535506">https://doi.org/10.5281/zenodo.2535506</ext-link></element-citation></ref><ref id="bib41"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Cantarelli</surname><given-names>M</given-names></name><name><surname>Marin</surname><given-names>B</given-names></name><name><surname>Quintana</surname><given-names>A</given-names></name><name><surname>Earnshaw</surname><given-names>M</given-names></name><name><surname>Sadeh</surname><given-names>S</given-names></name><name><surname>Piasini</surname><given-names>E</given-names></name><name><surname>Birgiolas</surname><given-names>J</given-names></name><name><surname>Cannon</surname><given-names>RC</given-names></name><name><surname>Cayco-Gajic</surname><given-names>NA</given-names></name><name><surname>Crook</surname><given-names>S</given-names></name><name><surname>Davison</surname><given-names>AP</given-names></name><name><surname>Dura-Bernal</surname><given-names>S</given-names></name><name><surname>Ecker</surname><given-names>A</given-names></name><name><surname>Hines</surname><given-names>ML</given-names></name><name><surname>Idili</surname><given-names>G</given-names></name><name><surname>Lanore</surname><given-names>F</given-names></name><name><surname>Larson</surname><given-names>SD</given-names></name><name><surname>Lytton</surname><given-names>WW</given-names></name><name><surname>Majumdar</surname><given-names>A</given-names></name><name><surname>McDougal</surname><given-names>RA</given-names></name><name><surname>Sivagnanam</surname><given-names>S</given-names></name><name><surname>Solinas</surname><given-names>S</given-names></name><name><surname>Stanislovas</surname><given-names>R</given-names></name><name><surname>van Albada</surname><given-names>SJ</given-names></name><name><surname>van Geit</surname><given-names>W</given-names></name><name><surname>Silver</surname><given-names>RA</given-names></name></person-group><year iso-8601-date="2019">2019b</year><article-title>Open source brain: a collaborative resource for visualizing, analyzing, simulating, and developing standardized models of neurons and circuits</article-title><source>Neuron</source><volume>103</volume><fpage>395</fpage><lpage>411</lpage><pub-id pub-id-type="doi">10.1016/j.neuron.2019.05.019</pub-id><pub-id pub-id-type="pmid">31201122</pub-id></element-citation></ref><ref id="bib42"><element-citation publication-type="software"><person-group person-group-type="author"><name><surname>Gleeson</surname><given-names>P</given-names></name></person-group><year iso-8601-date="2021">2021</year><data-title>LEMS/LEMS</data-title><version designator="0.7.6">0.7.6</version><source>Zenodo</source><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.6417333">https://doi.org/10.5281/zenodo.6417333</ext-link></element-citation></ref><ref id="bib43"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Crook</surname><given-names>S</given-names></name><name><surname>Turner</surname><given-names>D</given-names></name><name><surname>Mantel</surname><given-names>K</given-names></name><name><surname>Raunak</surname><given-names>M</given-names></name><name><surname>Willke</surname><given-names>T</given-names></name><name><surname>Cohen</surname><given-names>JD</given-names></name></person-group><year iso-8601-date="2023">2023</year><article-title>Integrating model development across computational neuroscience, cognitive science, and machine learning</article-title><source>Neuron</source><volume>111</volume><fpage>1526</fpage><lpage>1530</lpage><pub-id pub-id-type="doi">10.1016/j.neuron.2023.03.037</pub-id><pub-id pub-id-type="pmid">37100054</pub-id></element-citation></ref><ref id="bib44"><element-citation publication-type="software"><person-group person-group-type="author"><name><surname>Gleeson</surname><given-names>P</given-names></name></person-group><year iso-8601-date="2024">2024a</year><data-title><italic>LEMS/jlems</italic></data-title><version designator="0.11.1">0.11.1</version><source>Zenodo</source><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.13350473">https://doi.org/10.5281/zenodo.13350473</ext-link></element-citation></ref><ref id="bib45"><element-citation publication-type="software"><person-group person-group-type="author"><name><surname>Gleeson</surname><given-names>P</given-names></name></person-group><year iso-8601-date="2024">2024b</year><data-title><italic>NeuroML/jneuroml</italic></data-title><version designator="0.13.3">0.13.3</version><source>Zenodo</source><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.13342731">https://doi.org/10.5281/zenodo.13342731</ext-link></element-citation></ref><ref id="bib46"><element-citation publication-type="software"><person-group person-group-type="author"><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Sinha</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2024">2024</year><data-title>NeuroML 2</data-title><version designator="swh:1:rev:50aacc6f0b97cf4a70f6887d4beb6b3b67c32eb6">swh:1:rev:50aacc6f0b97cf4a70f6887d4beb6b3b67c32eb6</version><source>Software Heritage</source><ext-link ext-link-type="uri" xlink:href="https://archive.softwareheritage.org/swh:1:dir:154dee293f0193f24f7a66dc41d07442168ef9b8;origin=https://github.com/NeuroML/NeuroML2;visit=swh:1:snp:afc51d39c98b0e7463ca75776835b8014dc7b4c2;anchor=swh:1:rev:50aacc6f0b97cf4a70f6887d4beb6b3b67c32eb6">https://archive.softwareheritage.org/swh:1:dir:154dee293f0193f24f7a66dc41d07442168ef9b8;origin=https://github.com/NeuroML/NeuroML2;visit=swh:1:snp:afc51d39c98b0e7463ca75776835b8014dc7b4c2;anchor=swh:1:rev:50aacc6f0b97cf4a70f6887d4beb6b3b67c32eb6</ext-link></element-citation></ref><ref id="bib47"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Goddard</surname><given-names>NH</given-names></name><name><surname>Hucka</surname><given-names>M</given-names></name><name><surname>Howell</surname><given-names>F</given-names></name><name><surname>Cornelis</surname><given-names>H</given-names></name><name><surname>Shankar</surname><given-names>K</given-names></name><name><surname>Beeman</surname><given-names>D</given-names></name></person-group><year iso-8601-date="2001">2001</year><article-title>Towards NeuroML: model description methods for collaborative modelling in neuroscience</article-title><source>Philosophical Transactions of the Royal Society of London. Series B, Biological Sciences</source><volume>356</volume><fpage>1209</fpage><lpage>1228</lpage><pub-id pub-id-type="doi">10.1098/rstb.2001.0910</pub-id><pub-id pub-id-type="pmid">11545699</pub-id></element-citation></ref><ref id="bib48"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Gorgolewski</surname><given-names>KJ</given-names></name><name><surname>Auer</surname><given-names>T</given-names></name><name><surname>Calhoun</surname><given-names>VD</given-names></name><name><surname>Craddock</surname><given-names>RC</given-names></name><name><surname>Das</surname><given-names>S</given-names></name><name><surname>Duff</surname><given-names>EP</given-names></name><name><surname>Flandin</surname><given-names>G</given-names></name><name><surname>Ghosh</surname><given-names>SS</given-names></name><name><surname>Glatard</surname><given-names>T</given-names></name><name><surname>Halchenko</surname><given-names>YO</given-names></name><name><surname>Handwerker</surname><given-names>DA</given-names></name><name><surname>Hanke</surname><given-names>M</given-names></name><name><surname>Keator</surname><given-names>D</given-names></name><name><surname>Li</surname><given-names>X</given-names></name><name><surname>Michael</surname><given-names>Z</given-names></name><name><surname>Maumet</surname><given-names>C</given-names></name><name><surname>Nichols</surname><given-names>BN</given-names></name><name><surname>Nichols</surname><given-names>TE</given-names></name><name><surname>Pellman</surname><given-names>J</given-names></name><name><surname>Poline</surname><given-names>J-B</given-names></name><name><surname>Rokem</surname><given-names>A</given-names></name><name><surname>Schaefer</surname><given-names>G</given-names></name><name><surname>Sochat</surname><given-names>V</given-names></name><name><surname>Triplett</surname><given-names>W</given-names></name><name><surname>Turner</surname><given-names>JA</given-names></name><name><surname>Varoquaux</surname><given-names>G</given-names></name><name><surname>Poldrack</surname><given-names>RA</given-names></name></person-group><year iso-8601-date="2016">2016</year><article-title>The brain imaging data structure, a format for organizing and describing outputs of neuroimaging experiments</article-title><source>Scientific Data</source><volume>3</volume><elocation-id>160044</elocation-id><pub-id pub-id-type="doi">10.1038/sdata.2016.44</pub-id><pub-id pub-id-type="pmid">27326542</pub-id></element-citation></ref><ref id="bib49"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Gurnani</surname><given-names>H</given-names></name><name><surname>Silver</surname><given-names>RA</given-names></name></person-group><year iso-8601-date="2021">2021</year><article-title>Multidimensional population activity in an electrically coupled inhibitory circuit in the cerebellar cortex</article-title><source>Neuron</source><volume>109</volume><fpage>1739</fpage><lpage>1753</lpage><pub-id pub-id-type="doi">10.1016/j.neuron.2021.03.027</pub-id><pub-id pub-id-type="pmid">33848473</pub-id></element-citation></ref><ref id="bib50"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Harris</surname><given-names>CR</given-names></name><name><surname>Millman</surname><given-names>KJ</given-names></name><name><surname>van der Walt</surname><given-names>SJ</given-names></name><name><surname>Gommers</surname><given-names>R</given-names></name><name><surname>Virtanen</surname><given-names>P</given-names></name><name><surname>Cournapeau</surname><given-names>D</given-names></name><name><surname>Wieser</surname><given-names>E</given-names></name><name><surname>Taylor</surname><given-names>J</given-names></name><name><surname>Berg</surname><given-names>S</given-names></name><name><surname>Smith</surname><given-names>NJ</given-names></name><name><surname>Kern</surname><given-names>R</given-names></name><name><surname>Picus</surname><given-names>M</given-names></name><name><surname>Hoyer</surname><given-names>S</given-names></name><name><surname>van Kerkwijk</surname><given-names>MH</given-names></name><name><surname>Brett</surname><given-names>M</given-names></name><name><surname>Haldane</surname><given-names>A</given-names></name><name><surname>Del Río</surname><given-names>JF</given-names></name><name><surname>Wiebe</surname><given-names>M</given-names></name><name><surname>Peterson</surname><given-names>P</given-names></name><name><surname>Gérard-Marchant</surname><given-names>P</given-names></name><name><surname>Sheppard</surname><given-names>K</given-names></name><name><surname>Reddy</surname><given-names>T</given-names></name><name><surname>Weckesser</surname><given-names>W</given-names></name><name><surname>Abbasi</surname><given-names>H</given-names></name><name><surname>Gohlke</surname><given-names>C</given-names></name><name><surname>Oliphant</surname><given-names>TE</given-names></name></person-group><year iso-8601-date="2020">2020</year><article-title>Array programming with NumPy</article-title><source>Nature</source><volume>585</volume><fpage>357</fpage><lpage>362</lpage><pub-id pub-id-type="doi">10.1038/s41586-020-2649-2</pub-id><pub-id pub-id-type="pmid">32939066</pub-id></element-citation></ref><ref id="bib51"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Hay</surname><given-names>E</given-names></name><name><surname>Hill</surname><given-names>S</given-names></name><name><surname>Schürmann</surname><given-names>F</given-names></name><name><surname>Markram</surname><given-names>H</given-names></name><name><surname>Segev</surname><given-names>I</given-names></name></person-group><year iso-8601-date="2011">2011</year><article-title>Models of neocortical layer 5b pyramidal cells capturing a wide range of dendritic and perisomatic active properties</article-title><source>PLOS Computational Biology</source><volume>7</volume><elocation-id>e1002107</elocation-id><pub-id pub-id-type="doi">10.1371/journal.pcbi.1002107</pub-id><pub-id pub-id-type="pmid">21829333</pub-id></element-citation></ref><ref id="bib52"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Hindmarsh</surname><given-names>JL</given-names></name><name><surname>Rose</surname><given-names>RM</given-names></name></person-group><year iso-8601-date="1984">1984</year><article-title>A model of neuronal bursting using three coupled first order differential equations</article-title><source>Proceedings of the Royal Society of London. Series B, Biological Sciences</source><volume>221</volume><fpage>87</fpage><lpage>102</lpage><pub-id pub-id-type="doi">10.1098/rspb.1984.0024</pub-id><pub-id pub-id-type="pmid">6144106</pub-id></element-citation></ref><ref id="bib53"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Hines</surname><given-names>ML</given-names></name><name><surname>Carnevale</surname><given-names>NT</given-names></name></person-group><year iso-8601-date="1997">1997</year><article-title>The NEURON simulation environment</article-title><source>Neural Computation</source><volume>9</volume><fpage>1179</fpage><lpage>1209</lpage><pub-id pub-id-type="doi">10.1162/neco.1997.9.6.1179</pub-id></element-citation></ref><ref id="bib54"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Hodgkin</surname><given-names>AL</given-names></name><name><surname>Huxley</surname><given-names>AF</given-names></name></person-group><year iso-8601-date="1952">1952</year><article-title>A quantitative description of membrane current and its application to conduction and excitation in nerve</article-title><source>The Journal of Physiology</source><volume>117</volume><fpage>500</fpage><lpage>544</lpage><pub-id pub-id-type="doi">10.1113/jphysiol.1952.sp004764</pub-id><pub-id pub-id-type="pmid">12991237</pub-id></element-citation></ref><ref id="bib55"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Hucka</surname><given-names>M</given-names></name><name><surname>Finney</surname><given-names>A</given-names></name><name><surname>Sauro</surname><given-names>HM</given-names></name><name><surname>Bolouri</surname><given-names>H</given-names></name><name><surname>Doyle</surname><given-names>JC</given-names></name><name><surname>Kitano</surname><given-names>H</given-names></name><name><surname>Arkin</surname><given-names>AP</given-names></name><name><surname>Bornstein</surname><given-names>BJ</given-names></name><name><surname>Bray</surname><given-names>D</given-names></name><name><surname>Cornish-Bowden</surname><given-names>A</given-names></name><name><surname>Cuellar</surname><given-names>AA</given-names></name><name><surname>Dronov</surname><given-names>S</given-names></name><name><surname>Gilles</surname><given-names>ED</given-names></name><name><surname>Ginkel</surname><given-names>M</given-names></name><name><surname>Gor</surname><given-names>V</given-names></name><name><surname>Goryanin</surname><given-names>II</given-names></name><name><surname>Hedley</surname><given-names>WJ</given-names></name><name><surname>Hodgman</surname><given-names>TC</given-names></name><name><surname>Hofmeyr</surname><given-names>JH</given-names></name><name><surname>Hunter</surname><given-names>PJ</given-names></name><name><surname>Juty</surname><given-names>NS</given-names></name><name><surname>Kasberger</surname><given-names>JL</given-names></name><name><surname>Kremling</surname><given-names>A</given-names></name><name><surname>Kummer</surname><given-names>U</given-names></name><name><surname>Le Novère</surname><given-names>N</given-names></name><name><surname>Loew</surname><given-names>LM</given-names></name><name><surname>Lucio</surname><given-names>D</given-names></name><name><surname>Mendes</surname><given-names>P</given-names></name><name><surname>Minch</surname><given-names>E</given-names></name><name><surname>Mjolsness</surname><given-names>ED</given-names></name><name><surname>Nakayama</surname><given-names>Y</given-names></name><name><surname>Nelson</surname><given-names>MR</given-names></name><name><surname>Nielsen</surname><given-names>PF</given-names></name><name><surname>Sakurada</surname><given-names>T</given-names></name><name><surname>Schaff</surname><given-names>JC</given-names></name><name><surname>Shapiro</surname><given-names>BE</given-names></name><name><surname>Shimizu</surname><given-names>TS</given-names></name><name><surname>Spence</surname><given-names>HD</given-names></name><name><surname>Stelling</surname><given-names>J</given-names></name><name><surname>Takahashi</surname><given-names>K</given-names></name><name><surname>Tomita</surname><given-names>M</given-names></name><name><surname>Wagner</surname><given-names>J</given-names></name><name><surname>Wang</surname><given-names>J</given-names></name><collab>SBML Forum</collab></person-group><year iso-8601-date="2003">2003</year><article-title>The systems biology markup language (SBML): a medium for representation and exchange of biochemical network models</article-title><source>Bioinformatics</source><volume>19</volume><fpage>524</fpage><lpage>531</lpage><pub-id pub-id-type="doi">10.1093/bioinformatics/btg015</pub-id><pub-id pub-id-type="pmid">12611808</pub-id></element-citation></ref><ref id="bib56"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Hucka</surname><given-names>M</given-names></name><name><surname>Nickerson</surname><given-names>DP</given-names></name><name><surname>Bader</surname><given-names>GD</given-names></name><name><surname>Bergmann</surname><given-names>FT</given-names></name><name><surname>Cooper</surname><given-names>J</given-names></name><name><surname>Demir</surname><given-names>E</given-names></name><name><surname>Garny</surname><given-names>A</given-names></name><name><surname>Golebiewski</surname><given-names>M</given-names></name><name><surname>Myers</surname><given-names>CJ</given-names></name><name><surname>Schreiber</surname><given-names>F</given-names></name><name><surname>Waltemath</surname><given-names>D</given-names></name><name><surname>Le Novère</surname><given-names>N</given-names></name></person-group><year iso-8601-date="2015">2015</year><article-title>Promoting coordinated development of community-based information standards for modeling in biology: the COMBINE initiative</article-title><source>Frontiers in Bioengineering and Biotechnology</source><volume>3</volume><elocation-id>19</elocation-id><pub-id pub-id-type="doi">10.3389/fbioe.2015.00019</pub-id><pub-id pub-id-type="pmid">25759811</pub-id></element-citation></ref><ref id="bib57"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Hunter</surname><given-names>JD</given-names></name></person-group><year iso-8601-date="2007">2007</year><article-title>Matplotlib: A 2D graphics environment</article-title><source>Computing in Science &amp; Engineering</source><volume>9</volume><fpage>90</fpage><lpage>95</lpage><pub-id pub-id-type="doi">10.1109/MCSE.2007.55</pub-id></element-citation></ref><ref id="bib58"><element-citation publication-type="web"><person-group person-group-type="author"><collab>INCF</collab></person-group><year iso-8601-date="2023">2023</year><article-title>Role of community standards</article-title><ext-link ext-link-type="uri" xlink:href="https://www.incf.org/role-community-standards">https://www.incf.org/role-community-standards</ext-link><date-in-citation iso-8601-date="2023-11-09">November 9, 2023</date-in-citation></element-citation></ref><ref id="bib59"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Izhikevich</surname><given-names>EM</given-names></name></person-group><year iso-8601-date="2004">2004</year><article-title>Which model to use for cortical spiking neurons?</article-title><source>IEEE Transactions on Neural Networks</source><volume>15</volume><fpage>1063</fpage><lpage>1070</lpage><pub-id pub-id-type="doi">10.1109/TNN.2004.832719</pub-id><pub-id pub-id-type="pmid">15484883</pub-id></element-citation></ref><ref id="bib60"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Kriener</surname><given-names>B</given-names></name><name><surname>Hu</surname><given-names>H</given-names></name><name><surname>Vervaeke</surname><given-names>K</given-names></name></person-group><year iso-8601-date="2022">2022</year><article-title>Parvalbumin interneuron dendrites enhance gamma oscillations</article-title><source>Cell Reports</source><volume>39</volume><elocation-id>110948</elocation-id><pub-id pub-id-type="doi">10.1016/j.celrep.2022.110948</pub-id><pub-id pub-id-type="pmid">35705055</pub-id></element-citation></ref><ref id="bib61"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Lapicque</surname><given-names>L</given-names></name></person-group><year iso-8601-date="1907">1907</year><article-title>Recherches quantitatives sur L’excitation électrique des nerfs traitée comme une polarisation</article-title><source>Journal de Physiologie et de Pathologie Generale</source><volume>9</volume><fpage>620</fpage><lpage>635</lpage></element-citation></ref><ref id="bib62"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Larson</surname><given-names>SD</given-names></name><name><surname>Martone</surname><given-names>ME</given-names></name></person-group><year iso-8601-date="2013">2013</year><article-title>NeuroLex.org: an online framework for neuroscience knowledge</article-title><source>Frontiers in Neuroinformatics</source><volume>7</volume><elocation-id>18</elocation-id><pub-id pub-id-type="doi">10.3389/fninf.2013.00018</pub-id><pub-id pub-id-type="pmid">24009581</pub-id></element-citation></ref><ref id="bib63"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Lloyd</surname><given-names>CM</given-names></name><name><surname>Halstead</surname><given-names>MDB</given-names></name><name><surname>Nielsen</surname><given-names>PF</given-names></name></person-group><year iso-8601-date="2004">2004</year><article-title>CellML: its future, present and past</article-title><source>Progress in Biophysics and Molecular Biology</source><volume>85</volume><fpage>433</fpage><lpage>450</lpage><pub-id pub-id-type="doi">10.1016/j.pbiomolbio.2004.01.004</pub-id></element-citation></ref><ref id="bib64"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Maex</surname><given-names>R</given-names></name><name><surname>Schutter</surname><given-names>ED</given-names></name></person-group><year iso-8601-date="1998">1998</year><article-title>Synchronization of golgi and granule cell firing in a detailed network model of the cerebellar granule cell layer</article-title><source>Journal of Neurophysiology</source><volume>80</volume><fpage>2521</fpage><lpage>2537</lpage><pub-id pub-id-type="doi">10.1152/jn.1998.80.5.2521</pub-id></element-citation></ref><ref id="bib65"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Markram</surname><given-names>H</given-names></name><name><surname>Muller</surname><given-names>E</given-names></name><name><surname>Ramaswamy</surname><given-names>S</given-names></name><name><surname>Reimann</surname><given-names>MW</given-names></name><name><surname>Abdellah</surname><given-names>M</given-names></name><name><surname>Sanchez</surname><given-names>CA</given-names></name><name><surname>Ailamaki</surname><given-names>A</given-names></name><name><surname>Alonso-Nanclares</surname><given-names>L</given-names></name><name><surname>Antille</surname><given-names>N</given-names></name><name><surname>Arsever</surname><given-names>S</given-names></name><name><surname>Kahou</surname><given-names>GAA</given-names></name><name><surname>Berger</surname><given-names>TK</given-names></name><name><surname>Bilgili</surname><given-names>A</given-names></name><name><surname>Buncic</surname><given-names>N</given-names></name><name><surname>Chalimourda</surname><given-names>A</given-names></name><name><surname>Chindemi</surname><given-names>G</given-names></name><name><surname>Courcol</surname><given-names>JD</given-names></name><name><surname>Delalondre</surname><given-names>F</given-names></name><name><surname>Delattre</surname><given-names>V</given-names></name><name><surname>Druckmann</surname><given-names>S</given-names></name><name><surname>Dumusc</surname><given-names>R</given-names></name><name><surname>Dynes</surname><given-names>J</given-names></name><name><surname>Eilemann</surname><given-names>S</given-names></name><name><surname>Gal</surname><given-names>E</given-names></name><name><surname>Gevaert</surname><given-names>ME</given-names></name><name><surname>Ghobril</surname><given-names>JP</given-names></name><name><surname>Gidon</surname><given-names>A</given-names></name><name><surname>Graham</surname><given-names>JW</given-names></name><name><surname>Gupta</surname><given-names>A</given-names></name><name><surname>Haenel</surname><given-names>V</given-names></name><name><surname>Hay</surname><given-names>E</given-names></name><name><surname>Heinis</surname><given-names>T</given-names></name><name><surname>Hernando</surname><given-names>JB</given-names></name><name><surname>Hines</surname><given-names>M</given-names></name><name><surname>Kanari</surname><given-names>L</given-names></name><name><surname>Keller</surname><given-names>D</given-names></name><name><surname>Kenyon</surname><given-names>J</given-names></name><name><surname>Khazen</surname><given-names>G</given-names></name><name><surname>Kim</surname><given-names>Y</given-names></name><name><surname>King</surname><given-names>JG</given-names></name><name><surname>Kisvarday</surname><given-names>Z</given-names></name><name><surname>Kumbhar</surname><given-names>P</given-names></name><name><surname>Lasserre</surname><given-names>S</given-names></name><name><surname>Le Bé</surname><given-names>JV</given-names></name><name><surname>Magalhães</surname><given-names>BRC</given-names></name><name><surname>Merchán-Pérez</surname><given-names>A</given-names></name><name><surname>Meystre</surname><given-names>J</given-names></name><name><surname>Morrice</surname><given-names>BR</given-names></name><name><surname>Muller</surname><given-names>J</given-names></name><name><surname>Muñoz-Céspedes</surname><given-names>A</given-names></name><name><surname>Muralidhar</surname><given-names>S</given-names></name><name><surname>Muthurasa</surname><given-names>K</given-names></name><name><surname>Nachbaur</surname><given-names>D</given-names></name><name><surname>Newton</surname><given-names>TH</given-names></name><name><surname>Nolte</surname><given-names>M</given-names></name><name><surname>Ovcharenko</surname><given-names>A</given-names></name><name><surname>Palacios</surname><given-names>J</given-names></name><name><surname>Pastor</surname><given-names>L</given-names></name><name><surname>Perin</surname><given-names>R</given-names></name><name><surname>Ranjan</surname><given-names>R</given-names></name><name><surname>Riachi</surname><given-names>I</given-names></name><name><surname>Rodríguez</surname><given-names>JR</given-names></name><name><surname>Riquelme</surname><given-names>JL</given-names></name><name><surname>Rössert</surname><given-names>C</given-names></name><name><surname>Sfyrakis</surname><given-names>K</given-names></name><name><surname>Shi</surname><given-names>Y</given-names></name><name><surname>Shillcock</surname><given-names>JC</given-names></name><name><surname>Silberberg</surname><given-names>G</given-names></name><name><surname>Silva</surname><given-names>R</given-names></name><name><surname>Tauheed</surname><given-names>F</given-names></name><name><surname>Telefont</surname><given-names>M</given-names></name><name><surname>Toledo-Rodriguez</surname><given-names>M</given-names></name><name><surname>Tränkler</surname><given-names>T</given-names></name><name><surname>Van Geit</surname><given-names>W</given-names></name><name><surname>Díaz</surname><given-names>JV</given-names></name><name><surname>Walker</surname><given-names>R</given-names></name><name><surname>Wang</surname><given-names>Y</given-names></name><name><surname>Zaninetta</surname><given-names>SM</given-names></name><name><surname>DeFelipe</surname><given-names>J</given-names></name><name><surname>Hill</surname><given-names>SL</given-names></name><name><surname>Segev</surname><given-names>I</given-names></name><name><surname>Schürmann</surname><given-names>F</given-names></name></person-group><year iso-8601-date="2015">2015</year><article-title>Reconstruction and simulation of neocortical microcircuitry</article-title><source>Cell</source><volume>163</volume><fpage>456</fpage><lpage>492</lpage><pub-id pub-id-type="doi">10.1016/j.cell.2015.09.029</pub-id><pub-id pub-id-type="pmid">26451489</pub-id></element-citation></ref><ref id="bib66"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Martone</surname><given-names>M</given-names></name><name><surname>Das</surname><given-names>S</given-names></name></person-group><year iso-8601-date="2019">2019</year><article-title>Call for community review of NeuroML — a model description language for computational neuroscience</article-title><source>F1000 Research</source><volume>8</volume><elocation-id>75</elocation-id><pub-id pub-id-type="doi">10.7490/F1000RESEARCH.1116398.1</pub-id></element-citation></ref><ref id="bib67"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>McDougal</surname><given-names>RA</given-names></name><name><surname>Morse</surname><given-names>TM</given-names></name><name><surname>Carnevale</surname><given-names>T</given-names></name><name><surname>Marenco</surname><given-names>L</given-names></name><name><surname>Wang</surname><given-names>R</given-names></name><name><surname>Migliore</surname><given-names>M</given-names></name><name><surname>Miller</surname><given-names>PL</given-names></name><name><surname>Shepherd</surname><given-names>GM</given-names></name><name><surname>Hines</surname><given-names>ML</given-names></name></person-group><year iso-8601-date="2017">2017</year><article-title>Twenty years of ModelDB and beyond: building essential modeling tools for the future of neuroscience</article-title><source>Journal of Computational Neuroscience</source><volume>42</volume><fpage>1</fpage><lpage>10</lpage><pub-id pub-id-type="doi">10.1007/s10827-016-0623-7</pub-id><pub-id pub-id-type="pmid">27629590</pub-id></element-citation></ref><ref id="bib68"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Mejias</surname><given-names>JF</given-names></name><name><surname>Murray</surname><given-names>JD</given-names></name><name><surname>Kennedy</surname><given-names>H</given-names></name><name><surname>Wang</surname><given-names>XJ</given-names></name></person-group><year iso-8601-date="2016">2016</year><article-title>Feedforward and feedback frequency-dependent interactions in a large-scale laminar network of the primate cortex</article-title><source>Science Advances</source><volume>2</volume><elocation-id>e1601335</elocation-id><pub-id pub-id-type="doi">10.1126/sciadv.1601335</pub-id><pub-id pub-id-type="pmid">28138530</pub-id></element-citation></ref><ref id="bib69"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Migliore</surname><given-names>M</given-names></name><name><surname>Morse</surname><given-names>TM</given-names></name><name><surname>Davison</surname><given-names>AP</given-names></name><name><surname>Marenco</surname><given-names>L</given-names></name><name><surname>Shepherd</surname><given-names>GM</given-names></name><name><surname>Hines</surname><given-names>ML</given-names></name></person-group><year iso-8601-date="2003">2003</year><article-title>ModelDB: making models publicly accessible to support computational neuroscience</article-title><source>Neuroinformatics</source><volume>1</volume><fpage>135</fpage><lpage>139</lpage><pub-id pub-id-type="doi">10.1385/NI:1:1:135</pub-id><pub-id pub-id-type="pmid">15055399</pub-id></element-citation></ref><ref id="bib70"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Migliore</surname><given-names>M</given-names></name><name><surname>Ferrante</surname><given-names>M</given-names></name><name><surname>Ascoli</surname><given-names>GA</given-names></name></person-group><year iso-8601-date="2005">2005</year><article-title>Signal propagation in oblique dendrites of CA1 pyramidal cells</article-title><source>Journal of Neurophysiology</source><volume>94</volume><fpage>4145</fpage><lpage>4155</lpage><pub-id pub-id-type="doi">10.1152/jn.00521.2005</pub-id><pub-id pub-id-type="pmid">16293591</pub-id></element-citation></ref><ref id="bib71"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Migliore</surname><given-names>M</given-names></name><name><surname>Cavarretta</surname><given-names>F</given-names></name><name><surname>Hines</surname><given-names>ML</given-names></name><name><surname>Shepherd</surname><given-names>GM</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>Distributed organization of a brain microcircuit analyzed by three-dimensional modeling: the olfactory bulb</article-title><source>Frontiers in Computational Neuroscience</source><volume>8</volume><elocation-id>50</elocation-id><pub-id pub-id-type="doi">10.3389/fncom.2014.00050</pub-id><pub-id pub-id-type="pmid">24808855</pub-id></element-citation></ref><ref id="bib72"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Morris</surname><given-names>C</given-names></name><name><surname>Lecar</surname><given-names>H</given-names></name></person-group><year iso-8601-date="1981">1981</year><article-title>Voltage oscillations in the barnacle giant muscle fiber</article-title><source>Biophysical Journal</source><volume>35</volume><fpage>193</fpage><lpage>213</lpage><pub-id pub-id-type="doi">10.1016/S0006-3495(81)84782-0</pub-id><pub-id pub-id-type="pmid">7260316</pub-id></element-citation></ref><ref id="bib73"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Muller</surname><given-names>E</given-names></name><name><surname>Bednar</surname><given-names>JA</given-names></name><name><surname>Diesmann</surname><given-names>M</given-names></name><name><surname>Gewaltig</surname><given-names>MO</given-names></name><name><surname>Hines</surname><given-names>M</given-names></name><name><surname>Davison</surname><given-names>AP</given-names></name></person-group><year iso-8601-date="2015">2015</year><article-title>Python in neuroscience</article-title><source>Frontiers in Neuroinformatics</source><volume>9</volume><elocation-id>11</elocation-id><pub-id pub-id-type="doi">10.3389/fninf.2015.00011</pub-id><pub-id pub-id-type="pmid">25926788</pub-id></element-citation></ref><ref id="bib74"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Neal</surname><given-names>ML</given-names></name><name><surname>König</surname><given-names>M</given-names></name><name><surname>Nickerson</surname><given-names>D</given-names></name><name><surname>Mısırlı</surname><given-names>G</given-names></name><name><surname>Kalbasi</surname><given-names>R</given-names></name><name><surname>Dräger</surname><given-names>A</given-names></name><name><surname>Atalag</surname><given-names>K</given-names></name><name><surname>Chelliah</surname><given-names>V</given-names></name><name><surname>Cooling</surname><given-names>MT</given-names></name><name><surname>Cook</surname><given-names>DL</given-names></name><name><surname>Crook</surname><given-names>S</given-names></name><name><surname>de Alba</surname><given-names>M</given-names></name><name><surname>Friedman</surname><given-names>SH</given-names></name><name><surname>Garny</surname><given-names>A</given-names></name><name><surname>Gennari</surname><given-names>JH</given-names></name><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Golebiewski</surname><given-names>M</given-names></name><name><surname>Hucka</surname><given-names>M</given-names></name><name><surname>Juty</surname><given-names>N</given-names></name><name><surname>Myers</surname><given-names>C</given-names></name><name><surname>Olivier</surname><given-names>BG</given-names></name><name><surname>Sauro</surname><given-names>HM</given-names></name><name><surname>Scharm</surname><given-names>M</given-names></name><name><surname>Snoep</surname><given-names>JL</given-names></name><name><surname>Touré</surname><given-names>V</given-names></name><name><surname>Wipat</surname><given-names>A</given-names></name><name><surname>Wolkenhauer</surname><given-names>O</given-names></name><name><surname>Waltemath</surname><given-names>D</given-names></name></person-group><year iso-8601-date="2019">2019</year><article-title>Harmonizing semantic annotations for computational models in biology</article-title><source>Briefings in Bioinformatics</source><volume>20</volume><fpage>540</fpage><lpage>550</lpage><pub-id pub-id-type="doi">10.1093/bib/bby087</pub-id><pub-id pub-id-type="pmid">30462164</pub-id></element-citation></ref><ref id="bib75"><element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Omar</surname><given-names>C</given-names></name><name><surname>Aldrich</surname><given-names>J</given-names></name><name><surname>Gerkin</surname><given-names>RC</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>Collaborative infrastructure for test-driven scientific model validation</article-title><conf-name>ICSE ’14 Association for Computing Machinery</conf-name><pub-id pub-id-type="doi">10.1145/2591062.2591129</pub-id></element-citation></ref><ref id="bib76"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Panagiotou</surname><given-names>S</given-names></name><name><surname>Sidiropoulos</surname><given-names>H</given-names></name><name><surname>Soudris</surname><given-names>D</given-names></name><name><surname>Negrello</surname><given-names>M</given-names></name><name><surname>Strydis</surname><given-names>C</given-names></name></person-group><year iso-8601-date="2022">2022</year><article-title>EDEN: a high-performance, general-purpose, NeuroML-based neural simulator</article-title><source>Frontiers in Neuroinformatics</source><volume>16</volume><elocation-id>724336</elocation-id><pub-id pub-id-type="doi">10.3389/fninf.2022.724336</pub-id></element-citation></ref><ref id="bib77"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Pinsky</surname><given-names>PF</given-names></name><name><surname>Rinzel</surname><given-names>J</given-names></name></person-group><year iso-8601-date="1994">1994</year><article-title>Intrinsic and network rhythmogenesis in a reduced Traub model for CA3 neurons</article-title><source>Journal of Computational Neuroscience</source><volume>1</volume><fpage>39</fpage><lpage>60</lpage><pub-id pub-id-type="doi">10.1007/BF00962717</pub-id><pub-id pub-id-type="pmid">8792224</pub-id></element-citation></ref><ref id="bib78"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Poirazi</surname><given-names>P</given-names></name><name><surname>Papoutsi</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2020">2020</year><article-title>Illuminating dendritic function with computational models</article-title><source>Nature Reviews Neuroscience</source><volume>21</volume><fpage>303</fpage><lpage>321</lpage><pub-id pub-id-type="doi">10.1038/s41583-020-0301-7</pub-id></element-citation></ref><ref id="bib79"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Pospischil</surname><given-names>M</given-names></name><name><surname>Toledo-Rodriguez</surname><given-names>M</given-names></name><name><surname>Monier</surname><given-names>C</given-names></name><name><surname>Piwkowska</surname><given-names>Z</given-names></name><name><surname>Bal</surname><given-names>T</given-names></name><name><surname>Frégnac</surname><given-names>Y</given-names></name><name><surname>Markram</surname><given-names>H</given-names></name><name><surname>Destexhe</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2008">2008</year><article-title>Minimal Hodgkin-Huxley type models for different classes of cortical and thalamic neurons</article-title><source>Biological Cybernetics</source><volume>99</volume><fpage>427</fpage><lpage>441</lpage><pub-id pub-id-type="doi">10.1007/s00422-008-0263-8</pub-id><pub-id pub-id-type="pmid">19011929</pub-id></element-citation></ref><ref id="bib80"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Potjans</surname><given-names>TC</given-names></name><name><surname>Diesmann</surname><given-names>M</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>The cell-type specific cortical microcircuit: relating structure and activity in a full-scale spiking network model</article-title><source>Cerebral Cortex</source><volume>24</volume><fpage>785</fpage><lpage>806</lpage><pub-id pub-id-type="doi">10.1093/cercor/bhs358</pub-id></element-citation></ref><ref id="bib81"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Prinz</surname><given-names>AA</given-names></name><name><surname>Bucher</surname><given-names>D</given-names></name><name><surname>Marder</surname><given-names>E</given-names></name></person-group><year iso-8601-date="2004">2004</year><article-title>Similar network activity from disparate circuit parameters</article-title><source>Nature Neuroscience</source><volume>7</volume><fpage>1345</fpage><lpage>1352</lpage><pub-id pub-id-type="doi">10.1038/nn1352</pub-id></element-citation></ref><ref id="bib82"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Ranjan</surname><given-names>R</given-names></name><name><surname>Khazen</surname><given-names>G</given-names></name><name><surname>Gambazzi</surname><given-names>L</given-names></name><name><surname>Ramaswamy</surname><given-names>S</given-names></name><name><surname>Hill</surname><given-names>SL</given-names></name><name><surname>Schürmann</surname><given-names>F</given-names></name><name><surname>Markram</surname><given-names>H</given-names></name></person-group><year iso-8601-date="2011">2011</year><article-title>Channelpedia: an integrative and interactive database for ion channels</article-title><source>Frontiers in Neuroinformatics</source><volume>5</volume><elocation-id>36</elocation-id><pub-id pub-id-type="doi">10.3389/fninf.2011.00036</pub-id><pub-id pub-id-type="pmid">22232598</pub-id></element-citation></ref><ref id="bib83"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Ray</surname><given-names>S</given-names></name><name><surname>Bhalla</surname><given-names>US</given-names></name></person-group><year iso-8601-date="2008">2008</year><article-title>PyMOOSE: interoperable scripting in python for MOOSE</article-title><source>Frontiers in Neuroinformatics</source><volume>2</volume><elocation-id>6</elocation-id><pub-id pub-id-type="doi">10.3389/neuro.11.006.2008</pub-id><pub-id pub-id-type="pmid">19129924</pub-id></element-citation></ref><ref id="bib84"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Ray</surname><given-names>S</given-names></name><name><surname>Aldworth</surname><given-names>ZN</given-names></name><name><surname>Stopfer</surname><given-names>MA</given-names></name></person-group><year iso-8601-date="2020">2020</year><article-title>Feedback inhibition and its control in an insect olfactory circuit</article-title><source>eLife</source><volume>9</volume><elocation-id>e53281</elocation-id><pub-id pub-id-type="doi">10.7554/eLife.53281</pub-id><pub-id pub-id-type="pmid">32163034</pub-id></element-citation></ref><ref id="bib85"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Rossant</surname><given-names>C</given-names></name><name><surname>Goodman</surname><given-names>DFM</given-names></name><name><surname>Fontaine</surname><given-names>B</given-names></name><name><surname>Platkiewicz</surname><given-names>J</given-names></name><name><surname>Magnusson</surname><given-names>AK</given-names></name><name><surname>Brette</surname><given-names>R</given-names></name></person-group><year iso-8601-date="2011">2011</year><article-title>Fitting neuron models to spike trains</article-title><source>Frontiers in Neuroscience</source><volume>5</volume><elocation-id>9</elocation-id><pub-id pub-id-type="doi">10.3389/fnins.2011.00009</pub-id></element-citation></ref><ref id="bib86"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Rothganger</surname><given-names>F</given-names></name><name><surname>Warrender</surname><given-names>CE</given-names></name><name><surname>Trumbo</surname><given-names>D</given-names></name><name><surname>Aimone</surname><given-names>JB</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>N2A: a computational tool for modeling from neurons to algorithms</article-title><source>Frontiers in Neural Circuits</source><volume>8</volume><elocation-id>1</elocation-id><pub-id pub-id-type="doi">10.3389/fncir.2014.00001</pub-id><pub-id pub-id-type="pmid">24478635</pub-id></element-citation></ref><ref id="bib87"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Sadeh</surname><given-names>S</given-names></name><name><surname>Silver</surname><given-names>RA</given-names></name><name><surname>Mrsic-Flogel</surname><given-names>TD</given-names></name><name><surname>Muir</surname><given-names>DR</given-names></name></person-group><year iso-8601-date="2017">2017</year><article-title>Assessing the role of inhibition in stabilizing neocortical networks requires large-scale perturbation of the inhibitory population</article-title><source>The Journal of Neuroscience</source><volume>37</volume><fpage>12050</fpage><lpage>12067</lpage><pub-id pub-id-type="doi">10.1523/JNEUROSCI.0963-17.2017</pub-id><pub-id pub-id-type="pmid">29074575</pub-id></element-citation></ref><ref id="bib88"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Shaikh</surname><given-names>B</given-names></name><name><surname>Smith</surname><given-names>LP</given-names></name><name><surname>Vasilescu</surname><given-names>D</given-names></name><name><surname>Marupilla</surname><given-names>G</given-names></name><name><surname>Wilson</surname><given-names>M</given-names></name><name><surname>Agmon</surname><given-names>E</given-names></name><name><surname>Agnew</surname><given-names>H</given-names></name><name><surname>Andrews</surname><given-names>SS</given-names></name><name><surname>Anwar</surname><given-names>A</given-names></name><name><surname>Beber</surname><given-names>ME</given-names></name><name><surname>Bergmann</surname><given-names>FT</given-names></name><name><surname>Brooks</surname><given-names>D</given-names></name><name><surname>Brusch</surname><given-names>L</given-names></name><name><surname>Calzone</surname><given-names>L</given-names></name><name><surname>Choi</surname><given-names>K</given-names></name><name><surname>Cooper</surname><given-names>J</given-names></name><name><surname>Detloff</surname><given-names>J</given-names></name><name><surname>Drawert</surname><given-names>B</given-names></name><name><surname>Dumontier</surname><given-names>M</given-names></name><name><surname>Ermentrout</surname><given-names>GB</given-names></name><name><surname>Faeder</surname><given-names>JR</given-names></name><name><surname>Freiburger</surname><given-names>AP</given-names></name><name><surname>Fröhlich</surname><given-names>F</given-names></name><name><surname>Funahashi</surname><given-names>A</given-names></name><name><surname>Garny</surname><given-names>A</given-names></name><name><surname>Gennari</surname><given-names>JH</given-names></name><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Goelzer</surname><given-names>A</given-names></name><name><surname>Haiman</surname><given-names>Z</given-names></name><name><surname>Hasenauer</surname><given-names>J</given-names></name><name><surname>Hellerstein</surname><given-names>JL</given-names></name><name><surname>Hermjakob</surname><given-names>H</given-names></name><name><surname>Hoops</surname><given-names>S</given-names></name><name><surname>Ison</surname><given-names>JC</given-names></name><name><surname>Jahn</surname><given-names>D</given-names></name><name><surname>Jakubowski</surname><given-names>HV</given-names></name><name><surname>Jordan</surname><given-names>R</given-names></name><name><surname>Kalaš</surname><given-names>M</given-names></name><name><surname>König</surname><given-names>M</given-names></name><name><surname>Liebermeister</surname><given-names>W</given-names></name><name><surname>Sheriff</surname><given-names>RSM</given-names></name><name><surname>Mandal</surname><given-names>S</given-names></name><name><surname>McDougal</surname><given-names>R</given-names></name><name><surname>Medley</surname><given-names>JK</given-names></name><name><surname>Mendes</surname><given-names>P</given-names></name><name><surname>Müller</surname><given-names>R</given-names></name><name><surname>Myers</surname><given-names>CJ</given-names></name><name><surname>Naldi</surname><given-names>A</given-names></name><name><surname>Nguyen</surname><given-names>TVN</given-names></name><name><surname>Nickerson</surname><given-names>DP</given-names></name><name><surname>Olivier</surname><given-names>BG</given-names></name><name><surname>Patoliya</surname><given-names>D</given-names></name><name><surname>Paulevé</surname><given-names>L</given-names></name><name><surname>Petzold</surname><given-names>LR</given-names></name><name><surname>Priya</surname><given-names>A</given-names></name><name><surname>Rampadarath</surname><given-names>AK</given-names></name><name><surname>Rohwer</surname><given-names>JM</given-names></name><name><surname>Saglam</surname><given-names>AS</given-names></name><name><surname>Singh</surname><given-names>D</given-names></name><name><surname>Sinha</surname><given-names>A</given-names></name><name><surname>Snoep</surname><given-names>J</given-names></name><name><surname>Sorby</surname><given-names>H</given-names></name><name><surname>Spangler</surname><given-names>R</given-names></name><name><surname>Starruß</surname><given-names>J</given-names></name><name><surname>Thomas</surname><given-names>PJ</given-names></name><name><surname>van Niekerk</surname><given-names>D</given-names></name><name><surname>Weindl</surname><given-names>D</given-names></name><name><surname>Zhang</surname><given-names>F</given-names></name><name><surname>Zhukova</surname><given-names>A</given-names></name><name><surname>Goldberg</surname><given-names>AP</given-names></name><name><surname>Schaff</surname><given-names>JC</given-names></name><name><surname>Blinov</surname><given-names>ML</given-names></name><name><surname>Sauro</surname><given-names>HM</given-names></name><name><surname>Moraru</surname><given-names>II</given-names></name><name><surname>Karr</surname><given-names>JR</given-names></name></person-group><year iso-8601-date="2022">2022</year><article-title>BioSimulators: a central registry of simulation engines and services for recommending specific tools</article-title><source>Nucleic Acids Research</source><volume>50</volume><fpage>W108</fpage><lpage>W114</lpage><pub-id pub-id-type="doi">10.1093/nar/gkac331</pub-id><pub-id pub-id-type="pmid">35524558</pub-id></element-citation></ref><ref id="bib89"><element-citation publication-type="software"><person-group person-group-type="author"><name><surname>Sinha</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2023">2023</year><data-title>NeuralEnsemble/libneuroml</data-title><version designator="v0.5.5">v0.5.5</version><source>Zenodo</source><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.8364786">https://doi.org/10.5281/zenodo.8364786</ext-link></element-citation></ref><ref id="bib90"><element-citation publication-type="software"><person-group person-group-type="author"><name><surname>Sinha</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2024">2024</year><data-title>NeuroML/pyneuroml</data-title><version designator="v1.2.5">v1.2.5</version><source>Zenodo</source><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.10783062">https://doi.org/10.5281/zenodo.10783062</ext-link></element-citation></ref><ref id="bib91"><element-citation publication-type="software"><person-group person-group-type="author"><name><surname>Sinha</surname><given-names>A</given-names></name><name><surname>Garrett</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2024">2024</year><data-title>inspyred -- A framework for creating bio-inspired computational intelligence algorithms in python</data-title><version designator="1d0089c">1d0089c</version><source>GitHub</source><ext-link ext-link-type="uri" xlink:href="https://github.com/aarongarrett/inspyred">https://github.com/aarongarrett/inspyred</ext-link></element-citation></ref><ref id="bib92"><element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Sivagnanam</surname><given-names>S</given-names></name></person-group><year iso-8601-date="2013">2013</year><source>Introducing the Neuroscience Gateway</source><publisher-name>IWSG</publisher-name></element-citation></ref><ref id="bib93"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Smith</surname><given-names>SL</given-names></name><name><surname>Smith</surname><given-names>IT</given-names></name><name><surname>Branco</surname><given-names>T</given-names></name><name><surname>Häusser</surname><given-names>M</given-names></name></person-group><year iso-8601-date="2013">2013</year><article-title>Dendritic spikes enhance stimulus selectivity in cortical neurons in vivo</article-title><source>Nature</source><volume>503</volume><fpage>115</fpage><lpage>120</lpage><pub-id pub-id-type="doi">10.1038/nature12600</pub-id><pub-id pub-id-type="pmid">24162850</pub-id></element-citation></ref><ref id="bib94"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Solinas</surname><given-names>S</given-names></name><name><surname>Forti</surname><given-names>L</given-names></name><name><surname>Cesana</surname><given-names>E</given-names></name><name><surname>Mapelli</surname><given-names>J</given-names></name><name><surname>De Schutter</surname><given-names>E</given-names></name><name><surname>D’Angelo</surname><given-names>E</given-names></name></person-group><year iso-8601-date="2007">2007</year><article-title>Computational reconstruction of pacemaking and intrinsic electroresponsiveness in cerebellar Golgi cells</article-title><source>Frontiers in Cellular Neuroscience</source><volume>1</volume><elocation-id>2</elocation-id><pub-id pub-id-type="doi">10.3389/neuro.03.002.2007</pub-id><pub-id pub-id-type="pmid">18946520</pub-id></element-citation></ref><ref id="bib95"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Stimberg</surname><given-names>M</given-names></name><name><surname>Brette</surname><given-names>R</given-names></name><name><surname>Goodman</surname><given-names>DF</given-names></name></person-group><year iso-8601-date="2019">2019</year><article-title>Brian 2, an intuitive and efficient neural simulator</article-title><source>eLife</source><volume>8</volume><elocation-id>e47314</elocation-id><pub-id pub-id-type="doi">10.7554/eLife.47314</pub-id></element-citation></ref><ref id="bib96"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Teeters</surname><given-names>JL</given-names></name><name><surname>Godfrey</surname><given-names>K</given-names></name><name><surname>Young</surname><given-names>R</given-names></name><name><surname>Dang</surname><given-names>C</given-names></name><name><surname>Friedsam</surname><given-names>C</given-names></name><name><surname>Wark</surname><given-names>B</given-names></name><name><surname>Asari</surname><given-names>H</given-names></name><name><surname>Peron</surname><given-names>S</given-names></name><name><surname>Li</surname><given-names>N</given-names></name><name><surname>Peyrache</surname><given-names>A</given-names></name><name><surname>Denisov</surname><given-names>G</given-names></name><name><surname>Siegle</surname><given-names>JH</given-names></name><name><surname>Olsen</surname><given-names>SR</given-names></name><name><surname>Martin</surname><given-names>C</given-names></name><name><surname>Chun</surname><given-names>M</given-names></name><name><surname>Tripathy</surname><given-names>S</given-names></name><name><surname>Blanche</surname><given-names>TJ</given-names></name><name><surname>Harris</surname><given-names>K</given-names></name><name><surname>Buzsáki</surname><given-names>G</given-names></name><name><surname>Koch</surname><given-names>C</given-names></name><name><surname>Meister</surname><given-names>M</given-names></name><name><surname>Svoboda</surname><given-names>K</given-names></name><name><surname>Sommer</surname><given-names>FT</given-names></name></person-group><year iso-8601-date="2015">2015</year><article-title>Neurodata without borders: creating a common data format for neurophysiology</article-title><source>Neuron</source><volume>88</volume><fpage>629</fpage><lpage>634</lpage><pub-id pub-id-type="doi">10.1016/j.neuron.2015.10.025</pub-id></element-citation></ref><ref id="bib97"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Traub</surname><given-names>RD</given-names></name><name><surname>Contreras</surname><given-names>D</given-names></name><name><surname>Cunningham</surname><given-names>MO</given-names></name><name><surname>Murray</surname><given-names>H</given-names></name><name><surname>LeBeau</surname><given-names>FEN</given-names></name><name><surname>Roopun</surname><given-names>A</given-names></name><name><surname>Bibbig</surname><given-names>A</given-names></name><name><surname>Wilent</surname><given-names>WB</given-names></name><name><surname>Higley</surname><given-names>MJ</given-names></name><name><surname>Whittington</surname><given-names>MA</given-names></name></person-group><year iso-8601-date="2005">2005</year><article-title>Single-column thalamocortical network model exhibiting gamma oscillations, sleep spindles, and epileptogenic bursts</article-title><source>Journal of Neurophysiology</source><volume>93</volume><fpage>2194</fpage><lpage>2232</lpage><pub-id pub-id-type="doi">10.1152/jn.00983.2004</pub-id><pub-id pub-id-type="pmid">15525801</pub-id></element-citation></ref><ref id="bib98"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Van Geit</surname><given-names>W</given-names></name><name><surname>Gevaert</surname><given-names>M</given-names></name><name><surname>Chindemi</surname><given-names>G</given-names></name><name><surname>Rössert</surname><given-names>C</given-names></name><name><surname>Courcol</surname><given-names>JD</given-names></name><name><surname>Muller</surname><given-names>EB</given-names></name><name><surname>Schürmann</surname><given-names>F</given-names></name><name><surname>Segev</surname><given-names>I</given-names></name><name><surname>Markram</surname><given-names>H</given-names></name></person-group><year iso-8601-date="2016">2016</year><article-title>BluePyOpt: leveraging open source software and cloud infrastructure to optimise model parameters in neuroscience</article-title><source>Frontiers in Neuroinformatics</source><volume>10</volume><elocation-id>17</elocation-id><pub-id pub-id-type="doi">10.3389/fninf.2016.00017</pub-id><pub-id pub-id-type="pmid">27375471</pub-id></element-citation></ref><ref id="bib99"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Vella</surname><given-names>M</given-names></name><name><surname>Cannon</surname><given-names>RC</given-names></name><name><surname>Crook</surname><given-names>S</given-names></name><name><surname>Davison</surname><given-names>AP</given-names></name><name><surname>Ganapathy</surname><given-names>G</given-names></name><name><surname>Robinson</surname><given-names>HPC</given-names></name><name><surname>Silver</surname><given-names>RA</given-names></name><name><surname>Gleeson</surname><given-names>P</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>libNeuroML and PyLEMS: using Python to combine procedural and declarative modeling approaches in computational neuroscience</article-title><source>Frontiers in Neuroinformatics</source><volume>8</volume><elocation-id>38</elocation-id><pub-id pub-id-type="doi">10.3389/fninf.2014.00038</pub-id></element-citation></ref><ref id="bib100"><element-citation publication-type="software"><person-group person-group-type="author"><name><surname>Vella</surname><given-names>M</given-names></name><name><surname>Gleeson</surname><given-names>P</given-names></name></person-group><year iso-8601-date="2023">2023</year><data-title>Neurotune</data-title><version designator="66ba110">66ba110</version><source>GitHub</source><ext-link ext-link-type="uri" xlink:href="https://github.com/NeuralEnsemble/neurotune">https://github.com/NeuralEnsemble/neurotune</ext-link></element-citation></ref><ref id="bib101"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Vervaeke</surname><given-names>K</given-names></name><name><surname>Lőrincz</surname><given-names>A</given-names></name><name><surname>Gleeson</surname><given-names>P</given-names></name><name><surname>Farinella</surname><given-names>M</given-names></name><name><surname>Nusser</surname><given-names>Z</given-names></name><name><surname>Silver</surname><given-names>RA</given-names></name></person-group><year iso-8601-date="2010">2010</year><article-title>Rapid desynchronization of an electrically coupled interneuron network with sparse excitatory synaptic input</article-title><source>Neuron</source><volume>67</volume><fpage>435</fpage><lpage>451</lpage><pub-id pub-id-type="doi">10.1016/j.neuron.2010.06.028</pub-id></element-citation></ref><ref id="bib102"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Waltemath</surname><given-names>D</given-names></name><name><surname>Adams</surname><given-names>R</given-names></name><name><surname>Bergmann</surname><given-names>FT</given-names></name><name><surname>Hucka</surname><given-names>M</given-names></name><name><surname>Kolpakov</surname><given-names>F</given-names></name><name><surname>Miller</surname><given-names>AK</given-names></name><name><surname>Moraru</surname><given-names>II</given-names></name><name><surname>Nickerson</surname><given-names>D</given-names></name><name><surname>Sahle</surname><given-names>S</given-names></name><name><surname>Snoep</surname><given-names>JL</given-names></name><name><surname>Le Novère</surname><given-names>N</given-names></name></person-group><year iso-8601-date="2011">2011</year><article-title>Reproducible computational biology experiments with SED-ML--the simulation experiment description markup language</article-title><source>BMC Systems Biology</source><volume>5</volume><elocation-id>198</elocation-id><pub-id pub-id-type="doi">10.1186/1752-0509-5-198</pub-id><pub-id pub-id-type="pmid">22172142</pub-id></element-citation></ref><ref id="bib103"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname><given-names>XJ</given-names></name><name><surname>Buzsáki</surname><given-names>G</given-names></name></person-group><year iso-8601-date="1996">1996</year><article-title>Gamma oscillation by synaptic inhibition in a hippocampal interneuronal network model</article-title><source>The Journal of Neuroscience</source><volume>16</volume><fpage>6402</fpage><lpage>6413</lpage><pub-id pub-id-type="doi">10.1523/JNEUROSCI.16-20-06402.1996</pub-id><pub-id pub-id-type="pmid">8815919</pub-id></element-citation></ref><ref id="bib104"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Wilkinson</surname><given-names>MD</given-names></name><name><surname>Dumontier</surname><given-names>M</given-names></name><name><surname>Aalbersberg</surname><given-names>IJJ</given-names></name><name><surname>Appleton</surname><given-names>G</given-names></name><name><surname>Axton</surname><given-names>M</given-names></name><name><surname>Baak</surname><given-names>A</given-names></name><name><surname>Blomberg</surname><given-names>N</given-names></name><name><surname>Boiten</surname><given-names>JW</given-names></name><name><surname>da Silva Santos</surname><given-names>LB</given-names></name><name><surname>Bourne</surname><given-names>PE</given-names></name><name><surname>Bouwman</surname><given-names>J</given-names></name><name><surname>Brookes</surname><given-names>AJ</given-names></name><name><surname>Clark</surname><given-names>T</given-names></name><name><surname>Crosas</surname><given-names>M</given-names></name><name><surname>Dillo</surname><given-names>I</given-names></name><name><surname>Dumon</surname><given-names>O</given-names></name><name><surname>Edmunds</surname><given-names>S</given-names></name><name><surname>Evelo</surname><given-names>CT</given-names></name><name><surname>Finkers</surname><given-names>R</given-names></name><name><surname>Gonzalez-Beltran</surname><given-names>A</given-names></name><name><surname>Gray</surname><given-names>AJG</given-names></name><name><surname>Groth</surname><given-names>P</given-names></name><name><surname>Goble</surname><given-names>C</given-names></name><name><surname>Grethe</surname><given-names>JS</given-names></name><name><surname>Heringa</surname><given-names>J</given-names></name><name><surname>’t Hoen</surname><given-names>PAC</given-names></name><name><surname>Hooft</surname><given-names>R</given-names></name><name><surname>Kuhn</surname><given-names>T</given-names></name><name><surname>Kok</surname><given-names>R</given-names></name><name><surname>Kok</surname><given-names>J</given-names></name><name><surname>Lusher</surname><given-names>SJ</given-names></name><name><surname>Martone</surname><given-names>ME</given-names></name><name><surname>Mons</surname><given-names>A</given-names></name><name><surname>Packer</surname><given-names>AL</given-names></name><name><surname>Persson</surname><given-names>B</given-names></name><name><surname>Rocca-Serra</surname><given-names>P</given-names></name><name><surname>Roos</surname><given-names>M</given-names></name><name><surname>van Schaik</surname><given-names>R</given-names></name><name><surname>Sansone</surname><given-names>SA</given-names></name><name><surname>Schultes</surname><given-names>E</given-names></name><name><surname>Sengstag</surname><given-names>T</given-names></name><name><surname>Slater</surname><given-names>T</given-names></name><name><surname>Strawn</surname><given-names>G</given-names></name><name><surname>Swertz</surname><given-names>MA</given-names></name><name><surname>Thompson</surname><given-names>M</given-names></name><name><surname>van der Lei</surname><given-names>J</given-names></name><name><surname>van Mulligen</surname><given-names>E</given-names></name><name><surname>Velterop</surname><given-names>J</given-names></name><name><surname>Waagmeester</surname><given-names>A</given-names></name><name><surname>Wittenburg</surname><given-names>P</given-names></name><name><surname>Wolstencroft</surname><given-names>K</given-names></name><name><surname>Zhao</surname><given-names>J</given-names></name><name><surname>Mons</surname><given-names>B</given-names></name></person-group><year iso-8601-date="2016">2016</year><article-title>The FAIR guiding principles for scientific data management and stewardship</article-title><source>Scientific Data</source><volume>3</volume><elocation-id>160018</elocation-id><pub-id pub-id-type="doi">10.1038/sdata.2016.18</pub-id><pub-id pub-id-type="pmid">26978244</pub-id></element-citation></ref><ref id="bib105"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Wilson</surname><given-names>HR</given-names></name><name><surname>Cowan</surname><given-names>JD</given-names></name></person-group><year iso-8601-date="1972">1972</year><article-title>Excitatory and inhibitory interactions in localized populations of model neurons</article-title><source>Biophysical Journal</source><volume>12</volume><fpage>1</fpage><lpage>24</lpage><pub-id pub-id-type="doi">10.1016/S0006-3495(72)86068-5</pub-id><pub-id pub-id-type="pmid">4332108</pub-id></element-citation></ref><ref id="bib106"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Yao</surname><given-names>HK</given-names></name><name><surname>Guet-McCreight</surname><given-names>A</given-names></name><name><surname>Mazza</surname><given-names>F</given-names></name><name><surname>Moradi Chameh</surname><given-names>H</given-names></name><name><surname>Prevot</surname><given-names>TD</given-names></name><name><surname>Griffiths</surname><given-names>JD</given-names></name><name><surname>Tripathy</surname><given-names>SJ</given-names></name><name><surname>Valiante</surname><given-names>TA</given-names></name><name><surname>Sibille</surname><given-names>E</given-names></name><name><surname>Hay</surname><given-names>E</given-names></name></person-group><year iso-8601-date="2022">2022</year><article-title>Reduced inhibition in depression impairs stimulus processing in human cortical microcircuits</article-title><source>Cell Reports</source><volume>38</volume><elocation-id>110232</elocation-id><pub-id pub-id-type="doi">10.1016/j.celrep.2021.110232</pub-id><pub-id pub-id-type="pmid">35021088</pub-id></element-citation></ref></ref-list></back><sub-article article-type="editor-report" id="sa0"><front-stub><article-id pub-id-type="doi">10.7554/eLife.95135.3.sa0</article-id><title-group><article-title>eLife Assessment</article-title></title-group><contrib-group><contrib contrib-type="author"><name><surname>Muller</surname><given-names>Eilif B</given-names></name><role specific-use="editor">Reviewing Editor</role><aff><institution>University of Montreal</institution><country>Canada</country></aff></contrib></contrib-group><kwd-group kwd-group-type="evidence-strength"><kwd>Convincing</kwd></kwd-group><kwd-group kwd-group-type="claim-importance"><kwd>Important</kwd></kwd-group></front-stub><body><p>This <bold>important</bold> work presents a consolidated overview of the NeuroML2 open community standard and provides <bold>convincing</bold> evidence for its central role within a broader software ecosystem for the development of neuronal models that are open, shareable, reproducible, and interoperable. A major strength of the work is the continued development over more than two decades to establish, maintain, and adapt this standard to meet the evolving needs of the field. This work is of broad interest to the sub-cellular, cellular, computational, and systems neuroscience communities undertaking studies involving theory, modeling, and simulation.</p></body></sub-article><sub-article article-type="referee-report" id="sa1"><front-stub><article-id pub-id-type="doi">10.7554/eLife.95135.3.sa1</article-id><title-group><article-title>Reviewer #1 (Public review):</article-title></title-group><contrib-group><contrib contrib-type="author"><anonymous/><role specific-use="referee">Reviewer</role></contrib></contrib-group></front-stub><body><p>Summary:</p><p>The manuscript gives a broad overview of how to write NeuroML, a brief description of how to use it with different simulators and for different purposes - cells to networks, simulation, optimization and analysis. From this perspective it can be an extremely useful document to introduce new users to NeuroML.</p><p>Strengths:</p><p>The modularity of NeuroML is indeed a great advantage. For example, the ability to specify the channel file allows different channels to be used with different morphologies without redundancy. The hierarchical nature of NeuroML also is commendable, and well illustrated.</p><p>The number of tools available to work with NeuroML is impressive.</p><p>Having a python API and providing examples using this API is fantastic. Exporting to NeuroML from python is also a great feature.</p><p>The tutorials should assist additional scientists in adopting NeuroML.</p><p>Weaknesses:</p><p>None noted.</p></body></sub-article><sub-article article-type="referee-report" id="sa2"><front-stub><article-id pub-id-type="doi">10.7554/eLife.95135.3.sa2</article-id><title-group><article-title>Reviewer #2 (Public review):</article-title></title-group><contrib-group><contrib contrib-type="author"><anonymous/><role specific-use="referee">Reviewer</role></contrib></contrib-group></front-stub><body><p>Summary:</p><p>Developing neuronal models that are shareable, reproducible, and interoperable allows the neuroscience community to make better use of published models and to collaborate more effectively. In this manuscript, the authors present a consolidated overview of the NeuroML model description system along with its associated tools and workflows. They describe where different components of this ecosystem lay along the model development pathway and highlight resources, including documentation and tutorials, to help users employ this system.</p><p>Strengths:</p><p>The manuscript is well-organized and clearly written. It effectively uses the delineated model development life cycle steps, presented in Figure 1, to organize its descriptions of the different components and tools relating to NeuroML. It uses this framework to cover the breadth of the software ecosystem and categorize its various elements. The NeuroML format is clearly described, and the authors outline the different benefits to its particular construction. As primarily a means of describing models, NeuroML also depends on many other software components to be of high utility to computational neuroscientists; these include simulators (ones that both pre-date NeuroML and those developed afterwards), visualization tools, and model databases.</p><p>Overall, the rationale for the approach NeuroML has taken is convincing and well-described. The pointers to existing documentation, guides, and the example usages presented within the manuscript are useful starting points for potential new users. This manuscript can also serve to inform potential users of features or aspect of the ecosystem that they may have been unaware of, which could lower obstacles to adoption. While much of what is presented is not new to this manuscript, it still serves as a useful resource for the community looking for information about an established, but perhaps daunting, set of computational tools.</p><p>Weaknesses:</p><p>The manuscript in large part catalogs the different tools and functionalities that have been produced through the long development cycle of NeuroML. Overall, the interoperability of NeuroML is a benefit, but it does increase the complexity of choices facing users entering into the ecosystem.</p><p>In many respects this is an intractable fact of the current environment, but the authors do try to mitigate the issue with user guides (e.g., Table 1) and example code (e.g. Box 1) which address a range of target user audiences, from those learning about the ecosystem for the first time to those looking to implement specific model features. They also categorize different simulator options (Figure 5) and provide feature comparisons (Table 3), which could assist with the most daunting choice faced by new users.</p><p>Comments on revised version:</p><p>The authors have addressed my major concerns with the original manuscript. The discussion of simulators in particular is much clearer now, and the manuscript has been restructured so that specific details pertinent to a much more focused audience have been rewritten or shifted to more appropriate locations.</p></body></sub-article><sub-article article-type="author-comment" id="sa3"><front-stub><article-id pub-id-type="doi">10.7554/eLife.95135.3.sa3</article-id><title-group><article-title>Author response</article-title></title-group><contrib-group><contrib contrib-type="author"><name><surname>Sinha</surname><given-names>Ankur</given-names></name><role specific-use="author">Author</role><aff><institution-wrap><institution-id institution-id-type="ror">https://ror.org/02jx3x895</institution-id><institution>University College London</institution></institution-wrap><addr-line><named-content content-type="city">London</named-content></addr-line><country>United Kingdom</country></aff></contrib><contrib contrib-type="author"><name><surname>Gleeson</surname><given-names>Padraig</given-names></name><role specific-use="author">Author</role><aff><institution-wrap><institution-id institution-id-type="ror">https://ror.org/02jx3x895</institution-id><institution>University College London</institution></institution-wrap><addr-line><named-content content-type="city">London</named-content></addr-line><country>United Kingdom</country></aff></contrib><contrib contrib-type="author"><name><surname>Marin</surname><given-names>Bóris</given-names></name><role specific-use="author">Author</role><aff><institution>Universidade Federal do ABC</institution><addr-line><named-content content-type="city">São Bernardo do Campo</named-content></addr-line><country>Brazil</country></aff></contrib><contrib contrib-type="author"><name><surname>Dura-Bernal</surname><given-names>Salvador</given-names></name><role specific-use="author">Author</role><aff><institution>SUNY Downstate</institution><addr-line><named-content content-type="city">Brooklyn</named-content></addr-line><country>United States</country></aff></contrib><contrib contrib-type="author"><name><surname>Panagiotou</surname><given-names>Sotirios</given-names></name><role specific-use="author">Author</role><aff><institution>Erasmus Medical Center</institution><addr-line><named-content content-type="city">Rotterdam</named-content></addr-line><country>Netherlands</country></aff></contrib><contrib contrib-type="author"><name><surname>Crook</surname><given-names>Sharon</given-names></name><role specific-use="author">Author</role><aff><institution>Arizona State University</institution><addr-line><named-content content-type="city">Arizona</named-content></addr-line><country>United States</country></aff></contrib><contrib contrib-type="author"><name><surname>Cantarelli</surname><given-names>Matteo</given-names></name><role specific-use="author">Author</role><aff><institution>Metacell LLC</institution><addr-line><named-content content-type="city">Boston</named-content></addr-line><country>United States</country></aff></contrib><contrib contrib-type="author"><name><surname>Cannon</surname><given-names>Robert C</given-names></name><role specific-use="author">Author</role><aff><institution>Opus2 International Ltd</institution><addr-line><named-content content-type="city">London</named-content></addr-line><country>United Kingdom</country></aff></contrib><contrib contrib-type="author"><name><surname>Davison</surname><given-names>Andrew P</given-names></name><role specific-use="author">Author</role><aff><institution>Paris-Saclay Institute of Neuroscience</institution><addr-line><named-content content-type="city">Saclay</named-content></addr-line><country>France</country></aff></contrib><contrib contrib-type="author"><name><surname>Gurnani</surname><given-names>Harsha</given-names></name><role specific-use="author">Author</role><aff><institution>University of Washington</institution><addr-line><named-content content-type="city">Seattle</named-content></addr-line><country>United States</country></aff></contrib><contrib contrib-type="author"><name><surname>Silver</surname><given-names>Robin Angus</given-names></name><role specific-use="author">Author</role><aff><institution-wrap><institution-id institution-id-type="ror">https://ror.org/02jx3x895</institution-id><institution>University College London</institution></institution-wrap><addr-line><named-content content-type="city">London</named-content></addr-line><country>United Kingdom</country></aff></contrib></contrib-group></front-stub><body><p>The following is the authors’ response to the original reviews.</p><disp-quote content-type="editor-comment"><p><bold>Public Reviews:</bold></p><p><bold>Reviewer #1 (Public Review):</bold></p><p>Summary:</p><p>The manuscript gives a broad overview of how to write NeuroML, and a brief description of how to use it with different simulators and for different purposes - cells to networks, simulation, optimization, and analysis. From this perspective, it can be an extremely useful document to introduce new users to NeuroML.</p></disp-quote><p>We are glad the reviewer found our manuscript useful.</p><disp-quote content-type="editor-comment"><p>However, the manuscript itself seems to lose sight of this goal in many places, and instead, the description at times seems to target software developers. For example, there is a long paragraph on the board and user community. The discussion on simulator tools seems more for developers, not users. All the information presented at the level of a developer is likely to be distracting to eLife readership.</p></disp-quote><p>To make the paper less developer focussed and more accessible to the end user we have shortened the long paragraphs on the board and user community (and moved some of this text to the Methods section; lines: 524-572 in the document with highlighted changes). We have also made the discussion on simulator tools more focussed on the user (lines 334-406). However, we believe some information on the development and oversight of NeuroML and its community base are relevant to the end user, so we have not removed these completely from the main text.</p><disp-quote content-type="editor-comment"><p>Strengths:</p><p>The modularity of NeuroML is indeed a great advantage. For example, the ability to specify the channel file allows different channels to be used with different morphologies without redundancy. The hierarchical nature of NeuroML also is commendable, and well illustrated in Figures 2a through c.</p><p>The number of tools available to work with NeuroML is impressive.</p><p>The abstract, beginning, and end of the manuscript present and discuss incorporating NeuroML into research workflows to support FAIR principles.</p><p>Having a Python API and providing examples using this API is fantastic. Exporting to NeuroML from Python is also a great feature.</p></disp-quote><p>We are glad the reviewer appreciated the design of NeuroML and its support for FAIR principles.</p><disp-quote content-type="editor-comment"><p>Weaknesses:</p><p>Though modularity is a strength, it is unclear to me why the cell morphology isn't also treated similarly, i.e., specify the morphology of a multi-compartmental model in a separate file, and then allow the cell file to specify not only the files containing channels, but also the file containing the multi-compartmental morphology, and then specify the conductance for different segment groups. Also, after pynml_write_neuroml2_file, you would not have a super long neuroML file for each variation of conductances, since there would be no need to rewrite the multi-compartmental morphology for each conductance variation.</p></disp-quote><p>We thank the reviewer for highlighting this shortcoming in NeuroML2. We have now added the ability to reference externally defined (e.g. in another file) and elements from . This has enabled the morphologies and/or specification of ionic conductances to be separated out and enables more streamlined analysis of cells with different properties, as requested. Simulators NEURON, NetPyNE and EDEN already support this new form. Information on this feature has been added to <ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/ImportingMorphologyFiles.html#neuroml2">https://docs.neuroml.org/Userdocs/ImportingMorphologyFiles.html#neuroml2</ext-link> and also mentioned in the text (lines 188-190).</p><disp-quote content-type="editor-comment"><p>This would be especially important for optimizations, if each trial optimization wrote out the neuroML file, then including the full morphology of a realistic cell would take up excessive disk space, as opposed to just writing out the conductance densities. As long as cell morphology must be included in every cell file, then NeuroML is not sufficiently modular, and the authors should moderate their claim of modularity (line 419) and building blocks (551).</p></disp-quote><p>We believe the new functionality outlined above addresses this issue, as a single file containing the element could be referenced, while a much smaller file, containing the channel distributions in a element would be generated and saved on each iteration of the optimisation.</p><disp-quote content-type="editor-comment"><p>In addition, this is very important for downloading NeuroML-compliant reconstructions from NeuroMorpho.org. If the cell morphology cannot be imported, then the user has to edit the file downloaded from NeuroMorpho.org, and provenance can be lost.</p></disp-quote><p>While the NeuroMorpho.Org website does support converting reconstructed morphologies in SWC format to NeuroML, this export feature is no longer supported on most modern browsers due to it being based on Java Applet technologies. However, a desktop version of this application, CVApp, is actively maintained</p><p>(<ext-link ext-link-type="uri" xlink:href="https://github.com/NeuroML/Cvapp-NeuroMorpho.org">https://github.com/NeuroML/Cvapp-NeuroMorpho.org</ext-link>), and we have updated it to support export of the SWC to the standalone element form of NeuroML discussed above. Additionally, a new Python application for conversion of SWC to NeuroML is in development and will be incorporated into PyNeuroML (Google Summer of Code 2024). Our documentation has been updated with the recommended use of SWC in NeuroML based modelling here: <ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Software/Tools/SWC.html">https://docs.neuroml.org/Userdocs/Software/Tools/SWC.html</ext-link></p><p>We have also included URLs to the tool and the documentation in the paper (lines: 473-474).</p><p>SWC files, however, cannot be used “as is” for modelling since they only include information (often incomplete—for example a single point may represent a soma in SWC files) on the points that make the cell, but not on the sections/segments/cables that these form. Therefore, NeuroML and other simulation tools, including NEURON, must convert these into formats suitable for simulation. The suggested pipeline for use of NeuroMorpho SWC files would therefore be to convert them to NeuroML, check that they represent the intended compartmentalisation of the neuron and then use them in models.</p><p>To ensure that provenance is maintained in all NeuroML models (including conversions from other formats), NeuroML supports the addition of RDF annotations using the COMBINE annotation specifications in model files:</p><p><ext-link ext-link-type="uri" xlink:href="https://docs.neuroml.org/Userdocs/Provenance.html">https://docs.neuroml.org/Userdocs/Provenance.html</ext-link>. We have added this information to the paper (lines: 464-465).</p><disp-quote content-type="editor-comment"><p>Also, Figure 2d loses the hierarchical nature by showing ion channels, synapses, and networks as separate main branches of NeuroML.</p></disp-quote><p>While an instance of an ion channel is on a segment, in a cell, in a population (and hence there is a hierarchy between them), in terms of layout in a NeuroML file the ion channel is defined at the “top level” so that it can be referenced and used by multiple cells, the cell definitions are also defined top level, and used in multiple populations, etc. There are multiple ways to depict these relationships between entities, and we believe Fig 2d complements Fig 2a-c (which is more hierarchical), by emphasising the different categories of entities present in NeuroML files. We have modified the caption of Figure 2d to clarify that it shows the main categories of elements included in the NeuroML standard in their respective hierarchies.</p><disp-quote content-type="editor-comment"><p>In Figure 5, the difference between the core and native simulator is unclear.</p></disp-quote><p>We have modified the figure and text (lines: 341) to clarify this. We now say “reference” simulators instead of “core”. This emphasises that jNeuroML and pyLEMS are intended as reference implementations in each of their languages of how to interpret NeuroML models, as opposed to high performance simulators for research use. We have also updated the categorization of the backends in the text accordingly.</p><disp-quote content-type="editor-comment"><p>What is involved in helper scripts?</p></disp-quote><p>Simulators such as NetPyNE can import NeuroML into their own internal format, but require some boilerplate code to do this (e.g. the NetPyNE scripts calls the importNeuroML2SimulateAnalyze() method with appropriate parameters). The NeuroML tools generate short scripts that use this boilerplate code. We have renamed “helper scripts” to “import scripts'' for clarity (Figure 5 and its caption).</p><disp-quote content-type="editor-comment"><p>I thought neurons could read NeuroML? If so, why do you need the export simulator-specific scripts?</p></disp-quote><p>The NEURON simulator does have some NeuroML functionality (it can export cells, though not the full network, to NeuroML 2 through its ModelView menu), but does not natively support reading/importing of NeuroML in its current version. But this is not a problem as jNeuroML/PyNeuroML translates the NeuroML model description into NEURON’s formats: Python scripts/HOC/Nmodl which NEURON then executes.</p><p>As NEURON is the simulator which allows simulation of the widest range of NeuroML elements, we have (in agreement with the NEURON developers) concentrated on incorporating the best support for NeuroML import/export in the latest (easy to install/update) releases of PyNeuroML, rather than adding this to the Neuron source code. NEURON’s core features have been very stable for years and many versions of the simulator are used by modellers - installing the latest PyNeuroML gives them the latest NEURON support without having to reinstall the latter.</p><disp-quote content-type="editor-comment"><p>In addition, it seems strange to call something the &quot;core&quot; simulation engine, when it cannot support multi-compartmental models. It is unclear why &quot;other simulators&quot; that natively support NeuroML cannot be called the core.</p></disp-quote><p>We agree that this terminology was confusing. As mentioned above, we have changed “core simulator” to “reference simulator”, to emphasise the roles of these simulation engine options.</p><disp-quote content-type="editor-comment"><p>It might be more helpful to replace this sort of classification with a user-targeted description. The authors already state which simulators support NeuroML and which ones need code to be exported. In contrast, lines 369-370 mention that not all NeuroML models are supported by each simulator. I recommend expanding this to explain which features are supported in each simulator. Then, the unhelpful separation between core and native could be eliminated.</p></disp-quote><p>As suggested, we have grouped the simulators in terms of function and removed the core/ non-core distinction. We have also added a table (Table 3) in the appendices that lists what features each simulation engine supports and updated the text to be more user focussed (lines: 348-394).</p><disp-quote content-type="editor-comment"><p>The body of the manuscript has so much other detail that I lose sight of how NeuroML supports FAIR. It is also unclear who is the intended audience. When I get to lines 336-344, it seems that this description is too much detail for the eLife audience. The paragraph beginning on line 691 is a great example of being unclear about who is the audience. Does someone wanting to develop NeuroML models need to understand XSD schema? If so, the explanation is not clear. XSD schema is not defined and instead explains NeuroML-specific aspects of XSD. Lines 734-735 are another example of explaining to code developers (not model developers).</p></disp-quote><p>We have modified these sentences to be more suitable for the general eLife audience: we have moved the explanation of how the different simulator backends are supported to the more technically detailed Methods section (lines 882-942).</p><p>While the results sections focus on documenting what users can do with NeuroML, the Methods sections include information on “how” the NeuroML and software ecosystem function. While the information in the methods sections may not be required by users who want to use the standard NeuroML model elements, those users looking to extend NeuroML with their own model entities and/or contribute these for inclusion in the NeuroML standard will require some understanding of how the schema and component types work.</p><p>We have tried to limit this information to the bare minimum, pointing to online documentation where appropriate. XSD schemas are, for example, briefly introduced at the beginning of the section “The NeuroML XML Schema”. We have also included a link to the W3C documentation on XSD schemas as a footnote (line 724).</p><disp-quote content-type="editor-comment"><p><bold>Reviewer #2 (Public Review):</bold></p><p>Summary:</p><p>Developing neuronal models that are shareable, reproducible, and interoperable allows the neuroscience community to make better use of published models and to collaborate more effectively. In this manuscript, the authors present a consolidated overview of the NeuroML model description system along with its associated tools and workflows. They describe where different components of this ecosystem lay along the model development pathway and highlight resources, including documentation and tutorials, to help users employ this system.</p><p>Strengths:</p><p>The manuscript is well-organized and clearly written. It effectively uses the delineated model development life cycle steps, presented in Figure 1, to organize its descriptions of the different components and tools relating to NeuroML. It uses this framework to cover the breadth of the software ecosystem and categorize its various elements. The NeuroML format is clearly described, and the authors outline the different benefits of its particular construction. As primarily a means of describing models, NeuroML also depends on many other software components to be of high utility to computational neuroscientists; these include simulators (ones that both pre-date NeuroML and those developed afterwards), visualization tools, and model databases.</p><p>Overall, the rationale for the approach NeuroML has taken is convincing and well-described. The pointers to existing documentation, guides, and the example usages presented within the manuscript are useful starting points for potential new users. This manuscript can also serve to inform potential users of features or aspects of the ecosystem that they may have been unaware of, which could lower obstacles to adoption. While much of what is presented is not new to this manuscript, it still serves as a useful resource for the community looking for information about an established, but perhaps daunting, set of computational tools.</p></disp-quote><p>We are glad the reviewer appreciated the utility of the manuscript.</p><disp-quote content-type="editor-comment"><p>Weaknesses:</p><p>The manuscript in large part catalogs the different tools and functionalities that have been produced through the long development cycle of NeuroML. As discussed above, this is quite useful, but it can still be somewhat overwhelming for a potential new user of these tools. There are new user guides (e.g., Table 1) and example code (e.g. Box 1), but it is not clear if those resources employ elements of the ecosystem chosen primarily for their didactic advantages, rather than general-purpose utility. I feel like the manuscript would be strengthened by the addition of clearer recommendations for users (or a range of recommendations for users in different scenarios).</p></disp-quote><p>To make Table 1 more accessible to users and provide recommendations we have added the following new categories: Introductory guides aimed at teaching the fundamental</p><p>NeuroML concepts; Advanced guides illustrating specific modelling workflows; and Walkthrough guides discussing the steps required for converting models to NeuroML. Box 1 has also been improved to clearly mark API and command line examples.</p><disp-quote content-type="editor-comment"><p>For example, is the intention that most users should primarily use the core NeuroML tools and expand into the wider ecosystem only under particular circumstances? What are the criteria to keep in mind when making that decision to use alternative tools (scale/complexity of model, prior familiarity with other tools, etc.)? The place where it seems most ambiguous is in the choice of simulator (in part because there seem to be the most options there) - are there particular scenarios where the authors may recommend using simulators other than the core jNeuroML software?</p><p>The interoperability of NeuroML is a major strength, but it does increase the complexity of choices facing users entering into the ecosystem. Some clearer guidance in this manuscript could enable computational neuroscientists with particular goals in mind to make better strategic decisions about which tools to employ at the outset of their work.</p></disp-quote><p>As mentioned in the response to Reviewer 1, the term “core simulator” for jNeuroML was confusing, as it suggested that this is a recommended simulation tool. We have changed the description of jNeuroML to a “reference simulator” to clarify this (Figure 5 and lines 341, 353).</p><p>In terms of giving specific guidance on which simulator to use, we have focussed on their functionality and limitations rather than recommending a specific tool (as simulator independent standards developers we are not in a position to favour particular simulators). While NEURON is the most widely used simulator currently, other simulation opinions (e.g. EDEN) have emerged recently which provide quite comprehensive NeuroML support and similar performance. Our approach is to document and promote all supported tools, while encouraging innovation and new developments. The new Table 3 in the Appendix gives a guide to assist users in choosing which simulator may best suit their needs and we have updated the text to include a brief description (lines 348-394).</p><disp-quote content-type="editor-comment"><p><bold>Recommendations for the authors:</bold></p><p><bold>Reviewer #1 (Recommendations For The Authors):</bold></p><p>I do not understand what the $comments mean in Box 1. It isn't until I get further in the text that I realize that those are command line equivalents to the Python commands.</p></disp-quote><p>We thank the reviewer for highlighting this confusion. We’ve now explicitly marked the API usage and command line usage example columns to make this clearer. We have also used “&gt;” instead of “$” now to indicate the command line,</p><disp-quote content-type="editor-comment"><p>In Figure 9 Caption &quot;Examples of analysis functions ..&quot;, the word analysis seems a misnomer, as these graphs all illustrate the simulation output and graphing of existing variables. I think analysis typically refers to the transformation of variables, such as spike counts and widths.</p></disp-quote><p>To clarify this we have changed the caption to “Examples of visualizing biophysical properties of a NeuroML model neuron”.</p><disp-quote content-type="editor-comment"><p>Figure 10: Why is the pulse generator part of a model? Isn't that the input to a model?</p></disp-quote><p>Whether the input to the model is described separately from the NeuroML biophysical description or combined with it is a choice for the researcher. This is possible because in NeuroML any entity which has time varying states can be a NeuroML element, including the current pulse generator. In this simple example the input is contained within the same file (and therefore element) as the cell. However, this does not need to be the case. The cell could be fully specified in its own NeuroML file and then this can be included in other files which add different inputs to facilitate different simulation scenarios. The Python scripting interface facilitates these types of workflows.</p><disp-quote content-type="editor-comment"><p>In the interest of modularity, can stim information be stored in a separate file and &quot;included&quot;?</p></disp-quote><p>Yes, as mentioned above, the stimulus could be stored in a separate file.</p><disp-quote content-type="editor-comment"><p>I find it strange to use a cell with mostly dimensionless numbers as an example. I think it would be more helpful to use a model that was more physiological.</p></disp-quote><p>In choosing an example model type to use to illustrate the use of LEMS (Fig 12), NeuroML (Fig 10), XML Schema (Fig 11), the Python API (Fig 13) and online documentation (Fig 15), we needed an example which showed a sufficiently broad range of concepts (dimensional parameters, state variables, time derivatives), but which is sufficiently compact to allow a concise depiction of the key elements in figures, that fit in a single page (e.g. Fig 12). We felt that the Hindmarsh Rose model, while not very physiological, was well suited for this purpose (explaining the underlying technologies behind the NeuroML specification). The simplicity of the Hindmarsh Rose model is counterbalanced in the manuscript by the detailed models of neurons and circuits in Figures 7 &amp; 9. The latter shows a morphologically and biophysically detailed cortical L5b pyramidal cell model.</p><disp-quote content-type="editor-comment"><p>In lines 710-714, it is unclear what is being validated. That all parameters are defined? Using the units (or lack thereof) defined in the schema?</p></disp-quote><p>Validation against the schema is “level 1” validation where the model structure, parameters, parameter values and their units, cardinality, and element positioning in the model hierarchy are checked. We have updated the paragraph to include this information and to also point to Figure 6 where different levels of validation are explained.</p><disp-quote content-type="editor-comment"><p>Lines 740 to 746 are confusing. If 1-1 between XSD and LEMS (1st sentence) then how can component types be defined in LEMS and NOT added to the standard? Which is it? 1-1 or not 1-1?</p></disp-quote><p>For the curated model elements included in the NeuroML standard, there will be a 1-1 correspondence between their component type definitions in LEMS and type definitions in the XSD schema. New user defined component types (e.g. a new abstract cell model) can be specified in LEMS as required, and these do not need to be included in the XSD schema to be loaded/simulated. However, since they are not present in the schema definition of the core/curated elements, they cannot be validated against it (level 1 validation). We have modified the text to make this clearer (line: 778).</p><p>Nonetheless, if the new type is useful for the wider community, it can be accepted by the Editorial Board, and at that stage it will be incorporated into the core types, and added to the Schema, to be part of “valid NeuroML”.</p><disp-quote content-type="editor-comment"><p>Figure 12. select=&quot;synapses[*]/i&quot; is not explained. Does /i mean that iSyn is divided by i, which is current (according to the sentence 3 lines after 766) or perhaps synapse number?</p></disp-quote><p>We thank the reviewer for highlighting this confusion. We have now explained the construct in the text (lines 810-812). It denotes “select the i (current) values from all Attachments which have the id ‘synapses’”. These multiple values should be reduced down to a single value through addition, as specified by the attribute: reduce=”add”.</p><disp-quote content-type="editor-comment"><p>The line after 766 says that &quot;DerivedVariables, variables whose values depend on other variables&quot;. You should add &quot;and that are not derivatives, which are handled separately&quot; because by your definition derivatives are derived variables.</p></disp-quote><p>Thank you. We have updated the text with your suggestion</p><disp-quote content-type="editor-comment"><p><bold>Reviewer #2 (Recommendations For The Authors):</bold></p><p>- Figure 9: I found it somewhat confusing to have the header from the screenshot at the top (&quot;Layer 5 Burst Accommodating Double Bouquet Cell (5)&quot;) not match the morphology shown at the bottom. It's not visually clear that the different panels in Figure 9 may refer to unrelated cells/models.</p></disp-quote><p>Thank you for pointing this out. We have replaced the NeuroML-DB screenshot with one of the same Layer 5b pyramidal cells shown in the panels below it.</p><p>Additional change:</p><p>Figure 7c (showing the NetPyNE-UI interface) has been replaced. Previously, this displayed a 3D model which had been created in NetPyNE itself, but now shows a model which has been created in NeuroML and imported for display/simulation in NetPyNE-UI, and therefore better illustrates NeuroML functionality.</p></body></sub-article></article>