朋友的朋友给了一堆ChEMBL类型,需求是获取对应的Protein Target Classification信息。
这个信息比较特殊,找了好一会才找到数据源。下面是获取步骤。
- 通过官方API的文档找到我们需要的API https://www.ebi.ac.uk/chembl/api/data/docs
- /chembl/api/data/target/search?q= 输入ChEMBL类型我们可以获得该类型下的ChEMBLID,在返回数据中找到任意一个ChEMBLID和对应的component_id
- /chembl/api/data/target_component/ 输入component_id,在返回数据中找到protein_classification_id,这个ID就是Protein Target Classification信息的类型
- /chembl/api/data/protein_class/ 最后用protein_classification_id找到该类型对应的Protein Target Classification信息
关键代码如下:
import requests
import bs4
import json
import re
Q_URL = "https://www.ebi.ac.uk/chembl/api/data/target/search?q={}"
COM_URL = "https://www.ebi.ac.uk/chembl/api/data/target_component/{}.json"
PRO_URL = "https://www.ebi.ac.uk/chembl/api/data/protein_class/{}.json"
def get_expid(id):
# 获取某类型的一个ChEMBLID和component_id
url = Q_URL.format(id)
r = requests.get(url)
soup