【Python】利用PubChem PUG REST API批量获取化合物3D结构数据

1. 为什么你需要批量获取化合物的3D结构数据?

如果你正在做药物设计、分子对接或者分子动力学模拟,那你肯定对“3D结构”这个词不陌生。简单来说,一个化合物的3D结构,就是它在三维空间里真实的样子——每个原子在哪儿,键角是多少,整个分子是蜷缩着还是舒展着。这和我们平时看到的化学式(比如H₂O)或者二维结构图(比如苯环)完全是两码事。

我刚开始接触这个领域的时候,也觉得有点懵。二维信息不是挺好吗?为什么非得要3D的?后来在做一个虚拟筛选项目时,我踩了个大坑。我用一批化合物的二维结构式去做分子对接,结果发现预测的活性跟实验数据对不上,偏差很大。请教了前辈才知道,问题就出在“构象”上。一个分子在溶液里不是僵死的,它会“动”,会旋转,会折叠成不同的形状(这些形状就叫构象)。而能和靶点蛋白完美结合的,往往只是其中某一种特定的3D构象。如果你只用了一个扁平的、理想化的2D结构去模拟,那结果肯定不准。

这时候,PubChem的3D结构数据就派上大用场了。它提供的不是单一结构,而是一个“构象模型”,里面包含了这个分子可能存在的多个3D形态。比如 ConformerCount3D 这个属性,直接告诉你数据库里为这个化合物计算了多少个不同的3D构象。再比如 Volume3D,它计算的是分子在空间里占的体积,这对于评估药物分子能否塞进蛋白的活性口袋至关重要。

所以,批量获取这些3D数据,就成了我们做计算化学、药物发现的第一步基础工作。手动去网站上一个一个查?那太不现实了,一个库动辄几万、几十万个化合物。用Python脚本去调用PubChem官方提供的PUG REST API,就成了最高效、最自动化的选择。我实测下来,写好脚本后,获取上千个化合物的3D数据也就是几分钟的事,解放双手,把时间花在更有价值的分析上。

2. 动手之前:认识PubChem PUG REST API

在开始写代码之前,我们得先搞清楚我们要用的“工具”到底是什么。PubChem PUG REST API,这个名字听起来有点唬人,其实拆开看很简单。

  • PubChem:这个好理解,全球最大的免费化学信息数据库之一,由美国国立卫生研究院维护,里面有上亿个化合物的信息。
  • PUG:全称是PubChem Power User Gateway,你可以把它理解成PubChem专门为程序员和高级用户开的一个“后门”或者“命令行界面”。通过它,你可以用程序化的方式(而不是点网页)来查询和获取数据。
  • REST API:这是一种现在非常流行的网络服务交互方式。你可以把它想象成去餐厅点菜。你(客户端)告诉服务员(API)你想要什么菜(发送一个HTTP请求),服务员去后厨(服务器)拿到菜,再端给你(返回HTTP响应,通常是JSON或XML格式的数据)。整个过程标准、清晰。

对于我们这个任务,最关键的就是要知道“点菜的菜单”——也就是API的URL格式。PubChem的API设计得很直观。比如,我们要获取多个化合物的多个属性,URL模板长这样:

https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/{CID列表}/property/{属性列表}/{返回格式}

我来给你拆解一下:

  • cid/{CID列表}:这里放化合物的CID号。CID是PubChem给每个化合物的唯一身份证号。你可以放一个,比如cid/2244(阿司匹林),也可以放一串,用逗号隔开,比如cid/2244,1983,3672
  • property/{属性列表}:这里放你想要获取的属性名,同样用逗号隔开。比如我们关注3D结构,就可以放Volume3D,ConformerCount3D,FeatureCount3D
  • /{返回格式}:你想要数据以什么形式给你。最常用的是JSON,因为Python处理起来特别方便。也可以是XMLCSV等。

举个例子,我想获取CID为2244和1983的两个化合物的分子式、分子量和3D体积,并以JSON格式返回,我就可以构造这样一个URL:

