vffva
Dynamically load-balanced FVA through a hybrid MPI/OpenMP architecture.
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
Repository
Dynamically load-balanced FVA through a hybrid MPI/OpenMP architecture.
Basic Info
Statistics
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 7
Topics
Metadata Files
README.md
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.

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
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
- Website: marouenbg.github.io
- Twitter: marouenbg
- Repositories: 34
- Profile: https://github.com/marouenbg
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
- releases *