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

In [7]:
estrogen = {'name': 'Estrogens',
 'UMLS': 'C0014939',
 'display': 'name(Estrogens) UMLS(C0014939) ',
 'type': 'ChemicalSubstance',
 'primary': {'identifier': 'UMLS',
  'cls': 'ChemicalSubstance',
  'value': 'C0014939'}}

In [8]:
tmprss2 = {'NCBIGene': '7113',
 'name': 'transmembrane serine protease 2',
 'SYMBOL': 'TMPRSS2',
 'taxonomy': 9606,
 'UMLS': 'C1336641',
 'UNIPROTKB': 'O15393',
 'HGNC': '11876',
 'ENSEMBL': 'ENSG00000184012',
 'display': 'entrez(7113) name(transmembrane serine protease 2) symbol(TMPRSS2) taxonomy(9606) umls(C1336641) uniprot(O15393) hgnc(11876) ensembl(ENSG00000184012) ',
 'type': 'Gene',
 'primary': {'identifier': 'NCBIGene', 'cls': 'Gene', 'value': '7113'}}

In [9]:
fc = FindConnection(estrogen, tmprss2, intermediate_nodes="ChemicalSubstance")

In [10]:
fc.connect(verbose=True)


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

BTE will find paths that join 'Estrogens' and 'TMPRSS2'. Paths will have 1 intermediate node.

Intermediate node #1 will have these type constraints: ChemicalSubstance


==========
========== QUERY #1 -- fetch all ChemicalSubstance entities linked to 'Estrogens' ==========
==========

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

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

BTE found 1 apis:

API 1. semmed_chemical(13 API calls)


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

API 1.1: https://biothings.ncats.io/semmedchemical/query?fields=negatively_regulates (POST -d q=C0014939&scopes=umls)
API 1.9: https://biothings.ncats.io/semmedchemical/query?fields=coexists_with (POST -d q=C0014939&scopes=umls)
API 1.5: https://biothings.ncats.io/semmedchemical/query?fields=affects (POST -d q=C0014939&scopes=umls)
API 1.13: https://biothings.ncats.io/semmedchemical/query?fields=affected_by (POST -d q=C0014939&scopes=umls)
API 1.2: https://biothings.ncats.io/semmedchemical/query?fields=physically_interacts_with (POST -d q=C0014939&scopes=umls)
API 1.11: https://biothings.ncats.io/semmedchemical/query?fields=produced_by (POST -d q=C0014939&scopes=umls)
API 1.7: https://biothings.ncats.io/semmedchemical/query?fields=disrupted_by (POST -d q=C0014939&scopes=umls)
API 1.10: https://biothings.ncats.io/semmedchemical/query?fields=produces (POST -d q=C0014939&scopes=umls)
API 1.4: https://biothings.ncats.io/semmedchemical/query?fields=positively_regulated_by (POST -d q=C0014939&scopes=umls)
API 1.12: https://biothings.ncats.io/semmedchemical/query?fields=related_to (POST -d q=C0014939&scopes=umls)
API 1.8: https://biothings.ncats.io/semmedchemical/query?fields=negatively_regulated_by (POST -d q=C0014939&scopes=umls)
API 1.6: https://biothings.ncats.io/semmedchemical/query?fields=disrupts (POST -d q=C0014939&scopes=umls)
API 1.3: https://biothings.ncats.io/semmedchemical/query?fields=positively_regulates (POST -d q=C0014939&scopes=umls)


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

API 1.1 semmed_chemical: 175 hits
API 1.2 semmed_chemical: 563 hits
API 1.3 semmed_chemical: 286 hits
API 1.4 semmed_chemical: No hits
API 1.5 semmed_chemical: No hits
API 1.6 semmed_chemical: No hits
API 1.7 semmed_chemical: No hits
API 1.8 semmed_chemical: No hits
API 1.9 semmed_chemical: 276 hits
API 1.10 semmed_chemical: No hits
API 1.11 semmed_chemical: No hits
API 1.12 semmed_chemical: No hits
API 1.13 semmed_chemical: No hits

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


==========
========== QUERY #2 -- fetch all ChemicalSubstance entities linked to 'TMPRSS2' ==========
==========

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

