This page includes information about the underlying scripts of Metaboverse and Metaboverse-cli and how to contribute to and modify the software.
It is essential before getting started that you read through the Contributing and Code of Conduct documents. Harassment, bullying, or other inappropriate behavior of any form will absolutely not be tolerated. Those violating these standards will be banned from contributing to the Metaboverse project.
We highly recommend making use of the Issues, Discussions, and Projects pages to communicate developments, issues, questions and more.
The code base for Metaboverse is currently housed in two primary Github repositories. metaboverse-cli handles the backend processing of metabolic networks and preparing user data for analysis, and Metaboverse handles front-end processing and visualization of user data.
If you would like to modify either of these repositories, you should be begin by forking a branch of the repository. You should reference the documentation: https://docs.github.com/en/get-started/quickstart/fork-a-repo.
Once you have made the desired changes, you can submit a Pull Request, which will be reviewed and incorporated into the code base for future deployment if the changes meet the required standards. You should reference the documentation: https://docs.github.com/en/pull-requests.
metaboverse-clihandles a large portion of the backend processing, primarily to curate the metabolic network for the organism of interest and to layer the user’s data onto said network. The source code is generally organized as follows:
metaboverse-cli ├── setup.py: The command line tool setup file ├── requirements.txt: The depencency file used for distribution ├── metaboverse-cli.spec: The Pyinstaller file to compile the distributable executable └── /metaboverse_cli ├── arguments.py: A file to set and parse user-provided command line arguments ├── __main__.py: The main execution script for the backend ├── /mapper: This submodule generates the metabolite synonym mapper that assists │ in mapping user data to the metabolic network ├── /curate: This submodule builds the organism specific reaction network and │ stores any relevant metadata about the reaction network component └── /analyze: This submodule handles layering the user's data onto the metabolic network. This includes implementing the metabolite synonym mappper. This submodule also handles generating the reaction network with reaction collapsing
Metaboversehandles the front-end user interface and data visualization, and performed reaction pattern recognition in real-time. The source code is generally organized as follows:
Documentation and Testing¶
Any changes made should be supported by intuitive and descriptive comments throughout the code, documentation for analysis features for metaboverse.readthedocs.io, and with test cases.
Distribution of a new release of Metaboverse requires several steps, outlined below.
a) Update the version number in
b) You will then need to do the following for each operating system you are distibuting Metaboverse on.
$ conda create --name pyinstaller $ conda activate pyinstaller $ conda config --add channels conda-forge $ conda install python=3.8
$ conda install pyinstaller $ conda install --file requirements.txt
$ pip install pyinstaller $ pip install -r requirements.txt
Then, on each operating system
$ cd /path-to/metaboverse-cli $ pyinstaller metaboverse-cli.spec
From here, you can archive each operating system executable on the Github release page for
a) You will need to download the
metaboverse-cliexecutables for each operating system. These should be stored in the directory,
b) Update version numbers in
c) Compile the Metaboverse distributions:
$ cd /path-to/Metaboverse $ bash build.sh
You will likely need to compile the Metaboverse package for Mac on a Mac. If the Mac-version
metaboverse-cli executable is packaged into Metaboverse via Electron on another operating system, we have consistently received an error in executing