OmicsDI Restful Documentation

Most data in the Datatsets Discovery Index can be accessed programmatically using a RESTful API. The API implementation is based on the Spring Rest Framework.

Web-browsable API

The OmicsDI API is web browsable, which means that:

  • The query results returned by the API are available in JSONformat and also XML. This ensures that they can be viewed by human and accessed programmatically by computer.
  • The main RESTful API page provides a simple web-based user interface, which allows developers to familiarize themselves with the API and get a better sense of the OmicsDI data before writing a single line of code.

many resources are hyperlinked so that it’s possible to navigate the API in the browser.

As a result, developers can familiarize themselves with the API and get a better sense of the OmicsDI data.

API documentation

Responses containing multiple entries have the following fields:

  • the count is the number of entries in the matching set.
  • dataset is an array of datasets.
  • facet is an array of facets.

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    http://www.omicsdi.org/ws/dataset/search?query=human
       {
          "count": 733,
          "datasets": [
               {
                 "id": "PXD000456",
                 "source": "pride",
                 "title": "Human glomerular extracellular matrix analysed by LC-MSMS",
                 "description": "Extracellular matrix proteins were isolated from human glomeruli and analysed by LC-MSMS",
                 "keywords": [
                     "Human",
                     "kidney",
                     "glomerulus",
                     "extracellular matrix"
                 ],
                 "organisms": [
                    {
                      "acc": "9606",
                      "name": "Homo sapiens"
                    }
                 ],
                 "publicationDate": "20140122"
               },
            // 19 more datasets
          ],
          "facets": [
            {
                "id": "modification",
                "label": "Modification",
                "total": 181,
                "facetValues": [
               {
                  "label": "Unknown modification",
                  "value": "unknown modification",
                  "count": "5"
            },
            //other facet values
          ],
          },
        //other facets
        ]
      }

Responses containing just a single dataset have some extra navigation fields, and without the facets

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
  http://www.omicsdi.org/ws/dataset/get?acc=PXD001848&database=PRIDE
      {
         "id": "PXD001848",
         "name": "Global Analysis of Protein Folding Thermodynamics for Disease State Characterization, MCF7 vs MDAMB231",
         "description": "Protein biomarkers can be used to characterize and diagnose disease states such as cancer. ....",
         "keywords": null,
         "publicationDate": "20150410",
         "publications": [
              {
                 "id": "25825992",
                 "publicationDate": "2015-04-09",
                 "title": "Global analysis of protein folding thermodynamics for disease state characterization.",
                 "pubabstract": "Current methods for the large-scale characterization of disease states ....",
                 "cycle": "testcyclehere"
              }
         ],
         "related_datasets": null,
         "data_protocol": "Peak lists were extracted from the raw LC-MS/MS data files and the data were searched against t...."
      }

Sort

The result datasets can be sorted using the title, description, publication date, accession id and the relevance of the query term.

Examples:

Filtering

The API supports several filtering operations that complement the main OmicsDI search functionality.

Filtering by search term, there is 1 URL parameter: query

Examples

Filtering by omics type:

The omics type can be specified by adding terms in the query url parameter with key: omics_type (possible values: Proteomics, Metabolomics, Genomics, Transcriptomics).

Examples:

Filtering by database

The database can be specified by adding terms in the query URL parameter with key: repository (possible values: MassIVE, Metabolights, PeptideAtlas, PRIDE, GPMDB, EGA, Metabolights, Metabolomics Workbench, MetabolomeExpress, GNPS, ArrayExpress, ExpressionAtlas).

Examples:

Filtering by Organism

The organism can be specified by adding terms in the query URL parameter with key: TAXONOMY (possible values must be the TAXONOMY id: 9606, 10090…).

Examples:

Filtering by Tissue

The tissue can be specified by adding terms in the query URL parameter with key: tissue (possible values: Liver, Cell culture, Brain, Lung…).

Examples:

Filtering by Disease

The disease can be specified by adding terms in the query URL parameter with key: disease (possible values: Breast cancer, Lymphoma, Carcinoma, prostate adenocarcinoma…).

Examples

Filtering by Modification (in proteomics)

The Modifications (in proteomics) can be specified by adding terms in the query URL parameter with key: disease (possible values: Deamidated residue, Deamidated, Monohydroxylated residue, Iodoacetamide derivatized residue…).

Examples:

Filtering by Instruments & Platforms

The Instruments & Platforms can be specified by adding terms in the query URL parameter with key: instrument_platform (possible values: QSTAR, LTQ Orbitrap, Q Exactive, LTQ…).

Examples:

Filtering by Publication Date

The Publication Date can be specified by adding terms in the query URL parameter with key: “publication_date” (possible values: 2015, 2014, 2013, 2014…).

Examples:

Filtering by Technology Type

The Technology Type can be specified by adding terms in the query URL parameter with key: “technology_type” (possible values: Mass Spectrometry, Bottom-up proteomics, Gel-based experiment, Shotgun proteomics…).

Examples:

Combined filters

Any filters can be combined to narrow down the query using the AND operator. More logical operators will be supported in the future.

Examples: