{"id":19323402,"url":"https://github.com/cfrioux/menetools","last_synced_at":"2025-04-22T19:32:20.140Z","repository":{"id":17055171,"uuid":"81065810","full_name":"cfrioux/MeneTools","owner":"cfrioux","description":"MeneTools are Python3 tools to explore the topology of metabolic networks. It includes Menecheck, Menescope, Menepath and Menecof.","archived":false,"fork":false,"pushed_at":"2024-02-29T10:25:17.000Z","size":5729,"stargazers_count":5,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-06T22:52:59.978Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cfrioux.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-02-06T08:39:17.000Z","updated_at":"2023-09-04T17:01:36.000Z","dependencies_parsed_at":"2023-01-13T19:07:56.140Z","dependency_job_id":"8d955268-18d4-43fc-893f-1b3e0636d950","html_url":"https://github.com/cfrioux/MeneTools","commit_stats":{"total_commits":128,"total_committers":8,"mean_commits":16.0,"dds":0.6640625,"last_synced_commit":"5cd8d4a7adcb170e6694c308e03ed7354264791d"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfrioux%2FMeneTools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfrioux%2FMeneTools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfrioux%2FMeneTools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfrioux%2FMeneTools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cfrioux","download_url":"https://codeload.github.com/cfrioux/MeneTools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223903615,"owners_count":17222550,"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":[],"created_at":"2024-11-10T01:46:17.223Z","updated_at":"2024-11-10T01:46:17.659Z","avatar_url":"https://github.com/cfrioux.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![PyPI version](https://img.shields.io/pypi/v/menetools.svg)](https://pypi.org/project/MeneTools/) [![GitHub license](https://img.shields.io/github/license/cfrioux/menetools.svg)](https://github.com/cfrioux/MeneTools/blob/main/LICENSE.txt) [![Actions Status](https://github.com/cfrioux/MeneTools/workflows/Python%20package/badge.svg)](https://github.com/cfrioux/MeneTools/actions) [![](https://img.shields.io/badge/doi-10.1371/journal.pcbi.1006146-blueviolet.svg)](https://doi.org/10.1371/journal.pcbi.1006146) [![](https://img.shields.io/badge/doi-10.7554/eLife.61968-blueviolet.svg)](https://doi.org/10.7554/eLife.61968)\n\n# MeneTools\n\nMeneTools are Python (3.6 and higher) tools to explore the producibility potential in a metabolic network using the network expansion algorithm. The MeneTools can:\n* assess whether targets are producible starting from nutrients (`Mene check`)\n* get all compounds that are producible starting from nutrients (`Mene scope`)\n* get all reactions that are activable from nutrients (`Mene acti`)\n* get production paths of specific compounds (`Mene path`)\n* obtain compounds that if added to the nutrients, would ensure the producibility of targets (`Mene cof`)\n* identify metabolic deadends, _i.e._ metabolites that act as reactants of reactions but never as products, or metabolites that act as products of reactions but never as reactants. This is a purely structural analysis (`Mene dead`)\n* identify exchanged compounds in metabolic networks based on exchange reactions, _i.e._ outputs of reactions that do not have reactants (`Mene seed`).\n* identify the number of steps needed either to produce targets or all producible compounds (computed with menescope) starting from nutrients (`Mene scope_inc`).\n\nMeneTools follows the producibility in metabolic networks as defined by the [network expansion](http://www.ncbi.nlm.nih.gov/pubmed/15712108) algorithm.\nMainly, two rules are followed:\n* a *recursive rule*: the products of a reactions are producible if **all** reactants of this reaction are themselves producible\n* an *initiation rule*: producibility is initiated by the presence of nutrients, called *seeds*. \n\nA metabolite that is producible from a set of nutrients is described as being \"in the scope of the seeds\".\nThe computation is made using logic solvers (Answer Set Programming). The present modelling ignores the stoichiometry of reactions (2A + B --\u003e C is considered equivalent to A + B --\u003e C), and is therefore suited to non-curated or draft metabolic networks.\n\n**Menescope** computes the set of metabolites that are producible from a set of nutrients: its provides the scope of the seeds in a metabolic network. **Menecheck** assesses whether a list of target metabolites are producible from the nutrients in a metabolic model, following the network expansion algorithm. \n\n**Meneacti** has a similar functioning as Menescope but focuses on activable reactions. It computes all reactions that can be activated from the nutritional environment (i.e. whose sets of reactants are in the scope). \n\n**Menepath** (*beta* version) proposes a pathway (set of reactions) that explains the producibility of a given target metabolite from the seeds. The objective if to find a path of reactions for metabolites of interest. \n\n**Menecof** (*beta* version) proposes compounds that would unblock the producibility of taregt metabolites if they were producible. It can therefore identify missing cofactor for the modelling or compounds that would need to be added to the growth medium of the modelled organism. **Menedead** (*beta* version) identifies deadends in a metabolic network. Deadends are compounds which are not produced or consumed (meaning that they are not reactant or product of a reaction). \n\n**Meneseed** (*beta* version) returns metabolites produced by reaction without reactants. **Menescope_inc** (*beta* version) computes the number of steps needed by the expansion algorithm to reach either (1) targets or (2) all producible compounds.\n\n**If you use MeneTools, please cite:**\n\nBelcour* A, Frioux* C, Aite M, Bretaudeau A, Hildebrand F, Siegel A. Metage2Metabo, microbiota-scale metabolic complementarity for the identification of key species. eLife 2020;9:e61968 [https://doi.org/10.7554/eLife.61968](https://doi.org/10.7554/eLife.61968).\n\nAite* M, Chevallier* M, Frioux* C, Trottier* C, Got J, Cortés MP, et al. Traceability, reproducibility and wiki-exploration for “à-la-carte” reconstructions of genome-scale metabolic models. PLoS Comput Biol 2018;14:e1006146. [https://doi.org/10.1371/journal.pcbi.1006146](https://doi.org/10.1371/journal.pcbi.1006146).\n\n## Install\n\nRequires **Python \u003e= 3.6**\n\nRequired package (starting from version 2.0 of the package):\n* [``Clyngor``](https://github.com/Aluriak/clyngor) or [``Clyngor_with_clingo``](https://github.com/Aluriak/clyngor-with-clingo) that includes the solvers\n\n```\npython setup.py install\n```\n\nor \n\n```\npip install menetools\n```\n\n## Usage\n\n```\nusage: mene [-h] [-v] {acti,check,cof,dead,path,scope,seed,scope_inc} ...\n\nExplore the producibility potential in a metabolic network using the network\nexpansion algorithm. For specific help on each subcommand use: mene {cmd}\n--help\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -v, --version         show program's version number and exit\n\nsubcommands:\n  valid subcommands:\n\n  {acti,check,cof,dead,path,scope,seed,scope_inc}\n    acti                Get activable reactions in a metabolic network,\n                        starting from seeds.\n    check               Check the producibility of targets from seeds in a\n                        metabolic network.\n    cof                 Propose cofactor whose producibility could unblock the\n                        producibility of targets.\n    dead                Identification of dead-end reactions (reactions whose\n                        reactants are never consumed or whose reactants are\n                        never produced) in metabolic networks.\n    path                Get production pathways of targets in metabolic\n                        networks, started from seeds.\n    scope               Get producible metabolites in a metabolic network,\n                        starting from seeds.\n    seed                Get metabolites from exchange reactions in a metabolic network.\n    scope_inc           Get the steps of the network expansion to produce\n                        either targets or all the producible compounds,\n                        starting from seeds.\n\nRequires Clingo and clyngor package: \"pip install clyngor clyngor-with-clingo\"\n\n```\n\n### MENECHECK\n\nMenecheck is a python3 tool to get the topologically producibility status of target compounds\n\n```\nusage: mene check [-h] -d DRAFTNET -s SEEDS [-t TARGETS] [--output OUTPUT]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -d DRAFTNET, --draftnet DRAFTNET\n                        metabolic network in SBML format\n  -s SEEDS, --seeds SEEDS\n                        seeds in SBML format\n  -t TARGETS, --targets TARGETS\n                        targets in SBML format\n  --output OUTPUT       output file for instance\n```\n\n\n```python\nfrom menetools import run_menecheck\n\nmodel = run_menecheck(draft_sbml='required',seeds_sbml='required',targets_sbml='required',output='optional')\n```\n\n### MENESCOPE\n\nMenescope is a python3 tool to get the topologically reachable compounds from\nseeds in a metabolic network.\n\n```\nusage: mene scope [-h] -d DRAFTNET -s SEEDS [--output OUTPUT]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -d DRAFTNET, --draftnet DRAFTNET\n                        metabolic network in SBML format\n  -s SEEDS, --seeds SEEDS\n                        seeds in SBML format\n  --output OUTPUT       output file for instance\n```\n\n```python\nfrom menetools import run_menescope\n\nmodel = run_menescope(draft_sbml='required',seeds_sbml='required',output='optional')\n```\n\nThe outputs for menecope are\n\n- As a control: seeds that were provided but do not appear in the metabolic network.\n- The _scope_ i.e. compounds that are in the seeds and those that are produced from the seeds\n- Two subsets to distinguish seed status\n  - those that can be produced by the metabolic network. For such seeds, the organism would have the metabolic capability to renew the production in addition to what was available in the environement. \n  - those that cannot be produced by the metabolic network. For such seeds, there is no alternative other than relying on the environmental composition.\n\n### MENEACTI\n\nMeneacti is a python3 tool that retrieve the activable reactions from\nseeds in a metabolic network.\n\n```\nusage: mene acti [-h] -d DRAFTNET -s SEEDS [--output OUTPUT]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -d DRAFTNET, --draftnet DRAFTNET\n                        metabolic network in SBML format\n  -s SEEDS, --seeds SEEDS\n                        seeds in SBML format\n  --output OUTPUT       output file for instance\n```\n\n```python\nfrom menetools import run_menescope\n\nmodel = run_mene_acti(draft_sbml='required',seeds_sbml='required',output='optional')\n```\n\n### MENEPATH\n\nMenepath is a python3 tool to get the topologically essential reactions with\nrespects to individual targets in metabolic networks.\n\n```\nusage: mene path [-h] -d DRAFTNET -s SEEDS [-t TARGETS] [--enumerate] [--min]\n                 [--output OUTPUT]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -d DRAFTNET, --draftnet DRAFTNET\n                        metabolic network in SBML format\n  -s SEEDS, --seeds SEEDS\n                        seeds in SBML format\n  -t TARGETS, --targets TARGETS\n                        targets in SBML format\n  --enumerate           enumerates all cofactors solutions\n  --min                 call this option to obtain minimal-size paths\n  --output OUTPUT       output file for instance\n```\n\n```python\nfrom menetools import run_menepath\n\nmodel = run_menepath(draft_sbml='required',seeds_sbml='required',targets_sbml='required',min_size='optional',enumeration='optional',output='optional')\n```\n\n### MENECOF\n\nMenecof is a python3 tool to get the minimal set of cofactors that enables to\nmaximize the number f producible targets. Study of the metabolic network is made\ntopologically using reachable compounds from seeds.\n\n```\nusage: mene cof [-h] -d DRAFTNET -s SEEDS [-t TARGETS] [-c COFACTORS]\n                [--weight] [--suffix SUFFIX] [--enumerate] [--output OUTPUT]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -d DRAFTNET, --draftnet DRAFTNET\n                        metabolic network in SBML format\n  -s SEEDS, --seeds SEEDS\n                        seeds in SBML format\n  -t TARGETS, --targets TARGETS\n                        targets in SBML format\n  -c COFACTORS, --cofactors COFACTORS\n                        cofactors, in one-per-line text file format\n  --weight              call this option if cofactors are weighted according\n                        to their occurrence frequency in database. If so,\n                        cofactors file must be tabulated with per line\n                        compound' 'occurrence\n  --suffix SUFFIX       suffix to be added to the compounds of the database.\n                        It can be the suffix for the cytosolic compartment or\n                        external one. Cytosolic one is prefered to ensure the\n                        impact of the added cofactors. Default = None\n  --enumerate           enumerates all cofactors solutions\n  --output OUTPUT       output file for instance\n```\n\n```python\nfrom menetools import run_menecof\n\nmodel = run_menecof(draft_sbml='required',seeds_sbml='required',targets_sbml='required',cofactors_txt='optional',weights='optional',suffix='optional',enumeration='optional',output='optional')\n```\n\n### MENEDEAD\n\nMenedead is a python3 tool to identify dead ends in a metabolic network, by\nsearching non produced and non consumed metabolites.\n\n```\nusage: mene dead [-h] -d DRAFTNET [--output OUTPUT]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -d DRAFTNET, --draftnet DRAFTNET\n                        metabolic network in SBML format\n  --output OUTPUT       json output file\n```\n\n```python\nfrom menetools import run_menedead\n\nmodel = run_menedead(draft_sbml='required',output='optional')\n```\n\n### MENESEED\n\nMeneseed identifies metabolites produced by exchange reactions in a metabolic network.\nIt does not consider the flux value of these exchange reactions, it solely considers the\nstructure of the network. \n\ne.g. Given the reactions ` \u003c-\u003e A`, ` -\u003e B`, ` \u003c- C`, A and B would be reported by Meneseed.\n\n```\nusage: mene seed [-h] -d DRAFTNET [--output OUTPUT]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -d DRAFTNET, --draftnet DRAFTNET\n                        metabolic network in SBML format\n  --output OUTPUT       json output file\n```\n\n```python\nfrom menetools import run_meneseed\n\nmodel = run_meneseed(draft_sbml='required',output='optional')\n```\n\n### MENESCOPE_INC\n\nMenescope_inc identifies the number of steps needed by the expansion algorithm to reach either (1) specific targets or (2) all producible compounds.\nThe results are for each step, the producible metabolites.\n\n```\nusage: mene scope_inc [-h] -d DRAFTNET -s SEEDS [-t TARGETS] [--output OUTPUT]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -d DRAFTNET, --draftnet DRAFTNET\n                        metabolic network in SBML format\n  -s SEEDS, --seeds SEEDS\n                        seeds in SBML format\n  -t TARGETS, --targets TARGETS\n                        targets in SBML format\n  --output OUTPUT       json output file\n```\n\n```python\nfrom menetools import run_menescope_inc\n\nmodel = run_menescope_inc(draft_sbml='required',seeds_sbml='required',targets_sbml='optional',output='optional')\n```\n\n## Acknowledgements\n\nMany thanks to\n* [@Aluriak](https://github.com/Aluriak) for his awesome work with [Clyngor](https://github.com/Aluriak/clyngor).\n* [@mablt](https://github.com/mablt) for his contribution to MeneSeed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfrioux%2Fmenetools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcfrioux%2Fmenetools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfrioux%2Fmenetools/lists"}