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 toPopulation.print_X(), instead of a filename. There are various types of PyNNFileobject, defined in therecording.files module, e.g.,StandardTextFile,PickleFile,NumpyBinaryFile,HDF5ArrayFile.Added a
reset()function and made the behaviour ofsetup()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
AllToAllConnectorandFixedProbabilityConnectorclasses. To reduce the number of arguments to the constructors, the arguments affecting the spatial topology (periodic boundary conditions, etc.) were moved to a newSpaceclass, so that only a singleSpaceinstance need be passed to theConnectorconstructor.
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 classrecording.Recorder, and tidied up therecordingmodule.Added an attribute
conductance_basedtoStandardCellType, 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 resultsAdded a
size()method toProjection, to give the total number of connections across all nodes (unlike__len__(), which gives only the connections on the local nodeSpeeded 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 theconnect()method, since (a) it is fixed for a given connection manager, (b) it is needed in other methods than justconnect(); fixed weight unit conversion inbrianmodule.Updated connection handling in
nestmodule to work with NEST version 1.9.8498. Will not now work with previous NEST versionsThe
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 withnestand 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 thenestmodule.Fixed Hoc build directory problem in
setup.py- see ticket:147Population.get_v()and the other “get” methods now return cell indices (starting from 0) rather than cell IDs. This behaviour now matches that ofPopulation.print_v(), etc. See ticket:119 if you think this is a bad idea.Moved the base
Connectorclass fromcommontoconnectors. Put thedistances()function inside aSpaceclass, to allow more convenient specification of topology parameters.Projection.setWeights()andsetDelays()now accept a 2D array argument (ref ticket:136), to be symmetric withgetWeights()andgetDelays(). For distributed simulations, each node only takes the values it needs from the array.FixedProbabilityConnectoris now more strict, and checks thatp_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)