Biomine Explorer API

Biomine Explorer also supports programmatic access. The API is based on JSON protocol and offers two functions: listing of databases and search.

How to use API

The Biomine Explorer API is always used in the following way:
  1. call the list_databases function to get a list of available Biomine databases;
  2. call the api function with the selected database and source and optionaly target query terms. Other optional parameters can also be adjusted. If you do not specify a database, the default one will be used.
Note that if the target query terms are also given a connection-mode search will be performed instead of the usual neighbourhood-mode.

API functions and parameters

  • list databases: https://biomine.ijs.si/list_databases [GET or POST], no parameters
  • search: https://biomine.ijs.si/api [POST only], parameters:
    • database: name of the database [string; mandatory]
    • sourceTerms: list of source query terms [comma separated string]
    • targetTerms: list of target query terms [comma separated string]
    • maxnodes: desired max. number of nodes [integer in range [5,200]; optional]
    • grouping: do grouping or not [0 or 1; optional]
    • graph_type: format of the result [valid choices: 'bmg', 'gml', 'graphml', 'json', 'pajek', 'gexf'; optional]

Examples

Here is a Python code snippet which demonstrates the use of Biomine API. You can use it with Python 2 and 3, just make sure that you have the excellent requests library installed.

import requests


listdb_url = 'https://biomine.ijs.si/list_databases'
search_url = 'https://biomine.ijs.si/api'

# list all available databases
databases = requests.get(listdb_url).json()['databases']
print(databases)

# a minimal example: all parameters have default values
params1 = {'sourceTerms': 'UniProt:O15409, UniProt:P38398'}
graph1 = requests.post(search_url, params1).json()['graph']

# here we select the 'json' graph format instead of default '.bmg'
params2 = {'sourceTerms': 'InterPro:IPR011364, EntrezGene:672', 'graph_type': 'json'}
graph2 = requests.post(search_url, params2).json()['graph']

# here we do a connection search and set all parameters:
# database, sourceTerms, targetTerms, maxnodes, grouping, and graph_type
params3 = {'database': databases['biomine'][0],
           'sourceTerms': 'EntrezGene:27086',
           'targetTerms': 'EntrezGene:93986',
           'maxnodes': 50,
           'grouping': 0,
           'graph_type': 'bmg'}
graph3 = requests.post(search_url, params3).json()['graph']