PyNN
PyNN (pronounced 'pine' ) is a Python package for simulator-independent specification of neuronal network models.
In other words, you can write the code for a model once, using the PyNN API, and then run it without modification on any simulator that PyNN supports (currently NEURON, NEST and PCSIM).
The API has two parts, a low-level, procedural API, similar to that in PyNEST (functions create(), connect(), set(), record(), record_v()), and a high-level, object-oriented API (classes Population and Projection, which have methods like set(), record(), setWeights(), etc.).
The low-level API is good for small networks, and perhaps gives more flexibility. The high-level API is good for hiding the details and the book-keeping, and is intended eventually to have a one-to-one mapping with NeuroML.
The other thing that is required to write a model once and run it on multiple simulators is standard cell models. PyNN translates standard cell-model names and parameter names into simulator-specific names, e.g. standard model IF_curr_alpha is iaf_neuron in NEST and StandardIF in NEURON, while SpikeSourcePoisson is a poisson_generator in NEST and a NetStim in NEURON. Only a few cell models have been implemented so far.
PyNN is a work in progress, but is already being used for several large-scale simulation projects.
Download the current stable release of the API (0.4), or get the development version from the Subversion repository.
The code is released under the CeCILL licence.
Users' Guide
- Download and Install
- Neurons and Connections
- Populations and Projections
- Standardised neuron models
- Synaptic plasticity
- API documentation
Presentations and posters
- Poster presented at Neuroinformatics 2008
- Presentation given at FACETS CodeJam #2
Questions/Bugs/Enhancements
If you find a bug in PyNN, or wish to request a new feature, please click on "New Ticket" in the menu above and fill in the form.
If you have questions or comments about PyNN, please post a message in the "pynn-users" or "pynn-developers" forums in the NeuralEnsemble Google group. You can also e-mail Andrew Davison, but it is better to post on the forums. If you are not a member of NeuralEnsemble, go to http://groups.google.com/group/neuralensemble and click on the "Apply for membership" link.
Information about this Trac server:
- TracGuide -- Built-in Documentation
- The Trac project -- Trac Open Source Project
- Trac FAQ -- Frequently Asked Questions
- TracSupport -- Trac Support
- For a complete list of local wiki pages, see TitleIndex.
The Neural Ensemble Ring
Other projects at http://neuralensemble.org:
- NeuroTools -- a set of tools written in Python to manage, store and analyze computational neuroscience simulations.
- nrnpy -- an unofficial, experimental branch of the NEURON codebase, focused on improving and extending the integration of the Python programming language into NEURON.

