| Literature DB >> 32092054 |
Kael Dai1, Juan Hernando2, Yazan N Billeh1, Sergey L Gratiy1, Judit Planas2, Andrew P Davison3, Salvador Dura-Bernal4,5, Padraig Gleeson6, Adrien Devresse2, Benjamin K Dichter7,8, Michael Gevaert2, James G King2, Werner A H Van Geit2, Arseny V Povolotsky2, Eilif Muller2, Jean-Denis Courcol2, Anton Arkhipov1.
Abstract
Increasing availability of comprehensive experimental datasets and of high-performance computing resources are driving rapid growth in scale, complexity, and biological realism of computational models in neuroscience. To support construction and simulation, as well as sharing of such large-scale models, a broadly applicable, flexible, and high-performance data format is necessary. To address this need, we have developed the Scalable Open Network Architecture TemplAte (SONATA) data format. It is designed for memory and computational efficiency and works across multiple platforms. The format represents neuronal circuits and simulation inputs and outputs via standardized files and provides much flexibility for adding new conventions or extensions. SONATA is used in multiple modeling and visualization tools, and we also provide reference Application Programming Interfaces and model examples to catalyze further adoption. SONATA format is free and open for the community to use and build upon with the goal of enabling efficient model building, sharing, and reproducibility.Entities:
Mesh:
Year: 2020 PMID: 32092054 PMCID: PMC7058350 DOI: 10.1371/journal.pcbi.1007696
Source DB: PubMed Journal: PLoS Comput Biol ISSN: 1553-734X Impact factor: 4.475
Fig 5Support for SONATA in simulators and libraries.
(A) Overview of applications which can generate SONATA files (containing either a description of a network structure or simulation output) and the various categories of applications which can read SONATA, including general purpose libraries, visualization tools, and simulation packages. The software packages BMTK, NetPyNE, PyNN, and pyNeuroML can read SONATA network descriptions for execution in the simulation engines NEURON and NEST. The pyNWB package provides a programming interface for reading and writing neurophysiology data (either from experiments or from simulations) in the NWB:N 2.0 format. (B) RTNeuron visualization. Sample renderings at 3 simulation timesteps of an example network with 300 biophysically detailed cells, with somatic and dendritic compartments colored according to the simulated membrane potential. The biophysical 300-cell network, as well as its point-neuron counterpart in (E), were created via the model-building scripting interface in BMTK and saved using SONATA. These two models are used in all subsequent panels here. (C) Rendering of the same model as in (B) using the NetPyNE GUI. Each cell is colored according to which of the 5 node types it belongs. (D) The 300-cell biophysically detailed example from (B) and (C) simulated in NEURON using BMTK (left) and NetPyNE (right). (E) A network with 300 integrate and fire neurons generated by BMTK, and simulated in NEST via BMTK (left), NEST after importing the SONATA files into PyNN (middle) and NEURON after conversion of the network to NeuroML by pyNeuroML. Each raster plot in (D) and (E) is accompanied by a panel underneath showing population firing rate (arbitrary units).
Examples of “node types” and “edge types”.
In a network model, all individual nodes belonging to a particular node type share the respective attributes, and likewise all edges belonging to the same edge type share attributes of that type.
| 0 | biophysical | ctdb:Biophys1.hoc | scnn1a_m.swc | 472363762_fit.json |
| 1 | biophysical | ctdb:Biophys1.hoc | rorb_m.swc | 473863510_fit.json |
| 2 | biophysical | nml:PV1.nml.xml | pv1_m.swc | NONE |
| 3 | point_neuron | nrn:IntFire1 | NONE | if1_exc.json |
| 4 | point_neuron | nrn:IntFire1 | NONE | if1_inh.json |
| 0 | exp2syn | biophys_exc.json | 2.0 | |
| 1 | exp2syn | biophys_inh.json | 2.0 | |
| 2 | NONE | Instantaneous_exc.json | 2.0 | |
| 3 | NONE | Instantaneous_inh.json | 2.0 | |
Summary of the config files.
Representative components are listed; additional entries can be used as described in the Online Documentation.
| network | Defines the circuit config file |
| simulation | Defines the simulation config file |
| components | Directories for neuron morphologies, synaptic models, non-built-in mechanisms (e.g., mod files), and neuron models (Typically defined relative to base paths from manifest in |
| network/nodes | Specifies CSV file describing node types (key: node_types_file) and HDF5 file containing individual nodes (key: nodes_file) |
| network/edges | Specifies CSV file describing edge types (key: edge_types_file) and HDF5 file containing individual edges (key: edges_file) |
| manifest | Convenient handle on setting variables that point to base paths |
| run | Specifies global parameters of the simulation run, such as total duration |
| conditions | Specifies optional global parameters with reserved meaning associated with manipulation |
| node_sets | Contains subsets of nodes that act as targets for separate reports or stimulations, or can also be used to name and define the target subpopulation to simulate |
| inputs | Specifies the inputs to the network with a separate block for every input (if more than one) |
| output | Configures the location where output reports should be written, and if output should be overwritten |
| reports | Defines the specifications of the output variables |