Metabolomics WorkBench REST service

The Metabolomics WorkBench REST service enables access to a variety of data (including metabolite structures, study metadata and experimental results) using HTTP requests. These requests may be carried out using a web browser or may be embedded in 3rd party applications or scripts to enable programmatic access. Most modern programming languages including PHP, Perl, Python, Java and Javascript have the capability to create HTTP request and interact with datasets such as this REST service.

The REST url is composed of 3 main parts:

  1. The invariant base url (in this case "http://www.metabolomicsworkbench.org/rest")
  2. The input specification is composed of 3 required parameters separated by forward slashes. The first parameter is the context, either "compound" or "study", each of which has a separate list of input items associated with it (2nd parameter). The 3rd parameter is an appropriate input value for the chosen item. Examples of an input specification are:
    /compound/pubchem_cid/311/
    /compound/formula/C20H34O/
    /study/study_id/ST000001/
    /study/study_title/diabetes/
  3. The output specification is composed of a required output item parameter and an optional output format parameter. The list of possible output items depends on the value chosen for the context. In the case of the "compound" context one or more (separated by commas) of 'regno', 'formula','exactmass', 'inchi_key', 'name', 'sys_name', 'smiles', 'lm_id', 'pubchem_cid', 'hmdb_id', 'kegg_id', 'chebi_id', 'metacyc_id' may be specified. More conveniently, an output type of 'all' may be specified to retrieve all compound-related fields. Also an output type of 'classification' retrieves the LIPID MAPS/ClassyFire classification hierarchy. In the case of the "study" context, allowed output types are 'summary', 'factors', 'analysis', 'metabolites' and 'data'. The default output format is JSON which is amenable to manipulation and parsing by various programming languages. Optionally a text ouput format may be specified, for example:
    /compound/pubchem_cid/311/all/text
    Exceptions to these output formats occur when either 'molfile' (molfile is downloaded) or 'png' (png image is displayed in browser) is chosen as an output item in the "compound" context.

    The interactive "REST url" creator below shows the currently available options for this service.

Base URL /Context /Input item /Input value /Output item /Output format
http://www.metabolomicsworkbench.org/rest / / / / /

(What is REST?) (What is JSON?)

The table below contains several examples of REST urls.

Example request Example URL
Fetch compound common name from regno http://www.metabolomicsworkbench.org/rest/compound/regno/11/name
Fetch all compound fields from regno http://www.metabolomicsworkbench.org/rest/compound/regno/11/all
Fetch all compound fields as text from regno http://www.metabolomicsworkbench.org/rest/compound/regno/11/all/txt
Fetch compound smiles from PubChem CID http://www.metabolomicsworkbench.org/rest/compound/pubchem_cid/52921723/smiles
Fetch compound common name and sytematic name from inchi key http://www.metabolomicsworkbench.org/rest/compound/inchi_key/JTWQQJDENGGSBJ-UHFFFAOYSA-N/name,sys_name
Fetch all compound fields from formula (multiple records) http://www.metabolomicsworkbench.org/rest/compound/formula/C20H34O/all
Fetch compound classification hierarchy from PubChem CID http://www.metabolomicsworkbench.org/rest/compound/pubchem_cid/5281365/classification
Download compound molfile from regno http://www.metabolomicsworkbench.org/rest/compound/regno/28606/molfile
Fetch png image of structure from regno http://www.metabolomicsworkbench.org/rest/compound/regno/11/png
Fetch summary information for a study http://www.metabolomicsworkbench.org/rest/study/study_id/ST000001/summary
Fetch samples and experimental variables (factors) for a study http://www.metabolomicsworkbench.org/rest/study/study_id/ST000001/factors
Fetch summary information for all studies http://www.metabolomicsworkbench.org/rest/study/study_id/ST/summary
Fetch analysis information for a study http://www.metabolomicsworkbench.org/rest/study/study_id/ST000001/analysis
Fetch metabolites and annotations detected in a study (one study at a time) http://www.metabolomicsworkbench.org/rest/study/study_id/ST000009/metabolites
Fetch metabolites measurements for a study (one study at a time) http://www.metabolomicsworkbench.org/rest/study/study_id/ST000001/data
Fetch mwTab output for a study (one study at a time) http://www.metabolomicsworkbench.org/rest/study/study_id/ST000001/mwtab
Fetch species information as text for all studies http://www.metabolomicsworkbench.org/rest/study/study_id/ST/species/txt
Fetch sample source information as text for all studies http://www.metabolomicsworkbench.org/rest/study/study_id/ST/source/txt
Fetch disease association (where applicable) for all studies http://www.metabolomicsworkbench.org/rest/study/study_id/ST/disease
Fetch all REFMET fields from namehttp://www.metabolomicsworkbench.org/rest/refmet/name/Cholesterol/all
Fetch all REFMET fields from formulahttp://www.metabolomicsworkbench.org/rest/refmet/formula/C12H24O2/all
Fetch all gene fields from gene symbolhttp://www.metabolomicsworkbench.org/rest/gene/gene_symbol/acaca/all
Fetch gene name from Entrez gene idhttp://www.metabolomicsworkbench.org/rest/gene/gene_id/31/gene_name
Fetch all protein fields from UniProt idhttp://www.metabolomicsworkbench.org/rest/protein/uniprot_id/Q13085/all
Fetch all protein fields from Entrez gene idhttp://www.metabolomicsworkbench.org/rest/protein/gene_id/19/all/
Fetch mRNA id from protein Refseq idhttp://www.metabolomicsworkbench.org/rest/protein/refseq_id/NP_005493/mrna_id/
Perform MS precursor ion search on Metabolomics Workbench database with m/z 635.52, ion-type M+H and mass tolerance of 0.5 and output as texthttp://www.metabolomicsworkbench.org/rest/moverz/MB/635.52/M+H/0.5/txt
Perform MS precursor ion search on LIPIDS virtual database with m/z 513.45, ion-type M-2H (2-) and mass tolerance of 0.2 and output as texthttp://www.metabolomicsworkbench.org/rest/moverz/LIPIDS/513.45/M-2H/0.2/txt
Perform MS precursor ion search on REFMET database with m/z 255.2, ion-type M+H and mass tolerance of 0.2 and output as texthttp://www.metabolomicsworkbench.org/rest/moverz/REFMET/255.2/M+H/0.2/txt

REST (REpresentational State Transfer) is an architectural style consisting of a coordinated set of architectural constraints applied to components, connectors, and data elements, within a distributed hypermedia system. REST ignores the details of component implementation and protocol syntax in order to focus on the roles of components, the constraints upon their interaction with other components, and their interpretation of significant data elements.
Fielding, Roy T. (2000). "Chapter 5: Representational State Transfer (REST)". Architectural Styles and the Design of Network-based Software Architectures (Ph.D.). University of California, Irvine.
Fielding, Roy T.; Taylor, Richard N. (May 2002), "Principled Design of the Modern Web Architecture" (PDF), ACM Transactions on Internet Technology (TOIT) (New York: Association for Computing Machinery) 2 (2): 115-150, doi:10.1145/514183.514185, ISSN 1533-5399
REST Wikipedia page

JSON (JavaScript Object Notation) is a lightweight data-interchange format which human readable and also convenient for computers to parse and generate. JSON is a text format that is completely language independent but uses conventions that are familiar to most common programming languages.
Official JSON website

  logo