CobraBabel: COBRA Model Translator

Project description

Metabolic models are available from many sources and different source systems use different ID namespaces. That makes combining and comparing models from different sources difficult. CobraBabel supports the following source systems:

Features include:

• Create a universal model from VMH, BiGG, MetaNetX
• Get a list of available models from BiGG
• Create an organism model from VMH, BiGG
• Get a specific reaction or metabolite from BiGG, KEGG
• Get a specific enzyme, DNA sequence, or amino acid sequence from KEGG

Installation

Use pip to install CobraBabel from PyPI (we recommend doing this inside a virtual environment):

pip install cobrababel


Source systems

CobraBabel uses the data access methods provided by the source systems. The current version of the source system supported by CobraBabel is shown below. If a source system changes its interface, it is possible for CobraBabel to return an error or incorrect data. Additional details on the source systems are in the notes below.

CobraBabel uses web services provided by other organizations which can be offline, the interface can change, or the URL can change. CobraBabel uses these default URLs:

VMH notes

VMH provides a SEED2VMH_translation.csv file which is not the same as the translation table in Supplementary Table 15 in the AGORA paper. Supplementary Table 15 is provided as an Excel workbook which was parsed into two files: (1) vmh_metabolite_xref.tsv and (2) vmh_reaction_xref.tsv which are provided in the “data” folder.

BiGG Notes

CobraBabel uses BiGG API version 2.

Universal metabolites can have more than one formula if different models use a different formula for a metabolite with the same ID (same situation can occur with charge). Currently, CobraBabel blindly picks the first formula in the list of formulae for a universal metabolite.

Universal metabolites have a list of all the compartments where the metabolite is used but a compartment name is not provided. Since different models may use different names for the same compartment ID, when a universal metabolite is added to a model the compartment name is not set.

There is no bulk download of universal metabolites and reactions so creating a universal model is very slow because each metabolite and reaction is downloaded separately.

MetaNetX Notes

CobraBabel uses MNXref Version 2017/05/04.

The list of metabolites is very large and includes metabolites that are not used in any reaction. CobraBabel only includes metabolites that are used in a reaction when creating a universal model.

Some reactions are defined with unspecified stoichiometry coefficients. For example, reaction MNXR109485 has the equation: (2n) MNXM17@MNXD1 + 1 MNXM18575@MNXD1 = 1 MNXM1@MNXD1 + (n) MNXM47@MNXD1 + (n) MNXM87@MNXD1. Currently, CobraBabel does not include these reactions when creating a universal model.

A reaction equation is defined with metabolites in a generic compartment using the syntax MNXM17@MNXD1 to identify the metabolite and compartment. CobraBabel replaces the “@” character with an “_” character in the metabolite ID when creating a universal model.

If a reaction has a value in the Source field, there is only one source in the format: source:id. Sources include Rhea (rhea), KEGG (kegg), MetaCyc (metacyc), UniPathway (upa), The Seed (seed), BiGG (bigg), BioPath (biopath), and Reactome (reactome). Set the verbose parameter when calling create_metanetx_universal_model() to show a warning for reactions with an invalid format in the Source field.

There are no names for reactions so the reaction name is set to the reaction ID.

All reactions are defined as bi-directional so the lower and upper bounds are set to the default values (-1000.0, 1000.0) for all reactions.

KEGG Notes

CobraBabel uses the current version of the KEGG API.

Note, there are some limitations on using the KEGG API, most importantly:

—www.kegg.jp

When setting OTU representatives in the organism database, there can be variability in which organism is selected when there are multiple equally good matches. For example, in the KEGG database there are two Mycobacterium tuberculosis H37Rv organisms, one with ID “T00015” and one with ID “T02178”. It is random as to which one gets picked as the OTU representative.

A sample OTU representative source file is provided in the “data/otu-reps.tsv” file which was retrieved from the KBase Central Data Model using the all_entities_OTU command.

Release Notes

Version 0.1.3 (August 4, 2017)

• Updated create_metanetx_universal_model() to support MetaNetX/MNXref Version 3.0 including new InChIKey value for metabolites and fully compartmentalized reactions (see #1)
• Fixed setting numeric fields in MetaNetX metabolites (see #2)
• Fixed failing tests due to missing comma (see #3)

Version 0.1.2 (June 13, 2017)

• Updated compare_model() with better comparison of reaction definition and better output formatting

Version 0.1.1 (June 7, 2017)

• Added more details on how models are compared

Version 0.1.0 (May 30, 2017)

• Initial version

Project details

Uploaded source