一个分子工作流应该展示它不知道什么
关于公开分子发现 Demo 的项目笔记:先解析身份、确认结构、计算结构描述符,再明确证据缺口,而不是编造性质。
一个合法的分子结构,不等于一个有证据支持的分子性质结论。
分子发现工作流 Demo 是一个较大私有原型的小型公开窗口。它接收化学名称或 SMILES,通过 PubChem 解析化学身份,请访问者检查结构,然后计算基本的 RDKit 结构描述符。
它刻意不做的一件事是:当某个性质没有接入可追溯的数据源时,为氧化还原电位、溶解度或电导率编造一个看起来合理的数字。
这条工作流
化学名称或 SMILES
→ PubChem 身份记录
→ 可见、可编辑的结构确认
→ 受限的 RDKit 分析服务
→ 描述符 + 明确的证据缺口
如果输入的是名称,浏览器会直接查询公开的 PubChem PUG-REST API。这样不会把 LLM 的猜测当作化学身份;访问者可以先看到名称、CID、二维结构和 SMILES,也仍然可以在分析前修改 SMILES。
确认后,狭窄的公开 API 只把选定的 SMILES 交给本地 RDKit 工作流。它返回的是分子式、分子量、LogP、拓扑极性表面积和官能团标记等结构事实。这些都是计算得到的结构描述符,不是实验测量值。
为什么要把“缺口”展示出来
这个工作流也会检查氧化还原电位、水溶解度和电导率。在当前公开部署中,前两项没有接入经过验证的来源;而电导率本来就不是单个分子的性质,它取决于配方、浓度、盐、溶剂、温度等条件。
所以结果会报告缺口,而不是给出数字:
氧化还原电位 → 缺少有来源支持的数值
水溶解度 → 缺少该精确分子状态的证据
电导率 → 不是单分子性质
这看起来很克制,但正是我希望科学工作流具备的行为:区分“我算出了一个描述符”、“我有这个性质的证据”和“这个问题还没有被充分定义”。
公开边界
公开服务比本地项目窄得多。它只暴露一个正向分析接口和健康检查;不会暴露 MCP 服务器、反向分子发现、数据库、内部研究路由或交互式 API 文档。请求有速率限制,访问者不应提交保密或专有结构。
因此,这个 Demo 适合用来检查工作流边界,而不适合做筛选或实验决策。下一步是接入真实、带版本的性质来源——从范围清楚的氧化还原证据开始——并且把来源和适用范围与未来的任何预测一起展示出来。
可以直接试用 在线分子发现工作流 Demo。
讨论这篇笔记
GitHub 评论加载评论会连接 Giscus 和 GitHub Discussions。发表评论需要 GitHub 账号。