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
File
object toPopulation.print_X()
, instead of a filename. There are various types of PyNNFile
object, 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
AllToAllConnector
andFixedProbabilityConnector
classes. To reduce the number of arguments to the constructors, the arguments affecting the spatial topology (periodic boundary conditions, etc.) were moved to a newSpace
class, so that only a singleSpace
instance need be passed to theConnector
constructor.
Details¶
- Switched to using the point process-based AdExp mechanism in NEURON.
- Factored out most of the commonality between the
Recorder
classes of each backend into a parent classrecording.Recorder
, and tidied up therecording
module. - Added an attribute
conductance_based
toStandardCellType
, 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 toProjection
, 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
ConnectionManager
constructor, 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 inbrian
module. - Updated connection handling in
nest
module to work with NEST version 1.9.8498. Will not now work with previous NEST versions - The
neuron
back-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 withnest
and 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
ACSource
current source to thenest
module. - 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 ofPopulation.print_v()
, etc. See ticket:119 if you think this is a bad idea.- Moved the base
Connector
class fromcommon
toconnectors
. Put thedistances()
function inside aSpace
class, 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.FixedProbabilityConnector
is now more strict, and checks thatp_connect
is 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
SpikeSourcePoisson
rate during a simulation (see ticket:152)