Giter VIP home page Giter VIP logo

pyfoomb's Introduction

codecov Tests DOI License: MIT GitHub release (latest by date)

pyFOOMB

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

Requirements (provided as environment.yml)

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

Easy installation

  1. Open a terminal / shell
  2. Optional: Create a new environment with conda env create -n my-pyfoomb-env python=3.9 and activate it with conda activate my-pyfoomb-env
  3. Install pyFOOMB by executing conda install -c conda-forge pyfoomb

Development installation

  1. 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.
  2. Open a terminal / shell and clone the repository via git clone https://github.com/MicroPhen/pyFOOMB.git
  3. cd (change directory) into the newly cloned repository : cd pyfoomb
  4. Verify that you are in the repo folder, where the file environment.yml is found (dir for Windows, ls for Linux/Mac).
  5. Exceute conda env create -f environment.yml. This will create a conda environment named pyfoomb, with the current version of the just cloned git repository.
  6. Don't forget to activate the newly created environment to install the pyFOOMB package in the next step
  7. 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.

pyfoomb's People

Contributors

kossikater avatar microphen avatar niklastenhaef avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.