Recent years have seen a bloom in adoption of the Python environment in Neuroscience . Widely used simulators, such as NEURON and NEST, have recently deprecated legacy programming interfaces in favor of modern yet mature Python equivalents [2,3] as complex work-flows flourish in the modern, expressive and intuitive Python language with its thriving ecosystem of both Neuroscience specific and general-purpose modules.
This shift to a standard general-purpose interpretive language, widely used outside of Neuroscience, has engulfed the simulator development community relatively rapidly and without central coordination. A plausible explanation is that the field was in critical need of the solutions Python offers. Python allows simulation developers to outsource interpreter development to the computer science community, while unifying simulation with analysis work-flows traditionally performed in MATLAB. Python has powerful parallel computing features without restrictive licensing costs and opens new possibilities to implement the on-going interoperability needs of the field . Specifically, it has made PyNN possible, a shared API between NEURON, NEST, PCSIM and Brian with support for MOOSE/Genesis 3 and NeuroML export in development .
PyNN facilitates the development of conceptually satisfying and productivity boosting higher level modeling concepts in a simulator-agnostic way while still allowing simulator-specific optimization, with an elegant side effect: The software investments required for making use of exotic neuron solvers such as the FACETS VLSI neuromorphic hardware http://www.facets-project.org webcite are minimized, as all state-of-the-art work-flow infrastructure is available once basic API compliance is implemented. Porting existing models implemented using the PyNN API to such platforms becomes trivial and verification is straightforward in comparison to results obtained using NEURON or NEST.
For students, Python is an attractive alternative to the traditionally domain-specific languages of the field, as competence thereof represents a widely recognized practical and employable skill. As such, long running courses like the Advanced Course in Computational Neuroscience http://www.neuroinf.org/courses/EUCOURSE/F09 webcite have started to feature Python as an important part of their curriculum.
This work was supported in part by the Swiss NSF and by the EU under the grant IST-2005-15879 (FACETS).
Koetter R, Bednar J, Davison AP, Diesmann M, Gewaltig M-O, Hines M, Muller E, (Eds): Python in Neuroscience. [http://www.frontiersin.org/neuroinformatics/specialtopics/8] webcite
Front Neuroinform 2009, 3:1. Publisher Full Text
Cannon R, Gewaltig M, Gleeson P, Bhalla U, Cornelis H, Hines M, Howell F, Muller E, Stiles J, Wils S, De Schutter E: Interoperability of neuroscience modeling software: current status and future directions.
Front Neuroinform 2008, 2:11. Publisher Full Text