Posts about Release (old posts, page 1)

New alpha version of Brian 2.0

We are happy to announce another alpha release of Brian2 (version number 2.0a5) which adds a new feature for testing: C++ standalone simulations.

Standalone mode is a new addition to Brian2 with no equivalent in Brian1. It takes a simulation script and generates a directory of completely Brian-independent C++ files from it that perform the simulation. This can give significant performance advantages over the standard Brian simulation mode and also allows to do simulations on devices where Brian or one of its dependencies is not available (e.g. on a computing cluster or in robotics applications).

This mode has some restrictions compared to the standard operating mode of Brian, you can find more details in the documentation:
http://brian2.readthedocs.org/en/latest/user/devices.html

We are very interested in feedback about how this mode fits with your needs, what restrictions you cannot live with, what additional functionality you’d need, etc. Please report any comments to the brian-development mailing list

How to get Brian2?

Brian2 is available on the python package index, therefore you can install it using easy_install or pip:

easy_install brian2 pip install brian 2 # older versions of pip pip install --pre brian2 # newer versions of pip

Alternatively, you can directly download the package from the package index and install it yourself using python setup.py install (if you are using Python 2.x, simply running it from the source directory also works).

Finally, you can also clone the git repository at:
https://github.com/brian-team/brian2

Note that the package is called brian2, not brian, therefore it does not interfere with an existing Brian installation and trying out Brian2 will not affect your existing Brian simulations.

Documentation

You can find documentation for Brian2 at readthedocs: http://brian2.readthedocs.org

Note that the user documentation is still quite incomplete, you’ll find a lot of information in the reference documentation, though.

Brian 2.0 alpha release

We are proud to announce the alpha release of Brian2, the successor of Brian, everyone’s favourite neural simulator.

This is an alpha release, therefore many features are still missing and there are very likely many bugs. The main reason for this release is to get feedback from users, the only way to make sure that the final version will be as useful to everyone as possible.

This release is the cumulation of work that started more than one year ago, a basic rewrite of Brian that tries to keep and extend the strengths of Brian (ease of use, flexibility) while building it on a new foundation of a code generation framework that will allow for exciting new applications in the future.

How to get Brian2?

Brian2 is available on the python package index, therefore you can install it using easy_install or pip:

easy_install brian2 pip install --pre brian2

Alternatively, you can directly download the package from the package index and install it yourself using python setup.py install (if you are using Python 2, simply running it from the source directory also works).

Finally, you can also clone the git repository at: https://github.com/brian-team/brian2

Note that the package is called brian2, not brian, therefore it does not interfere with an existing Brian installation and trying out Brian2 will not affect your existing Brian simulations.

Documentation

You can find documentation for Brian2 at readthedocs: http://brian2.readthedocs.org

Note that the user documentation is still quite incomplete, you’ll find a lot of information in the reference documentation, though.

Feedback wanted!

This is an alpha release, so there is still a lot that will change in the next months. However, the syntax is already mostly the way we plan it to be. Please provide feedback if you find something unintuitive or you fail to see how to express something that you could express in Brian1. For the feedback, please use either the brian-development mailing list or the github issues. Note that the *internal* code (e.g. the interface to the code generation framework) will still change quite a bit.

