Title : Simulator-independent network modelling with Python and XML
Authors : Andrew Davison
Year : 2006
Supported by : FACETS
Reproducibility of experimental results is the foundation of science, and in this area computational neuroscience should have a huge advantage since in principle computational experiments can be reproduced exactly. In practice, reproduction is often difficult, in part because Methods sections of papers often give insufficient detail to recreate a model and the original code is not always made available, and in part because of the multiplicity of simulation environments that are available: conversion of a model from one simulation tool to another is rarely straightforward. In an attempt to address the latter problem I have developed an interface, PyNN (http://neuralensemble.org/PyNN), using the Python programming language, that allows a neuronal network model to be written once, then simulated on multiple simulators with no change in the model code. For simulators which already have a Python interface, PyNN controls the simulator directly. In other cases, PyNN writes native code which can then be run on the simulator in the usual way. Network connectivity and simulation control are written in Python, but for specification of individual neuron models PyNN takes advantage of the NeuroML standards. PyNN is certainly useful for developing new network models that are not dependent on a particular simulator, and so can be run in several different environments to reduce the occurrence of bugs and to find the most efficient simulator for a given model. It is also useful for converting a model from one simulator to another, since it is easier to convert a model from a specific simulation language to PyNN, which can use the same simulation engine, than directly to a different language/engine: the subtle differences between the two simulators that make conversion difficult have already been taken account of in PyNN and hence do not have to be considered in the conversion process. . Supported by the European Community (FACETS project, IST 15879).