Skip to content

Physics-based machine learning with dynamic Boltzmann distributions

License

Notifications You must be signed in to change notification settings

smrfeld/phys_dbd

Repository files navigation

Physics-based dynamic PCA for modeling stochastic reaction networks with TensorFlow

docs

This is the source repo. for the physDBD Python package. It allows the creation of physics-based machine learning models in TensorFlow for modeling stochastic reaction networks.

drawing

Quickstart

  1. Install:

    pip install physDBD
    
  2. See the example notebook.

  3. Read the documentation.

About

This repo. implements a TensorFlow package for modeling stochastic reaction networks with a dynamic PCA model. Please see this paper for technical details:

O. K. Ernst, T. Bartol, T. Sejnowski and E. Mjolsness. Physics-based machine learning for modeling stochastic IP3-dependent calcium dynamics. arXiv:2109.05053

The original implementation in the paper is written in Mathematica and can be found here. The Python package developed here translates these methods to TensorFlow.

The only current supported probability distribution is the Gaussian distribution defined by PCA; more general Gaussian distributions are a work in progress.

Requirements

  • TensorFlow 2.5.0 or later. Note: later versions not tested.
  • Python 3.7.4 or later.

Installation

Use pip:

pip install physDBD

Alternatively, clone this repo. and use the provided setup.py:

python setup.py install

Documentation

See the dedicated documentation page.

Example

See the notebook in the example notebook.

Tests

Tests are run using pytest and are located in tests.

Citing

Please cite this paper::

O. K. Ernst, T. Bartol, T. Sejnowski and E. Mjolsness. Physics-based machine learning for modeling stochastic IP3-dependent calcium dynamics. arXiv:2109.05053