| Literature DB >> 19194529 |
Andrew P Davison1, Daniel Brüderle, Jochen Eppler, Jens Kremkow, Eilif Muller, Dejan Pecevski, Laurent Perrinet, Pierre Yger.
Abstract
Computational neuroscience has produced a diversity of software for simulations of networks of spiking neurons, with both negative and positive consequences. On the one hand, each simulator uses its own programming or configuration language, leading to considerable difficulty in porting models from one simulator to another. This impedes communication between investigators and makes it harder to reproduce and build on the work of others. On the other hand, simulation results can be cross-checked between different simulators, giving greater confidence in their correctness, and each simulator has different optimizations, so the most appropriate simulator can be chosen for a given modelling task. A common programming interface to multiple simulators would reduce or eliminate the problems of simulator diversity while retaining the benefits. PyNN is such an interface, making it possible to write a simulation script once, using the Python programming language, and run it without modification on any supported simulator (currently NEURON, NEST, PCSIM, Brian and the Heidelberg VLSI neuromorphic hardware). PyNN increases the productivity of neuronal network modelling by providing high-level abstraction, by promoting code sharing and reuse, and by providing a foundation for simulator-agnostic analysis, visualization and data-management tools. PyNN increases the reliability of modelling studies by making it much easier to check results on multiple simulators. PyNN is open-source software and is available from http://neuralensemble.org/PyNN.Entities:
Keywords: Python; computational neuroscience; interoperability; large-scale models; parallel computing; reproducibility; simulation; translation
Year: 2009 PMID: 19194529 PMCID: PMC2634533 DOI: 10.3389/neuro.11.011.2008
Source DB: PubMed Journal: Front Neuroinform ISSN: 1662-5196 Impact factor: 4.081
Figure 1Results of running first example given in the text, with NEURON, NEST and PCSIM as back-end simulators. (A) Entire membrane potential trace with integration time-step 0.1 ms. (B) Zoom into a smaller region of the trace, showing small numerical differences between the results of the different simulators. (C) Results of a simulation with integration time-step 0.01 ms, showing greatly reduced numerical differences.
Figure 2Results of running the second example given in the text, with NEURON and NEST as back-end simulators. Note that the network connectivity and initial conditions were identical in the two cases. (A) Membrane potential traces for two excitatory neurons. Note that the NEST and NEURON traces are very similar for the first 50 ms, but after that diverge rapidly due to the effects of network activity, which amplifies the small numerical integration differences. (B) Spiking activity of excitatory (black) and inhibitory (green) neurons. Each dot represents a spike and each row of dots a different neuron. All 5000 neurons are shown. (C) Distribution of pooled inter-spike intervals (ISIs) for excitatory and inhibitory neurons. (D) Distribution over neurons of the coefficient of variation of the ISI [CV(ISI)].
Comparison of parameter names and units for different implementations of a leaky integrate-and-fire model with a fixed firing threshold and current-based, alpha-function synapses. This model is called IF_curr_alpha in PyNN, iaf_psc_alpha in NEST, LIFCurrAlphaNeuron in PCSIM and StandardIF in NEURON (this is a model template distributed with PyNN and is not in the standard NEURON distribution). Manual conversion of names and units is straightforward but error-prone and time-consuming. PyNN takes care of such conversions transparently.
| Parameter | PyNN | NEST | NEURON | PCSIM | ||||
|---|---|---|---|---|---|---|---|---|
| Resting membrane potential | mV | mV | mV | V | ||||
| Reset membrane potential | mV | mV | mV | V | ||||
| Membrane capacitance | nF | pF | nF | F | ||||
| Membrane time constant | ms | ms | ms | s | ||||
| Refractory period | ms | ms | ms | s | ||||
| Excitatory synaptic time constant | ms | ms | ms | s | ||||
| Inhibitory synaptic time constant | ms | ms | ms | s | ||||
| Spike threshold | mV | mV | mV | V | ||||
| Injected current amplitude | nA | pA | nA | A | ||||
Figure 3The architecture of PyNN.