{"id":19323409,"url":"https://github.com/cfrioux/fluto","last_synced_at":"2025-11-17T01:02:18.667Z","repository":{"id":46608748,"uuid":"133516730","full_name":"cfrioux/fluto","owner":"cfrioux","description":null,"archived":false,"fork":false,"pushed_at":"2021-10-04T06:41:43.000Z","size":315,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-06T06:12:30.831Z","etag":null,"topics":["answer-set-programming","bioinformatics","flux-balance-analysis","gap-filling","linear-programming","metabolic-models","metabolic-network","metabolic-reconstruction"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cfrioux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-15T13:01:13.000Z","updated_at":"2022-10-06T14:13:28.000Z","dependencies_parsed_at":"2022-07-21T05:02:16.505Z","dependency_job_id":null,"html_url":"https://github.com/cfrioux/fluto","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfrioux%2Ffluto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfrioux%2Ffluto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfrioux%2Ffluto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfrioux%2Ffluto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cfrioux","download_url":"https://codeload.github.com/cfrioux/fluto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240427142,"owners_count":19799466,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["answer-set-programming","bioinformatics","flux-balance-analysis","gap-filling","linear-programming","metabolic-models","metabolic-network","metabolic-reconstruction"],"created_at":"2024-11-10T01:46:19.826Z","updated_at":"2025-11-17T01:02:13.634Z","avatar_url":"https://github.com/cfrioux.png","language":"Python","readme":"# fluto\n\nMetabolic network completion with respect to topological and linear reaction rate constraints based on the stoichiometry.\n\nTested with Python 3.6.10 and 3.7.6.\n\nSo far only level 2 [SBML](http://sbml.org/Documents/Specifications) files are supported.\n\n**If you use Fluto, please cite:**\n\nFrioux, 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](https://dx.doi.org/10.1017/s1471068418000455) \n\n[PDF of the manuscript](https://www.cs.uni-potsdam.de/wv/publications/DBLP_journals/tplp/FriouxSSSW19.pdf).\n\n## Installation and requirements\n\nA good practice is to perform the Python installations into a [virtualenv](https://virtualenv.pypa.io/en/stable/installation/) or a [conda environment](https://conda.io/docs/user-guide/tasks/manage-environments.html)\n\nCreate a conda environment for fluto from the `environment.yml`.\n\n- `conda env create -f environment.yml`\n\nActivate conda environment.\n\n- `conda activate fluto`\n\n### ClingoLP\n\n- `conda install -c potassco -c conda-forge clingo-lp`\n\n### CPLEX\n\nIBM provides a promotional version sufficient to solve the toy example.\n\n- `conda install -c ibmdecisionoptimization cplex`\n\nFor the full version follow the [IBM installation procedure](https://www.ibm.com/support/knowledgecenter/SSSA5P_12.10.0/ilog.odms.cplex.help/CPLEX/GettingStarted/topics/set_up/Python_setup.html). e.g.\n\n- `cd /Applications/CPLEX_Studio128/cplex/python/3.6/x86-64_osx/`\n- `python setup.py install`\n\n### Package install\n\nInstall the Fluto package:\n\n- `python setup.py install`\n\n## Usage\n\n```text\n❯ fluto -h\nusage: fluto [-h] -m MODEL [-r REPAIRBASE] [-s SEEDS] [-e N | -b | -c]\n             [--sagot | --fluto1] [--no-accumulation] [--no-fba] [--cplex]\n             [--json]\n\nPerforms hybrid (topological/flux) gap-filling\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -m MODEL, --model MODEL\n                        organism metabolic model in SBML format\n  -r REPAIRBASE, --repairbase REPAIRBASE\n                        database of reactions for gap-filling\n  -s SEEDS, --seeds SEEDS\n                        use topological seeds that are not defined via\n                        reactions in the model, txt file with one seed ID per\n                        line\n  -e N, --enumerate N   enumerate at most N solutions, default is 1, use 0 for\n                        all solutions\n  -b, --brave           compute the union of all solutions\n  -c, --cautious        compute the intersection of all solutions\n  --sagot               use the notion of Sagot \u0026 Acuna for the topological\n                        produciblity criterium, default is the scope notion of\n                        Handorf \u0026 Ebenhöh\n  --fluto1              use scope notion of the first fluto version for the\n                        topological produciblity criterium, default is the\n                        scope notion of Handorf \u0026 Ebenhöh\n  --no-accumulation     allow the accumulation of metabolites, per default the\n                        accumulation of metabolites is allowed\n  --no-fba              turn off flux balance constraints\n  --cplex               use CPLEX solver\n  --json                produce JSON output\n\nrequires Python, ClingoLP and CPLEX packages, see README.md\n```\n\n### Example\n\n`fluto -m data/toy/draft.xml -s data/toy/toposeeds.txt -r data/toy/repairdb.xml`\n\n## Publication\n\n- [Hybrid metabolic network completion, Frioux, C., Schaub, T., Schellhorn, S., Siegel, A., Wanko, P. (2019),  TPLP, 19(1), 83–108](https://www.cs.uni-potsdam.de/wv/publications/DBLP_journals/tplp/FriouxSSSW19.pdf)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfrioux%2Ffluto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcfrioux%2Ffluto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfrioux%2Ffluto/lists"}