# Python wrapper for efmtool
efmtool is a Java software for the enumeration of Elementary Flux Modes (EFMs)
developed by Marco Terzer at ETH Zurich. This package provides a simple Python
wrapper.
## Installation
`pip install efmtool`
## Usage
The wrapper provides two ways of calling efmtool:
1. Through a simplified interface:
```Python
efms = efmtool.calculate_efms(
stoichiometry : np.array,
reversibilities : List[int],
reaction_names : List[str],
metabolite_names : List[str],
options : Dict = None,
jvm_options : List[str] = None)
```
This function directly returns a NumPy array containing all the EFMs of the
specified network ([example](./examples/small_network.py)).
`reversibilities` is a list indicating whether a reaction is reversible (1)
or not (0). Note that irreversibilities are assumed to be in forward
directions. If a reaction is irreversible in the backward direction, it
should be reversed before calling efmtool. Default options can be obtained
through `get_default_options()`.
1. Through a generic wrapper:
```Python
efmtool.call_efmtool(
args : List[str],
jvm_options : List[str] = None)
```
The wrapper simply calls efmtool passing the specified arguments.
Specifying, writing and reading input/output temporary files is
responsibility of the user.
See `config/metabolic-efm.xml`, the documentation, or run `java -cp
lib/metabolic-efm-all.jar ch.javasoft.metabolic.efm.main.CalculateFluxModes
--help` for more information about the available options.
## Known issues
An (unknown) issue in the original Java software causes the wrapper to fail on operating systems with German/Austrian localization. If you obtain `TypeError: buffer is too small for requested array` consider switching to a language without diaeresis/umlaut in the month names (Jän, Mär, ...).
## Cite us
If you use efmtool in a scientific publication, please cite our paper:
Terzer, M., Stelling, J., 2008. "Large-scale computation of elementary flux
modes with bit pattern trees". *Bioinformatics*. -
[link](http://doi.org/10.1093/bioinformatics/btn401)
## Credits
efmtool is a software written by Marco Terzer (ETH Zurich).
Python wrapper by Mattia Gollub (ETH Zurich).
Thanks to Axel Theorell (ETH Zurich) for OSX compatibility fixes.
Raw data
{
"_id": null,
"home_page": "",
"name": "efmtool",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "EFM,EFMs,Elementary Flux Modes,efmtool,metabolic network,reaction network",
"author": "",
"author_email": "Mattia Gollub <mattia.gollub@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/a9/17/e93f7d2ef5de8e38b1055740316d26d8dde69cb41873411e7b897bcda540/efmtool-0.2.1.tar.gz",
"platform": null,
"description": "# Python wrapper for efmtool\nefmtool is a Java software for the enumeration of Elementary Flux Modes (EFMs)\ndeveloped by Marco Terzer at ETH Zurich. This package provides a simple Python\nwrapper.\n\n## Installation\n`pip install efmtool`\n\n## Usage\nThe wrapper provides two ways of calling efmtool:\n1. Through a simplified interface: \n \n ```Python\n efms = efmtool.calculate_efms(\n stoichiometry : np.array,\n reversibilities : List[int],\n reaction_names : List[str],\n metabolite_names : List[str],\n options : Dict = None,\n jvm_options : List[str] = None)\n ```\n \n This function directly returns a NumPy array containing all the EFMs of the\n specified network ([example](./examples/small_network.py)).\n `reversibilities` is a list indicating whether a reaction is reversible (1)\n or not (0). Note that irreversibilities are assumed to be in forward\n directions. If a reaction is irreversible in the backward direction, it\n should be reversed before calling efmtool. Default options can be obtained\n through `get_default_options()`.\n\n\n1. Through a generic wrapper:\n \n ```Python\n efmtool.call_efmtool(\n args : List[str],\n jvm_options : List[str] = None)\n ```\n\n The wrapper simply calls efmtool passing the specified arguments.\n Specifying, writing and reading input/output temporary files is\n responsibility of the user.\n\nSee `config/metabolic-efm.xml`, the documentation, or run `java -cp\nlib/metabolic-efm-all.jar ch.javasoft.metabolic.efm.main.CalculateFluxModes\n--help` for more information about the available options.\n\n## Known issues\n\nAn (unknown) issue in the original Java software causes the wrapper to fail on operating systems with German/Austrian localization. If you obtain `TypeError: buffer is too small for requested array` consider switching to a language without diaeresis/umlaut in the month names (J\u00e4n, M\u00e4r, ...).\n\n## Cite us\n\nIf you use efmtool in a scientific publication, please cite our paper:\n\nTerzer, M., Stelling, J., 2008. \"Large-\u200bscale computation of elementary flux\nmodes with bit pattern trees\". *Bioinformatics*. -\n[link](http://doi.org/10.1093/bioinformatics/btn401)\n\n\n## Credits\nefmtool is a software written by Marco Terzer (ETH Zurich).\n\nPython wrapper by Mattia Gollub (ETH Zurich).\n\nThanks to Axel Theorell (ETH Zurich) for OSX compatibility fixes.\n",
"bugtrack_url": null,
"license": "BSD License",
"summary": "Python wrapper for efmtool",
"version": "0.2.1",
"split_keywords": [
"efm",
"efms",
"elementary flux modes",
"efmtool",
"metabolic network",
"reaction network"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "aa256087236b7d250399af020a31ea82af9d58b0d65f2034a9555957d3ed809c",
"md5": "e2e88f93a35d36098e59a4a388c01d9a",
"sha256": "4727d9c6f507b49950e91eb4c5cd5ba35028b977334d5a75579d3585af7f5d77"
},
"downloads": -1,
"filename": "efmtool-0.2.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e2e88f93a35d36098e59a4a388c01d9a",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.6",
"size": 5634523,
"upload_time": "2023-03-23T16:38:30",
"upload_time_iso_8601": "2023-03-23T16:38:30.621864Z",
"url": "https://files.pythonhosted.org/packages/aa/25/6087236b7d250399af020a31ea82af9d58b0d65f2034a9555957d3ed809c/efmtool-0.2.1-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a917e93f7d2ef5de8e38b1055740316d26d8dde69cb41873411e7b897bcda540",
"md5": "0bc9100b4b0a88d845659845fb5adfaa",
"sha256": "3b19de78339e9091050433eee32ac4ec2cec6f5cf6c7b518266761a9bf0d5e4f"
},
"downloads": -1,
"filename": "efmtool-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "0bc9100b4b0a88d845659845fb5adfaa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 5634522,
"upload_time": "2023-03-23T16:38:33",
"upload_time_iso_8601": "2023-03-23T16:38:33.070198Z",
"url": "https://files.pythonhosted.org/packages/a9/17/e93f7d2ef5de8e38b1055740316d26d8dde69cb41873411e7b897bcda540/efmtool-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-03-23 16:38:33",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "efmtool"
}