https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/2244,1983/property/MolecularFormula,MolecularWeight,Volume3D/JSON

你甚至可以直接把这个链接复制到浏览器地址栏里敲回车,就能看到返回的原始JSON数据了。理解了这个核心的URL构造规则,后面的编程工作其实就是“批量生成URL”和“处理返回的JSON数据”了。

3. 搭建你的Python抓取环境

工欲善其事,必先利其器。写脚本之前,确保你的电脑环境已经准备好。这里我不假设你是Python大神,咱们一步步来。

首先,你需要一个Python环境。 我强烈推荐使用 Anaconda 来管理你的Python,特别是做科学计算和数据处理,它能帮你省去很多安装依赖库的麻烦。去A

代码下载链接: https://pan.quark.cn/s/a4b39357ea24 用户账户控制(UAC)白名单的配置 Windows7环境中 UAC(User Account Control,用户帐户控制)是由微软在Windows Vista版本中推出的一项旨在增强系统安全性的创新技术,该技术强制要求用户在执行可能干扰计算机正常运作的操作或进行更改会波及其他用户设置的变动前,必须提供相应的权限或管理员密码进行验证。通过对这些操作启动前进行授权确认,UAC能够有效阻止恶意软件及间谍软件在未获授权的状态下于计算机内进行安装或实施修改。 自从Vista版本问世以来,微软便开始推行这一全新的安全机制,可视为对系统安全防护的显著提升。尽管UAC确实能够在一定程度上对某些非法程序起到防御作用,但与此同时,这一功能也给众多用户带来了诸多不便。 因此,许多用户开始探寻是否存在类似于白名单的功能,以便将那些值得信赖的程序直接赋予运行权限。事实上,这类功能确实存在,不过微软并未将其作为标准配置提供。 网络上关于此问题的绝大多数建议都是建议禁用UAC,这种说法显然缺乏针对性,因为若用户希望禁用此功能,本就不会提出相关疑问。 通过运用微软官方发布的Microsoft Application Compatibility Toolkit 5.6版本,可以将信任的程序纳入系统白名单范畴。 获取Application Compatibility Toolkit 安装程序成功后会出现三个可执行文件 以管理员身份启动Compatibility Administrator 在Custom DataBases部分创建新的数据库,并添加一个Application Fix(在下方空白处点击右键,选择...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 DELL服务器的操作系统部署流程包含一系列细致的环节,其适用范围涵盖多种操作系统类型,例如Windows Server与Red Hat Linux等。在启动部署之前,必须确认服务器的光驱设备为DVD驱动器,并且需准备对应的系统安装媒介。下面将详细列出完整的部署步骤: 1. **启动准备**:将随服务器提供的Systems Management Tools and Documentation version 6.0光盘置入服务器光驱,随后设定服务器以光驱作为启动设备。此环节旨在确保服务器在启动阶段能够读取安装光盘内容。 2. **语言设定**:服务器启动后,选定简体中文作为部署语言,并确认接受许可协议条款。 3. **时区选择**:在部署期间,需设定时区为北京、香港、重庆或乌鲁木齐,依据实际地理位置进行适配选择。 4. **系统类型选择**:随后,需选定计划部署的操作系统,支持的版本包括Server 2003 SP2、Server 2003 SP2 64位版本、Windows 2003 SBS SP2、Server 2008、Windows 2008 SBS/EBS x64版本等,以及多种Red Hat和SUSE Linux版本。 5. **RAID设定**:若服务器出厂时已预设RAID配置,则可选择跳过此步骤。若需重新设定RAID,操作时需格外小心,因为这一过程可能引发硬盘数据遗失。 6. **引导分区规划**:设定引导分区的大小,通常C盘建议预留至少20GB的空间,具体容量需根据系统需求进行调整。 7. **网络设定**:网络设定可在系统部署完成后执行,部署期间建议暂时拔除...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值