There have been three major changes to the API in this version.
- Spikes, membrane potential and synaptic conductances can now be saved to file in various binary formats. To do this, pass a PyNN File object to Population.print_X(), instead of a filename. There are various types of PyNN File object, defined in the recording.files module, e.g., StandardTextFile, PickleFile, NumpyBinaryFile, HDF5ArrayFile.
- Added a reset() function and made the behaviour of setup() consistent across simulators. reset() sets the simulation time to zero and sets membrane potentials to their initial values, but does not change the network structure. setup() destroys any previously defined network.
- The possibility of expressing distance-dependent weights and delays was extended to the AllToAllConnector and FixedProbabilityConnector classes. To reduce the number of arguments to the constructors, the arguments affecting the spatial topology (periodic boundary conditions, etc.) were moved to a new Space class, so that only a single Space instance need be passed to the Connector constructor.
What is PyNN?
PyNN (pronounced 'pine' ) is a simulator-independent language for building neuronal network models.
In other words, you can write the code for a model once, using the PyNN API and the Python programming language, and then run it without modification on any simulator that PyNN supports (currently NEURON, NEST, PCSIM and Brian).
Even if you don't wish to run simulations on multiple simulators, you may benefit from writing your simulation code using PyNN's powerful, high-level interface. In this case, you can use any neuron or synapse model supported by your simulator, and are not restricted to the standard models.
PyNN is also being used as a user-friendly interface to neuromorphic hardware systems.
The code is released under the CeCILL licence (GPL-compatible).
For an in-depth explanation of the motivations behind PyNN and the guiding principles behind its design, see this article in Frontiers in Neuroinformatics. For a briefer overview, see this recent article in the Neuromorphic Engineer.