vffva

Dynamically load-balanced FVA through a hybrid MPI/OpenMP architecture.

https://github.com/marouenbg/vffva

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: ncbi.nlm.nih.gov, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.9%) to scientific vocabulary

Keywords

constraint-based-modeling flux-balance-analysis metabolic-models
Last synced: 6 months ago · JSON representation ·

Repository

Dynamically load-balanced FVA through a hybrid MPI/OpenMP architecture.

Basic Info
  • Host: GitHub
  • Owner: marouenbg
  • License: mit
  • Language: MATLAB
  • Default Branch: master
  • Homepage:
  • Size: 181 MB
Statistics
  • Stars: 4
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 7
Topics
constraint-based-modeling flux-balance-analysis metabolic-models
Created over 7 years ago · Last pushed almost 3 years ago
Metadata Files
Readme License Citation

README.md

DOI TRAVIS codecov License: MIT

This repository provides the code and result figures with the paper:

VFFVA: dynamic load balancing enables large-scale flux variability analysis.

Contact: Marouen Ben Guebila

Usage

The supported languages are: C (veryfastFVA.c) with wrappers in MATLAB (VFFVA.m) and Python (VFFVA.py). IBM CPLEX has stopped its support for MATLAB since version 12.10, therefore VFFVA can be an alternative to access new CPLEX versions through its C API.

Please refer to the documentation and the UserGuide for veryfastFVA (VFFVA) usage.

In MATLAB, add the project folder to your MATLAB path and save it, then use VFFVA(). In Python, import VFFA to use VFFVA().

For the comparison with fastFVA (FFVA), you can install FFVA here.

Installation

Please install each of the 3 dependencies separately as specified in the documentation. - IBM ILOG CPLEX free academic version - MPI - OpenMP is installed by default on most platforms except recent MacOS versions that require a dedicated installation.

Motivation

FVA³ is the workhorse of metabolic modeling. It allows to characterize the boundaries of the solution space of a metabolic model and delineates the bounds for reaction rates.

FFVA¹ brought considerable speed up over FVA through the use C over MATLAB, and the reuse of the same LP object which allows to avoid solving the optimization problem from scratch for every reaction. Although, with the increase of the size of metabolic models, FFVA is run usually in parallel.

The parallel setting for the common FVA implementations1,2 relies on dividing the 2n tasks (one maximization and one minimization for the n reactions) among the p workers equally. Such as each worker gets 2n/p reactions to process. This is called static load balancing and would be the optimal startegy if each of the n reactions is solved in equal times (left figure).

Nevertheless, in most metabolic models there are several ill-conditioned reactions that require longer solution time thereby slowing the worker processing them which impacts the overall process, as the workers have to synchronize at the end to reduce the results (middle figure).

One approach would be to estimate a priori the solution time of each reaction and distribute to each worker 2n/p reactions of equal solution time. But, estimating the solution time of a reaction a priori could be a challenging task.

VFFVA performs dynamic load blancing. In runtime, each worker gets a small chunk of reactions to process and once finished, gets another one and so on (right figure). This setting allows i) fast workers to process more reactions which allows all the workers to finish at the same time, and ii) does not require a priori balancing as the workers will automatically get chunk of reactions assigned from the queue.

Dynamic load balancing

Presentations

VFFVA has been presented in the poster session of the 2017 International Conference on Systems Biology of Human Disease in Heidelberg, Germany.

References

¹Gudmundsson and Thiele. Computationally efficient flux variability analysis.

²Heirendt et al. DistributedFBA.jl: high-level, high-performance flux balance analysis in Julia

³Mahadevan and Schilling. The effects of alternate optimal solutions in constraint-based genome-scale metabolic models.

License

The software is free and is licensed under the MIT license, see the file LICENSE for details.

Feedback/Issues

Please check the documentation first and report any issues to the issues page.

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Owner

  • Name: Marouen
  • Login: marouenbg
  • Kind: user

Computer scientist by phenotype.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Ben Guebila"
  given-names: Marouen
  orcid: https://orcid.org/0000-0001-5934-966X
title: "VFFVA: dynamic load balancing enables large-scale flux variability analysis"
doi: 10.1186/s12859-020-03711-2
url: https://github.com/marouenbg/VFFVA
version: 0.3
date-released: 2020-05-27
journal: BMC Bioinformatics

GitHub Events

Total
Last Year

Dependencies

docs/requirements.txt pypi
  • releases *