内容提要
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数据。