cfrioux / fluto

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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