Because TMPRSS2 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. pharos(1 API call)
API 2. mychem(3 API calls)
API 3. scigraph(1 API call)
API 4. chembio(1 API call)
API 5. cord_gene(1 API call)
API 6. semmed_gene(10 API calls)
API 7. hmdb(1 API call)
API 8. dgidb(1 API call)
API 9. scibite(1 API call)
API 10. opentarget(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 2.1: https://mychem.info/v1/query?fields=drugbank.id&size=250 (POST -d q=TMPRSS2&scopes=drugbank.targets.gene_name)
API 6.7: https://biothings.ncats.io/semmedgene/query?fields=affected_by (POST -d q=C1336641&scopes=umls)
API 6.3: https://biothings.ncats.io/semmedgene/query?fields=disrupts (POST -d q=C1336641&scopes=umls)
API 5.1: https://biothings.ncats.io/cord_gene/query?fields=associated_with (POST -d q=11876&scopes=hgnc)
API 6.5: https://biothings.ncats.io/semmedgene/query?fields=physically_interacts_with (POST -d q=C1336641&scopes=umls)
API 6.6: https://biothings.ncats.io/semmedgene/query?fields=negatively_regulated_by (POST -d q=C1336641&scopes=umls)
API 2.2: https://mychem.info/v1/query?fields=drugbank.id&size=250 (POST -d q=TMPRSS2&scopes=drugbank.enzymes.gene_name)
API 2.3: https://mychem.info/v1/query?fields=chembl.molecule_chembl_id&size=250 (POST -d q=TMPRSS2&scopes=drugcentral.bioactivity.uniprot.gene_symbol)
API 6.8: https://biothings.ncats.io/semmedgene/query?fields=disrupted_by (POST -d q=C1336641&scopes=umls)
API 6.9: https://biothings.ncats.io/semmedgene/query?fields=affects (POST -d q=C1336641&scopes=umls)
API 6.4: https://biothings.ncats.io/semmedgene/query?fields=positively_regulated_by (POST -d q=C1336641&scopes=umls)
API 6.10: https://biothings.ncats.io/semmedgene/query?fields=related_to (POST -d q=C1336641&scopes=umls)
API 6.2: https://biothings.ncats.io/semmedgene/query?fields=negatively_regulates (POST -d q=C1336641&scopes=umls)
API 6.1: https://biothings.ncats.io/semmedgene/query?fields=positively_regulates (POST -d q=C1336641&scopes=umls)
API 8.1: http://dgidb.genome.wustl.edu/api/v2/interactions.json?genes=TMPRSS2
API 10.1: https://platform-api.opentargets.io/v3/platform/public/evidence/filter?target=ENSG00000184012&datasource=chembl&size=100&fields=drug
API 9.1: https://automat.renci.org/cord19_scibite_v2/gene/chemical_substance/NCBIGene:7113
API 7.1: https://automat.renci.org/hmdb/gene/chemical_substance/NCBIGene:7113
API 3.1: https://automat.renci.org/cord19_scigraph_v2/gene/chemical_substance/NCBIGene:7113
API 1.1: https://automat.renci.org/pharos/gene/chemical_substance/NCBIGene:7113
API 4.1: https://automat.renci.org/chembio/gene/chemical_substance/NCBIGene:7113


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

API 10.1 opentarget: No hits
API 7.1 hmdb: No hits
API 3.1 scigraph: 19 hits
API 9.1 scibite: 14 hits
API 6.1 semmed_gene: No hits
API 6.2 semmed_gene: No hits
API 6.3 semmed_gene: No hits
API 2.1 mychem: No hits
API 1.1 pharos: 3 hits
API 2.2 mychem: No hits
API 5.1 cord_gene: 1 hits
API 6.4 semmed_gene: 2 hits
API 4.1 chembio: 4 hits
API 6.5 semmed_gene: 2 hits
API 6.6 semmed_gene: 1 hits
API 6.7 semmed_gene: No hits
API 6.8 semmed_gene: No hits
API 6.9 semmed_gene: No hits
API 6.10 semmed_gene: No hits
API 2.3 mychem: No hits
API 8.1 dgidb: No hits

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

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


BTE found 6 unique intermediate nodes connecting 'Estrogens' and 'TMPRSS2'

In [11]:
fc.display_table_view()


Out[11]:
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
0 ESTROGEN ChemicalSubstance positively_regulates SEMMED SEMMED Chemical API 6474508 ChemicalSubstance AREQUIN name:AREQUIN related_to scigraph Automat CORD19 Scigraph API None ChemicalSubstance TMPRSS2 NCBIGene:7113
1 ESTROGEN ChemicalSubstance negatively_regulates SEMMED SEMMED Chemical API 4678850,463617,1109902,1109902,1011169,501815,... ChemicalSubstance ANDROGENS name:ANDROGENS positively_regulated_by SEMMED SEMMED Gene API 11322890 ChemicalSubstance TMPRSS2 NCBIGene:7113
2 ESTROGEN ChemicalSubstance negatively_regulates SEMMED SEMMED Chemical API 7264512 ChemicalSubstance ANDROGENS name:ANDROGENS positively_regulated_by SEMMED SEMMED Gene API 11322890 ChemicalSubstance TMPRSS2 NCBIGene:7113
3 ESTROGEN ChemicalSubstance physically_interacts_with SEMMED SEMMED Chemical API 19871058,14142405,12981152,13989191,6155068,61... ChemicalSubstance ANDROGENS name:ANDROGENS positively_regulated_by SEMMED SEMMED Gene API 11322890 ChemicalSubstance TMPRSS2 NCBIGene:7113
4 ESTROGEN ChemicalSubstance physically_interacts_with SEMMED SEMMED Chemical API 2168876,11800164 ChemicalSubstance ANDROGENS name:ANDROGENS positively_regulated_by SEMMED SEMMED Gene API 11322890 ChemicalSubstance TMPRSS2 NCBIGene:7113
5 ESTROGEN ChemicalSubstance positively_regulates SEMMED SEMMED Chemical API 163457,931543,521734,8501162,7920895,2249634,1... ChemicalSubstance ANDROGENS name:ANDROGENS positively_regulated_by SEMMED SEMMED Gene API 11322890 ChemicalSubstance TMPRSS2 NCBIGene:7113
6 ESTROGEN ChemicalSubstance coexists_with SEMMED SEMMED Chemical API 13948933,7246802,1054902,147281,9004535,876887... ChemicalSubstance ANDROGENS name:ANDROGENS positively_regulated_by SEMMED SEMMED Gene API 11322890 ChemicalSubstance TMPRSS2 NCBIGene:7113
7 ESTROGEN ChemicalSubstance coexists_with SEMMED SEMMED Chemical API 2521224,2137721,10025034 ChemicalSubstance ANDROGENS name:ANDROGENS positively_regulated_by SEMMED SEMMED Gene API 11322890 ChemicalSubstance TMPRSS2 NCBIGene:7113
8 ESTROGEN ChemicalSubstance negatively_regulates SEMMED SEMMED Chemical API 4678850,463617,1109902,1109902,1011169,501815,... ChemicalSubstance ANDROGENS name:ANDROGENS physically_interacts_with SEMMED SEMMED Gene API 21796535,24109594,24109594,24727384,25170998 ChemicalSubstance TMPRSS2 NCBIGene:7113
9 ESTROGEN ChemicalSubstance negatively_regulates SEMMED SEMMED Chemical API 7264512 ChemicalSubstance ANDROGENS name:ANDROGENS physically_interacts_with SEMMED SEMMED Gene API 21796535,24109594,24109594,24727384,25170998 ChemicalSubstance TMPRSS2 NCBIGene:7113
10 ESTROGEN ChemicalSubstance physically_interacts_with SEMMED SEMMED Chemical API 19871058,14142405,12981152,13989191,6155068,61... ChemicalSubstance ANDROGENS name:ANDROGENS physically_interacts_with SEMMED SEMMED Gene API 21796535,24109594,24109594,24727384,25170998 ChemicalSubstance TMPRSS2 NCBIGene:7113
11 ESTROGEN ChemicalSubstance physically_interacts_with SEMMED SEMMED Chemical API 2168876,11800164 ChemicalSubstance ANDROGENS name:ANDROGENS physically_interacts_with SEMMED SEMMED Gene API 21796535,24109594,24109594,24727384,25170998 ChemicalSubstance TMPRSS2 NCBIGene:7113
12 ESTROGEN ChemicalSubstance positively_regulates SEMMED SEMMED Chemical API 163457,931543,521734,8501162,7920895,2249634,1... ChemicalSubstance ANDROGENS name:ANDROGENS physically_interacts_with SEMMED SEMMED Gene API 21796535,24109594,24109594,24727384,25170998 ChemicalSubstance TMPRSS2 NCBIGene:7113
13 ESTROGEN ChemicalSubstance coexists_with SEMMED SEMMED Chemical API 13948933,7246802,1054902,147281,9004535,876887... ChemicalSubstance ANDROGENS name:ANDROGENS physically_interacts_with SEMMED SEMMED Gene API 21796535,24109594,24109594,24727384,25170998 ChemicalSubstance TMPRSS2 NCBIGene:7113
14 ESTROGEN ChemicalSubstance coexists_with SEMMED SEMMED Chemical API 2521224,2137721,10025034 ChemicalSubstance ANDROGENS name:ANDROGENS physically_interacts_with SEMMED SEMMED Gene API 21796535,24109594,24109594,24727384,25170998 ChemicalSubstance TMPRSS2 NCBIGene:7113
15 ESTROGEN ChemicalSubstance positively_regulates SEMMED SEMMED Chemical API 14565844 ChemicalSubstance 5' UNTRANSLATED REGION name:5' UNTRANSLATED REGION physically_interacts_with SEMMED SEMMED Gene API 23472063 ChemicalSubstance TMPRSS2 NCBIGene:7113
16 ESTROGEN ChemicalSubstance coexists_with SEMMED SEMMED Chemical API 19642097 ChemicalSubstance 5' UNTRANSLATED REGION name:5' UNTRANSLATED REGION physically_interacts_with SEMMED SEMMED Gene API 23472063 ChemicalSubstance TMPRSS2 NCBIGene:7113
17 ESTROGEN ChemicalSubstance coexists_with SEMMED SEMMED Chemical API 18949358 ChemicalSubstance INTERFERING RNA, SMALL name:INTERFERING RNA, SMALL negatively_regulated_by SEMMED SEMMED Gene API 26026052 ChemicalSubstance TMPRSS2 NCBIGene:7113

In [ ]: