Probabilistic Meta-Modeling Demonstration
Catalina, CA, Nov, 2019
Meta-Modeling is a (for now) stand-in name for a unique probabilistic computational framework that can couple different simulation models at different length and time scales (and of different types) to study the interdepency 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. systems-biology types of models (PK/PD) with molecular simulation models (particle simulators like Brownian dynamics) 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 meta-modeling using toy models of the pancreatic beta cell.
The framework is powered by the probabilistic programming language PyMC3
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
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. This tutorial was presented at the Pancreatic Beta Cell Consortium retreat, organized at Catalina in Nov. 2019. The tutorial should take ~ 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
tanmoy [dot] 7989 [at] gmail [dot] com.
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.
A conda- or pip-based installation pipeline will be rolled out once the code reaches a beta version. For now you can close 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).