PyNN 0.6 release notes¶
14th February 2010
Welcome to PyNN 0.6!
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 - Fileobject to- Population.print_X(), instead of a filename. There are various types of PyNN- Fileobject, 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 - AllToAllConnectorand- FixedProbabilityConnectorclasses. To reduce the number of arguments to the constructors, the arguments affecting the spatial topology (periodic boundary conditions, etc.) were moved to a new- Spaceclass, so that only a single- Spaceinstance need be passed to the- Connectorconstructor.
Details¶
- Switched to using the point process-based AdExp mechanism in NEURON. 
- Factored out most of the commonality between the - Recorderclasses of each backend into a parent class- recording.Recorder, and tidied up the- recordingmodule.
- Added an attribute - conductance_basedto- StandardCellType, to make the determination of synapse type for a given cell more robust.
- PyNN now uses a named logger, which makes it easier to control logging levels when using PyNN within a larger application. 
- implemented gather for - Projection.saveConnections()
- Added a test script ( - test_mpi.py) to check whether serial and distributed simulations give the same results
- Added a - size()method to- Projection, to give the total number of connections across all nodes (unlike- __len__(), which gives only the connections on the local node
- Speeded up - record()by a huge factor (from 10 s for 12000 cells to less than 0.1 s) by removing an unecessary conditional path (since all IDs now have an attribute “local”)
- synapse_type is now passed to the - ConnectionManagerconstructor, not to the- connect()method, since (a) it is fixed for a given connection manager, (b) it is needed in other methods than just- connect(); fixed weight unit conversion in- brianmodule.
- Updated connection handling in - nestmodule to work with NEST version 1.9.8498. Will not now work with previous NEST versions
- The - neuronback-end now supports having both static and Tsodyks-Markram synapses on the same neuron (previously, the T-M synapses replaced the static synapses) - in agreement with- nestand common sense. Thanks to Bartosz Telenczuk for reporting this.
- Added a compatible_output mode for the - saveConnections()method. True by default, it allows connections to be reloaded from a file. If False, then the raw connections are stored, which makes for easier postprocessing.
- Added an - ACSourcecurrent source to the- nestmodule.
- Fixed Hoc build directory problem in - setup.py- see ticket:147
- Population.get_v()and the other “get” methods now return cell indices (starting from 0) rather than cell IDs. This behaviour now matches that of- Population.print_v(), etc. See ticket:119 if you think this is a bad idea.
- Moved the base - Connectorclass from- commonto- connectors. Put the- distances()function inside a- Spaceclass, to allow more convenient specification of topology parameters.
- Projection.setWeights()and- setDelays()now accept a 2D array argument (ref ticket:136), to be symmetric with- getWeights()and- getDelays(). For distributed simulations, each node only takes the values it needs from the array.
- FixedProbabilityConnectoris now more strict, and checks that- p_connectis less than 1 (see ticket:148). This makes no difference to the behaviour, but could act as a check for errors in user code.
- Fixed problem with changing - SpikeSourcePoissonrate during a simulation (see ticket:152)
