chembl / chembl_webresource_client

Official Python client for accessing ChEMBL API
https://www.ebi.ac.uk/chembl/api/data/docs
Other
368 stars 95 forks source link

Retrieve all drugs that bind to a list of proteins #81

Open CryoSky opened 4 years ago

CryoSky commented 4 years ago

To whom it may concern, I want to reproduce the report of a paper https://www.biorxiv.org/content/10.1101/2020.03.22.002386v1. In this paper, the authors find 322 proteins that interact with SARS-CoV-2 and find the drugs that related to these proteins. I already download the Uniprot ID for each of these proteins, and I have converted them to CHEMBL ID. Now I have a list file of CHEMBL ID that represents proteins, I want to find all phase 4 drugs that interact with these proteins. The following is my code.

from chembl_webresource_client.new_client import new_client chembl_id = [] with open("chembd_list_human.txt", "r") as fopen: lines = fopen.readlines() for line in lines: chembl_id.append(line.split()[0])

chembl_id = ['CHEMBL1163125', 'CHEMBL2095186']

for node in chembl_id: activities = new_client.mechanism.filter(target_chembl_id=node) compound_ids = [x['molecule_chembl_id'] for x in activities] approved_drugs = new_client.molecule.filter(molecule_chembl_id__in=compound_ids).filter(max_phase=4) for drug in approved_drugs: for key, value in drug.items(): if key=='molecule_chembl_id': print(value)

However, from this code I only get a very little subset of the results that the paper represented. Could anyone give any suggestions how to get a better search strategy? Best wishes,