概览
ChEMBL Webresource Client 是由 ChEMBL 团队开发和支持的 Python 库,用于访问 ChEMBL 数据和化学信息学工具。它是 ChEMBL Web 服务的编程访问层,而非独立数据库或预测模型。文档介绍的接口负责处理 HTTPS 通信,让用户无需编写 SQL 或直接管理 REST 请求即可使用服务资源。
其查询设计遵循 Django 的 QuerySet 接口。输入包括特定端点的字段筛选条件,以及可选的返回字段列表;输出为服务结果,由客户端在需要时检索并缓存在本地文件系统中。支持的查找方式包括精确匹配和不区分大小写的匹配、成员关系、数值比较、范围、空值检查、正则表达式和搜索。惰性求值会将数据请求推迟到需要某个值时,因此该库适用于先构建查询、再读取记录的 Python 工作流。
only 方法允许用户限制返回字段,但这些字段必须存在于所选端点上。嵌套字段选择不会保留到该粒度:选择 molecule_properties__alogp 会被视为选择 molecule_properties。README 还指出,对于多对多关系,only 不提供 SQL 联接优化。
配置选项涵盖本地缓存、缓存过期时间、重试次数、请求并发数和超时。文档说明,FAST_SAVE 设置可能导致缓存数据丢失。这些控制项有助于规划重复检索工作流,但来源摘录并未证实经过测量的性能、特定端点的输出架构或经过测试的科学结果。
主要功能
- 提供用于访问 ChEMBL 数据和化学信息学工具的官方 Python 接口,并处理 HTTPS 通信。
- 支持 QuerySet 风格的筛选,包括精确匹配、不区分大小写的文本匹配、成员关系、比较、范围、空值检查、正则表达式和搜索。
- 采用惰性求值,仅在需要某个值时请求数据。
- 在本地缓存检索到的结果,并可配置缓存启用状态、过期时间和 SQLite 缓存文件名。
- 通过 `only` 限制返回字段,但受端点字段可用性及文档所述嵌套字段限制的约束。
- 提供超时、HTTP 重试、请求并发数和缓存保存行为等设置。
使用场景
- 建议评估:在 Python 中构建经过筛选的 ChEMBL 检索工作流,用于药物发现数据准备,而无需自行实现 REST 请求处理。
- 建议评估:检索指定记录字段以供后续分析,并检查嵌套字段行为能否满足所需的详细程度。
- 建议评估:使用有代表性的工作负载和选定的缓存设置,评估本地缓存与惰性检索对重复探索性查询的适用性。
使用方式
- 在将该库集成到 Python 工作流之前,阅读官方客户端 README,了解查询接口、安装说明和配置选项。
- 按照 README 中的软件包安装说明操作。可将其链接的示例笔记本用作入门参考;此处尚未确认该笔记本是否可用。
- 查阅 ChEMBL API 文档,确定合适的端点及其字段。选择与计划检索的记录相匹配、且有文档说明的查找类型。
- 如需减少返回字段,请对该端点上可用的字段使用
only。在依赖精细选择的属性之前,先检查其嵌套字段限制。 - 按照 README 的说明,在使用客户端前配置相关设置。检查缓存过期时间、重试次数、并发数和超时需求;并考虑文档所述的
FAST_SAVE数据丢失风险。 - 先评估一个具有代表性的小型查询,检查返回字段和检索行为,再扩展工作流。这是建议的评估步骤,并非已完成测试的报告。