Brian package structure¶
List of modules with descriptions of contents:
- Shared base classes for some Brian clases. At the moment, just the
ObjectContainerclass used to implement the
guess_clock()function, and other clock manipulation functions.
- A class used in compartmental modelling (see user documentation).
- Everything to do with connections, including the
DelayConnectionclasses, but also construction/connection matrices and connection vector code. One of the longest and most technical parts of Brian.
- A tool for producing correlated spike trains.
- Classes for producing groups which fire spikes at user specified times.
- Everything to do with the
- Global preferences for Brian, a few routines for getting and setting.
- A base class for
NeuronGroupwhich creates an
_Sattribute from an
Equationsobject with the appropriate dynamical variables, and allows these variables to be accessed by e.g.
grp.Vby overriding the
- Utility functions for inspecting namespaces, checking consistency of equations, some code manipulation, etc.
- Brian’s somewhat under-developed logging capabilities.
- Classes and functions for tracking and finding instances of classes.
- More code for compartmental modelling (see user docs).
- All the monitors, including
MagicNetworkclasses as well as the
NetworkOperationclass. Also includes the
run(), etc. functions.
NeuronGroupdefinition and some related stuff, including linked variables (the
- Some tools for freezing expressions (converting e.g.
3*msinto 0.003) and simplifying some equations (e.g.
- Plotting tools, mostly
- A leftover from the day when Brian had support for arrays with units, will be removed when practical.
- Reset classes.
- State update classes and the
- STDP features.
- Standard unit names such as
- Short term plasticity features.
- Threshold classes.
TimedArrayclass and related functions.
- The Brian units package, including the
- Some functions which override the numpy ones which are safe to use with
sin(3*volt)raises a dimensionality error.
- Electrophysiology library with electrode and amplifier models.
- Integrate-and-fire models (leaky, quadratic, exponential...).
- Ionic current models (K+, Na+...).
- Currently only Ornstein-Uhlenbeck.
- Synaptic models (exponential, alpha and biexponential models).
- Some tools for doing approximate comparisons with floating point numbers (because they are inexact).
- Automatic differentiation routines (for single-valued functions).
- The important
SpikeContainerand related classes. The
Cversion uses SWIG and is much faster but requires the user to compile themselves at the moment (this will be addressed at some point in the future).
- Some utility functions related to documentation.
- Entropy and mutual information estimators. Requires the ANN wrapper in scikits.
- A utility function for using the Parallel Python module.
Parametersclass, basically independent of Brian but potentially useful.
- A progress reporting framework which
Network.run()can use to report how long it is taking to run, with text or graphical options.
- Statistics of spike trains (CV, vector strength, correlograms...).
- Tabulation of numerical functions (precalculation).