Skip to main content

Biologically Detailed Brain Cell Modeling in JAX

Project description

Biologically Detailed Brain Cell Modeling in JAX

Header image of BrainCell.

Supported Python Version LICENSE Documentation Status PyPI version Continuous Integration DOI

braincell provides a unified interface for modeling single-compartment and multi-compartment Hodgkin-Huxley-styled neuron models. It is built on top of JAX and brainstate, offering a highly parallelized and efficient simulation of biophysically detailed brain cell models.

Quick start

Here is an example to model the single-compartment thalamus neuron model by using the interface of braincell.neuron.SingleCompartment:

import braincell
import brainstate
import brainunit as u

class HTC(braincell.SingleCompartment):
    def __init__(self, size, solver: str = 'exp_euler'):
        super().__init__(size, V_initializer=brainstate.init.Constant(-65. * u.mV), V_th=20. * u.mV, solver=solver)

        self.na = braincell.ion.SodiumFixed(size, E=50. * u.mV)
        self.na.add(INa=braincell.channel.INa_Ba2002(size, V_sh=-30 * u.mV))

        self.k = braincell.ion.PotassiumFixed(size, E=-90. * u.mV)
        self.k.add(IKL=braincell.channel.IK_Leak(size, g_max=0.01 * (u.mS / u.cm ** 2)))
        self.k.add(IDR=braincell.channel.IKDR_Ba2002(size, V_sh=-30. * u.mV, phi=0.25))

        self.ca = braincell.ion.CalciumDetailed(size, C_rest=5e-5 * u.mM, tau=10. * u.ms, d=0.5 * u.um)
        self.ca.add(ICaL=braincell.channel.ICaL_IS2008(size, g_max=0.5 * (u.mS / u.cm ** 2)))
        self.ca.add(ICaN=braincell.channel.ICaN_IS2008(size, g_max=0.5 * (u.mS / u.cm ** 2)))
        self.ca.add(ICaT=braincell.channel.ICaT_HM1992(size, g_max=2.1 * (u.mS / u.cm ** 2)))
        self.ca.add(ICaHT=braincell.channel.ICaHT_HM1992(size, g_max=3.0 * (u.mS / u.cm ** 2)))

        self.kca = braincell.MixIons(self.k, self.ca)
        self.kca.add(IAHP=braincell.channel.IAHP_De1994(size, g_max=0.3 * (u.mS / u.cm ** 2)))

        self.Ih = braincell.channel.Ih_HM1992(size, g_max=0.01 * (u.mS / u.cm ** 2), E=-43 * u.mV)
        self.IL = braincell.channel.IL(size, g_max=0.0075 * (u.mS / u.cm ** 2), E=-70 * u.mV)

Here is an example to model the multi-compartment neuron model by using the interface of braincell.neuron.MultiCompartment:

import braincell
import brainstate
import brainunit as u

# TODO

class HTC(braincell.MultiCompartment):
    def __init__(self, size, solver: str = 'exp_euler'):
        super().__init__(size, V_initializer=brainstate.init.Constant(-65. * u.mV), V_th=20. * u.mV, solver=solver)

Installation

You can install braincell via pip:

pip install braincell --upgrade

Alternatively, you can install BrainX, which bundles braincell with other compatible packages for a comprehensive brain modeling ecosystem:

pip install BrainX -U

Documentation

The official documentation is hosted on Read the Docs: https://braincell.readthedocs.io

See also the brain modeling ecosystem

We are building the brain modeling ecosystem: https://brainmodeling.readthedocs.io/

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

braincell-0.0.1.post20250508-py2.py3-none-any.whl (114.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file braincell-0.0.1.post20250508-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for braincell-0.0.1.post20250508-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 200e369266695cf5e60157ab6ff6aab7822b36194bcf08415f08e7eac4639513
MD5 8a427795fbcf95abca339e66e88ed0d4
BLAKE2b-256 1219e179544cd23d411173cd6eae9f0fa5bbc2092b61f32bb5071ca211fe46a1

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