Click to launch the tutorial. If you are opening this link for the first time, allow up to 15 minutes to launch.
This tutorial is supplementary to the manuscript Bayesian metamodeling of complex biological systems across varying representations. Metamodeling is an unique probabilistic framework that may couple different simulation models at different length and time scales (and of different representations) to study the inter-dependency of the parameters and degrees of freedom of each model. As a candidate system for applying this novel methodology, we look at the process of coupling different models of the pancreatic beta-cell to develop a harmonized insight into cellular processes. In principle this framework should allow us to couple models of the cell that are very different from each other, e.g. pharmacokinetic models vs. molecular simulation models and the coupling framework should be agonistic to the spatio-temporal scale separations between the input models. While we aren't quite there yet, we present an implementation of metamodeling using toy models of the pancreatic beta cell.
The framework is powered by the probabilistic programming language PyMC3 (version 3.8: The latest PyMC3 version has breaking changes, so be sure to use exactly 3.8)
The mm
directory contains the backend which includes a thin wrapper over PyMC3, distributed over various modules in the mm/core
subfolder. Input models are specified as Python function kept in the mm/models
subfolder. The mm/experiments
subfolder contains scripts for running experiments with different types of coupling imposed on two or more input models. Data and parameter sets used for said experiments can be found in the mm/datasets
subfolder and the mm/default_params.json
file.
The jupyter notebook index.ipynb
contains a small tutorial that takes you step-by step from building probabilistic models, to coupling them and eventually a live demonstration of coupling two simple models relevant to beta cell biology. The tutorial should take 20-30 mins to complete. If you have questions or confusion regarding the tutorial material, please feel free to raise an issue on github or reach out to me directly at tsanyal [at] salilab [dot] org
.
Data and parameters used to run the notebook can be found in datasets
. The file tutorial_utils.py
is a collection of some commonly used boilerplate code throughout the tutorial notebook. To launch a binder image of this repository and interact with the notebook directly from your browser, please click the launch tutorial
badge above. Please allow ~ 15 mins for the server to launch for the first time. Binder employs efficient caching so that when for future launches, it should be relatively fast.
Clone the repository locally and follow the documentation in the code itself to run the experiments. Please make sure to install all necessary python dependencies (preferably through anaconda, but pip will work too) listed in the environments.yml
file and third-party softwares listed in apt.txt
(in this case just the graphviz package).