Demand User Guide
pyCADD-Demand 是快速检索PDB数据库的工具,它可以根据用户输入的蛋白Uniprot ID,快速检索该蛋白在PDB数据库中符合条件的结构,并对检索结果进行下载、合并。
Demand 模块需要互联网连接,但并非使用爬虫技术,而是直接通过 PDB 数据库所提供的 RESTful API 接口进行检索,同一时间下所得数据应该与您在PDB web 所获得的数据一致。因此,您无需担心数据质量。
Demand 模块也能够为 Dock 模块开展 Ensemble Docking 快速生成必要的输入文件。
检索蛋白 Uniprot ID
为了收集蛋白信息,您需要在 Uniprot 数据库中确定所需研究的蛋白 Uniprot ID,它是蛋白的唯一识别号。
如果有多个蛋白需要检索信息,请为其分别运行一次 Demand 模块。
检索 PDB 数据
通过 CLI 命令快速检索 PDB 数据
一旦您确定了uniprot ID, 可以通过下面的命令来快速检索当前蛋白的 PDB 数据。
pycadd-demand [options] UNIPROT_ID
Demand
最初是为了生成 Dock
模块中用于 Ensemble Docking 功能输入文件而创造的,因此,下面的参数仅会影响 Dock
模块的输入文件生成,而不会影响 Demand
模块的运行。无论如何设定可选参数,与当前蛋白相关的所有PDB数据都会被检索并保存。
-m / –not_del_mutations: 在生成输入文件时不删除突变体。默认情况下,Demand 模块会删除突变的蛋白结构,只保留原始蛋白(Wild Type)的结构信息,突变体的分辨是根据PDB数据库返回信息确定的。如果您需要保留突变体的结构信息,请使用该参数。
-e / –not_del_ignore: 在生成输入文件时不删除小分子中的忽略分子。忽略分子指通常不属于常规小分子化合物或配体的分子、原子或离子,主要为各类溶剂分子(如乙醇、DMSO等)、金属离子(镁、钾、磷酸根离子等)。您可以在 pyCADD.Demand.config 中修改这些分子的列表,或者使用该参数来保留这些分子。目前的版本中,它们包括:
# 非配体的小分子 IGNORE_LIG = ['EDO', 'DMS', 'IPA', 'TBY', 'ARS', 'EU', 'MG', 'IOD', 'ACT', 'CA', 'CAC', 'K', 'FMT', 'BU3', 'PGO', 'PE4', 'PO4', 'BR', 'NO3', 'BCT', 'ZN', 'SO4', 'CL', 'NA', 'AU', 'GOL', 'NI', 'YT3', 'PEG', 'PGE']
-c, –cutoff FLOAT: 在生成输入文件时的结构分辨率截断值,单位为埃(Angstrom),高于截断值的结构将被过滤。默认情况下,不进行分辨率过滤。如果您需要检索更高分辨率(即具有一个更低的Cutoff)的结构,请使用该参数,并提供一个具体的浮点数。
-o, –output_format: 设定生成输入文件的格式。Dock 支持 csv | in | ini | yml | yaml格式,但为了便于人类阅读,您可以选择所需的格式来输出,默认为yml。
例如,如果您需要检索人类RXRα蛋白(Uniprot ID: P19793) 的PDB数据,可以使用下面的命令:
pycadd-demand P19793
随后将产生一个query_data
文件夹和 P19793.yml
文件。其中,query_data
文件夹中包含了所有检索到的PDB数据,整合完毕的PDB信息被保存于 query_data/pdb/P19793.csv
中,使用其他工具便可在本地进行进一步的分析和研究。P19793.yml
文件仅用于作为 pycadd-dock ensemble-dock
的输入。
通过 python 包检索 PDB 数据
您也可以通过 python 包来检索 PDB 数据,这样可以更加灵活地使用 Demand 模块。
# 导入 Demand 模块
from pyCADD import Demand
# 确定您的蛋白 Uniprot ID
uniprot_id = 'P19793'
# 创建查询器示例
query = Demand.QueryClient(uniprot_id)
# 与 Uniprot 和 PDB 数据库API交互并查询, 查询数据保存至 query/ 下
client.query()
# 清洗查询结果(仅针对Dock输入文件生成过程):
# 去除Apo晶体
# 去除配体未结合于目标链的晶体
# 去除非WideType晶体(optional)
# 去除非配体的小分子(e.g. DMS, optional)
# 去除分辨率高于Cutoff的晶体(optional)
client.clean_pdb_data(del_mutation=False, del_ignore=False, cutoff=None)
# 生成Dock输入文件
client.save('P19793.yml')