Skip to main content
Warning: You are using the test version of PyPI. This is a pre-production deployment of Warehouse. Changes made here affect the production instance of TestPyPI (testpypi.python.org).
Help us improve Python packaging - Donate today!

BeTSE: the [B]io[e]lectric [T]issue [S]imulation [E]ngine

Project Description

BETSE

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.

BETSE is portably implemented in pure Python 3, continuously stress-tested with GitLab-CI × Appveyor + py.test, and permissively distributed under the BSD 2-clause license. While a high-level graphical user interface (GUI) supporting all popular platforms is planned, BETSE currently only provides a low-level command line interface (CLI).


Installation

BETSE currently supports Linux, macOS, and Windows out-of-the-box.

Simple

For new users, BETSE is readily installable as follows:

  1. Install the Python 3.x[1] (e.g., 3.5) variant of Anaconda.[2]

  2. Run the following commands from a command-line terminal.

    1. Install BETSE.

      pip3 install betse
      
    2. (Optional) Test BETSE. Run all modelling phases of a sample simulation from the current directory.

      betse try
      
[1]Do not install the Python 2.7 variant of Anaconda. BETSE requires Python 3.x.
[2]If you prefer not to install Anaconda, BETSE dependencies are also installable via your preferred platform-specific package manager (e.g., Homebrew under macOS, APT under Ubuntu). Doing so is non-trivial and, if done 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.

Advanced

For developers and advanced users, any version of BETSE – including the live repository and prior stable releases – is manually installable as follows:

  1. 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.[3]
    • macOS, either:
      • (Recommended) Install the Python 3.x variant of Anaconda.
      • Or both:
        1. Install a third-party package manager (e.g., Homebrew, MacPorts). Apple does not provide a package manager out-of-the-box.
        2. Install these dependencies via that package manager. Do not use pip.[3]
    • Windows, install the Python 3.x variant of Anaconda.[4]
  2. Open a command-line terminal.

  3. Download either:

    • The unstable BETSE repository as follows:

      • Install Git.

      • Clone the master branch of this repository.

        git clone https://gitlab.com/betse/betse.git
        
      • Prepare for installation.

        cd betse
        
    • 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.

        rm betse-*.tar.gz
        
      • Prepare for installation.

        cd betse-*
        
  4. 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
      
  1. (Optional) Test BETSE. Run all modelling phases of a sample simulation from a new directory.

    cd /tmp && betse try
    
[3](1, 2) Do not install scientific dependencies (e.g., NumPy, SciPy) via pip or easy_install; doing so typically degrades BETSE to single-core operation. To optimize BETSE across multiple cores, always install these dependencies via your preferred platform-specific package manager (e.g., Homebrew, APT).
[4]Unlike Linux and macOS, Anaconda is (effectively) required under Windows. Due to this platform’s lack of support for POSIX-conformant toolchains, no reasonable alternatives for installing multicore-aware scientific dependencies exist.

Introduction

BETSE simulates biorealistic electrochemical phenomena in gap junction-networked 2D cellular collectives. To predict bioelectric patterns and their spatio-temporal dynamics, BETSE:

  • 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:
    • Publication-quality:
      • Plots, charts, and animations driven by Matplotlib, the industry standard for open-source plot visualization.
      • Directed graphs (i.e., networks) driven by Graphviz, the industry standard for open-source graph visualization.
    • 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:

Ions

Simulations may enable arbitrary combinations of the principal ions implicated in bioelectrical signaling – including:

Ion Channels

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:

Custom ion channels parametrized by user-selected constants may be trivially defined in the same manner (e.g., via a YAML-formatted configuration file).

Ion Pumps and Exchangers

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

Extracellular Space

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.

Biological Networks

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.

Validation

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:

For details, see our recently published introductory paper.

License

BETSE is open-source software released under the permissive BSD 2-clause license.

Authors

BETSE comes courtesy a dedicated community of authors and contributors – without whom this project would be computationally impoverished, biologically misaligned, and simply unusable.

Thanks, all.

See Also

For prospective users:

  • Installation, detailing BETSE’s installation with exhaustive platform-specific instructions.
  • Usage, detailing BETSE’s command-line interface (CLI) with human-readable explanation and examples.

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 History

This version
History Node

0.4.1

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
betse-0.4.1-py3-none-any.whl (1.2 MB) Copy SHA256 Checksum SHA256 py3 Wheel Jan 6, 2017
betse-0.4.1.tar.gz (1.2 MB) Copy SHA256 Checksum SHA256 Source Jan 6, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting