Skip to content

cfrioux/fluto

Repository files navigation

fluto

Metabolic network completion with respect to topological and linear reaction rate constraints based on the stoichiometry.

Tested with Python 3.6.10 and 3.7.6.

So far only level 2 SBML files are supported.

If you use Fluto, please cite:

Frioux, C., Schaub, T., Schellhorn, S., Siegel, A., Wanko, P. (2019), Hybrid metabolic network completion, TPLP, 19(1), 83–108 https://dx.doi.org/10.1017/s1471068418000455

PDF of the manuscript.

Installation and requirements

A good practice is to perform the Python installations into a virtualenv or a conda environment

Create a conda environment for fluto from the environment.yml.

  • conda env create -f environment.yml

Activate conda environment.

  • conda activate fluto

ClingoLP

  • conda install -c potassco -c conda-forge clingo-lp

CPLEX

IBM provides a promotional version sufficient to solve the toy example.

  • conda install -c ibmdecisionoptimization cplex

For the full version follow the IBM installation procedure. e.g.

  • cd /Applications/CPLEX_Studio128/cplex/python/3.6/x86-64_osx/
  • python setup.py install

Package install

Install the Fluto package:

  • python setup.py install

Usage

❯ fluto -h
usage: fluto [-h] -m MODEL [-r REPAIRBASE] [-s SEEDS] [-e N | -b | -c]
             [--sagot | --fluto1] [--no-accumulation] [--no-fba] [--cplex]
             [--json]

Performs hybrid (topological/flux) gap-filling

optional arguments:
  -h, --help            show this help message and exit
  -m MODEL, --model MODEL
                        organism metabolic model in SBML format
  -r REPAIRBASE, --repairbase REPAIRBASE
                        database of reactions for gap-filling
  -s SEEDS, --seeds SEEDS
                        use topological seeds that are not defined via
                        reactions in the model, txt file with one seed ID per
                        line
  -e N, --enumerate N   enumerate at most N solutions, default is 1, use 0 for
                        all solutions
  -b, --brave           compute the union of all solutions
  -c, --cautious        compute the intersection of all solutions
  --sagot               use the notion of Sagot & Acuna for the topological
                        produciblity criterium, default is the scope notion of
                        Handorf & Ebenhöh
  --fluto1              use scope notion of the first fluto version for the
                        topological produciblity criterium, default is the
                        scope notion of Handorf & Ebenhöh
  --no-accumulation     allow the accumulation of metabolites, per default the
                        accumulation of metabolites is allowed
  --no-fba              turn off flux balance constraints
  --cplex               use CPLEX solver
  --json                produce JSON output

requires Python, ClingoLP and CPLEX packages, see README.md

Example

fluto -m data/toy/draft.xml -s data/toy/toposeeds.txt -r data/toy/repairdb.xml

Publication