Skip to main content

BrainPy: A flexible and extensible framework for brain modeling

Project description

Logo

LICENSE Documentation PyPI version Build Status

Why to use BrainPy

BrainPy is an integrative framework for computational neuroscience and brain-inspired computation based on Just-In-Time (JIT) compilation (built on the top of JAX and Numba). Core functions provided in BrainPy includes

  • JIT compilation for functions and class objects.
  • Numerical solvers for ODEs, SDEs, and others.
  • Dynamics simulation tools for various brain objects, like neurons, synapses, networks, soma, dendrites, channels, and even more.
  • Dynamics analysis tools for differential equations, including phase plane analysis and bifurcation analysis, and linearization analysis.
  • Seamless integration with deep learning models, and has the speed benefit on JIT compilation.
  • And more ......

BrainPy is designed to effectively satisfy your basic requirements:

  • Easy to learn and use: BrainPy is only based on Python language and has little dependency requirements.
  • Flexible and transparent: BrainPy endows the users with the fully data/logic flow control. Users can code any logic they want with BrainPy.
  • Extensible: BrainPy allow users to extend new functionality just based on Python coding. For example, we extend the same code with the ability to do numerical analysis (whatever low- or high-dimensional system).
  • Efficient: All codes in BrainPy can be just-in-time compiled (based on JAX and Numba) to run on CPU, GPU or TPU devices, thus guaranteeing its running efficiency.

How to use BrainPy

Step 1: installation

BrainPy is based on Python (>=3.6), and the following packages are required to be installed to use BrainPy:

  • NumPy >= 1.15
  • Matplotlib >= 3.4

The installation details please see documentation: Quickstart/Installation

Method 1: install BrainPy by using pip:

To install the stable release of BrainPy, please use

> pip install -U brain-py

Method 2: install BrainPy from source:

> pip install git+https://github.com/PKU-NIP-Lab/BrainPy
>
> # or
>
> git clone https://github.com/PKU-NIP-Lab/BrainPy
> cd BrainPy
> python setup.py install

Other dependencies: you want to get the full supports by BrainPy, please install the following packages:

  • JAX >= 0.2.10, needed for "jax" backend and many other supports
  • Numba >= 0.52, needed for JIT compilation on "numpy" backend
  • SymPy >= 1.4, needed for dynamics "analysis" module and Exponential Euler method

Step 2: useful links

Step 3: inspirational examples

Here list several examples of BrainPy. More detailed examples and tutorials please see BrainModels or BrainPy-Examples.

Neuron models

See brainmodels.neurons to find more.

Synapse models

See brainmodels.synapses to find more.

Network models

Learning through back-propagation

Low-dimension dynamics analysis

High-dimension dynamics analysis

  • [Fixed point finder]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brain-py-1.1.2.tar.gz (227.2 kB view details)

Uploaded Source

File details

Details for the file brain-py-1.1.2.tar.gz.

File metadata

  • Download URL: brain-py-1.1.2.tar.gz
  • Upload date:
  • Size: 227.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.8.11

File hashes

Hashes for brain-py-1.1.2.tar.gz
Algorithm Hash digest
SHA256 d517850be0c490a566ed7bb18ef0a190034758412d7d0da6abbcbd4ec45f9ec3
MD5 21d6c2e2981f316342fbab062c9f6770
BLAKE2b-256 11136cc419765e2054848f529d675f8c1e0090f21be942174e15999b8bcb3abb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page