Introduction

This notebook demonstrates basic usage of BioThings Explorer, an engine for autonomously querying a distributed knowledge graph. BioThings Explorer can answer two classes of queries -- "EXPLAIN" and "PREDICT". EXPLAIN queries are described in EXPLAIN_demo.ipynb. Here, we describe PREDICT queries and how to use BioThings Explorer to execute them. A more detailed overview of the BioThings Explorer systems is provided in these slides.

PREDICT queries are designed to predict plausible relationships between one entity and an entity class. For example, in this notebook, we explore the question:

         "What drugs might be used to treat hyperphenylalaninemia?"

To experiment with an executable version of this notebook, .

Step 0: Load BioThings Explorer modules

First, install the biothings_explorer and biothings_schema packages, as described in this README. This only needs to be done once (but including it here for compability with ).


In [1]:
%%capture
!pip install git+https://github.com/biothings/biothings_explorer#egg=biothings_explorer


Requirement already satisfied: biothings_explorer from git+https://github.com/biothings/biothings_explorer#egg=biothings_explorer in ./ENV/lib/python3.7/site-packages (0.0.1)
Requirement already satisfied: jsonpath-rw>=1.4.0 in ./ENV/lib/python3.7/site-packages (from biothings_explorer) (1.4.0)
Requirement already satisfied: networkx==2.3 in ./ENV/lib/python3.7/site-packages (from biothings_explorer) (2.3)
Requirement already satisfied: requests>=2.21.0 in ./ENV/lib/python3.7/site-packages (from biothings_explorer) (2.22.0)
Requirement already satisfied: aiohttp in ./ENV/lib/python3.7/site-packages (from biothings_explorer) (3.5.4)
Requirement already satisfied: pandas in ./ENV/lib/python3.7/site-packages (from biothings_explorer) (0.25.1)
Requirement already satisfied: jsonschema>=3.0.1 in ./ENV/lib/python3.7/site-packages (from biothings_explorer) (3.0.1)
Requirement already satisfied: biothings-schema@ git+https://github.com/biothings/biothings_schema.py from git+https://github.com/biothings/biothings_schema.py in ./ENV/lib/python3.7/site-packages (from biothings_explorer) (0.0.1)
Requirement already satisfied: tornado==4.5.3 in ./ENV/lib/python3.7/site-packages (from biothings_explorer) (4.5.3)
Requirement already satisfied: notebook==5.7.5 in ./ENV/lib/python3.7/site-packages (from biothings_explorer) (5.7.5)
Requirement already satisfied: jupyter in ./ENV/lib/python3.7/site-packages (from biothings_explorer) (1.0.0)
Requirement already satisfied: graphviz>=0.11.1 in ./ENV/lib/python3.7/site-packages (from biothings_explorer) (0.11.1)
Requirement already satisfied: six in ./ENV/lib/python3.7/site-packages (from jsonpath-rw>=1.4.0->biothings_explorer) (1.12.0)
Requirement already satisfied: ply in ./ENV/lib/python3.7/site-packages (from jsonpath-rw>=1.4.0->biothings_explorer) (3.11)
Requirement already satisfied: decorator in ./ENV/lib/python3.7/site-packages (from jsonpath-rw>=1.4.0->biothings_explorer) (4.4.0)
Requirement already satisfied: certifi>=2017.4.17 in ./ENV/lib/python3.7/site-packages (from requests>=2.21.0->biothings_explorer) (2019.3.9)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in ./ENV/lib/python3.7/site-packages (from requests>=2.21.0->biothings_explorer) (3.0.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in ./ENV/lib/python3.7/site-packages (from requests>=2.21.0->biothings_explorer) (1.25.3)
Requirement already satisfied: idna<2.9,>=2.5 in ./ENV/lib/python3.7/site-packages (from requests>=2.21.0->biothings_explorer) (2.8)
Requirement already satisfied: multidict<5.0,>=4.0 in ./ENV/lib/python3.7/site-packages (from aiohttp->biothings_explorer) (4.5.2)
Requirement already satisfied: async-timeout<4.0,>=3.0 in ./ENV/lib/python3.7/site-packages (from aiohttp->biothings_explorer) (3.0.1)
Requirement already satisfied: attrs>=17.3.0 in ./ENV/lib/python3.7/site-packages (from aiohttp->biothings_explorer) (19.1.0)
Requirement already satisfied: yarl<2.0,>=1.0 in ./ENV/lib/python3.7/site-packages (from aiohttp->biothings_explorer) (1.3.0)
Requirement already satisfied: pytz>=2017.2 in ./ENV/lib/python3.7/site-packages (from pandas->biothings_explorer) (2019.2)
Requirement already satisfied: python-dateutil>=2.6.1 in ./ENV/lib/python3.7/site-packages (from pandas->biothings_explorer) (2.8.0)
Requirement already satisfied: numpy>=1.13.3 in ./ENV/lib/python3.7/site-packages (from pandas->biothings_explorer) (1.17.0)
Requirement already satisfied: setuptools in ./ENV/lib/python3.7/site-packages (from jsonschema>=3.0.1->biothings_explorer) (41.0.1)
Requirement already satisfied: pyrsistent>=0.14.0 in ./ENV/lib/python3.7/site-packages (from jsonschema>=3.0.1->biothings_explorer) (0.15.2)
Requirement already satisfied: PyYAML>=5.1 in ./ENV/lib/python3.7/site-packages (from biothings-schema@ git+https://github.com/biothings/biothings_schema.py->biothings_explorer) (5.1.1)
Requirement already satisfied: strict-rfc3339 in ./ENV/lib/python3.7/site-packages (from biothings-schema@ git+https://github.com/biothings/biothings_schema.py->biothings_explorer) (0.7)
Requirement already satisfied: jupyter-core>=4.4.0 in ./ENV/lib/python3.7/site-packages (from notebook==5.7.5->biothings_explorer) (4.4.0)
Requirement already satisfied: terminado>=0.8.1 in ./ENV/lib/python3.7/site-packages (from notebook==5.7.5->biothings_explorer) (0.8.2)
Requirement already satisfied: prometheus-client in ./ENV/lib/python3.7/site-packages (from notebook==5.7.5->biothings_explorer) (0.7.0)
Requirement already satisfied: pyzmq>=17 in ./ENV/lib/python3.7/site-packages (from notebook==5.7.5->biothings_explorer) (18.0.1)
Requirement already satisfied: traitlets>=4.2.1 in ./ENV/lib/python3.7/site-packages (from notebook==5.7.5->biothings_explorer) (4.3.2)
Requirement already satisfied: ipython-genutils in ./ENV/lib/python3.7/site-packages (from notebook==5.7.5->biothings_explorer) (0.2.0)
Requirement already satisfied: nbformat in ./ENV/lib/python3.7/site-packages (from notebook==5.7.5->biothings_explorer) (4.4.0)
Requirement already satisfied: nbconvert in ./ENV/lib/python3.7/site-packages (from notebook==5.7.5->biothings_explorer) (5.5.0)
Requirement already satisfied: Send2Trash in ./ENV/lib/python3.7/site-packages (from notebook==5.7.5->biothings_explorer) (1.5.0)
Requirement already satisfied: ipykernel in ./ENV/lib/python3.7/site-packages (from notebook==5.7.5->biothings_explorer) (5.1.1)
Requirement already satisfied: jinja2 in ./ENV/lib/python3.7/site-packages (from notebook==5.7.5->biothings_explorer) (2.10.1)
Requirement already satisfied: jupyter-client>=5.2.0 in ./ENV/lib/python3.7/site-packages (from notebook==5.7.5->biothings_explorer) (5.2.4)
Requirement already satisfied: qtconsole in ./ENV/lib/python3.7/site-packages (from jupyter->biothings_explorer) (4.5.1)
Requirement already satisfied: ipywidgets in ./ENV/lib/python3.7/site-packages (from jupyter->biothings_explorer) (7.4.2)
Requirement already satisfied: jupyter-console in ./ENV/lib/python3.7/site-packages (from jupyter->biothings_explorer) (6.0.0)
Requirement already satisfied: ptyprocess; os_name != "nt" in ./ENV/lib/python3.7/site-packages (from terminado>=0.8.1->notebook==5.7.5->biothings_explorer) (0.6.0)
Requirement already satisfied: testpath in ./ENV/lib/python3.7/site-packages (from nbconvert->notebook==5.7.5->biothings_explorer) (0.4.2)
Requirement already satisfied: defusedxml in ./ENV/lib/python3.7/site-packages (from nbconvert->notebook==5.7.5->biothings_explorer) (0.6.0)
Requirement already satisfied: mistune>=0.8.1 in ./ENV/lib/python3.7/site-packages (from nbconvert->notebook==5.7.5->biothings_explorer) (0.8.4)
Requirement already satisfied: bleach in ./ENV/lib/python3.7/site-packages (from nbconvert->notebook==5.7.5->biothings_explorer) (3.1.0)
Requirement already satisfied: pandocfilters>=1.4.1 in ./ENV/lib/python3.7/site-packages (from nbconvert->notebook==5.7.5->biothings_explorer) (1.4.2)
Requirement already satisfied: entrypoints>=0.2.2 in ./ENV/lib/python3.7/site-packages (from nbconvert->notebook==5.7.5->biothings_explorer) (0.3)
Requirement already satisfied: pygments in ./ENV/lib/python3.7/site-packages (from nbconvert->notebook==5.7.5->biothings_explorer) (2.4.2)
Requirement already satisfied: ipython>=5.0.0 in ./ENV/lib/python3.7/site-packages (from ipykernel->notebook==5.7.5->biothings_explorer) (7.5.0)
Requirement already satisfied: MarkupSafe>=0.23 in ./ENV/lib/python3.7/site-packages (from jinja2->notebook==5.7.5->biothings_explorer) (1.1.1)
Requirement already satisfied: widgetsnbextension~=3.4.0 in ./ENV/lib/python3.7/site-packages (from ipywidgets->jupyter->biothings_explorer) (3.4.2)
Requirement already satisfied: prompt-toolkit<2.1.0,>=2.0.0 in ./ENV/lib/python3.7/site-packages (from jupyter-console->jupyter->biothings_explorer) (2.0.9)
Requirement already satisfied: webencodings in ./ENV/lib/python3.7/site-packages (from bleach->nbconvert->notebook==5.7.5->biothings_explorer) (0.5.1)
Requirement already satisfied: pexpect; sys_platform != "win32" in ./ENV/lib/python3.7/site-packages (from ipython>=5.0.0->ipykernel->notebook==5.7.5->biothings_explorer) (4.7.0)
Requirement already satisfied: appnope; sys_platform == "darwin" in ./ENV/lib/python3.7/site-packages (from ipython>=5.0.0->ipykernel->notebook==5.7.5->biothings_explorer) (0.1.0)
Requirement already satisfied: pickleshare in ./ENV/lib/python3.7/site-packages (from ipython>=5.0.0->ipykernel->notebook==5.7.5->biothings_explorer) (0.7.5)
Requirement already satisfied: backcall in ./ENV/lib/python3.7/site-packages (from ipython>=5.0.0->ipykernel->notebook==5.7.5->biothings_explorer) (0.1.0)
Requirement already satisfied: jedi>=0.10 in ./ENV/lib/python3.7/site-packages (from ipython>=5.0.0->ipykernel->notebook==5.7.5->biothings_explorer) (0.13.3)
Requirement already satisfied: wcwidth in ./ENV/lib/python3.7/site-packages (from prompt-toolkit<2.1.0,>=2.0.0->jupyter-console->jupyter->biothings_explorer) (0.1.7)
Requirement already satisfied: parso>=0.3.0 in ./ENV/lib/python3.7/site-packages (from jedi>=0.10->ipython>=5.0.0->ipykernel->notebook==5.7.5->biothings_explorer) (0.4.0)
WARNING: You are using pip version 19.1.1, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Next, import the relevant modules:

  • Hint: Find corresponding bio-entity representation used in BioThings Explorer based on user input (could be any database IDs, symbols, names)
  • FindConnection: Find intermediate bio-entities which connects user specified input and output

In [1]:
# import modules from biothings_explorer
from biothings_explorer.hint import Hint
from biothings_explorer.user_query_dispatcher import FindConnection

Step 1: Find representation of "hyperphenylalaninemia" in BTE

In this step, BioThings Explorer translates our query string "hyperphenylalaninemia" into BioThings objects, which contain mappings to many common identifiers. Generally, the top result returned by the Hint module will be the correct item, but you should confirm that using the identifiers shown.

Search terms can correspond to any child of BiologicalEntity from the Biolink Model, including DiseaseOrPhenotypicFeature (e.g., "lupus"), ChemicalSubstance (e.g., "acetaminophen"), Gene (e.g., "CDK2"), BiologicalProcess (e.g., "T cell differentiation"), and Pathway (e.g., "Citric acid cycle").


In [2]:
ht = Hint()
# find all potential representations of hyperphenylalaninemia
hyperphenylalaninemia_hint = ht.query("hyperphenylalaninemia")
# select the correct representation of hyperphenylalaninemia
hyperphenylalaninemia = hyperphenylalaninemia_hint['Disease'][0]
hyperphenylalaninemia


Out[2]:
{'MONDO': 'MONDO:0016543',
 'UMLS': 'C0751435',
 'name': 'hyperphenylalaninemia',
 'ORPHANET': '238583',
 'primary': {'identifier': 'MONDO',
  'cls': 'Disease',
  'value': 'MONDO:0016543'},
 'display': 'MONDO(MONDO:0016543) ORPHANET(238583) UMLS(C0751435) name(hyperphenylalaninemia)',
 'type': 'Disease'}

Step 2: Find drugs that are associated with genes which invovled in hyperphenylalaninemia

In this section, we find all paths in the knowledge graph that connect hyperphenylalaninemia to any entity that is a chemical compound. To do that, we will use FindConnection. This class is a convenient wrapper around two advanced functions for query path planning and query path execution. More advanced features for both query path planning and query path execution are in development and will be documented in the coming months.

The parameters for FindConnection are described below:


In [4]:
help(FindConnection.__init__)


Help on function __init__ in module biothings_explorer.user_query_dispatcher:

__init__(self, input_obj, output_obj, intermediate_nodes, registry=None)
    Find relationships in the Knowledge Graph between an Input Object and an Output Object.
    
    Args:
        input_obj (required): must be an object returned from Hint corresponding to a specific biomedical entity.
                            Examples:
                Hint().query("Fanconi anemia")['DiseaseOrPhenotypicFeature'][0]
                Hint().query("acetaminophen")['ChemicalSubstance'][0]
    
        output_obj (required): must EITHER be an object returned from Hint corresponding to a specific biomedical
                            entity, OR be a string or list of strings corresponding to Biolink Entity classes.
                            Examples:
                Hint().query("acetaminophen")['ChemicalSubstance'][0]
                'Gene'
                ['Gene','ChemicalSubstance']
    
        intermediate_nodes (required): the semantic type(s) of the intermediate node(s).  Examples:
                None                         : no intermediate node, find direct connections only
                []                           : no intermediate node, find direct connections only
                ['BiologicalEntity']         : one intermediate node of any semantic type
                ['Gene']                     : one intermediate node that must be a Gene
                [('Gene','Pathway')]         : one intermediate node that must be a Gene or a Pathway
                ['Gene','Pathway']           : two intermediate nodes, first must be a Gene, second must be a Pathway.
                ['Gene',('Pathway','Gene')]  : two intermediate nodes, first must be a Gene, second must be a Pathway or Gene.
                                                **NOTE**: queries with more than one intermediate node are currently not supported

Here, we formulate a FindConnection query with "hyperphenylalaninemia" as the input_ojb, "ChemicalSubstance" as the output_obj (which corresponds to a Biolink Entity type). We further specify with the intermediate_nodes parameter that we are looking for paths joining hyperphenylalaninemia and chemical compounds with one intermediate node that is a Gene. (The ability to search for longer reasoning paths that include additional intermediate nodes will be added shortly.)


In [3]:
fc = FindConnection(input_obj=hyperphenylalaninemia, output_obj='ChemicalSubstance', intermediate_nodes=['Gene'])

We next execute the connect method, which performs the query path planning and query path execution process. In short, BioThings Explorer is deconstructing the query into individual API calls, executing those API calls, then assembling the results.

A verbose log of this process is displayed below:


In [4]:
# set verbose=True will display all steps which BTE takes to find the connection
fc.connect(verbose=True)


==========
========== QUERY PARAMETER SUMMARY ==========
==========

BTE will find paths that join 'hyperphenylalaninemia' and 'ChemicalSubstance'.                   Paths will have 1 intermediate node.

Intermediate node #1 will have these type constraints: Gene



========== QUERY #1 -- fetch all Gene entities linked to hyperphenylalaninemia ==========
==========

==== Step #1: Query path planning ====

Because hyperphenylalaninemia is of type 'Disease', BTE will query our meta-KG for APIs that can take 'Disease' as input and 'Gene' as output

BTE found 7 apis:

API 1. hetio(1 API call)
API 2. scigraph(1 API call)
API 3. semmed_disease(15 API calls)
API 4. pharos(1 API call)
API 5. scibite(1 API call)
API 6. biolink(1 API call)
API 7. mydisease(1 API call)


==== Step #2: Query path execution ====
NOTE: API requests are dispatched in parallel, so the list of APIs below is ordered by query time.

API 7.1: http://mydisease.info/v1/query?fields=disgenet.genes_related_to_disease.gene_id (POST -d q=C0751435,C0751436&scopes=mondo.xrefs.umls, disgenet.xrefs.umls)
API 3.1: https://biothings.ncats.io/semmed/query?fields=affects (POST -d q=C0751435,C0751436&scopes=umls)
API 3.14: https://biothings.ncats.io/semmed/query?fields=caused_by (POST -d q=C0751435,C0751436&scopes=umls)
API 3.13: https://biothings.ncats.io/semmed/query?fields=disrupts (POST -d q=C0751435,C0751436&scopes=umls)
API 3.9: https://biothings.ncats.io/semmed/query?fields=disrupted_by (POST -d q=C0751435,C0751436&scopes=umls)
API 3.15: https://biothings.ncats.io/semmed/query?fields=negatively_regulated_by (POST -d q=C0751435,C0751436&scopes=umls)
API 3.2: https://biothings.ncats.io/semmed/query?fields=coexists_with (POST -d q=C0751435,C0751436&scopes=umls)
API 3.8: https://biothings.ncats.io/semmed/query?fields=derives_from (POST -d q=C0751435,C0751436&scopes=umls)
API 3.6: https://biothings.ncats.io/semmed/query?fields=treated_by (POST -d q=C0751435,C0751436&scopes=umls)
API 3.10: https://biothings.ncats.io/semmed/query?fields=affected_by (POST -d q=C0751435,C0751436&scopes=umls)
API 3.11: https://biothings.ncats.io/semmed/query?fields=negatively_regulates (POST -d q=C0751435,C0751436&scopes=umls)
API 3.5: https://biothings.ncats.io/semmed/query?fields=physically_interacts_with (POST -d q=C0751435,C0751436&scopes=umls)
API 3.7: https://biothings.ncats.io/semmed/query?fields=positively_regulated_by (POST -d q=C0751435,C0751436&scopes=umls)
API 3.4: https://biothings.ncats.io/semmed/query?fields=positively_regulates (POST -d q=C0751435,C0751436&scopes=umls)
API 3.3: https://biothings.ncats.io/semmed/query?fields=prevented_by (POST -d q=C0751435,C0751436&scopes=umls)
API 3.12: https://biothings.ncats.io/semmed/query?fields=related_to (POST -d q=C0751435,C0751436&scopes=umls)
API 6.1: https://api.monarchinitiative.org/api/bioentity/disease/MONDO:0016543/genes?rows=200
API 5.1: https://automat.renci.org/cord19_scibite_v2/disease/gene/MONDO:0016543
API 2.1: https://automat.renci.org/cord19_scigraph_v2/disease/gene/MONDO:0016543
API 4.1: https://automat.renci.org/pharos/disease/gene/MONDO:0016543
API 1.1: https://automat.renci.org/hetio/disease/gene/MONDO:0016543


==== Step #3: Output normalization ====

API 3.1 semmed_disease: No hits
API 3.2 semmed_disease: No hits
API 3.3 semmed_disease: No hits
API 3.4 semmed_disease: No hits
API 3.5 semmed_disease: No hits
API 3.6 semmed_disease: 6 hits
API 3.7 semmed_disease: No hits
API 4.1 pharos: 1 hits
API 3.8 semmed_disease: No hits
API 2.1 scigraph: No hits
API 3.9 semmed_disease: 3 hits
API 7.1 mydisease: 10 hits
API 3.10 semmed_disease: No hits
API 5.1 scibite: 1 hits
API 1.1 hetio: No hits
API 3.11 semmed_disease: No hits
API 3.12 semmed_disease: 14 hits
API 3.13 semmed_disease: No hits
API 3.14 semmed_disease: 17 hits
API 6.1 biolink: 4 hits
API 3.15 semmed_disease: No hits

After id-to-object translation, BTE retrieved 33 unique objects.


========== QUERY #2.1 -- fetch all ChemicalSubstance entities linked to Gene entites ==========
==========

==== Step #1: Query path planning ====

Because None is of type 'Gene', BTE will query our meta-KG for APIs that can take 'Gene' as input and 'ChemicalSubstance' as output

BTE found 10 apis:

API 1. semmed_gene(10 API calls)
API 2. scigraph(16 API calls)
API 3. hmdb(16 API calls)
API 4. mychem(3 API calls)
API 5. dgidb(16 API calls)
API 6. pharos(16 API calls)
API 7. scibite(16 API calls)
API 8. opentarget(16 API calls)
API 9. chembio(16 API calls)
API 10. cord_gene(1 API call)


==== Step #2: Query path execution ====
NOTE: API requests are dispatched in parallel, so the list of APIs below is ordered by query time.

API 7.15: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000145730&datasource=chembl&size=100&fields=drug
API 7.8: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000171759&datasource=chembl&size=100&fields=drug
API 7.7: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000166228&datasource=chembl&size=100&fields=drug
API 7.5: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000137880&datasource=chembl&size=100&fields=drug
API 7.1: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000151552&datasource=chembl&size=100&fields=drug
API 7.13: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000148602&datasource=chembl&size=100&fields=drug
API 7.6: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000198074&datasource=chembl&size=100&fields=drug
API 7.11: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000141837&datasource=chembl&size=100&fields=drug
API 7.3: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000131979&datasource=chembl&size=100&fields=drug
API 7.12: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000150787&datasource=chembl&size=100&fields=drug
API 7.10: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000170606&datasource=chembl&size=100&fields=drug
API 7.16: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000135775&datasource=chembl&size=100&fields=drug
API 7.4: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000142192&datasource=chembl&size=100&fields=drug
API 5.13: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=AKR1B10
API 5.7: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=CACNA1A
API 5.14: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=PAH
API 5.8: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=PTS
API 5.9: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=PAM
API 5.11: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=HSPA4
API 5.2: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=GCHFR
API 5.3: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=GCH1
API 5.5: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=QDPR
API 5.6: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=LRIT1
API 5.16: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=COG2
API 5.1: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=PCBD1
API 5.12: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=APP
API 6.16: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:338
API 8.1: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:57016
API 2.7: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:3308
API 4.8: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:2644
API 4.7: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:3308
API 6.1: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:57016
API 6.13: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:2643
API 6.10: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:351
API 4.2: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:5860
API 6.6: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:5805
API 6.3: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:773
API 6.15: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:5066
API 2.5: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:5092
API 2.14: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:26103
API 2.2: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:5860
API 4.1: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:57016
API 2.11: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:3034
API 4.5: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:5092
API 5.15: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=SHCBP1
API 6.4: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:22796
API 2.8: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:2644
API 2.12: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:5053
API 5.4: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=HAL
API 3.2: https://mychem.info/v1/query?fields=drugbank.id&size=250 (POST -d q=PCBD1,GCHFR,GCH1,HAL,QDPR,LRIT1,CACNA1A,PTS,PAM,APOB,HSPA4,APP,AKR1B10,PAH,SHCBP1,COG2&scopes=drugbank.enzymes.gene_name)
API 3.1: https://mychem.info/v1/query?fields=drugbank.id&size=250 (POST -d q=PCBD1,GCHFR,GCH1,HAL,QDPR,LRIT1,CACNA1A,PTS,PAM,APOB,HSPA4,APP,AKR1B10,PAH,SHCBP1,COG2&scopes=drugbank.targets.gene_name)
API 6.9: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:79801
API 6.7: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:3308
API 5.10: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=APOB
API 7.2: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000084674&datasource=chembl&size=100&fields=drug
API 2.9: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:79801
API 6.2: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:5860
API 6.5: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:5092
API 6.14: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:26103
API 6.8: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:2644
API 2.16: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:338
API 6.11: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:3034
API 7.9: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000171241&datasource=chembl&size=100&fields=drug
API 4.6: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:5805
API 6.12: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:5053
API 4.12: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:5053
API 2.4: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:22796
API 7.14: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000084110&datasource=chembl&size=100&fields=drug
API 3.3: https://mychem.info/v1/query?fields=chembl.molecule_chembl_id&size=250 (POST -d q=PCBD1,GCHFR,GCH1,HAL,QDPR,LRIT1,CACNA1A,PTS,PAM,APOB,HSPA4,APP,AKR1B10,PAH,SHCBP1,COG2&scopes=drugcentral.bioactivity.uniprot.gene_symbol)
API 2.1: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:57016
API 2.13: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:2643
API 4.9: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:79801
API 8.2: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:5860
API 4.3: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:773
API 9.6: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:5805
API 8.7: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:3308
API 4.13: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:2643
API 4.4: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:22796
API 2.15: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:5066
API 2.3: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:773
API 4.14: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:26103
API 4.11: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:3034
API 2.10: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:351
API 4.15: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:5066
API 8.3: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:773
API 8.9: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:79801
API 4.16: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:338
API 8.8: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:2644
API 8.4: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:22796
API 8.15: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:5066
API 8.5: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:5092
API 8.6: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:5805
API 8.10: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:351
API 2.6: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:5805
API 8.11: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:3034
API 8.14: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:26103
API 8.13: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:2643
API 4.10: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:351
API 9.4: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:22796
API 8.12: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:5053
API 8.16: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:338
API 9.1: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:57016
API 10.1: https://biothings.ncats.io/cord_gene/query?fields=associated_with (POST -d q=4193,6546,5237,9689,1388,603,4194,382,4806,29547,8646,8596,9752,23404,620,8582&scopes=hgnc)
API 9.7: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:3308
API 9.8: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:2644
API 9.9: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:79801
API 9.3: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:773
API 9.5: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:5092
API 9.2: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:5860
API 9.12: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:5053
API 9.10: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:351
API 9.11: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:3034
API 9.14: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:26103
API 9.15: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:5066
API 9.13: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:2643
API 9.16: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:338
API 1.1: https://biothings.ncats.io/semmedgene/query?fields=negatively_regulates (POST -d q=C0017361,C0018293,C1412323,C0072774,C1364818,C1415465,C1335144,C1539766,C0314604,C1416822,C0031456,C0012312,C1710338,C1428072,C0074350,C0002085,C0014442,C1418251,C1418296,C1456413,C0041491,C0284927,C1419129,C1705543,C1415012,C1419182,C1412471,C1415760,C1415013,C0020239,C0030016,C1456357,C0017337&scopes=umls)
API 1.6: https://biothings.ncats.io/semmedgene/query?fields=positively_regulated_by (POST -d q=C0017361,C0018293,C1412323,C0072774,C1364818,C1415465,C1335144,C1539766,C0314604,C1416822,C0031456,C0012312,C1710338,C1428072,C0074350,C0002085,C0014442,C1418251,C1418296,C1456413,C0041491,C0284927,C1419129,C1705543,C1415012,C1419182,C1412471,C1415760,C1415013,C0020239,C0030016,C1456357,C0017337&scopes=umls)
API 1.4: https://biothings.ncats.io/semmedgene/query?fields=affected_by (POST -d q=C0017361,C0018293,C1412323,C0072774,C1364818,C1415465,C1335144,C1539766,C0314604,C1416822,C0031456,C0012312,C1710338,C1428072,C0074350,C0002085,C0014442,C1418251,C1418296,C1456413,C0041491,C0284927,C1419129,C1705543,C1415012,C1419182,C1412471,C1415760,C1415013,C0020239,C0030016,C1456357,C0017337&scopes=umls)
API 1.9: https://biothings.ncats.io/semmedgene/query?fields=disrupted_by (POST -d q=C0017361,C0018293,C1412323,C0072774,C1364818,C1415465,C1335144,C1539766,C0314604,C1416822,C0031456,C0012312,C1710338,C1428072,C0074350,C0002085,C0014442,C1418251,C1418296,C1456413,C0041491,C0284927,C1419129,C1705543,C1415012,C1419182,C1412471,C1415760,C1415013,C0020239,C0030016,C1456357,C0017337&scopes=umls)
API 1.8: https://biothings.ncats.io/semmedgene/query?fields=disrupts (POST -d q=C0017361,C0018293,C1412323,C0072774,C1364818,C1415465,C1335144,C1539766,C0314604,C1416822,C0031456,C0012312,C1710338,C1428072,C0074350,C0002085,C0014442,C1418251,C1418296,C1456413,C0041491,C0284927,C1419129,C1705543,C1415012,C1419182,C1412471,C1415760,C1415013,C0020239,C0030016,C1456357,C0017337&scopes=umls)
API 1.7: https://biothings.ncats.io/semmedgene/query?fields=negatively_regulated_by (POST -d q=C0017361,C0018293,C1412323,C0072774,C1364818,C1415465,C1335144,C1539766,C0314604,C1416822,C0031456,C0012312,C1710338,C1428072,C0074350,C0002085,C0014442,C1418251,C1418296,C1456413,C0041491,C0284927,C1419129,C1705543,C1415012,C1419182,C1412471,C1415760,C1415013,C0020239,C0030016,C1456357,C0017337&scopes=umls)
API 1.10: https://biothings.ncats.io/semmedgene/query?fields=positively_regulates (POST -d q=C0017361,C0018293,C1412323,C0072774,C1364818,C1415465,C1335144,C1539766,C0314604,C1416822,C0031456,C0012312,C1710338,C1428072,C0074350,C0002085,C0014442,C1418251,C1418296,C1456413,C0041491,C0284927,C1419129,C1705543,C1415012,C1419182,C1412471,C1415760,C1415013,C0020239,C0030016,C1456357,C0017337&scopes=umls)
API 1.5: https://biothings.ncats.io/semmedgene/query?fields=related_to (POST -d q=C0017361,C0018293,C1412323,C0072774,C1364818,C1415465,C1335144,C1539766,C0314604,C1416822,C0031456,C0012312,C1710338,C1428072,C0074350,C0002085,C0014442,C1418251,C1418296,C1456413,C0041491,C0284927,C1419129,C1705543,C1415012,C1419182,C1412471,C1415760,C1415013,C0020239,C0030016,C1456357,C0017337&scopes=umls)
API 1.3: https://biothings.ncats.io/semmedgene/query?fields=affects (POST -d q=C0017361,C0018293,C1412323,C0072774,C1364818,C1415465,C1335144,C1539766,C0314604,C1416822,C0031456,C0012312,C1710338,C1428072,C0074350,C0002085,C0014442,C1418251,C1418296,C1456413,C0041491,C0284927,C1419129,C1705543,C1415012,C1419182,C1412471,C1415760,C1415013,C0020239,C0030016,C1456357,C0017337&scopes=umls)
API 1.2: https://biothings.ncats.io/semmedgene/query?fields=physically_interacts_with (POST -d q=C0017361,C0018293,C1412323,C0072774,C1364818,C1415465,C1335144,C1539766,C0314604,C1416822,C0031456,C0012312,C1710338,C1428072,C0074350,C0002085,C0014442,C1418251,C1418296,C1456413,C0041491,C0284927,C1419129,C1705543,C1415012,C1419182,C1412471,C1415760,C1415013,C0020239,C0030016,C1456357,C0017337&scopes=umls)


==== Step #3: Output normalization ====

API 7.1 opentarget: No hits
API 7.2 opentarget: 7 hits
API 7.3 opentarget: No hits
API 7.4 opentarget: 59 hits
API 7.5 opentarget: No hits
API 7.6 opentarget: No hits
API 7.7 opentarget: No hits
API 7.8 opentarget: 42 hits
API 7.9 opentarget: No hits
API 7.10 opentarget: No hits
API 7.11 opentarget: 19 hits
API 7.12 opentarget: No hits
API 7.13 opentarget: No hits
API 7.14 opentarget: No hits
API 7.15 opentarget: No hits
API 7.16 opentarget: No hits
API 6.1 scibite: 1 hits
API 6.2 scibite: No hits
API 6.3 scibite: No hits
API 6.4 scibite: No hits
API 6.5 scibite: No hits
API 6.6 scibite: No hits
API 6.7 scibite: 1 hits
API 6.8 scibite: 1 hits
API 6.9 scibite: No hits
API 6.10 scibite: 9 hits
API 6.11 scibite: No hits
API 6.12 scibite: 1 hits
API 6.13 scibite: 1 hits
API 6.14 scibite: No hits
API 6.15 scibite: No hits
API 6.16 scibite: 3 hits
API 1.1 semmed_gene: 2007 hits
API 1.2 semmed_gene: 15441 hits
API 1.3 semmed_gene: 1 hits
API 1.4 semmed_gene: 9 hits
API 2.1 scigraph: No hits
API 2.2 scigraph: No hits
API 2.3 scigraph: No hits
API 2.4 scigraph: No hits
API 2.5 scigraph: No hits
API 2.6 scigraph: 442 hits
API 2.7 scigraph: No hits
API 2.8 scigraph: No hits
API 2.9 scigraph: No hits
API 2.10 scigraph: 56 hits
API 2.11 scigraph: 1 hits
API 2.12 scigraph: 52 hits
API 2.13 scigraph: No hits
API 2.14 scigraph: No hits
API 2.15 scigraph: 19 hits
API 2.16 scigraph: 16 hits
API 1.5 semmed_gene: No hits
API 5.1 dgidb: 1 hits
API 5.2 dgidb: No hits
API 5.3 dgidb: 1 hits
API 5.4 dgidb: 1 hits
API 5.5 dgidb: 1 hits
API 5.6 dgidb: No hits
API 5.7 dgidb: 11 hits
API 5.8 dgidb: No hits
API 5.9 dgidb: 1 hits
API 5.10 dgidb: 17 hits
API 5.11 dgidb: 35 hits
API 5.12 dgidb: 22 hits
API 5.13 dgidb: 3 hits
API 5.14 dgidb: 8 hits
API 5.15 dgidb: No hits
API 5.16 dgidb: No hits
API 1.6 semmed_gene: 4883 hits
API 3.1 mychem: 51 hits
API 10.1 cord_gene: 723 hits
API 1.7 semmed_gene: 6577 hits
API 4.1 pharos: 44 hits
API 4.2 pharos: 3 hits
API 4.3 pharos: 1 hits
API 4.4 pharos: No hits
API 4.5 pharos: No hits
API 4.6 pharos: No hits
API 4.7 pharos: No hits
API 4.8 pharos: No hits
API 4.9 pharos: No hits
API 4.10 pharos: 358 hits
API 4.11 pharos: No hits
API 4.12 pharos: 2 hits
API 4.13 pharos: No hits
API 4.14 pharos: No hits
API 4.15 pharos: 5 hits
API 4.16 pharos: 49 hits
API 1.8 semmed_gene: 2 hits
API 8.1 chembio: 5 hits
API 8.2 chembio: 1 hits
API 8.3 chembio: 1 hits
API 8.4 chembio: No hits
API 8.5 chembio: 2 hits
API 8.6 chembio: 2 hits
API 8.7 chembio: 6 hits
API 8.8 chembio: 4 hits
API 8.9 chembio: 1 hits
API 8.10 chembio: 29 hits
API 8.11 chembio: 3 hits
API 8.12 chembio: 1 hits
API 8.13 chembio: 4 hits
API 8.14 chembio: No hits
API 8.15 chembio: 7 hits
API 8.16 chembio: 6 hits
API 3.2 mychem: 4 hits
API 1.9 semmed_gene: No hits
API 9.1 hmdb: 18 hits
API 9.2 hmdb: 11 hits
API 9.3 hmdb: 4 hits
API 9.4 hmdb: No hits
API 9.5 hmdb: 5 hits
API 9.6 hmdb: 6 hits
API 9.7 hmdb: No hits
API 9.8 hmdb: 2 hits
API 9.9 hmdb: No hits
API 9.10 hmdb: 5 hits
API 9.11 hmdb: 3 hits
API 9.12 hmdb: 11 hits
API 9.13 hmdb: 8 hits
API 9.14 hmdb: No hits
API 9.15 hmdb: 5 hits
API 9.16 hmdb: 4 hits
API 3.3 mychem: 15 hits
API 1.10 semmed_gene: 2314 hits

After id-to-object translation, BTE retrieved 9449 unique objects.

==========
========== Final assembly of results ==========
==========


In the #1 query, BTE found 33 unique Gene nodes
In the #2 query, BTE found 9449 unique ChemicalSubstance nodes

Step 3: Display and Filter results

This section demonstrates post-query filtering done in Python. Later, more advanced filtering functions will be added to the query path execution module for interleaved filtering, thereby enabling longer query paths. More details to come...

First, all matching paths can be exported to a data frame. Let's examine a sample of those results.


In [5]:
df = fc.display_table_view()

# because UMLS is not currently well-integrated in our ID-to-object translation system, removing UMLS-only outputs here
patternDel = "^UMLS:C\d+"
filter = df.output_id.str.contains(patternDel)
df = df[~filter]

patternDel2 = "^InChI="
filter2 = df.output_name.str.contains(patternDel2)
df = df[~filter2]

patternDel3 = "^umls:C\d+"
filter3 = df.node1_id.str.contains(patternDel3)
df = df[~filter3]

print(df.shape)
df.sample(10)


(4541, 16)
Out[5]:
input input_type pred1 pred1_source pred1_api pred1_pubmed node1_type node1_name node1_id pred2 pred2_source pred2_api pred2_pubmed output_type output_name output_id
16504 HYPERPHENYLALANINAEMIA Disease caused_by SEMMED SEMMED Disease API 10727395 Gene C0014442 UMLS:C0014442 negatively_regulated_by SEMMED SEMMED Gene API 11839529,19443747 ChemicalSubstance U 0126 name:U 0126
8209 HYPERPHENYLALANINAEMIA Disease related_to SEMMED SEMMED Disease API 9675155 Gene C0017337 UMLS:C0017337 positively_regulated_by SEMMED SEMMED Gene API 21984199,26086415 ChemicalSubstance ISOFLURANE name:ISOFLURANE
31798 HYPERPHENYLALANINAEMIA Disease caused_by SEMMED SEMMED Disease API 9222755,9667588 Gene C0017337 UMLS:C0017337 positively_regulated_by SEMMED SEMMED Gene API 17684401,18412988,17693008 ChemicalSubstance MICRONUTRIENT name:MICRONUTRIENT
1929 HYPERPHENYLALANINAEMIA Disease caused_by SEMMED SEMMED Disease API 10874306 Gene PTS NCBIGene:5805 related_to Translator Text Mining Provider CORD Gene API None ChemicalSubstance .BETA.-D-GLUCOPYRANOSE name:.BETA.-D-GLUCOPYRANOSE
10532 HYPERPHENYLALANINAEMIA Disease caused_by SEMMED SEMMED Disease API 699146 Gene C0030016 UMLS:C0030016 positively_regulated_by SEMMED SEMMED Gene API 11731036 ChemicalSubstance GENISTEIN name:GENISTEIN
35512 HYPERPHENYLALANINAEMIA Disease caused_by SEMMED SEMMED Disease API 10727395 Gene C0014442 UMLS:C0014442 positively_regulates SEMMED SEMMED Gene API 4291334,7358701,11980911 ChemicalSubstance DEOXYCHOLATE name:DEOXYCHOLATE
40287 HYPERPHENYLALANINAEMIA Disease treated_by SEMMED SEMMED Disease API 8841415 Gene PTS NCBIGene:5805 related_to scigraph Automat CORD19 Scigraph API None ChemicalSubstance CHLORAMBUCIL name:CHLORAMBUCIL
40027 HYPERPHENYLALANINAEMIA Disease caused_by SEMMED SEMMED Disease API 15133828 Gene AKR1B10 NCBIGene:57016 negatively_regulates SEMMED SEMMED Gene API 28322780 ChemicalSubstance TIAPROFENIC ACID name:TIAPROFENIC ACID
22054 HYPERPHENYLALANINAEMIA Disease caused_by SEMMED SEMMED Disease API 28794131 Gene HSPA4 NCBIGene:3308 positively_regulated_by SEMMED SEMMED Gene API 26307981 ChemicalSubstance MALONALDEHYDE name:MALONALDEHYDE
45089 HYPERPHENYLALANINAEMIA Disease caused_by SEMMED SEMMED Disease API 1301201,8892014,10495930,10495930 Gene PAH NCBIGene:5053 related_to Translator Text Mining Provider CORD Gene API None ChemicalSubstance CHEBI:46756 CHEBI:CHEBI:46756

While most results are based on edges from semmed, edges from DGIdb, biolink, disgenet, and mychem.info were also retrieved from their respective APIs.

Next, let's examine which chemical compounds were most frequently mentioned.


In [6]:
df.output_name.value_counts().head(20)


Out[6]:
PHARMACEUTICAL PREPARATIONS    122
HYDROGEN PEROXIDE              119
.BETA.-D-GLUCOPYRANOSE         116
NADH                           105
NITRIC OXIDE                   101
BINDING SITE                    97
3-METHYLADENINE DNA             94
CHOLESTEROL                     94
OXYGEN SPECIES, REACTIVE        92
ALCOHOL                         91
Name: output_name, dtype: int64

Hyperphenylalaninemia is a condition characterized by elevated levels of phenylalanine in the blood. This phenotype is strongly associated with phenylketonuria (PKU), an inherited, genetic disorder that affects the ability to metabolize phenylalanine. Sapropterin is a naturally-occurring cofactor associated with several enzymatic processes, including the metabolism of phenylalanine to tyrosine. It has been FDA-approved as a treatment for PKU patients. Tyrosine is also a precursor to several neurotransmitters, including norepinephrine and dopamine.

While several of the listed compounds would be considered positive controls, others on the list could be viewed as testable hypotheses and discovery opportunities to be evaluated by domain experts. For example, let's examine which genes link hyperphenylalaninemia to nitric oxide.


In [7]:
df[df.output_name=="NITRIC OXIDE"]


Out[7]:
input input_type pred1 pred1_source pred1_api pred1_pubmed node1_type node1_name node1_id pred2 pred2_source pred2_api pred2_pubmed output_type output_name output_id
2318 HYPERPHENYLALANINAEMIA Disease treated_by SEMMED SEMMED Disease API 25261586,25261586 Gene C1710338 UMLS:C1710338 negatively_regulates SEMMED SEMMED Gene API 23769841 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
2319 HYPERPHENYLALANINAEMIA Disease treated_by SEMMED SEMMED Disease API 25261586,25261586 Gene C1710338 UMLS:C1710338 negatively_regulates SEMMED SEMMED Gene API 15265010 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
2320 HYPERPHENYLALANINAEMIA Disease treated_by SEMMED SEMMED Disease API 25261586,25261586 Gene C1710338 UMLS:C1710338 physically_interacts_with SEMMED SEMMED Gene API 25049660,23072349 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
2321 HYPERPHENYLALANINAEMIA Disease treated_by SEMMED SEMMED Disease API 25261586,25261586 Gene C1710338 UMLS:C1710338 physically_interacts_with SEMMED SEMMED Gene API 23806552,16831427 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
2322 HYPERPHENYLALANINAEMIA Disease treated_by SEMMED SEMMED Disease API 25261586,25261586 Gene C1710338 UMLS:C1710338 positively_regulated_by SEMMED SEMMED Gene API 10952392 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2422 HYPERPHENYLALANINAEMIA Disease caused_by SEMMED SEMMED Disease API 28794131 Gene HSPA4 NCBIGene:3308 positively_regulated_by SEMMED SEMMED Gene API 7544743,9085348,9085348,9276725,10805410,10805... ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
2423 HYPERPHENYLALANINAEMIA Disease caused_by SEMMED SEMMED Disease API 28794131 Gene HSPA4 NCBIGene:3308 positively_regulates SEMMED SEMMED Gene API 11374865 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
2424 HYPERPHENYLALANINAEMIA Disease caused_by SEMMED SEMMED Disease API 7766952 Gene CACNA1A NCBIGene:773 negatively_regulates SEMMED SEMMED Gene API 23949212 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
2425 HYPERPHENYLALANINAEMIA Disease related_to scibite Automat CORD19 Scibite API None Gene GCHFR NCBIGene:2644 physically_interacts_with SEMMED SEMMED Gene API 18372436,18372436,18372436 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
2426 HYPERPHENYLALANINAEMIA Disease related_to scibite Automat CORD19 Scibite API None Gene GCHFR NCBIGene:2644 physically_interacts_with SEMMED SEMMED Gene API 21693765 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39812 hyperphenylalaninemia DiseaseOrPhenotypicFeature caused_by SEMMED API semmeddisease 28794131 Gene HSPA4 entrez:3308 positively_regulated_by SEMMED API semmedgene 7544743,9085348,9085348,9276725,10805410,10805... ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39813 hyperphenylalaninemia DiseaseOrPhenotypicFeature caused_by SEMMED API semmeddisease 28794131 Gene HSPA4 entrez:3308 positively_regulates SEMMED API semmedgene 11374865 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39814 hyperphenylalaninemia DiseaseOrPhenotypicFeature caused_by SEMMED API semmeddisease 28794131 Gene HSPA4 entrez:3308 produces SEMMED API semmedgene 10849439,16521562,24395610 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39815 hyperphenylalaninemia DiseaseOrPhenotypicFeature caused_by SEMMED API semmeddisease 7766952 Gene CACNA1A entrez:773 negatively_regulates SEMMED API semmedgene 23949212 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39816 hyperphenylalaninemia DiseaseOrPhenotypicFeature disrupted_by SEMMED API semmeddisease 10051643 Gene PAM entrez:5066 associated_with CORD API cordgene None ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39817 hyperphenylalaninemia DiseaseOrPhenotypicFeature related_to SEMMED API semmeddisease 27612877 Gene COG2 entrez:22796 physically_interacts_with SEMMED API semmedgene 16060915 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39818 hyperphenylalaninemia DiseaseOrPhenotypicFeature related_to SEMMED API semmeddisease 27612877 Gene COG2 entrez:22796 positively_regulated_by SEMMED API semmedgene 25224628 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39819 hyperphenylalaninemia DiseaseOrPhenotypicFeature related_to SEMMED API semmeddisease 27612877 Gene COG2 entrez:22796 positively_regulates SEMMED API semmedgene 27919363 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39820 hyperphenylalaninemia DiseaseOrPhenotypicFeature related_to SEMMED API semmeddisease 27612877 Gene COG2 entrez:22796 produces SEMMED API semmedgene 26847282 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39821 hyperphenylalaninemia DiseaseOrPhenotypicFeature related_to SEMMED API semmeddisease 27612877 Gene APOB entrez:338 coexists_with SEMMED API semmedgene 9593815 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39822 hyperphenylalaninemia DiseaseOrPhenotypicFeature related_to SEMMED API semmeddisease 25260610 Gene APP entrez:351 coexists_with SEMMED API semmedgene 20021361,22810094 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39823 hyperphenylalaninemia DiseaseOrPhenotypicFeature related_to SEMMED API semmeddisease 25260610 Gene APP entrez:351 coexists_with SEMMED API semmedgene 20936504 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39824 hyperphenylalaninemia DiseaseOrPhenotypicFeature related_to SEMMED API semmeddisease 25260610 Gene APP entrez:351 has_part SEMMED API semmedgene 15371443 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39825 hyperphenylalaninemia DiseaseOrPhenotypicFeature related_to SEMMED API semmeddisease 25260610 Gene APP entrez:351 negatively_regulates SEMMED API semmedgene 20936504,21073661,22426388,26819495 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39826 hyperphenylalaninemia DiseaseOrPhenotypicFeature related_to SEMMED API semmeddisease 25260610 Gene APP entrez:351 physically_interacts_with SEMMED API semmedgene 19779140,22384120,26665235 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39827 hyperphenylalaninemia DiseaseOrPhenotypicFeature related_to SEMMED API semmeddisease 25260610 Gene APP entrez:351 positively_regulates SEMMED API semmedgene 23915297,23915297 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39828 hyperphenylalaninemia DiseaseOrPhenotypicFeature related_to SEMMED API semmeddisease 25260610 Gene APP entrez:351 positively_regulates SEMMED API semmedgene 9915130,9915130,9576964,10648444,17365664,1917... ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689
39829 hyperphenylalaninemia DiseaseOrPhenotypicFeature related_to SEMMED API semmeddisease 25260610 Gene APP entrez:351 produces SEMMED API semmedgene 11027218,9915130,11241130,12944390,21718498 ChemicalSubstance NITRIC OXIDE chembl:CHEMBL1200689

101 rows × 16 columns

BTE identifies a number of genes, including HSPA4 and GCH1, as being the key nodes that join hyperphenylalaninemia with nitric oxide.

Conclusions and caveats

This notebook demonstrated the use of BioThings Explorer in PREDICDT mode to identify chemical compounds related to hyperphenylalaninemia. BioThings Explorer autonomously queried a distributed knowledge graph of biomedical APIs to find the most common compounds, and several of the top hits had a clear biochemical and clinical relevance to hyperphenylalaninemia.

There are still many areas for improvement (and some areas in which BioThings Explorer is still buggy). And of course, BioThings Explorer is dependent on the accessibility of the APIs that comprise the distributed knowledge graph. Nevertheless, we encourage users to try other variants of the PREDICT queries demonstrated in this notebook.