BETSE, the BioElectric Tissue Simulation Engine.
BETSE (BioElectric Tissue Simulation Engine) is an open-source cross-platform finite volume simulator for 2D computational multiphysics problems in the life sciences – including electrodiffusion, electro-osmosis, galvanotaxis, voltage-gated ion channels, gene regulatory networks, and biochemical reaction networks (e.g., metabolism). BETSE is associated with the Paul Allen Discovery Center at Tufts University and supported by a Paul Allen Discovery Center award from the Paul G. Allen Frontiers Group.
BETSEE (BETSE Environment) is the official open-source cross-platform graphical user interface (GUI) for BETSE. BETSEE wraps the low-level command-line interface (CLI) bundled with BETSE in a high-level interactive modelling environment optimized for both new and advanced users alike.
Like BETSE, BETSEE is portably implemented in Python 3 and permissively distributed under the BSD 2-clause license. Unlike BETSE, BETSEE leverages the industry-standard PySide2-based Qt 5 application framework to deliver a modern scientific workflow.
BETSE currently supports Linux, macOS, and Windows out-of-the-box.
For new users, BETSE is readily installable as follows:
Under Ubuntu Linux 16.04 (Xenial Xerus) and newer:
Open a terminal. 
Run the following commands.
wget https://gitlab.com/betse/betsee/raw/master/bin/install/linux/betsee_ubuntu_16_04.bash && source betsee_ubuntu_16_04.bash
Under all other platforms: (e.g., macOS, Windows)
Open a terminal. 
Run the following commands.
Install mandatory dependencies. 
conda install dill conda install -c conda-forge imageio
Install BETSE. 
python3 -m pip install betse
(Optional) Install recommended dependencies. While not required for basic usage, the following third-party packages are required for advanced functionality (e.g., gene regulatory networks, animation video encoding).
conda install -c anaconda graphviz && \ conda install -c conda-forge ffmpeg networkx && \ conda install -c rmg pydot
(Optional) Test BETSE. Run all modelling phases of a sample simulation from the current directory.
|||(1, 2) |
To open a POSIX-compatible terminal under:
|||Do not install the Python 2.7 variant of Anaconda. BETSE requires Python 3.x.|
|||If you prefer not to install Anaconda, BETSE dependencies are also installable with your platform-specific package manager (e.g., Homebrew on macOS, APT on Ubuntu Linux). Doing so is non-trivial and, if performed incorrectly, could produce a performance-crippled single-core installation of BETSE – which would be bad. Anaconda suffers no such issues and is guaranteed to produce a performance-optimized multicore installation of BETSE on all supported platforms – which is good.|
|||Most mandatory dependencies of BETSE (e.g., NumPy, SciPy) are already bundled by default with Anaconda. Some (e.g., dill, imageio) are not. The latter require manual installation.|
|||Always run the python3 -m pip command to install Python packages into the active Anaconda environment. Never run the pip or pip3 commands, which incorrectly refer to their non-Anaconda versions on some platforms (e.g., macOS), which prevents BETSE from finding packages installed with these commands – which is bad. The python3 -m pip command suffers no such issues and is guaranteed to install packages in a BETSE-aware manner on all supported platforms – which is good.|
For developers and advanced users, any version of BETSE – including the live repository and prior stable releases – is manually installable as follows:
Install Python 3.x and all dependencies required by BETSE. Under:
- Linux, install these dependencies via your distribution-specific package manager (e.g., APT under Debian-based distributions). Do not use pip.
- macOS, either:
- Windows, install the Python 3.x variant of Anaconda.
Open a terminal.
The unstable BETSE repository as follows:
Clone the master branch of this repository.
git clone https://gitlab.com/betse/betse.git
Prepare for installation.
Any stable BETSE release, including the most recent, as follows:
Visit our source tarball archive.
Click the download icon to the right of the desired release and select Download tar.gz.
Extract the downloaded tarball into the current directory.
tar -xvzf betse-*.tar.gz
(Optional) Remove this tarball.
Prepare for installation.
Install BETSE either:
(Recommended) Editably, installing a cross-platform symbolic link to the current BETSE codebase. Modifications to this code are applied immediately without requiring reinstallation.
sudo python3 setup.py develop
Non-editably, installing a physical copy of the current BETSE codebase. Modifications to this code are ignored and thus require reinstallation.
sudo python3 setup.py install
(Optional) Test BETSE, running all modelling phases of a sample simulation from a new directory.
cd /tmp && betse try
|||(1, 2) Do not install scientific dependencies (e.g., NumPy, SciPy) with either pip or easy_install; doing so typically degrades BETSE to single-core performance. To optimize BETSE across multiple cores, always install these dependencies with your platform-specific package manager (e.g., Homebrew, APT).|
|||Unlike Linux and macOS, Anaconda is (effectively) required under Windows. Due to Microsoft’s lack of support for POSIX-compliant toolchains, no reasonable alternatives for installing multicore-aware scientific dependencies exist.|
BETSE itself provides the betse command, a low-level command line interface (CLI) optimized for non-interactive scripting (e.g., for implementing massively parallel genetic algorithms). See the following external documents for detailed usage instructions – complete with explanatory examples, sample plots, and ample screenshots:
- Official BETSE 0.4 documentation. (PDF format; 72 pages.)
- Official BETSE 0.3 documentation. (PDF format; 77 pages.)
Alternately, our sister project BETSEE provides the betsee command, a high-level graphical user interface (GUI) optimized for interactive experimentation.
- Models ion channel and gap junction activity.
- Tracks changes in ion concentration and net ionic charge.
- Calculates endogenous voltages and currents.
- Accepts simulation parameters, variables, and options as human-readable, well-commented configuration files in YAML format.
- Exports simulation results to a variety of output formats, including:
- Internet-friendly compressed video driven by any of various popular open-source video encoders, including FFmpeg, Libav, and MEncoder.
- Post-processable tabular data (e.g., comma-separated values (CSV)).
- Imports bitmask images defining the shapes of:
- Cell clusters.
- Cell cluster regions localizing ion channel activity, typically signifying disparate types of adjacent tissue.
To assemble simple concepts into complex simulations, BETSE supplies a richly configurable, highly scalable biological toolset consisting of:
Simulations may enable arbitrary combinations of the principal ions implicated in bioelectrical signaling – including:
Individual cells in simulations may enable arbitrary combinations of voltage-gated ion channels, each implementing the Hodgkin-Huxley (HH) formalism with experimentally-derived parameters sourced from reputable knowledge-based systems (e.g., Channelpedia). Explicitly supported channel types include:
- HCN1, HCN2, and HCN4.
- L-type Ca, T-type Ca, and P/Q-type Ca.
- Kv1.1, Kv1.2, Kv1.5. Kv3.3, and Kv3.4.
- Nav1.2, Nav1.3, and Nav1.6.
- Leak and ligand-gated channels, including:
Custom ion channels parametrized by user-selected constants may be trivially defined in the same manner (e.g., via a YAML-formatted configuration file).
For fine-grained control over cell dynamics, notable ion pumps and exchangers may also be selectively enabled – including:
Custom ion pumps and exchangers parametrized by user-selected constants may be trivially defined in the same manner (e.g., via a YAML-formatted configuration file).
Cells form interconnected intracellular networks via voltage-sensitive gap junction connections embedded within an extracellular environment, maintained by tight junctions at the cell cluster periphery. Simulation of this environment enables exploration of local field potentials, transepithelial potential, and ephaptic coupling between cells.
Simulation of gene regulatory and biochemical reaction networks at both the cellular and mitochondrial level supports deep spatial analysis of otherwise intractable biological processes. Metabolism, disease, aging, and other genetic and epigenetic phenomena commonly associated with quasi-Big Data are all valid targets for exhaustive study with BETSE.
To integrate these potent control systems with bioelectrical signaling, the activity-modulated interaction between gene products and similar biochemicals is fully integrated with ion channels, ion pumps, and gap junctions.
BETSE is peer-reviewed software receiving continual evidence-based scrutiny. Simulation output is reproducibly synchronized with experimental observations on membrane permeability, resting potential, ion concentration, and similar real-world biophysical quantities. Predictable outcomes have been demonstrated for such well-known cases as:
- Transmembrane voltage changes on perturbations to single cell membrane states and environmental ion concentrations.
- Transepithelial potential differences (TEPD).
- Bioelectrical signals at large-scale cellular wound sites.
For details, see our recently published introductory paper.
BETSE is formally described in our introductory paper. Third-party papers, theses, and other texts leveraging BETSE should (ideally) cite the following:
Pietak, Alexis and Levin, Michael, 2016. Exploring instructive physiological signaling with the bioelectric tissue simulation engine (BETSE). (Supplement).  Frontiers in Bioengineering and Biotechnology, 4(55). DOI: 10.3389/fbioe.2016.00055
Subsequent papers expanding the BETSE architecture with additional theory, experimental results, and comparative metrics include:
Pietak, Alexis and Levin, Michael, 2017. Bioelectric gene and reaction networks: computational modelling of genetic, biochemical and bioelectrical dynamics in pattern regulation. (Supplement).  Journal of The Royal Society Interface, 14(134), p.20170425. DOI: 10.1098/rsif.2017.0425
|||(1, 2) This article’s supplement extends the cursory theory presented by this article with a rigorous treatment of the mathematics, formalisms, and abstractions required to fully reproduce this work. If theoretical questions remain after completing the main article, please consult this supplement.|
For prospective users:
- Installation, detailing BETSE’s installation with exhaustive platform-specific instructions.
For prospective contributors:
- Development, detailing development of the BETSE codebase – philosophy, workflow, and otherwise.
- Testing, detailing testing of the BETSE codebase – continuous integration, manual testing, and otherwise.
- Freezing, detailing conversion of the BETSE codebase into redistributable platform-specific executable binaries.
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|betse-0.6.1-py3-none-any.whl (1.9 MB) Copy SHA256 hash SHA256||Wheel||py3|
|betse-0.6.1.tar.gz (1.5 MB) Copy SHA256 hash SHA256||Source||None|