ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

BRENDA 酶学数据库 SOAP API 接入指南:基于 zeep 的动力学参数与酶特性查询实战

2026/9/10 19:38:30 拓冰建站 浏览量
BRENDA 酶学数据库 SOAP API 接入指南:基于 zeep 的动力学参数与酶特性查询实战 BRENDA 酶学数据库 SOAP API 接入指南基于 zeep 的动力学参数与酶特性查询实战【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skillsBRENDABRaunschweig ENzyme DAtabase是全球最权威的酶功能与酶动力学数据资源库之一。本指南围绕 database-lookup 技能中的 BRENDA 接入文档系统讲解其 SOAP 接口的鉴权方式、核心方法、field*value参数语法与返回格式并给出可直接复用的 Python/zeep 调用方案帮助科研 Agent 与开发者精准检索 Km、kcat、Ki、IC50、最适 pH/温度等酶学数据。为什么 BRENDA 不能用 REST 思路调用绝大多数公开生物数据库如 KEGG、UniProt、PubChem都提供 RESTful HTTP 接口使用 WebFetch 或curl加 URL 参数即可访问。但 BRENDA 是一个特例它只开放 SOAP Web Service而不是 REST API。这一区别决定了整套调用方式SOAP 依赖 WSDLWeb Services Description Language契约描述客户端需根据 WSDL 动态生成调用代码参数不再通过 URL query string 传递而是以 XML/SOAP 信封形式封装在请求体里返回结果不是 JSON而是一种自定义分隔符拼接的纯文本字符串需要二次解析。因此 database-lookup 技能 在 SKILL.md 的受限访问数据库中专门标注BRENDA 需要免费注册、走 SOAP 而非 REST并在无账号时建议回退到 KEGG 获取酶/通路数据。数据库选择指南 同样将酶动力学、催化活性类查询的主数据库指向 BRENDA、备选指向 KEGG。技术前提SOAP 端点与 zeep 依赖访问 BRENDA 前需准备好两部分环境1. WSDL 端点。BRENDA 官方发布的接口契约地址为https://www.brenda-enzymes.org/soap/brenda_zeep.wsdl从命名可以看出_zeep后缀表明该 WSDL 专门面向 Python 的 zeep 库做了适配。2. Python 与 zeep 库。由于调用必须发送 SOAP XML 请求并解析响应而通用 HTTP 抓取工具WebFetch 等只能执行 GET、无法承载 SOAP 信封因此必须编写并运行 Python 脚本。安装依赖pip install zeepzeep 会读取 WSDL 自动生成对应的 service proxy 与数据类型绑定省去手工构造 SOAP XML 的繁琐过程。仓库内其他 SOAP 类数据库如 ChEBI也采用同一模式ChEBI 的 WSDL 为https://www.ebi.ac.uk/webservices/chebi/2.0/webservice?wsdl同样需要以 SOAP/XML 方式调用getCompleteEntity等方法获取结构数据。账号与鉴权机制BRENDA 对免费用户开放接口但要求先注册账号。注册地址https://www.brenda-enzymes.org/register.php每次调用都必须携带两组凭证参数参数说明email注册时使用的邮箱地址明文传递password密码的SHA-256 哈希值十六进制字符串不是明文密码密码必须先在本地做 SHA-256 哈希。对应的 Python 实现import hashlib password_hash hashlib.sha256(your_password.encode()).hexdigest()从 database-lookup 的凭证规范 看调用时还应遵守最小权限原则只探测当前数据库所需的环境变量、不把密钥值写入日志或溯源信息。BRENDA 免费注册即可获得凭证与同属受限访问类的 COSMIC需学术注册 JWT不同它不需要付费许可证。核心 SOAP 方法一览所有 BRENDA SOAP 方法的参数签名都遵循同一骨架先传email、passwordSHA-256再传以ecNumber开头的过滤/返回字段串。下面是关联文档中整理的主要方法与数据含义方法返回的酶学数据getKmValue米氏常数 KmgetTurnoverNumber转换数kcatgetKcatKmValue催化效率 kcat/KmgetKiValue抑制常数 KigetIc50Value半数抑制浓度 IC50getSpecificActivity比活力getPhOptimum最适 pHgetTemperatureOptimum最适温度getSubstrate底物getProduct产物getInhibitors抑制剂getCofactor辅因子getOrganism来源生物体getReaction反应方程式getSequence蛋白质序列getDisease相关疾病这些方法覆盖了酶学研究的经典闭环催化能力Km、kcat、kcat/Km、抑制特性Ki、IC50、反应条件pH、温度最适值、功能注释底物/产物/辅因子/来源生物体、序列与疾病关联。若只想快速判断某个 EC 编号对应的通路位置KEGG 的 enzyme 库如ec:1.1.1.1可作为互补的轻量查询入口。field*value 参数语法BRENDA 的过滤参数采用fieldName*value的紧凑格式星号*分隔字段名与取值字段值为空即表示返回全部。该语法与 REST 的?keyvalue截然不同拼接时需格外注意。典型参数示例ecNumber*1.1.1.1 # 必填EC 编号定位目标酶 organism*Homo sapiens # 可选按生物体过滤 substrate*ethanol # 可选按底物过滤 kmValue* # 返回字段空值返回全部 kmValue 记录理解这套语法的关键在于区分两类参数过滤参数ecNumber、organism、substrate等带具体取值服务端据此收窄数据集。其中ecNumber是必填项其余是可选的二次过滤条件返回字段参数如kmValue*、literature*取值留空表示把该字段的全部记录取回包括对应的文献出处。在 Python 中实际传参时把这些字符串按顺序拼成列表传入 zeep service 方法即可见下节示例。完整 Python 调用示例关联文档给出了一个查询人源乙醇脱氢酶EC 1.1.1.1Km 值的端到端示例下面将其扩展为带解析与容错的完整脚本import hashlib from zeep import Client WSDL https://www.brenda-enzymes.org/soap/brenda_zeep.wsdl # 1. 凭据email 明文 密码 SHA-256 email youremail.com password hashlib.sha256(your_password.encode()).hexdigest() # 2. 初始化 zeep 客户端自动解析 WSDL 并绑定方法 client Client(WSDL) # 3. 调用 getKmValue过滤/返回字段串按顺序传入 result client.service.getKmValue( email, password, ecNumber*1.1.1.1, # 目标酶乙醇脱氢酶 organism*Homo sapiens, # 限定人源 kmValue*, # 返回 Km 字段空值全部 substrate*, # 返回底物字段空值全部 literature*, # 返回文献出处字段 ) # 4. 结果是需要手工解析的分隔符文本 print(result)若需调用其它方法只需替换方法名与返回字段例如查催化效率用getKcatKmValue(..., kcatKmValue*, substrate*, literature*)查最适 pH 用getPhOptimum(..., phOptimum*, ...)。建议为每次调用增加超时控制与异常捕获避免 SOAP 服务无响应时脚本挂死。从 SKILL.md 关于受限数据库的处理策略 出发若尚未完成免费注册应明确告知用户BRENDA 需要注册凭证当前以 KEGG 代替这一回退路径而不是静默更换数据源。返回格式手工解析的分隔符文本BRENDA 的 SOAP 响应不是结构化的 JSON/XML 记录集而是单个字符串内部使用特殊分隔符编码多条记录!作为记录分隔符一条数据记录的结束#与*作为字段分隔符区分记录内的不同字段。例如一次 Km 查询可能返回形如1.1.1.1#Homo sapiens#ethanol#0.5*2.5#...!含义需结合 BRENDA 官方字段顺序解析。由于响应是纯文本且字段顺序与请求参数相关建议在 Python 中按!切分记录、再按#/*切分字段并对照官方文档确认各位置对应的物理量、单位与文献 IDfor record in result.split(!): if not record.strip(): continue fields [f for f in record.split(#)] print(fields) # 结合 BRENDA 字段约定解析为结构化数据解析出的每条记录都应保留对应的literaturePubMed 文献号等溯源信息——这正是 database-lookup 技能的溯源要求返回结果时必须附带访问日期、端点和参数并标注计数核对情况。限速与使用礼仪BRENDA 官方没有公布硬性速率限制但每个 SOAP 请求的响应时间通常需要 1~5 秒协议封装与服务器处理开销较大。关联文档对此的指导是保持克制尊重这个免费学术服务。实际操作中建议不要并发轰炸串行或小批量提交请求把同类酶的多组查询合并思路放在应用层多次调用而非协议层出现超时或空响应时先检查 EC 编号写法如1.1.1.1大小写/点分隔是否正确再重试大批量酶学数据需求优先考虑官方导出/下载渠道。作为对照KEGG 参考文档 给出的建议是每秒几请求并在/get中最多用拼接 10 个 ID——不同数据库的限速策略差异正体现了 database-lookup 的调用前规划原则在发起调用前先确认所选 API 的限速与批量策略并将并发请求数控制在合理上限内。Agent 调用约定与常见错误排查在 AI Agent 场景下BRENDA 与常规数据库的最大不同在于获取方式BRENDA 使用 SOAP 而非 REST无法用 WebFetch 这类 GET-only 工具直接调用正确姿势是编写并执行含 zeep 的 Python 脚本用 Bash/Shell 运行脚本取结果关联文档明确建议Use Bash to run the script rather than WebFetch这一处理与 SKILL.md 中 POST-only API 需改用curl的处理思路一脉相承工具能力GET 型 WebFetch决定不了协议遇到不兼容协议时应切换到脚本/命令行通道。排错检查清单症状排查方向鉴权失败密码是否正确做了 SHA-256email是否已注册参数报错field*value是否严格按星号拼接ecNumber是否缺失空结果EC 编号写法、organism 拼写如Homo sapiens可换 KEGG 交叉验证响应难以解析按!/#/*三级分隔符拆解并对照字段顺序约定超时SOAP 响应 1~5 秒属正常加大客户端超时并串行重试小结BRENDA 是酶动力学与酶功能数据的首选权威来源其 SOAP 接口虽然不如 REST 直观但只要掌握三个要点即可稳定接入注册获取 email SHA-256 密码作为每次调用的鉴权凭证用 zeep 解析 WSDL 契约并调用getKmValue、getTurnoverNumber等方法理解field*value参数语法与!/#/*分隔符返回格式。结合 database-lookup 技能的溯源与可复现规范即可将 BRENDA 的酶学事实可靠地纳入科研工作流。【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000 scientists worldwide. 165 ready-to-use validated skills plus 100 scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考