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).

Google Summer of Code 2015

Google Summer of Code 2015 (“a program that offers student developers stipends to write code for various open source projects.”) has announced the accepted mentoring organisations yesterday, among them the International Neuroinformatics Coordinating Facility (INCF). Under the umbrella of the INCF, it is possible to work on Brian! We have added an idea for a project (“Improving the Brian simulator’s interoperability with simulator-independent model-description languages”) to the INCF webpage, but you are free to come up with a proposal of your own. The application period starts on March 16th, but now would be the time to discuss ideas with us. Head over to our mailing list (brian-development@googlegroups.com) if you have questions and/or ideas.

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.

New Brian paper: Equation-oriented specification of neural models for simulations

We have just had a new paper Equation-oriented specification of neural models for simulations published in the Python in Neuroscience II special edition of Frontiers in Neuroinformatics. In this paper we describe the new approach to neural model specification we’re taking in Brian 2. Abstract below:

Simulating biological neuronal networks is a core method of research in computational neuroscience. A full specification of such a network model includes a description of the dynamics and state changes of neurons and synapses, as well as the synaptic connectivity patterns and the initial values of all parameters. A standard approach in neuronal modeling software is to build network models based on a library of pre-defined components and mechanisms; if a model component does not yet exist, it has to be defined in a special-purpose or general low-level language and potentially be compiled and linked with the simulator. Here we propose an alternative approach that allows flexible definition of models by writing textual descriptions based on mathematical notation. We demonstrate that this approach allows the definition of a wide range of models with minimal syntax. Furthermore, such explicit model descriptions allow the generation of executable code for various target languages and devices, since the description is not tied to an implementation. Finally, this approach also has advantages for readability and reproducibility, because the model description is fully explicit, and because it can be automatically parsed and transformed into formatted descriptions. The presented approach has been implemented in the Brian2 simulator.

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.