Posts about Development (old posts, page 2)

First release of brian2tools

We are happy to announce the release of brian2tools. The brian2tools package aims to become a collection of useful tools for simulating spiking neural networks with brian2 and for analyzing the results from those simulations. The first 0.1.1 release includes a number of useful functions to plot synaptic connections and variables, multicompartmental morphologies, and the results of simulations (raster plots, rate plots, state variables over time). For more information, have a look at the documentation: brian2tools.readthedocs.io The package can be installed with anaconda or from source, see the installation instructions for details. Testing and feedback welcome: Please contact us at brian-development@googlegroups.com (https://groups.google.com/forum/#!forum/brian-development) if you are interested in contributing. Please report bugs at the github issue tracker or to briansupport@googlegroups.com (https://groups.google.com/forum/#!forum/briansupport).

Brian 2.0 release candidate

We are happy to announce the release of Brian 2.0rc. This is a release candidate for the final Brian 2.0 release, meaning that from now on we will focus on bug fixes and documentation, without introducing new major features or changing the syntax for the user. This release candidate itself does however change a few important syntax elements, see “Backwards-incompatible changes” in the release notes. Apart from many bug fixes and performance improvements, this release adds a few important new features, in particular a “generator syntax” to create synapses more efficiently and a re-worked morphology module for multicompartmental simulations. For a full list of changes see the release notes. How to get Brian 2: follow the installation instructions in the documentation Further information about Brian2: http://brian2.readthedocs.org As always, please report bugs or suggestions to the github bug tracker (https://github.com/brian-team/brian2/issues) or to the brian-development mailing list (brian-development@googlegroups.com).

Brian 2.0 second beta release

We are happy to announce the second beta release of Brian 2.0! This new version contains important bug fixes and improvements, we therefore strongly recommend all users of Brian 2 to upgrade. If you are a user new to Brian, we’d also recommend to directly start with the Brian 2 beta instead of using the stable release of Brian 1.

What’s new?

Several new features have been added:
  • Support for multicompartmental neurons in the C++ standalone mode
  • New features for TimedArray and SpikeGeneratorGroup
  • Automatic selection of a code generation target
  • Tutorials for users starting with Brian
For a full list of changes, see the release notes. How to get Brian 2: follow the installation instructions in the documentation Further information about Brian2: brian2.readthedocs.org This is still a Beta release, please report bugs or suggestions to the github bug tracker (https://github.com/brian-team/brian2/issues) or to the brian-development mailing list (brian-development@googlegroups.com).

Brian 2.0 beta release

We are happy to announce the first beta release of Brian 2.0! This is the first version of Brian 2.0 we recommend for general use. From now on, we will try to keep changes that break existing code to a minimum. If you are a user new to Brian, we’d recommend to start with the Brian 2 beta instead of using the stable release of Brian 1.

What’s new?

Several new features have been added:
  • Support for multicompartmental neurons
  • Cython as a new code generation target (bringing the performance benefits of compiled code to Python 3)
  • Several improvements to the C++ standalone mode, in particular OpenMP support for multithreading (not well tested yet, though, use with caution)
  • Improved system for repeating and continuing simulations and dealing with multiple simulation clocks and timesteps
  • Support for linked variables
For a full list of changes, see the release notes. In addition, a large number of bugs have been fixed, we therefore recommend all users of Brian 2 to upgrade. How to get Brian 2: follow the installation instructions in the documentation Further information about Brian2: brian2.readthedocs.org This is still a Beta release, please report bugs or suggestions to the github bug tracker (https://github.com/brian-team/brian2/issues) or to the brian-development mailing list (brian-development@googlegroups.com).

New alpha version of Brian 2

We are happy to announce another alpha release of Brian2 (version number 2.0a8). A significant amount of internal refactoring work has been done since the previous release and many bugs (in particular related to the new “standalone” mode) have been fixed. The release also adds the following user-visible changes:

  • The definition of variable namespaces is now finalized and follows a consistent approach, see the documentation for details
  • A variable marked as “unless refractory” in the equations is now completely clamped during refractoriness, i.e. it also ignores synaptic input, for example
  • Pre-defined constants (e.g. “e” or “pi”) are now correctly understood in the symbolic analysis of equations
  • Parameters and subexpressions can be declared as “scalar”, meaning that they should be stored/calculated as a single value for a whole group
  • Exact integration can now take place even for equations referring to a TimedArray, if the timestep of the TimedArray is a multiple of the simulation timestep
  • The internal calculation of TimedArray values is now more robust. The new approach entails a change in the semantics of TimedArray when its timestep is bigger than the simulation timestep. For more details see the documentation
  • Performance improvement for the Python-based SpikeQueue

Brian 2 is stabilizing and can already be used for quite a variety of network simulations. We ported a rather complex example from Brian 1 (synapses_barrelcortex.py) that shows a lot of Brian2’s features in use.

As always, please report any comments to the brian-development mailing list or open an issue on the github repository.

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 # for older versions of pip pip install --pre brian2 # for 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.

Yet another alpha version of Brian 2.0

We are happy to announce another alpha release of Brian2 (version number 2.0a7). Major changes introduced since the last release:

  • A workaround that makes Brian2 work with the latest version of sympy (0.7.4) which introduced a bug in their differential equation solver.
  • A C++ version of the SpikeQueue, the data structure responsible for the spike transmission. This feature needs a working C++ compiler and will lead to a performance gain.
  • Faster synapse updates in pure numpy/Python for STDP-like rules
  • A more flexible approach for importing the brian2 package that should allow for different programming styles (see the documentation).

Please report any comments/questions you may have 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.

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

Better sparse matrix support

We just added a new method Connection.connect_from_sparse(W, delay=None, column_access=True) which allows you to initialise a Connection object directly with any scipy sparse matrix. This has a huge memory efficiency gain if you use CSR/COO matrices, as by default Brian uses LIL which is very flexible but memory inefficient. For an even bigger memory efficiency gain, if you are not using STDP, set column_access=False. Download the SVN version of Brian to start using this feature.