Python Framework for Object Oriented Modelling of Bioprocesses
Intented application is the acessible modelling of simple to medium complex bioprocess models, by programmatic means. In contrast to 'full-blown' software suites, pyFOOMB can be used by scientists with little programming skills in the easy-access language Python.
pyFOOMB comes with a MIT license, and anyone interested in using, understanding, or contributing to pyFOOMB is happily invited to do so.
pyFOOMB relies on the assimulo package (https://jmodelica.org/assimulo), providing an interface to the SUNDIALS CVode integrator for systems of differential equations, as well as event handling routines. For optimization, i.e. model calibration from data, the pygmo package is used, which provides Python bindings for the pagmo2 package implementing the Asynchronous Generalized Islands Model.
To faciliate rapid starting for new users, a continously growing collection of Jupyter notebooks is provided. These serve to demonstrate basic and advanced concepts and functionalities (also beyond the pure functions of the pyFOOMB package). Also, the examples can be used as building blocks for developing own bioprocess models and corresponding workflows.
Check also our open access publication at Engineering in Life Sciences introducing pyFOOMB with two more elaborated application examples that reproduce real-world data from literature.
Literature:
- Andersson C, Führer C, and Akesson J (2015). Assimulo: A unified framework for ODE solvers. Math Comp Simul 116:26-43
- Biscani F, Izzo D (2020). A parallel global multiobjective framework for optimization: pagmo. J Open Source Softw 5:2338
- Hindmarsh AC, et al (2005). SUNDIALS: Suite of nonlinear and differential/algebraic equation solvers. ACM Trans Math Softw 31:363-396
- python 3.7, 3.8 or 3.9
- numpy
- scipy
- joblib
- pandas
- openpyxl
- matplotlib(-base)
- seaborn(-base)
- psutil
- assimulo (via conda-forge)
- pygmo (via conda-forge)
- Open a terminal / shell
- Optional: Create a new environment with
conda env create -n my-pyfoomb-env python=3.9and activate it withconda activate my-pyfoomb-env - Install
pyFOOMBby executingconda install -c conda-forge pyfoomb
- Download the code repository to your computer, this is done the best way using
git clone: In a shell, navigate to the folder where you want the repository to be located. - Open a terminal / shell and clone the repository
via
git clone https://github.com/MicroPhen/pyFOOMB.git - cd (change directory) into the newly cloned repository :
cd pyfoomb - Verify that you are in the repo folder, where the file
environment.ymlis found (dirfor Windows,lsfor Linux/Mac). - Exceute
conda env create -f environment.yml. This will create a conda environment namedpyfoomb, with the current version of the just cloned git repository. - Don't forget to activate the newly created environment to install the
pyFOOMBpackage in the next step - To make sure, your environment will refer always the state of your git repo (i.e., after own code modifications or after pulling from remote), run
pip install -e ../pyfoomb.