将化学分子的 ChEMBL ID 转化为 SMILES 的两种方法

将化学分子的 ChEMBL ID 转化为 SMILES 的两种方法

💡 原文中文,约9600字,阅读约需23分钟。
📝

内容提要

ChEMBL是一个大型的化学分子数据库,收集了大量化合物的化学、生物学数据。本文介绍了使用ChEMBL的Web API和PostgreSQL将ChEMBL ID转化为SMILES的方法。使用Web API可以通过ChEMBL ID过滤分子并提取其SMILES信息。使用PostgreSQL可以将ChEMBL ID导入数据库并查询对应的SMILES。这些方法都可以方便地将ChEMBL ID转换为其他分子表示。

🔎

延伸解读

两种方法的选择依据

文章对比了Web API和PostgreSQL两种转换方式。Web API适合小规模、灵活嵌入脚本的场景,但受网络和内存限制,实测1000条ID耗时约102秒。PostgreSQL需下载并导入完整数据库,导入约30分钟,但查询速度快,适合大批量转换。读者应根据数据量、实时性要求和本地资源选择。

Web API使用中的注意点

使用chembl-webresource-client时,即使指定only(["molecule_structures"]),返回结果仍包含InChI、molfile等大量结构数据,只有canonical_smiles是目标字段。查询多条ID时,参数名需用molecule_chembl_id__in,注意双下划线。返回对象是QuerySet,支持类似Django的过滤操作,便于进一步处理。

PostgreSQL导入与查询要点

导入前需创建数据库,使用pg_restore命令并正确设置主机、端口、用户名和数据库名。若psql无法进入,可尝试切换至postgres用户。导入后,通过chembl_id_lookup、molecule_dictionary和compound_structures三表关联,用SQL提取SMILES。大规模转换时,可用COPY语句直接将结果导出为CSV文件。

❓

Q&A

ChEMBL ID是什么?

ChEMBL ID是用于标识化合物的唯一标识符,通常用于从ChEMBL数据库中提取数据。

如何使用ChEMBL Web API将ChEMBL ID转换为SMILES?

可以通过安装chembl-webresource-client包,使用filter方法过滤ChEMBL ID并提取其molecule_structures中的canonical_smiles。

PostgreSQL如何用于批量转换ChEMBL ID为SMILES?

首先下载ChEMBL数据库并导入PostgreSQL,然后通过SQL查询将ChEMBL ID与对应的SMILES提取出来。

使用ChEMBL Web API转换数据的速度如何?

通过Web API转换1000条ChEMBL ID为SMILES大约耗时102秒,适合小规模数据处理。

如何导出查询结果为CSV文件?

可以使用COPY命令将查询结果导出为CSV文件,指定输出路径和格式。

ChEMBL数据库的安装步骤是什么?

安装PostgreSQL后,创建数据库并使用pg_restore命令导入ChEMBL数据。

➡️

继续阅读