MetGEM is a software package for predicting functional composition of microbial communities using metabolic models.
MetGEM has been tested with python 3.7 in linux environment only. We highly recommend to install MetGEM with pip in the conda environment.
conda create -n metgem_env python=3.7
conda activate metgem_env
git clone https://github.com/yumyai/MetGEM
cd MetGEM
pip install -e .
When all is done, running metgem
should print out the list of available commands.
>metgem
METGEM - Community Metabolic Network predictor from
Usage: metgem <command> [options] <arguments>
Available command
markp - Calculate reaction
listmodel - List available model
MetGEM takes two tab-delimited tables as an input
MetGEM came with prebuilt functional models based on AGORA's model.
We will use the example files for a quick demonstration how MetGEMs works.
wget https://raw.githubusercontent.com/yumyai/MetGEM/master/examples/feature-table.tsv -O otutab.tsv
wget https://raw.githubusercontent.com/yumyai/MetGEM/master/examples/taxonomy_gg.tsv -O taxtab.tsv
MetGEMs come bundle with all kind of models. listmodel
command can be used to list all models include with the MetGEMs.
The commands to produce KO profile abundance and EC profile abundance are identicle except for the model part.
metgem markp -i otutab.tsv -t taxtab.tsv -m k_core -o output_ko.tsv
metgem markp -i otutab.tsv -t taxtab.tsv -m e_core -o output_ec.tsv
The result should be in output_ko.tsv
and output_ec.tsv
as KO abundance table and EC numbers abundance table respectively. There are others type of option available (pan, pan-weight), but we found that core and core-weight usually provide a good estimation in most situations.
metgem markp -i otutab.tsv -t taxtab.tsv -m k_core -o output_ko.tsv
metgem markp -i otutab.tsv -t taxtab.tsv -m e_core -o output_ec.tsv
If you encounter bugs or having futher questions, you can create an issue at the Issues page. I will get in touch as soon as possible.
TODO.
- There is no way to independently assign a taxonomic weight outside include directly into a model.
- KO <-> EC conversion is not supported. While it is trivial, we notice that most EC <-> KO conversion are not 1-1 mapping so we would not recommend.