用途
该技能面向化学信息学检索需求,通过 PubChem(NCBI)公开的 PUG-REST/JSON API 以 Python 的 requests 库直接发起调用,不依赖 pubchempy 封装库。资料指出,直接调用 URL 语法更透明、更易重试与缓存,并可避免沙箱依赖问题。PubChem 被描述为最大的免费化学数据库,含 1.1 亿以上化合物、2.8 亿以上物质及数百万生物测定记录。
适用场景包括:按名称、SMILES、InChIKey 或分子式查找化合物 CID;检索分子性质;按 Tanimoto 相似度查找结构类似物;查找含特定子结构/药效团的化合物;获取 CID 的全部同义词/商品名/CAS 号;拉取生物测定汇总表;在标识符格式(名称 ↔ CID ↔ SMILES ↔ InChI ↔ InChIKey)之间转换;下载 2D SDF 或 PNG 结构。
主要能力
- 标识符查询:通过
/compound/{namespace}/{value}/cids/JSON将外部标识符解析为 CID,命名空间包含 name、cid、smiles、inchikey、inchi、formula。 - 性质检索:
/compound/cid/{cid 或 csv}/property/<csv 列表>/JSON可在一次请求中返回多个属性;CID 与属性名均可 CSV 拼接,支持批量约 200 个 CID。可用属性包括 MolecularWeight、MolecularFormula、SMILES、ConnectivitySMILES、IUPACName、InChI/InChIKey、XLogP、TPSA、HBondDonorCount、HBondAcceptorCount、RotatableBondCount、HeavyAtomCount、Charge 等。资料注明 MolecularWeight 以字符串返回,参与运算前需转为 float。 - 同义词与描述:
/compound/{ns}/{value}/{synonyms|description}/JSON返回商品名、CAS 号、别名及来源标注的精心整理描述。 - 相似性与子结构检索:属异步任务,API 返回 HTTP 202 与
{"Waiting": {"ListKey": "..."}},需轮询/compound/listkey/{key}/cids/JSON直至返回 IdentifierList;资料建议每约 2 秒轮询一次,并提供了poll_listkey辅助函数。部分快速检索会直接返回 IdentifierList,需同时判断两种情况。 - 生物测定汇总:
/compound/cid/{cid}/assaysummary/JSON返回该化合物涉及的每个 PubChem BioAssay 表格(AID、靶点、结果、微摩尔活性等)。 - 结构文件下载:
/compound/cid/{cid}/SDF返回 2D MOL/SDF,/compound/cid/{cid}/PNG返回结构图像,可用?image_size=large提高分辨率。
使用方式
安装依赖:pip install requests pandas(两者通常已在标准环境中;如在已提供这些库的 pixi/conda 环境内,可跳过安装并以 pixi run python ... 调用脚本)。无需 API Key。基础 URL 为 https://pubchem.ncbi.nlm.nih.gov/rest/pug,URL 模式为 https://pubchem.ncbi.nlm.nih.gov/rest/pug/<input>/<operation>/<output>。
响应结构:cids/JSON 返回 {"IdentifierList": {"CID": [...]}};property/.../JSON 返回 {"PropertyTable": {"Properties": [{...}]}}(每 CID 一个字典,按输入顺序);synonyms/JSON 返回 {"InformationList": {"Information": [{"CID": int, "Synonym": [...]}]}};description/JSON 结构类似并含 Description 与 DescriptionSourceName;assaysummary/JSON 返回 {"Table": {"Columns": {...}, "Row": [{"Cell": [...]}]}}。
关键参数:namespace 可选 name、cid、smiles、inchikey、inchi、formula;property 为属性名子集;Threshold 为相似度百分比(0–100,默认 90);MaxRecords 为异步结果条数上限(1–10000);image_size 可选 small、large 或 WxH;record_type 可选 2d、3d 控制 SDF 维度;MaxAssayResults 限定生物测定结果数量。
资料提供的工作流程示例包括:药物组合的理化性质对比、先导化合物 → 相似类似物 → 性质检索(如以 gefitinib 为例做 85% 相似搜索)、以及子结构(磺酰胺基)筛选后检查生物活性记录。
限制
- 速率限制:每 IP 每秒最多 5 次请求、每分钟最多 400 次请求;循环中需用
time.sleep(0.25)节流,返回 503 表示超限。 - 相似性、子结构与分子式检索为异步,需按 ListKey 轮询;资料称多数检索 5–15 秒完成,轮询间隔可据检索规模调整,
poll_listkey设有最大轮询次数与超时。 - 该技能仅覆盖 PubChem 公开接口的事实性数据检索;本地化学信息学计算(指纹、描述符、3D 构象、骨架提取)需使用 rdkit,更深入的生物活性/靶点结合数据需使用 chembl-database-bioactivity。
- 资料未提供该技能的收费、价格或授权信息。