DrugShot

Introduction

This document describes the REST APIs provided by DrugShot. These APIs are for developers who want to programmatically retrieve drugs associated with search terms of interest.

In this documentation, we will use Python to demo the API requests. The code can be used as is or as a template for your own modifications in Python or another language. We use the requests library, which can be installed with pip.


API section


Get PubMed IDs associated with drug

Method POST
URL https://maayanlab.cloud/drugshot/api/drugpublications
Returns
drug_pmids List of PubMedIDs associated with query drug
drug_term_pmids List of PubMedIDs associated with query drug and query term
search_term cached search term from previous query
drug_pmids_count number of publications matching drug
drug_term_pmids_count number of publications matching drug and search term
Parameters
drug drug name
rif drugrif or autorif
term search term
Example code
import json
import requests

DRUGSHOT_URL = 'https://maayanlab.cloud/drugshot/api/drugpublications'
payload = {"drug": "daunorubicin", "rif": "autorif", "term": "alopecia"}

response = requests.post(DRUGSHOT_URL, json=payload)

data = json.loads(response.text)
print(data)
Example results
{
  "drug_pmids":[
  10100273,
  10190555,
  10203107,
  ...
  ],
  "drug_term_pmids": [
  11699226,
  12908776,
  17505516,
    ...
  ],
  "search_term": "alopecia",
  "drug_pmids_count": 439,
  "drug_term_pmids_count": 7
}

Get drugs associated with search terms

Method POST
URL https://maayanlab.cloud/drugshot/api/search
Returns
PubMedID_count number of publications matching term
drug_count drugs with total number of matching PubMed IDs and fraction of matching
PubMed IDs relative to all PubMed IDs the drug matches in DrugRIF.
search_term search term submitted in query
return_size number of drugs matching search
query_time query time in seconds
Parameters
term search term
rif drugrif or autorif
Example code
import json
import requests

DRUGSHOT_URL = 'https://maayanlab.cloud/drugshot/api/search'
payload = {"rif": "autorif", "term": "alopecia"}

response = requests.post(DRUGSHOT_URL, json=payload)

data = json.loads(response.text)
print(data)
Example results
{
  "search_term": "wound healing"
  "PubMedID_count": 176684,
  "drug_count": {
  'l-eflornithine': [
      7,
      0.025547445255474453
   ],
  'eflornithine': [
      6,
      0.01056338028169014
    ],
  'tamoxifen': [
      41,
      0.0031247618321774257
    ],
    ...
  },
    "return_size": 334,
    "query_time": 2.4000279903411865,
}

Predict associated drugs using drug-drug similarity.
The possible similarity matrices are drugrif_cooccur and L1000_coexpression.

Method POST
URL https://maayanlab.cloud/drugshot/api/associate
Returns
associations drugs with similarity to input drug list
query_time query time for query in seconds
Parameters
similarity drug-drug similarity matrix (drugrif_cooccur, L1000_coexpression)
drug_list comma separated drug names
Example code
import json
import requests

DRUGSHOT_URL = 'https://maayanlab.cloud/drugshot/api/associate'
payload = {
  "drug_list": ["finasteride","squaric acid dibutyl ester","stanolone",
                "pidorubicine","fluorouracil","kanamycin","vinorelbine",
                "gemcitabine","dutasteride","capecitabine","gentamicin",
                "minoxidil","etacrynic-acid","baricitinib","irinotecan",
                "mitoxantrone","doxorubicin","acitretin","prednisone","camptothecin"],
  "similarity": "L1000_coexpression" 
}
response = requests.post(DRUGSHOT_URL, json=payload)

data = json.loads(response.text)
print(data)
Example results
{
"association": {
    "etoposide": {
        "publications": 11012,
        "simScore": 0.1735661679257949,
        "topDrugs": {
            ...
        },
        "topScores": {
            ...
        }
    },
    ... 
},
"query_time": 5.926133871078491
}