Known issues

  • Brian hears and the modelfitting toolbox have not yet been ported to Brian2
  • Brian2 is not yet optimised for performance. In particular, setting up a simulation or using multiple run statements might appear to be slow because a lot of work is unnecessarily repeated. For the simulation itself, a big performance increase can be often achieved by switching on C++ code generation by using the following in the code: brian_prefs.codegen.target = 'weave'
  • When using the ipython notebook, importing brian2 makes a lot of debug outputs appear under certain circumstances (#133)
  • Many error messages are not yet as helpful as they could be
  • Various other known issues can be found in the issue tracker

Brian 1.4.1

We have just released Brian 1.4.1, available from PyPI using  pip install -U brian or easy_install -U brian, or from the NeuralEnsemble server. It will be soon available in the NeuroDebian repositories as well, thanks to the NeuroDebian team. This is a minor release, but it adds a couple of useful features (including experimental features for the Synapses class) and fixes some important bugs, in particular for users of brian hears. A list of changes can be found below: Major features:

  • C extensions are compiled by default during installation (with a fallback to the Python version if compilation fails) — this might lead to a considerable speedup for users who did not compile those extensions manually before. Note that this only includes installations based on running setup.py (including pip and easy_install), not the Windows .exe installer.
Minor features:
  • Convenience methods for the Synapses class, allowing to save and load the connectivity and to convert the weights into a matrix
  • A new openmp option to switch on the use of OpenMP pragmas in generated C code
  • Brian hears: Two new models, MiddleEar (filtering by the middle ear) and ZhangSynapse (model of the IHC-AN synapse)
  • Brian hears: New convenience functions to get reasonable axis ticks for logarithmic axes
Improvements:
  • Brian’s documentation is now also available under brian.readthedocs.org
  • ProgressReporter has context manager support (i.e. can be used in “with” statements)
  • NeuronGroup and Synapses work with empty model specifications.
  • C version of SpikeContainer is now picklable
Bug fixes:
  • Synaptic equations referring to variables in the pre- or postsynaptic group are never considered as being linear (fixes ticket #83)
  • Fix issue with static equations in synaptic models (see  https://groups.google.com/d/msg/briansupport/-/uqxLK_yoqKUJ )
  • Make LinearStateUpdater pickable, even if array B is “NotImplemented”.
  • Fixed the bug in which the StateSpikeMonitor didn’t record variables defined with a static equation.
  • Important bug fixes for brian hears, all users are encouraged to update:
    • Make sure that LinearFilterbank copies it source and therefore not changes it (when not using weave) (fixes ticket #73)
    • Fix some bugs in the TanCarney model
    •  Fix shifting multi-channel sounds with fractional=True (fixes ticket #80)
Experimental features:
  • C version of SpikeQueue (used in the Synapses class), which can lead to a considerable speedup (see “Advanced concepts/Compiled code” for instructions how to use it).
  • Delays can be specified as a parameters of the Synapses model and then be changed dynamically.

Brian 1.4 is out!

The 1.4 release of Brian is out! The major change in this version is the addition of a new Synapses class, which allows modeling everything synaptic: gap junctions, probabilistic synapses, nonlinear synapses, plasticity, etc. There are also a number of other new features, bug fixes and improvements (see below). Brian is being developed by Romain Brette and Dan Goodman. This version also includes contributions by Bertrand Fontaine, Cyrille Rossant, Victor Benichoux, Marcel Stimberg and Jonathan Laudanski. We take advantage of this announcement to inform Brian users that we are currently discussing the development of Brian 2.0, a rewriting of Brian, intended to be simpler, faster, and to be able to run on external devices (e.g. GPU). We will make an announcement on our mailing list soon, where we will ask for user opinions. New features since 1.3.1 Major features:

  • New Synapses class (plasticity, gap junctions, nonlinear synapses, etc)
Minor features:
  • New AERSpikeMonitor class
  • Several updates to library.electrophysiology
Improvements:
  • Units should work better with static code analysers now
  • Added Network.remove
  • SpikeMonitor has a new .it attribute (returns pair i, t of arrays of spike times)
  • Many new examples
Bug fixes:
  • Assigning to a static variable (equation) now raise an error
  • Fixed issues for TimedArrays with explicitly set times (fixes ticket #81)
  • Fixed bug, repr and str didn’t work for Sound
  • Fixed bug where tone(array_of_frequencies, …)
  • Fixed SparseConnectionMatrix bug suggested by Owen Mackwood
  • Fixed bug in Parameters reported by Jimmy Bonaiuto
  • Fixed bug with contained_objects reported by Oleg Sinyavskiy
  • Units __repr__ and __str__ fixes
  • Sound.spectrum, Sound.pinknoise, brownnoise
  • t wasn’t available in StringReset and PythonThreshold
Deprecated or removed features:
  • MultipleSpikeGeneratorGroup
  • experimental.coincidence_detection
Experimental features:
  • Generating model documentation automatically (experimental.model_documentation)

Brian 1.3.1

We have just released Brian 1.3.1, available via easy_install -U brian or from our download page. This is a minor release, but there are some nice new features and many small improvements (listed below). Minor features:

  • New PoissonInput class
  • New auditory model: TanCarney (brian.hears)
  • Many more examples from papers
  • New electrode compensation module (in library.electrophysiology)
  • New trace analysis module (in library.electrophysiology)
  • Added new brian.tools.taskfarm.run_tasks function to use multiple CPUs to perform multiple runs of a simulation and save results to a DataManager, with an optional GUI interface.
  • Added FractionalDelay filterbank to brian.hears, fractional itds to HeadlessDatabase and fractional shifts to Sound.shifted.
  • Added vowel function to brian.hears for creating artificial vowel sounds
  • New spike_triggered_average function
  • Added maxlevel and atmaxlevel to Sound
  • New IRNS/IRNO noise functions
Improvements:
  • SpikeGeneratorGroup is much faster.
  • Added RemoteControlClient.set(var, name) to allow sending data to the server from the client (previously you could only receive data from the server but not send it, except in string form).
  • Monitors do not process empty spike arrays when there have not been any spikes, increases speed for monitored networks with sparse firing (#78)
  • Various speed optimisations
Bug fixes:
  • Fixed bug with frozen equations and time variable in equations
  • Fixed bug with loading sounds using Sound(‘filename.wav’)
  • SpikeMonitor now clears spiketimes correctly on reinit (#75)
  • MultiConnection now propagates reinit (important for monitors) (#76)
  • Fixed bug in realtime plotting
  • Fixed various bugs in Sound
  • Fixed bugs in STDP
  • Now propagates spikes only if spikes exist (#78)

Brian 1.3

The 1.3 release of Brian is out! The major change in this version is the addition of the Brian.hears package for auditory modelling. This version also includes an update to the toolbox for fitting neural models to electrophysiological recordings (which now uses version 0.3 of the parallel optimization package Playdoh), remote control of Brian scripts, and experimental support for code generation for C and GPU. There are also a number of other new features, bug fixes and improvements (full list below). Brian is also available from the NeuroDebian repository: pre-packaged for all recent Debian and Ubuntu releases. Brian is being developed by Romain Brette and Dan Goodman. This version also includes contributions by Bertrand Fontaine, Cyrille Rossant, Victor Benichoux and Boris Gourévitch.

New features since 1.2.1

Major features
  • Added Brian.hears auditory library
Minor features
  • Added new brian.tools.datamanager.DataManager, moved from brian.experimental
  • reinit(states=False) will now not reset NeuronGroup state variables to 0.
  • modelfitting now has support for refractoriness
  • New examples in misc: after_potential, non_reliability, reliability,
  • van_rossum_metric, remotecontrolserver, remotecontrolclient
  • New experimental.neuromorphic package
  • Van Rossum metric added
Improvements
  • SpikeGeneratorGroup is faster for large number of events (“gather” option).
  • Speed improvement for pure Python version of sparse matrix preparation
  • Speed improvements for spike propagation weave code (50-100% faster).
  • Clocks have been changed and should now behave more predictably. In addition, you can now specify an order attribute for clocks.
  • modelfitting is now based on playdoh 0.3
  • modelfitting can now use euler/exp.euler or RK2 integration schemes
  • Loading AER data is much faster
  • Freezing now uses higher precision (used to only use 12sf now uses 17sf)
Bug fixes
  • Bug in STDP with small values for wmin/wmax fixed (ticket #63)
  • Equations/aliases now work correctly in STDP (ticket #56)
  • Bug in sparse matrices introduced in scipy 0.8.0 fixed
  • Bug in TimedArray when dt keyword is used now fixed (thanks to Adrien Wohrer for pointing out the bug).
  • Units now work correctly in STDP (ticket #60)
  • STDP raises an error if operations are reordered (ticket #57)
  • linked_var works with static vars (equations) (ticket #68)
  • Changing clock.t during a run won’t end the run
  • Fixed ticket #66 (unit bug)
  • Fixed ticket #64 (bug with freeze)
  • Can now run a network with no group
  • Exception handling now works properly for C version of circular spike container
  • ccircular now builds correctly on linux and 64 bit
Internal changes
  • brian.connection deprecated and replaced by subpackage brian.connections, making the code structure much more straightforward and setting up for future work on code generation, etc.

Brian 1.2.1

We have just released Brian 1.2.1. This is mostly a bug fixing release, and minor new features. One highlight is the new remote control system which allows you to interact with a Brian script as it is running - e.g. changing parameter values, plotting intermediate results, etc. Also, GPU support on 64 bit and Linux machines is now much better. Major features: * New remote controlling of running Brian scripts via RemoteControlServer and RemoteControlClient. Minor features: * New module tools.io * weight and sparseness can now both be functions in connect_random * New StateHistogramMonitor object * clear now has a new keyword all which allows you to destroy all Brian objects regardless of whether or not they would be found by MagicNetwork. In addition, garbage collection is called after a clear. * New method StateMonitor.insert_spikes to have spikes on voltage traces. Improvements * The sparseness keyword in connect_random can be a function * Added ‘wmin’ to STDP * You can now access STDP internal variables, e.g. stdp.A_pre, and monitor them by doing e.g. StateMonitor(stdp.pre_group, ‘A_pre’) * STDP now supports nonlinear equations and parameters * refractory can now be a vector (see docstring for NeuronGroup) for constant resets. * modelfitting now uses playdoh library * C++ compiled code is now much faster thanks to adding -ffast-math switch to gcc, and there is an option which allows you to set your own compiler switches, for example -march=native on gcc 4.2+. * SpikeGeneratorGroup now has a spiketimes attribute to reset the list of spike times. * StateMonitor now caches values in an array, improving speed for M[i] operation and resolving ticket #53 Bug fixes * Sparse matrices with some versions of scipy * Weave now works on 64 bit platforms with 64 bit Python * Fixed bug introduced in 1.2.0 where dense DelayConnection structures would not propagate any spikes * Fixed bug where connect* functions on DelayConnection didn’t work with subgroups but only with the whole group. * Fixed bug with linked_var from subgroups not working * Fixed bug with adding Equations objects together using a shared base equation (ticket #9 on the trac) * unit_checking=False now works (didn’t do anything before) * Fixed bug with using Equations object twice (for two different NeuronGroups) * Fixed unit checking bug and ZeroDivisionError (ticket #38) * Fixed rare problems with spikes being lost due to wrong size of SpikeContainer, it now dynamically adapts to the number of spikes. * Fixed ticket #5, ionic_currents did not work with units off * Fixed ticket #6, Current+MembraneEquation now works * Fixed bug in modelfitting : the fitness was not computed right with CPUs. * Fixed bug in modelfitting with random seeds on Unix systems. * brian.hears.filtering now works correctly on 64 bit systems Removed features * Model has now been removed from Brian (it was deprecated in 1.1).

Brian 1.2

We have just released Brian 1.2. The major feature of this release is the model fitting toolbox, designed for automatic fitting of spiking neural models to recorded data. The toolbox is capable of using multiple CPUs or GPUs, across multiple machines. For example, in our lab we use 3 computers with 2 GPUs each to get a 300x speed increase compared to using a single CPU. Other features of this release include some support for real time plotting as the simulation runs and some important bug fixes. See below for the complete list of changes. With this release, we are moving away from the old Sourceforge site to the new Brian Trac kindly hosted by Neural Ensemble. We have also been working on our release tools, making it much easier to produce new releases. We now plan to do fairly frequent ‘quick releases’ which will be less thoroughly tested, but useful for those who want the latest features without having to much around with the SVN version. Major features:

  • Model fitting toolbox (library.modelfitting)
Minor features:
  • New real-time “refresh=“ options added to plotting functions
  • Gamma factor in utils.statistics
  • New RegularClock object
  • Added brian_sample_run function to test installation in place of nose tests
Improvements:
  • Speed improvements to monitors and plotting functions
  • Sparse matrix support improved, should work with scipy versions up to 0.7.1
  • Various improvements to brian.hears (still experimental though)
  • Parameters now picklable
  • Made Equations picklable
Bug fixes:
  • Fixed major bug with subgroups and connections (announced on webpage)
  • Fixed major bug with multiple clocks (announced on webpage)
  • No warnings with Python 2.6
  • Minor bugfix to TimedArray caused by floating point comparisons
  • Bugfix: refractory neurons could fire in very extreme circumstances
  • Fixed bug with DelayConnection not setting max_delay
  • Fixed bug with STP
  • Fixed bug with weight=lambda i,j:rand()
New examples:
  • New multiprocessing examples
  • Added polychronisation example
  • Added modelfitting examples
  • Added examples of TimedArray and linked_var
  • Added examples of using derived classes with Brian
  • Realtime plotting example

Brian 1.1.3

We have just produced a new release of Brian, version 1.1.3, with the following changes: * STDP now works with DelayConnection * Added EventClock * Added RecentStateMonitor * Added colormap option to StateMonitor.plot * Added timed array module, see TimedArray class for details. * Added optional progress reporting to run() * New recall() function (converse to forget()) * Added progress reporting module (brian.utils.progressreporting) * Added SpikeMonitor.spiketimes * Added developer’s guide to docs * Early version of brian.hears subpackage for auditory modelling * Various bug fixes You will also notice that the manual now includes a developer’s guide. If you are interested in contributing, we suggest you to subscribe to the Brian development mailing list.