信息速览

COCONUT(天然产物在线数据库)— 全球最大开放天然产物结构库 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | COCONUT 天然产物在线数据库 |
| 英文全称 | COlleCtion of Open Natural prodUcTs(COCONUT) |
| 别名/简称 | COCONUT、COCONUT online、COCONUT 2.0 |
| 疾病分类 | 非疾病专用数据库(相关治疗域示例:ICD-11 2A00-2F0Z 恶性肿瘤 / 1A40-1A4Z 疟疾 / 5A11 2 型糖尿病,见 §2.1) |
| SNOMED CT | 105590001 Substance(化学物质域);治疗域映射见 §2.1 |
| 数据模态 | 天然产物分子结构(SMILES/SDF/3D 坐标)、来源生物与分类、采样地理位置、文献元数据、预计算分子描述符 |
| AI 任务类型 | 分子生成与预训练、虚拟筛选库构建、QSAR/性质预测、去重复(dereplication)、代谢物鉴定 suspect list、骨架多样性分析 |
| 样本总数 | 695,133 个独特天然产物结构(2024-09 发布版;官网月度滚动更新,截至 2026-06) |
| 数据大小 | 2D SDF 完整 691.7 MB / CSV 完整 207.9 MB / SQL 转储 31.91 GB(2026-06 版,压缩) |
| 数据格式 | SDF(2D/3D)、CSV、PostgreSQL 转储、REST API(JSON) |
| 许可证 | CC0 1.0 Universal(公有领域贡献,无需署名) |
| 访问级别 | 开放(无需注册、无需申请) |
| DUO 标签 | NRES(无限制) |
| 语言 | 英文 |
| 首发日期 | 2021-01-10(v1 论文在线发表,J Cheminform 13:2) |
| 最后更新 | 2026-06(官网月度发布,含变更日志) |
| 发布机构 | 德国耶拿大学 Friedrich Schiller 大学(Institute for Inorganic and Analytical Chemistry,Steinbeck 实验室) |
| 官方主页 | https://coconut.naturalproducts.net |
| 下载地址 | https://coconut.naturalproducts.net/download |
| DOI | 10.1186/s13321-020-00478-9(v1 论文)/ 10.1093/nar/gkae1063(2.0 论文)/ 10.5281/zenodo.13692394(数据归档) |
| 引用次数 | 543(Semantic Scholar,截至 2026-09,v1 论文) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— CC0 零门槛、四类获取通道、描述符已预计算;扣分项:无官方划分、73,563 个结构立体构型未定义、无生物活性标签需外部联库 |
| 页面状态 | published |
§0 E-E-A-T 审核与免责声明
医学审核:千方病案医学编辑部(执业药师背景)交叉审核:§2 医学与药物发现背景(ICD-11/SNOMED CT 映射、NP 衍生药物流行病学)、§7 偏倚分析。
数据工程审核:[千方病案医学编辑部交叉审核] 化学 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。COCONUT 数据以 CC0 1.0 通用许可发布,可自由使用、修改与再分发且无需署名,但官方引用声明仍建议引用 v1 与 2.0 论文。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? COCONUT(COlleCtion of Open Natural prodUcTs)是一个免费、开放的天然产物分子结构数据库,由德国耶拿大学 Steinbeck 实验室维护。它把全球 63 个开放数据源的天然产物"汇聚成一颗椰子":截至 2024 年 9 月发布版收录 695,133 个去重后的独特分子结构,每个分子都附带来源生物、采样地点、文献出处和一堆预计算好的理化描述符。
为什么重要? 天然产物是新药先导化合物的宝库——1981 至 2019 年间约 45% 获批小分子药物含有天然产物药效团。但在 COCONUT 出现之前,这些结构散落在各自为政、格式不一甚至停止维护的数据库里,研究者光是把数据凑齐就要花几周。COCONUT 用统一清洗管线把它们标准化成一个大而干净的集合,且以 CC0 许可零门槛开放。
我能用它做什么? 如果你做 AI 药物发现,它可以当生成模型(VLM/LSTM/扩散模型)的预训练语料、虚拟筛选的天然产物库、QSAR 建模的训练集,或代谢组学分析的"候选分子清单"。官网提供结构/子结构/相似性在线检索,本地可下载 SDF、CSV 或整库 SQL 转储;所有数据无需注册即可获取。
§1.1 技术摘要
COCONUT 由德国耶拿大学分析化学研究所(Institute for Inorganic and Analytical Chemistry)于 2021 年 1 月随 Sorokina 等的 v1 论文发布,初版整合 53 个数据源、收录 406,076 个独特天然产物结构。2024 年 9 月的 2.0 版完成彻底重构:约 150 万条原始条目经 ChEMBL 结构清洗管线标准化、剔除合成化合物与多组分条目后剩 1,022,536 个分子,再按规范化的同分异构 SMILES 去重合并为 695,133 个独特结构;数据源扩展到 63 个,分子模型从"无立体母结构"升级为"立体感知",并新增社区共治、用户报告与完整审计轨迹。每个分子以 CNP 前缀加 7 位数字的唯一标识符管理,立体异构体共享主 ID 并加后缀区分。元数据方面,来源生物映射到本体与分类学条目(EMBL-EBI OLS4、Global Names Finder),文献引用按 DOI 经 Europe PMC 与 Crossref 校准;CDK 与 RDKit 计算的 NPLikeness、合成可及性、QED 等描述符随库分发。官网月度发布更新并同步 Zenodo 归档,提供 REST API 与 Bioschemas 语义标记。
§1.2 战略价值
维度一:开放生态位稀缺性。 天然产物结构数据长期被商业数据库(如 Dictionary of Natural Products)与碎片化的学术库垄断或割裂。Sorokina 与 Steinbeck 2020 年的综述盘点了 123 个天然产物数据库,发现不到一半支持子结构搜索、许多缺乏立体信息且维护断续。COCONUT 以 CC0 许可填补了"最大规模 + 完全开放"的生态位空白:同量级的 SuperNatural 3.0 收录 449,058 个化合物但定位偏合成衍生物,商业库则不可自由再分发。对 AI 团队而言,这意味着可以毫无法律负担地把它放进预训练语料、发布衍生模型权重。
维度二:清洗与溯源的工程价值。 与"只做聚合"的库不同,COCONUT 2.0 公开了从 150 万条原始条目到 695,133 个独特结构的完整清洗口径(ChEMBL 管线、合成物剔除规则、去重标准),并为每条记录保留来源 collection、DOI 与审计轨迹。对构建数据管线的研究者,这本身就是一份可参照的化学数据 curation 教材;对依赖数据质量的下游任务(QSAR、生成模型评估),可追溯的 provenance 能把"脏数据锅"从模型侧剥离出来。
维度三:中文药物发现生态的基座数据。 对中文 AI 药物发现社区,一个无许可证风险、格式齐全、月度维护的天然产物大库是稀缺的公共基座:教学场景可用 CSV lite 十分钟跑通分子生成全流程;科研场景可把它作为中药活性成分数字化、天然产物语言模型、生成式分子设计的对照分布;产业场景可在 CC0 下把衍生筛选库嵌入商业产品而无须法务审查。这些用法都以"结构可自由再分发"为前提,而这正是 COCONUT 区别于商业库的根本。
§1.3 同类数据集横向对比
| 数据集 | 规模 | 模态与标注 | 获取与许可 | 差异化定位 |
|---|---|---|---|---|
| COCONUT 2.0 | 695,133 个独特结构(2024-09) | 结构 + 来源生物 + 地理 + 文献 + ClassyFire 分类 + 预计算描述符 | CC0;SDF/CSV/SQL/API | 全球最大开放天然产物库,社区共治 + 审计轨迹 |
| SuperNatural 3.0 | 449,058 个天然化合物及衍生物 | 结构 + 通路/毒性/供应商信息 | 学术开放 | 含大量衍生物与通路注释,偏 HTS 场景 |
| UNPD | 约 229,000 个(含手性信息) | 结构 + 手性 | 开放 | 强调立体化学信息 |
| Natural Products Atlas | 约 240,000 个 | 结构 + 来源生物 + 文献 | 开放 | 偏微生物天然产物,检索界面友好 |
| Dictionary of Natural Products | 约 300,000 个 | 结构 + 全面注释 | 商业许可 | 注释最深但不可自由再分发 |
| IMPPAT | 9,596 个植物化学物(1,742 种印度药用植物) | 结构 + 植物 + 治疗用途 | 开放 | 区域深耕型,标注密度高 |
对比数字来自 Frontiers in Pharmacology 2023 综述与 Frontiers in Drug Discovery 2023 综述。
§1.4 版本时间轴
| 时间 | 版本/事件 | 要点 |
|---|---|---|
| 2019 | COCONUT(2019)早期数据集 | 官网下载页仍提供该历史版本用于复现 |
| 2020-09/2020-11 | v1 论文投稿与接收 | 2020-09-09 收稿、2020-11-23 接收 |
| 2021-01-10 | v1 正式发布(J Cheminform 13:2) | 53 个数据源、406,076 个独特结构、MongoDB 后端 |
| 2024-09 | COCONUT 2.0 数据发布 | 63 个数据源、695,133 个独特结构、立体感知模型、社区共治 |
| 2024-11-26 | 2.0 论文发表(NAR 53(D1):D634-D643) | 完整清洗管线与架构公开 |
| 2024-09 至今 | 月度滚动发布 | 同步 Zenodo(10.5281/zenodo.13692394),含变更日志;截至 2026-06 持续更新 |
§1.5 典型应用场景
- 生成模型预训练:以 69.5 万 SMILES 预训练 LSTM/Transformer/VAE,再向天然产物化学空间采样——Tay 等 2023 年用 COCONUT 训练的模型生成了 67,064,204 个有效的类天然产物分子。
- 虚拟筛选库:把 COCONUT 与既有化合物库合并做大规模对接筛选,天然产物骨架可弥补合成库的骨架盲区;配合官网分发的 NPLikeness 与合成可及性分数先行排序。
- 去重复(dereplication):代谢组学获得候选分子式后,与 COCONUT 的分子式+单同位素质量 CSV 比对,快速排除已知分子,避免重复分离已知化合物。
- QSAR/性质预测基准:ClassyFire 分类与预计算描述符可作为预测任务标签与特征;分子量级足够支撑骨架划分的严格基准。
- 代谢组学 suspect list:按来源生物或采样地域筛选子集,生成靶向/非靶向代谢组学鉴定的候选清单——官方下载页专门为此提供了质谱用例 CSV。
§2 医学与药物发现背景
§2.1 ICD-11 与 SNOMED CT 映射
COCONUT 本身是化学实体库,不直接承载疾病标签;下表给出天然产物衍生药物最具代表性的治疗域映射,供跨库分析时对齐临床语义。编码为代表性映射示例,使用前请以 WHO ICD-11 浏览器与 SNOMED CT 官方浏览器核对最新版本。
| 治疗域标签 | ICD-11 编码 | SNOMED CT 码 | SNOMED 术语 |
|---|---|---|---|
| 恶性肿瘤(紫杉醇、长春碱、喜树碱类适应域) | 2A00-2F0Z(肿瘤总域) | 363346000 | Malignant neoplastic disease (disorder) |
| 疟疾(青蒿素类适应域) | 1A40-1A4Z(疟疾组) | 61462000 | Malaria (disorder) |
| 2 型糖尿病(二甲双胍源流:山羊豆碱) | 5A11 | 44054006 | Diabetes mellitus type 2 (disorder) |
| 阿尔茨海默病(加兰他敏适应域) | 8A00 | 26929004 | Alzheimer disease (disorder) |
| 化学物质(COCONUT 条目本体所属域) | 不适用 | 105590001 | Substance (substance) |
§2.2 天然产物与药物发现
天然产物(natural products, NPs)指生物体次级代谢产生的有机分子,涵盖植物、微生物、海洋生物来源。它们是现代药物最重要的灵感来源之一:1981 至 2019 年的分析显示,约 45% 获批小分子药物(含原型天然产物、衍生物、模拟物与含 NP 药效团的分子)可追溯到天然产物骨架。FDA 批准节奏上,2011-2020 年新分子实体年均 31.4 个,其中天然产物及其衍生物在 2001-2010 与 2011-2020 年分别年均贡献 4.2 与 3.8 个。结构层面,Waldmann 团队的分析表明过半数天然产物的范德华体积落在 300-800 ų 的"成药窗口"内,适合作为 hit-to-lead 的起点。
从临床视角看,经典 NP 衍生药物覆盖多个重大疾病域:抗肿瘤的紫杉醇与长春碱类、抗疟的青蒿素类、镇痛的吗啡类、强心的地高辛、抗阿尔茨海默病的加兰他敏,以及源流可追溯到山羊豆碱的二甲双胍。换言之,COCONUT 收录的每一个结构,都是"曾被发现有生物活性的分子空间"的一个采样点——这正是它对医学 AI 的价值基础。
代表性 NP 衍生药物与 COCONUT 数据要素的对应关系:
| 代表药物 | 天然来源 | 治疗域 | COCONUT 中的数据要素 |
|---|---|---|---|
| 紫杉醇 | 太平洋红豆杉(Taxus brevifolia) | 抗肿瘤(对应 §2.1 肿瘤总域) | 结构 + 来源生物 + 文献 DOI |
| 青蒿素 | 黄花蒿(Artemisia annua) | 抗疟(对应 §2.1 疟疾组) | 结构 + 立体构型 + 采样地域 |
| 吗啡 | 罂粟(Papaver somniferum) | 镇痛 | 结构 + ClassyFire 生物碱分类 |
| 地高辛 | 毛地黄(Digitalis lanata) | 心力衰竭/心律失常 | 结构 + 强心苷骨架分类 |
| 青霉素 | 青霉菌(Penicillium 属) | 细菌感染 | 结构 + 微生物来源元数据 |
上表中的药物-来源对应为药学教科书级常识,用于说明库内元数据要素的用途;具体个别分子在库内的记录完整度随文献与来源库而异,使用前应在化合物详情页核对。
任务-数据对齐提示:COCONUT 能直接支撑的任务都"从结构出发"(生成、筛选、分类、溯源);需要"落到临床"的任务(活性预测、适应症预测、ADMET 端点建模)必须外联带活性标签的库(ChEMBL、PubChem BioAssay 等)再以结构为连接键合并。此外,天然产物结构空间高度长尾——大量骨架只有一两个代表分子,直接在整库上做监督学习会遇到极端类别不平衡;先做骨架聚类、再在簇级建任务,通常比行级建模更稳。
§2.3 AI 任务定义
| 任务 | 定义 | 输入-输出 | COCONUT 中的支撑字段 |
|---|---|---|---|
| 去重复(dereplication) | 判断未知样品中的分子是否已知 | 分子式/质量 → 候选结构 | 分子式、单同位素质量(use-case CSV) |
| 虚拟筛选 | 从大集合中挑出可能命中靶点的分子 | 结构 → 排序列表 | 结构 + NPLikeness + SAS + QED 预计算分数 |
| QSAR/性质预测 | 从结构预测理化或活性性质 | SMILES → 属性值 | 结构 + ClassyFire 分类 + 描述符 |
| 分子生成 | 学习天然产物分布并采样新结构 | 噪声/提示 → SMILES | 695,133 个 canonical SMILES |
| 代谢物鉴定 | 为质谱峰匹配候选分子 | 质谱特征 → 候选清单 | 结构 + 来源生物/地域元数据 |
| 来源预测(辅助任务) | 从结构预测其产生生物(反向生源学) | SMILES → 分类群 | organism 本体映射字段 |
§2.4 数据对象构成(替代患者人群)
COCONUT 的"研究对象"是分子而非患者,其"人群画像"如下(官方文档统计,analysis 页):
| 维度 | 数值 | 说明 |
|---|---|---|
| 分子总数 | 695,133 | 2024-09 发布版去重后独特结构 |
| 立体构成 | 89,593 非立体 / 555,897 立体 | 立体分子中 415,768 个为无修饰母结构 |
| 来源生物 | 55,252 个物种级条目 | 映射到本体与分类学 |
| 采样地理位置 | 2,653 个 | 覆盖全球但分布不均 |
| 来源 collection | 63 个 | 保留来源数据库 provenance |
| 文献引用 | 24,272 次 | 化合物层面的文献关联,按 DOI 映射 |
| 发布节奏 | 月度 | 持续吸收新文献报道结构 |
§2.5 临床与转化价值
对转化研究,COCONUT 的价值链是:结构可及 → 筛选加速 → 先导发现。开放结构库让学术团队也能做过去只有大药企才能负担的"全天然产物空间"虚拟筛选;分子式+质量清单直接服务临床样本代谢组学的鉴定环节,缩短从质谱峰到分子身份的时间;来源生物与地理元数据则为"从生态到分子"的逆向查询提供索引——例如在抗药性疟疾研究中按传统药用植物来源优先筛选。此外,它也是生物多样性化学品信息学(biodiversity informatics)与《名古屋议定书》框架下数字序列信息讨论的数据基础设施之一。
§2.6 标注金标准
| 维度 | 金标准 | 标注方式 | 标注者 | 性质 |
|---|---|---|---|---|
| 结构唯一性 | canonical isomeric kekulized SMILES 去重 | 自动(管线生成) | ChEMBL 清洗管线 + RDKit | 硬性、可复现 |
| 化学分类 | ClassyFire superclass/class/subclass | 自动分类 | ClassyFire 算法 | 规则式、可复核 |
| 来源生物/地域 | OLS4 本体术语 + Global Names Finder | 自动映射 | EMBL-EBI 服务 | 术语受控 |
| 文献出处 | DOI 映射(Europe PMC + Crossref) | 自动 + 校准 | 管线 + 策展人 | 可验证 |
| 注释完整度 | annotation score(1-5 星) | 加权算法 | 平台自动 | 软性质量信号 |
| “是否天然产物” | 社区报告 + 策展人复核 | 人工(需提交证据) | 社区 + 官方策展人 | 渐进收敛 |
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐版本 | 大小 | 理由 |
|---|---|---|---|
| 快速原型/教学演示 | CSV lite(2026-06 版) | 191 MB(压缩) | 单文件、pandas 直接读,仅结构字段 |
| 全字段建模或属性分析 | CSV 完整版(2026-06) | 207.9 MB(压缩) | 结构 + 大部分注释字段 |
| 元数据审计、图谱构建 | PostgreSQL 转储(2026-06) | 31.91 GB(压缩) | 唯一包含全部元数据字段与数据模型的形态 |
| 立体敏感任务/3D 任务 | SDF 2D 完整 + 3D SDF | 691.7 MB / 305.3 MB | 3D 坐标由 RDKit 生成,注意未做能量最小化 |
| 复现 2021-2023 年文献结果 | Zenodo 历史版本(v1 数据) | 随版本而定 | v1 为 406,076 结构、无立体母结构模型,与 2.0 编号已做映射 |
| 追踪最新收录 | 官网月度发布 + REST API | 按需 | API 实时返回最新数据 |
§3.1 模态详情
| 模态 | 内容 | 载体 | 建模用途 |
|---|---|---|---|
| 分子结构(核心) | canonical isomeric kekulized SMILES、2D/3D SDF、InChIKey 等标识符 | SDF/CSV/SQL/API | 生成、性质预测、检索 |
| 来源生物元数据 | 物种名(映射本体/分类学)、组织部位 | 全部形态 | 来源预测、分层采样 |
| 地理元数据 | 采样地理位置(2.0 起网页可见) | SQL 转储 + 网页 | 地域分层、勘探优先级 |
| 文献元数据 | DOI 映射引用、名称与同义词、CAS/IUPAC | 全部形态 | 溯源、时间分析 |
| 预计算描述符 | NPLikeness、SAS、QED、分子式/分子量、指纹 | CSV/SQL/API + use-case 文件 | 特征、过滤、排序 |
| 结构分段 | Ertl 官能团、scaffold/scaffold tree(MORTAR 生成) | use-case 文件 | 骨架分析、片段设计 |
COCONUT 的核心模态是分子结构:每个条目以 canonical isomeric kekulized SMILES 为主表示,配套 SDF(2D 与 RDKit 生成的 3D 坐标)与 InChIKey 等标识符。第二模态是生物来源元数据:来源物种(映射到本体/分类学)与组织部位。第三模态是地理与文献元数据:采样地理位置(2.0 起网页可见)与 DOI 映射的文献引用。第四模态是预计算描述符:NPLikeness 分数、合成可及性分数、QED 药物相似性分数、分子量/分子式,以及由 MORTAR 框架生成的 Ertl 官能团与骨架/scaffold tree 分段文件。需要注意,库内没有生物活性模态——活性数据须外联 ChEMBL/PubChem 等库补齐。
§3.2 子集与样本数
| 子集 | 样本数 | 口径说明 |
|---|---|---|
| 独特结构总计 | 695,133 | 2024-09 发布版,去重后 |
| 无手性中心分子 | 82,220 | 结构本身无立体中心 |
| 保留立体化学分子 | 539,350 | 来源提供了完整绝对构型 |
| 有立体中心但绝对构型未定义 | 73,563 | 立体信息不完整,建模时需特殊处理 |
| 非立体/立体(官方文档口径) | 89,593 / 555,897 | 文档 analysis 页口径,与前述按绝对构型统计口径不同 |
| 立体分子中的独特母结构 | 415,768 | 去除立体修饰后的母骨架数 |
| 数据源 collection | 63 个 | 每条记录保留来源归属 |
| 导入流水线原始条目 | 约 1,500,000 | 清洗与去重前 |
两套立体统计口径并存(按绝对构型 vs 按是否含立体元素),源自官方论文与文档分别统计;引用时务必注明口径。
§3.3 数据格式
| 格式 | 内容 | 适用场景 |
|---|---|---|
| SDF 2D(完整/lite) | 全部结构 +(完整版)大部分注释字段 | RDKit/Open Babel 标准入口 |
| SDF 3D | RDKit 生成的三维坐标(未最小化) | 构象相关任务(需自行优化) |
| CSV(完整/lite) | 结构 + 注释字段 | pandas/Excel 快速分析 |
| PostgreSQL 转储 | 全部元数据字段 + 数据模型 | 本地建库、复杂 SQL、元数据审计 |
| REST API(JSON) | 实时查询结构与元数据 | 增量同步、在线应用 |
| use-case CSV | Ertl 官能团、骨架/scaffold tree、NPLikeness/SAS/QED 列表、质谱用分子式+质量 | 分段分析、分子生成过滤、代谢组学 |
| 月度变更日志 | 每次发布的增删改记录(随 Zenodo 发布) | 版本对照、漂移监控 |
| 社区提交 CSV 模板 | 批量提交/更新数据的官方模板 | 数据贡献、机构库同步 |
| Bioschemas 标记 | 化合物页面内嵌语义标记 | 搜索引擎/爬虫的结构化抓取 |
§3.4 存储大小
2026-06 版官方下载包(均为压缩体积):SDF 2D lite 287.6 MB、SDF 2D 完整 691.7 MB、SDF 3D 305.3 MB、CSV lite 191 MB、CSV 完整 207.9 MB、PostgreSQL 转储 31.91 GB。完整解压并建库后建议预留 100 GB 以上磁盘(转储含全部元数据与索引)。历史版本在 Zenodo 归档,体积随年份增长。
§3.5 标注方式
标注分三层:结构层为全自动——ChEMBL 清洗管线校验与标准化(错误码不低于 6 的条目剔除)、RDKit 生成规范 SMILES 并去重;元数据层为自动映射加人工校准——物种经 OLS4/Global Names Finder 映射到本体,引用按 DOI 经 Europe PMC 与 Crossref 核准,IUPAC 名、CAS ID 等随源导入;质量层为算法加社区混合——annotation score 由文献引用、分类学、CAS 号、同义词、名称、数据源数量加权计算(1-5 星),社区可提交数据修正报告(需附证据),策展人审核后生效并留审计轨迹。
§3.6 标注者资质与质量控制
数据清洗由耶拿大学 Steinbeck 实验室团队完成(v1 论文署名 Sorokina、Merseburger、Rajan、Yirik、Steinbeck;2.0 论文署名 Chandrasekhar、Rajan、Kanakam、Sharma、Weißenborn、Schaub、Steinbeck),团队同时维护 DECIMER、ChEMBL 清洗管线相关工具链。社区共治机制要求报告附证据并由平台内/外部策展人内部验证;每条数据的变更历史(谁、改了什么、何时)在化合物详情页可查。
§3.7 采集周期
数据来源是数十年间发表的科学文献与 63 个开放数据库,属"累积型"数据集;平台侧以月度发布滚动更新,每次发布附 Zenodo 归档与变更日志,REST API 提供实时数据。截至 2026-06 官网当前版本为 June 2026 版。
§3.8 地域覆盖
全库关联 2,653 个采样地理位置、55,252 个来源生物。覆盖全球但分布高度不均:研究基础设施雄厚的地区(东亚、欧洲、北美)与热点类群(植物、放线菌、真菌)显著过采样;Frontiers in Pharmacology 2023 综述指出,按全球生物多样性占比衡量,拉丁美洲来源的天然产物在主流数据库中被系统性低估。使用地域字段做流行病学或生物勘探分析时必须校正该偏倚。
§3.9 计算方法学规格
| 工具/服务 | 用途 | 在库内产出 |
|---|---|---|
| ChEMBL Structure Curation Pipeline | 结构校验与标准化(错误码 ≥6 剔除) | 有效结构集 |
| RDKit | 规范 SMILES 生成、去重、3D 坐标、描述符 | canonical SMILES、3D SDF、NPLikeness/SAS/QED |
| CDK | 补充描述符与指纹计算 | 分子属性字段 |
| ClassyFire | 化学分类 | superclass/class/subclass |
| Ertl 官能团算法(经 MORTAR) | 官能团识别 | Fragments_Ertl_algorithm.csv |
| Scaffold Generator + Scaffold Tree(经 MORTAR) | 骨架与骨架树 | Fragments/Items_Scaffold 系列 CSV |
| EMBL-EBI OLS4 + Global Names Finder | 物种本体映射 | organism 术语字段 |
| Europe PMC + Crossref | 引用元数据校准 | DOI 关联 |
COCONUT 无仪器测量字段,“方法学规格"由软件栈代替:结构清洗用 ChEMBL Structure Curation Pipeline(2.0 以 RDKit 后处理替代 v1 的 CDK);描述符与指纹由 CDK 与 RDKit 计算;NPLikeness 分数为 RDKit 实现(Ertl 定义);分段文件由 MORTAR(MOlecule fRagmenTAtion fRamework)生成,含 Ertl 官能团算法与 scaffold tree 算法。3D 坐标由 RDKit 生成并明确标注"坐标未最小化”。
§3.10 深度溯源链
完整溯源链为:分子条目(CNP ID)→ 来源 collection(63 个之一)→ 原始数据库 → 文献 DOI(Europe PMC/Crossref 校准)→ 审计轨迹(每次变更的操作者、内容、时间)。2.0 还将源 collection 的在线链接挂到条目上,社区报告的"这不是天然产物"类修正同样留痕。对 AI 工程而言,这条链意味着你可以按来源数据库切分数据做"来源留出"(source holdout)实验。
以一个条目为例的溯源读法:
CNP0606256.0
└── 来源 collection:例如某文献衍生的子库(在线链接可达)
└── 原始文献:DOI 映射(Europe PMC/Crossref 校准)
└── 修正历史:化合物详情页"变更历史"(谁/改了什么/何时)
要点有三:其一,来源 collection 字段保留了原始库归属,跨库重复因此可识别;其二,DOI 关联让"这条数据最早由哪篇文献报道"可以被点验;其三,审计轨迹让社区修正可回滚、可审计——这是大多数开放化学库没有的能力。
§4 数据结构
§4.0 目录树
官方以独立文件分发,建议下载后汇总到统一 data_root。下图为推荐组织方式:
coconut/
├── coconut_sdf_2d-06-2026.zip # 完整 2D SDF(结构 + 大部分注释)
├── coconut_sdf_2d_lite-06-2026.zip # 精简 2D SDF(仅结构)
├── coconut_sdf_3d-06-2026.zip # 3D SDF(RDKit 生成,坐标未最小化)
├── coconut_csv-06-2026.zip # 完整 CSV(结构 + 注释)
├── coconut_csv_lite-06-2026.zip # 精简 CSV(仅结构)
├── coconut-dump-06-2026.sql # PostgreSQL 转储(全字段)
├── use_cases/ # 官网 use-case 分发文件
│ ├── Fragments_Ertl_algorithm.csv # Ertl 官能团及频率
│ ├── Items_Ertl_algorithm.csv # 分子-官能团映射
│ ├── Fragments_Scaffold_Generator.csv # 骨架及频率
│ ├── Items_Scaffold_Generator.csv # 分子-骨架映射
│ ├── Fragments_Scaffold_Generator_Scafold_tree.csv
│ └── np_scores/ # NPLikeness + SAS + QED 列表
└── zenodo/
└── 10.5281-zenodo.13692394/ # 历史版本归档(v1 数据等)
§4.1 DAIMS 字段字典
下表为完整 CSV/SDF 注释字段的 DAIMS 八列字典(字段名以官方数据模型为准,CSV 版本间可能有微调,以 release 变更日志为准):
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| identifier(CNP ID) | 文本 | 平台唯一标识,CNP 前缀 + 7 位数字;立体变体共享主 ID 加后缀 | CNP0606256.0 | 主键、分组划分 | 极低(平台管理) | 无缺失 | 全库唯一 |
| canonical_smiles | 文本 | canonical isomeric kekulized SMILES,唯一性判定依据 | Cn1cnc2n©c(=O)n©c(=O)c12 | 模型输入、去重 | 来源标注错误可残留 | 无缺失(清洗后) | 有效 SMILES |
| name / synonyms | 文本 | 化合物名与同义词 | caffeine | 文本检索、别名对齐 | 同义词来源不一 | 空值 = 无名称记录 | 0 到多条 |
| organism_name | 文本 | 来源生物(映射到本体/分类学) | Coffea arabica | 来源预测、子集筛选 | 物种鉴定依赖原始文献 | 空值 = 文献未报来源 | 55,252 个条目 |
| sample_location | 文本 | 采样地理位置(2.0 起网页可见) | 国家/区域级地名 | 地理分层、勘探优先级 | 精度随文献而异 | 空值 = 未采集或未报道 | 2,653 个地点 |
| citation_doi | 文本 | 文献引用(Europe PMC/Crossref 校准) | 10.1016/xxx | 溯源、时间分析 | DOI 缺失的旧文献多 | 空值 = 无 DOI 关联 | 0 到多条 |
| superclass / class | 文本 | ClassyFire 化学分类 | Lipids and lipid-like molecules | 分层标签、罕见类分组 | 规则式分类有误判 | 空值 = 分类未生成 | ClassyFire 词表 |
| np_likeness_score | 浮点 | RDKit 版 NPLikeness 分数 | -1.09(咖啡因) | 天然产物相似性过滤、生成评估 | 算法分数非生物事实 | 无缺失(预计算) | 主峰位于 -2 至 0、0 至 1 与 2 附近 |
| sas_score | 浮点 | 合成可及性分数(RDKit) | 数值越小越易合成 | 筛选排序 | 算法分数 | 无缺失 | 1(易)到 10(难) |
| qed_score | 浮点 | QED 药物相似性分数(RDKit) | 0-1 区间 | 类药过滤 | 算法分数 | 无缺失 | 0 到 1 |
| annotation_score | 整数 | 注释完整度星级 | 3 | 数据质量分层 | 加权算法口径 | 无缺失 | 1-5 |
| molecular_formula / weight | 文本/浮点 | 分子式与分子量 | C8H10N4O2 / 194.19 | dereplication、质量窗口 | 计算值准确 | 无缺失 | 按分子而异 |
§4.2 标签分布
立体标签分布(2024-09 发布版,NAR 论文):
| 立体标签 | 分子数 | 占比 | 建模含义 |
|---|---|---|---|
| 无手性中心 | 82,220 | 约 11.8% | 无立体学习信号 |
| 完整立体构型 | 539,350 | 约 77.6% | 可训练立体敏感任务 |
| 立体中心存在但绝对构型未定义 | 73,563 | 约 10.6% | 立体敏感任务需分层或后处理 |
| 合计 | 695,133 | 100% | — |
ClassyFire superclass 分布:分布头部集中于脂类与类脂分子等少数大类——以 2021 年 v1 版(406,076 结构)为例,Lipids and lipid-like molecules 超类含 99,696 个分子,其中萜类 9 个子类合计 59,833 个(三萜 13,245、二萜 11,814 等);2.0 版结构数近乎翻倍,超类排序整体格局类似但数值需按当月版自查。
注释质量分布:annotation score 1-5 星的直方图由官方论文补充材料给出;NPLikeness 分数呈多峰分布(峰位于 -2 至 0、0 至 1 与 2 附近),提示库内天然产物与合成化合物共存。
§4.3 关键统计
| 统计项 | 数值 | 口径 |
|---|---|---|
| 独特结构 | 695,133 | 2024-09 发布版(NAR 论文) |
| 原始导入条目 | 约 1,500,000 | 清洗前 |
| 标准化后分子 | 1,022,536 | 去重前 |
| 数据源 | 63 个 | v1 为 53 个 |
| 来源生物 | 55,252 个条目 | 文档 analysis 页 |
| 采样地理位置 | 2,653 个 | 文档 analysis 页 |
| 化合物文献关联 | 24,272 次 | 文档 analysis 页 |
| collection | 63 个 | 来源库归属 |
| 标识符连续性 | v1 CNP 编号全部映射保留 | 跨版本可追踪 |
- 清洗漏斗:约 1,500,000 条导入 → 剔除失败条目、合成化合物(含氟化物、磺酰胺、药物衍生物)与多组分条目后 1,022,536 → 立体归并去重后 695,133。
- 具体剔除记录:多氟化合物 64 个、无法解析结构 113 个(文档 analysis 页)。
§4.4 数据层级
分子实体(母结构 CNP ID)
├── 立体异构体变体(同主 ID + 唯一后缀)
│ └── 结构表示(canonical SMILES / 2D SDF / 3D SDF)
├── 元数据
│ ├── 来源 collection(63 个之一)→ 原始数据库
│ ├── 来源生物 + 组织部位 → 本体/分类学条目
│ ├── 采样地理位置
│ └── 文献引用(DOI)
└── 计算属性(ClassyFire 分类、NPLikeness、SAS、QED、描述符、指纹、审计轨迹)
§4.5 缺失值与信息性缺失
| 字段 | 缺失形态 | 是否信息性缺失 | 处理建议 |
|---|---|---|---|
| organism_name | CSV 空值 | 是——缺失与文献年代、来源库政策相关,老文献与部分聚合库不提供 | 显式转为 pd.NA 并加 missing indicator,勿删除整行 |
| sample_location | CSV 空值 | 是——地理信息仅部分报道 | 分析地理分布时报告缺失比例 |
| citation_doi | CSV 空值 | 是——早期文献无 DOI | 以名称+CAS 备用检索 |
| 立体构型 | 73,563 条构型未定义 | 是——来源实验未能定构型 ≠ 无立体 | 立体敏感任务单独分层 |
| ClassyFire 分类 | 部分条目未生成 | 否——算法覆盖不全 | 用 RDKit 分子特征补位 |
缺失值处理的落地代码:
import pandas as pd
def audit_missingness(df: pd.DataFrame) -> pd.DataFrame:
"""对 COCONUT 完整 CSV 做缺失审计:缺失率 + 是否纳入 missing indicator。"""
meta_cols = ["organism_name", "sample_location", "citation_doi", "superclass"]
report = df[meta_cols].isna().mean().rename("missing_rate").to_frame()
report["make_indicator"] = report["missing_rate"] < 0.95
for col in report.index[report["make_indicator"]]:
df[f"{col}_missing"] = df[col].isna().astype(int) # 信息性缺失编码
return report
report = audit_missingness(corpus)
print(report.sort_values("missing_rate", ascending=False))
§5 数据划分与使用建议
§5.1 官方划分
COCONUT 不提供官方训练/验证/测试划分——它是参考型结构库而非基准数据集。官方提供的"划分"只有结构性切面:
| 官方切面 | 维度 | 典型用法 |
|---|---|---|
| collection | 63 个来源库 | 来源留出实验 |
| ClassyFire 分类 | superclass/class/subclass | 分类任务子集 |
| 来源生物 | 55,252 个物种条目 | 物种子集、suspect list |
| 地理位置采样 | 2,653 个地点 | 地域分层 |
| use-case 文件 | 官能团/骨架/分数 | 任务化标签源 |
§5.2 社区惯例划分
已发表工作采用随机划分:
| 工作 | 数据快照 | 划分比例 | 特殊处理 |
|---|---|---|---|
| Tay 等 2023(67M 生成库) | 2022-08 访问,406,919 结构,去立体 | 72%/8%/20%(292,981/32,554/81,384) | 训练+验证集做 10 倍非规范 SMILES 增强 |
| Reymond 组 NPstereo | 2024-09 转储,63,971 独特结构 | 80/10/10 随机 | SMILES 随机化增强(2/5/10/20 倍) |
两者的共同点:都先过滤无效 SMILES 再划分;差异点:Tay 等主动去立体以降低复杂度,NPstereo 则以立体赋值为任务本身。复现任一结果时务必锁定其数据快照月份,否则结构总数对不上。
§5.3 划分策略建议与泄漏风险
随机划分对 COCONUT 是危险默认值,原因有三:其一,同一分子的立体异构体共享主 ID,随机打散会让近似孪生分子跨集泄漏;其二,天然产物家族内类似物密集(同一植物的糖苷修饰系列等),骨架级泄漏会让评估虚高;其三,多源重复若未按 canonical SMILES 归并,同一结构会同时出现在训练与测试侧。建议优先级:按 CNP 主 ID 分组(最低要求)→ Bemis-Murcko 骨架分组 → 骨架聚类留出;做泛化声明时追加"来源 collection 留出"。
骨架分组划分的可运行实现:
import numpy as np
from sklearn.model_selection import GroupShuffleSplit
def scaffold_split(corpus, test_frac=0.2, seed=42):
"""按 Murcko 骨架分组划分;骨架列来自 §6.3 的 murcko 字段。"""
groups = corpus["murcko"].fillna(corpus["rdkit_canonical"]).values
gss = GroupShuffleSplit(n_splits=1, test_size=test_frac, random_state=seed)
train_idx, test_idx = next(gss.split(corpus, groups=groups))
train = corpus.iloc[train_idx].reset_index(drop=True)
test = corpus.iloc[test_idx].reset_index(drop=True)
overlap = set(train["murcko"]) & set(test["murcko"])
assert len(overlap) == 0, "骨架跨集,检查 groups 列"
return train, test
train_df, test_df = scaffold_split(corpus)
print(len(train_df), len(test_df))
§5.4 交叉验证与外部验证
- 交叉验证:在骨架分组内做 5 折 GroupKFold;报道均值±标准差而非单折结果。
- 外部验证:以 ChEMBL 或 PubChem 天然产物子集做结构匹配后的活性外推测试;生成模型用"novelty + NP-likeness 分布对齐"双指标(参见 §6.9)。
- 时间外推:按文献年份切分可模拟"未来化合物"场景,检验模型对全新骨架的召回。
§6 AI 就绪指南
§6.0 快速启动
环境极简:Python 3.10+ 与 RDKit 即可,无需 GPU 也可完成 §6.1-§6.3。
# 建议 conda 环境(RDKit 官方渠道安装最稳)
conda create -n coconut python=3.11 -y
conda activate coconut
conda install -c conda-forge rdkit pandas numpy -y
pip install torch --index-url https://download.pytorch.org/whl/cpu # 仅 CPU 版即可起步
§6.1 快速上手
目录结构预期:假设你按 §4.0 把 2026-06 版完整 CSV 解压到 data_root 下,文件名为 coconut_csv-06-2026/coconut_csv_all-06-2026.csv 形态(解压后实际文件名以包内为准)。data_root 拼接关系:data_root / 子目录 / 文件名。最小可用子集:先用 CSV lite(191 MB,仅结构字段)打通全流程,再升级完整版。
import pandas as pd
from pathlib import Path
# data_root = 解压根目录;minimal = 最小子集开关(lite 文件体积约为完整版的 1/10)
DATA_ROOT = Path("coconut")
csv_path = DATA_ROOT / "coconut_csv-06-2026" / "coconut_csv_all-06-2026.csv"
df = pd.read_csv(csv_path, low_memory=False)
print(df.shape) # 行数应接近 695,133(随月度版本增长)
print(df.columns.tolist()) # 列名以当月 release 变更日志为准
# 10 行冒烟测试:解析全部 SMILES,验证 RDKit 可读性
from rdkit import Chem
sample = df["canonical_smiles"].head(10) # 列名以包内表头为准
valid = [Chem.MolFromSmiles(s) is not None for s in sample]
print(f"10 条样例中有效 SMILES:{sum(valid)}")
§6.2 数据获取
获取渠道与规格(截至 2026-09):
| 渠道 | 内容 | 大小 | 要求 |
|---|---|---|---|
| 官网下载页 | SDF 2D lite/完整、3D SDF、CSV lite/完整、SQL 转储、use-case 文件 | 191 MB 至 31.91 GB | 无需注册,直接下载 |
| Zenodo 归档 | 全部历史月度版本 + 变更日志 | 随版本而定 | 无需注册 |
| REST API | 实时结构/元数据查询(API 文档) | 按需 | 无需密钥 |
| GitHub | 平台源码(Steinbeck-Lab/coconut) | 代码仓库 | 开源 |
# 命令行获取:Zenodo 概念 DOI 会解析到最新版本记录页
# 1) 浏览器打开 https://doi.org/10.5281/zenodo.13692394 选择所需月度版本的文件
# 2) 或直接使用官网下载页链接(下载 URL 由页面动态生成,务必从官方页面复制)
curl -L -o coconut_csv_lite.zip "<官网下载页对应文件的直链>"
curl -L -o coconut_sdf_2d.zip "<官网下载页对应文件的直链>"
unzip coconut_csv_lite.zip -d coconut/
申请流程:无。CC0 许可、无需注册、无需签署任何协议;唯一义务是"没有",但学术惯例建议引用 v1 与 2.0 论文(见 §9)。
REST API 冒烟示例(端点以官方 API 文档为准):
import requests
BASE = "https://coconut.naturalproducts.net"
# 官方提供的 Bioschemas 示例条目(CNP0606256.0),可直接验证 API/语义标记连通性
schema_url = f"{BASE}/api/schemas/bioschemas/CNP0606256.0"
resp = requests.get(schema_url, timeout=30)
print(resp.status_code) # 200 即连通
print(resp.json().get("@type")) # 语义标记类型
# 其余查询类端点(结构/子结构/相似性检索)请查阅:
# https://coconut.naturalproducts.net/api-documentation
§6.3 预处理全流程
下面是从 CSV 到可训练数据集的完整可运行流程:格式转换 → 清洗 → 标准化 → 分子级去重。
import pandas as pd
from rdkit import Chem
from rdkit.Chem import Descriptors
from rdkit.Chem.Scaffolds import MurckoScaffold
def build_corpus(csv_path: str) -> pd.DataFrame:
df = pd.read_csv(csv_path, low_memory=False)
smiles_col = "canonical_smiles" # 列名以包内表头为准
# 1) 清洗:RDKit sanitize 解析,剔除无效结构
mols, keep = [], []
for i, smi in enumerate(df[smiles_col].astype(str)):
mol = Chem.MolFromSmiles(smi) # 默认 sanitize=True
if mol is not None:
mols.append(mol)
keep.append(i)
df = df.iloc[keep].reset_index(drop=True)
# 2) 标准化:转 canonical SMILES + InChIKey 双重去重(防御历史版本残留重复)
df["rdkit_canonical"] = [Chem.MolToSmiles(m) for m in mols]
df["inchikey"] = [Chem.MolToInchiKey(m) for m in mols]
df = df.drop_duplicates(subset="inchikey").reset_index(drop=True)
# 3) 补充建模特征:Murcko 骨架(划分用)+ 分子量
df["murcko"] = [
MurckoScaffold.MurckoScaffoldSmiles(mol=m, includeChirality=False)
for m in mols
]
df["mw"] = [Descriptors.MolWt(m) for m in mols]
return df
corpus = build_corpus("coconut/coconut_csv-06-2026/coconut_csv_all-06-2026.csv")
print(corpus.shape) # 剔除无效与重复后的语料规模
corpus.to_parquet("coconut_corpus.parquet")
§6.4 PyTorch DataLoader
任务一:SMILES 语言模型预训练(字符级 tokenizer,适合 LSTM/Transformer 生成预训练)。
import torch
from torch.utils.data import Dataset, DataLoader
class SmilesmDataset(Dataset):
"""字符级 SMILES 自回归数据集。
预期输入:parquet 语料(见 §6.3),canonical_smiles 列。
"""
def __init__(self, df, vocab=None, max_len=142):
self.seqs = df["rdkit_canonical"].tolist()
self.max_len = max_len
chars = sorted({c for s in self.seqs for c in s}) + ["<pad>", "<bos>", "<eos>"]
self.vocab = vocab or {c: i for i, c in enumerate(chars)}
def __len__(self):
return len(self.seqs)
def __getitem__(self, idx):
ids = [self.vocab["<bos>"]] + [
self.vocab[c] for c in self.seqs[idx][: self.max_len]
] + [self.vocab["<eos>"]]
return torch.tensor(ids, dtype=torch.long)
def collate(batch, pad_id):
maxlen = max(len(x) for x in batch)
padded = torch.full((len(batch), maxlen), pad_id, dtype=torch.long)
for i, x in enumerate(batch):
padded[i, : len(x)] = x
return padded
ds = SmilesmDataset(corpus)
loader = DataLoader(ds, batch_size=128, shuffle=True, collate_fn=lambda b: collate(b, ds.vocab["<pad>"]))
for tokens in loader: # 训练循环占位:next-token 预测
break
任务二:NP-likeness 回归(把官方 use-case 分数文件与主表合并后做分子性质回归)。
class NpScoreDataset(Dataset):
"""回归 NP-likeness 分数。
预期输入:corpus(含 rdkit_canonical)+ 官网 use-case 分数表按 SMILES 对齐合并。
"""
def __init__(self, df, fps):
self.labels = torch.tensor(df["np_score"].values, dtype=torch.float32)
self.fps = torch.tensor(fps, dtype=torch.float32)
def __len__(self):
return len(self.labels)
def __getitem__(self, idx):
return self.fps[idx], self.labels[idx]
# 指纹特征示例:MACCS keys(167 bit)
from rdkit.Chem import MACCSkeys
fps = [MACCSkeys.GenMACCSKeys(Chem.MolFromSmiles(s)) for s in corpus["rdkit_canonical"]]
fps = [[int(b) for b in fp.ToBitString()] for fp in fps]
loader2 = DataLoader(
NpScoreDataset(corpus, fps), batch_size=256, shuffle=True, num_workers=2
)
§6.5 坑点清单(8 个真实失败模式)
⚠️ 坑点 1:立体异构体与母结构跨集泄漏(分类:数据泄漏)
问题:COCONUT 把同一分子的立体变体归入同一 CNP 主 ID(加后缀区分),且 73,563 个结构立体中心存在但绝对构型未定义。若按行随机划分,同一分子的完整/未定构型版本会分别落入训练与测试集,模型"背答案"导致指标虚高。
症状:验证集分数很高,但对新文献报道结构的泛化很差;同骨架类似物在训练与测试集间大量成对出现。
解决:
- 简单方法:按 CNP 主 ID(去掉立体后缀)做 GroupShuffleSplit,保证一个分子实体只出现在一侧。
- 进阶方法:按 Bemis-Murcko 骨架(§6.3 已计算
murcko列)分组划分,杜绝骨架级泄漏。- SOTA 方法:Murcko 骨架做 Butina 聚类后按簇留出,再加"来源 collection 留出"做双重压力测试。
参考:COCONUT 2.0 论文的标识符与立体统计;Tay 等 Scientific Data 2023 的去立体训练取舍。
⚠️ 坑点 2:把 NPLikeness 分数当天然产物过滤器(分类:标签理解)
问题:库内残留合成化合物(跨库循环导入所致),官方论文明确 NPLikeness 分布呈多峰且有大量负分——咖啡因的 NPLikeness 分数就是 -1.09。用"分数大于 0 才算天然产物"会把真天然产物误删、留下部分合成物。
症状:按阈值过滤后,生成模型输出的"天然产物"与真实 NP 分布在子结构频率上系统性偏离;被删样本中出现经典 NP(如生物碱类)。
解决:
- 简单方法:不设单阈值,改用 NPLikeness + SAS + 来源 collection 三信号联合过滤。
- 进阶方法:以官方已撤销条目(论文补充材料 3)为负样本训练轻量分类器。
- SOTA 方法:对存疑条目走官方社区报告通道,用平台策展人的裁定结果迭代清洗集。
参考:COCONUT 2.0 论文图 3 与补充材料;官网下载页的 NPLikeness/SAS/QED 文件。
⚠️ 坑点 3:多源重复与历史版本残留重复行(分类:预处理陷阱)
问题:63 个来源库之间存在循环导入,同一结构以不同条目重复出现;官方已在 2.0 按 canonical isomeric SMILES 归并,但使用旧版本 CSV 或自建子集时仍可能遇到重复,导致评估集被"背题"。
症状:分子总数对不上官方口径;测试集中出现与训练集 InChIKey 相同的行;生成模型 novelty 统计偏低。
解决:
- 简单方法:pandas 对 canonical_smiles 列 drop_duplicates。
- 进阶方法:RDKit 生成 InChIKey 双重去重(见 §6.3),立体层与连接层分开处理。
- SOTA 方法:采用 chembl_structure_pipeline 的 standardize 后再取 parent 结构去重,与官方口径对齐。
参考:COCONUT 2.0 论文"circular imports"讨论;Tay 等 2023 流水线剔除 22% 重复的记录。
⚠️ 坑点 4:3D SDF 坐标未能量最小化(分类:工程陷阱)
问题:官方 3D SDF 由 RDKit 生成并明确标注"坐标未最小化"。直接用于对接打分或分子动力学,会得到系统性失真的能量与构象分布。
症状:对接分数整体异常偏高/偏低且方差巨大;MD 起始结构能量爆炸;不同分子间构象能量不可比。
解决:
- 简单方法:读入后跑 RDKit UFF/MMFF 力场最小化再使用。
- 进阶方法:ETKDGv3 重新嵌入 + MMFF94 优化 + RMSD 剪枝生成多构象集。
- SOTA 方法:对筛选命中分子用更高级的构象系综方法(如 CREST 类流程)复核。
参考:官网下载页的 3D SDF 注记。
⚠️ 坑点 5:kekulized SMILES 与芳香化表示不一致(分类:预处理陷阱)
问题:官方存储 canonical isomeric kekulized SMILES,而很多教程代码默认输出/比对芳香化 SMILES。两种表示下同一分子字符串不同,跨库匹配与指纹比对会出现假阴性。
症状:与 PubChem/ChEMBL 数据按字符串精确匹配时命中率异常低;自写 tokenizer 时 KEKULIZE 报错或断键。
解决:
- 简单方法:所有分子先经
Chem.MolFromSmiles(sanitize=True)规范化,再统一转目标表示,禁止字符串级直接比对。- 进阶方法:以 InChIKey 为跨库连接键,SMILES 只作展示。
- SOTA 方法:整条流水线接入 chembl_structure_pipeline 标准化,与 COCONUT 官方清洗口径一致。
参考:COCONUT 2.0 论文关于 canonical isomeric kekulized SMILES 的定义。
⚠️ 坑点 6:元数据缺失不是随机的(分类:偏倚陷阱)
问题:来源生物、地理、DOI 等字段的缺失与文献年代和来源库政策强相关——官方正是靠 annotation score(1-5 星)量化注释完整度差异。把"缺失"当"无来源"或直接删行,会引入系统性偏倚。
症状:按物种/地域分层时高星条目被过度代表(植物与热点地域);缺失比例不同的两个子集指标不可比。
解决:
- 简单方法:空值显式转 pd.NA 并统计每列缺失率,随结果一起报告。
- 进阶方法:按 annotation score 分层做敏感性分析,检验结论是否只在高质量子集成立。
- SOTA 方法:建模时引入 missing indicator 特征;对描述性统计用逆概率加权校正注释强度差异。
参考:COCONUT 2.0 论文annotation score 定义;官方文档 analysis 页统计口径。
⚠️ 坑点 7:月度发布与 v1→v2 的版本漂移(分类:工程陷阱)
问题:平台月度滚动发布,2.0 相对 v1 更换了数据模型(无立体母结构 → 立体感知)与字段组织,条目可被社区修正甚至撤销。用"浮动最新版"跑实验,两周后结果就不可复现。
症状:同一脚本两次运行行数不同;老论文复现时按新编号找不到旧条目对应字段;下游特征分布悄悄变化。
解决:
- 简单方法:固定到具体月度版本文件名(如 06-2026)并记录 Zenodo 版本号。
- 进阶方法:用 DVC/数据校验断言(列集合、行数容差)把 release 校验写进 CI。
- SOTA 方法:通过 REST API 做增量同步,配合审计轨迹字段追踪条目级变更。
参考:COCONUT 2.0 论文"Monthly data releases"与数据可用性章节;Zenodo 归档变更日志。
⚠️ 坑点 8:SMILES 增强破坏立体信息(分类:数据增强)
问题:常用 SMILES 随机化增强在实现不当时会丢掉 @/@@ 与 E/Z 标记;而去立体增强(Tay 等为降低复杂度主动去掉了立体)会改变任务分布——对立体敏感的下游任务(如立体赋值、立体选择性活性预测)是错误先验。
症状:生成模型 validity 高但立体正确率低;增强后模型在含手性标签的测试集上性能骤降。
解决:
- 简单方法:用
Chem.MolToSmiles(mol, doRandom=True)从同一 mol 对象做随机 SMILES,天然保留立体。- 进阶方法:SELFIES 表示做无损增广,保证语法有效性。
- SOTA 方法:参考 NPstereo 的做法——以无立体 SMILES 为输入、有立体 SMILES 为输出专门训练立体赋值模型,而非在增强里偷懒去立体。
参考:Tay 等 2023去立体决策;Reymond 组 NPstereo 立体赋值方案。
§6.6 数据增强
| 增强方式 | 安全性 | 说明 |
|---|---|---|
| 非规范随机 SMILES 枚举(保留立体) | ✅ 安全 | 生成模型的标准增强,Tay 等采用 10 倍枚举 |
| SELFIES 重编码 | ✅ 安全 | 语法无损,适合保真生成 |
| 盐/溶剂剥离(取 parent 结构) | ✅ 安全 | 与 ChEMBL 管线口径一致 |
| 分子式+质量加噪 | ⚠️ 有条件 | 仅用于 dereplication 鲁棒性实验,勿入训练标签 |
| 去立体化 | ❌ 危险 | 改变任务分布,立体敏感任务禁用 |
| 官能团随机替换(scaffold hopping 式) | ❌ 危险 | 会生成不存在的"伪天然产物",污染评估 |
§6.7 模型推荐
| 模型 | 任务 | 输入 | 起步理由 |
|---|---|---|---|
| 字符级 LSTM | 生成预训练 | SMILES | Tay 等 2023 验证有效,单卡可跑 |
| Transformer 解码器 | 生成预训练 | SMILES/SELFIES | 长糖苷链建模更稳 |
| MPNN/D-MPNN | 性质/分类预测 | 分子图 | 直接吃 SDF/SMILES 图结构 |
| 化学 LLM(MolBERT/ChemBERTa 类) | 微调 | SMILES | 可先用 COCONUT 领域续预训练 |
| 自编码器(VAE/流模型) | 化学空间探索 | 描述符/SMILES | latent 空间插值找类似物 |
| 质谱匹配模型 | dereplication | 分子式/质量 | 直接用官方分子式+质量 CSV |
§6.8 硬件需求
| 阶段 | 数据形态 | 显存/内存 | 建议 |
|---|---|---|---|
| CSV 读取与清洗 | 完整 CSV(约 70 万行) | 16 GB RAM | low_memory=False 分块或转 parquet |
| 描述符批量计算 | 全库指纹 | 16 GB RAM + 多核 CPU | RDKit 并行池 |
| LSTM 生成预训练 | 语料约 70 万 SMILES | 8 GB 显存 | batch 128、单卡数小时-数天 |
| Transformer 预训练 | 同上 | 24 GB 显存 | 混合精度 |
| SQL 转储建库 | 31.91 GB 转储 | 100 GB 磁盘 + 16 GB RAM | PostgreSQL 本地实例 |
§6.9 评估指标代码
生成任务的标准三指标(validity/uniqueness/novelty),可直接复用:
def generative_metrics(generated, train_set):
"""generated: 模型输出 SMILES 列表;train_set: 训练集 canonical SMILES 集合。"""
from rdkit import Chem
mols = [Chem.MolFromSmiles(s) for s in generated]
valid = [m for m in mols if m is not None]
canon = {Chem.MolToSmiles(m) for m in valid}
uniqueness = len(canon) / max(len(valid), 1)
novelty = len(canon - train_set) / max(len(canon), 1)
return {
"validity": len(valid) / max(len(generated), 1),
"uniqueness": uniqueness,
"novelty": novelty,
}
判别任务用 ROC-AUC/PR-AUC + 骨架分组 CV;回归任务用 RMSE/MAE,均须按 §5.3 的分组划分执行。
from sklearn.metrics import roc_auc_score, average_precision_score
def discriminative_metrics(y_true, y_score):
"""二分类任务指标:ROC-AUC 与 PR-AUC(类别不平衡时后者更敏感)。"""
return {
"roc_auc": roc_auc_score(y_true, y_score),
"pr_auc": average_precision_score(y_true, y_score),
}
# 用法示例:以"是否属于脂类超类"为标签的骨架分组评估
# y_true 与 y_score 需来自 §5.3 的 scaffold_split 之外 held-out 折
§6.10 MLOps 笔记
- 数据版本化:把"月度版本号 + Zenodo DOI"写进实验配置;DVC 或 MLflow dataset 追踪二选一。
- 校验断言:入库前断言列集合、行数容差(±2%)、SMILES 有效率;任一失败即阻断训练。
- 来源留痕:训练数据快照保留 collection 字段,模型卡中声明训练来源构成。
- 增量更新:以 REST API 监听月度差异,新条目走"先评估后入库"流程,避免静默漂移。
- 可复现性:RDKit/ChEMBL pipeline 版本号写入 requirements 与模型卡;kekulize 行为随版本可能变化。
§7 质量评估与局限性
§7.1 已知偏倚
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 文献与类群偏倚 | 植物、微生物来源结构被大量报道与收录,其他类群稀疏 | 中 | 按 ClassyFire/类群分层报告结果 |
| 地理偏倚 | 2,653 个地点分布不均,拉丁美洲等生物多样性热点被低估 | 中 | 地域分析显式校正,引用区域库补充 |
| 合成物残留 | 跨库循环导入使误分类合成物进入库内 | 中 | 多信号过滤 + 社区报告通道 |
| 注释密度偏倚 | annotation score 跨 collection 差异大,高星条目集中于热点 | 中 | 按 annotation score 分层敏感性分析 |
| 立体信息缺口 | 73,563 个结构绝对构型未定义 | 中 | 立体敏感任务单独分层 |
| 正向发表偏倚 | 只收录文献报道结构,未检出/未发表空间不可见 | 低-中 | 生成模型外推时明示"文献分布内" |
§7.2 标注质量
结构准确性由 ChEMBL 清洗管线把关(错误码不低于 6 剔除),但元数据准确性取决于原始文献与来源库——2.0 论文坦承"从多个源库汇聚的数据必然包含错误信息",并以社区报告、审计轨迹作为纠错机制。化学分类(ClassyFire)是规则式算法,对天然产物这一"规则破坏者"群体存在系统性误判案例(如番红花苷类按规则被归入无环二萜)。因此:结构标签可信度高,分类与来源标签应视为"最强可用近似"而非金标准。
各类标注的质量信号一览:
| 标注类型 | 生成机制 | 质量信号 | 剩余风险 |
|---|---|---|---|
| 结构有效性 | ChEMBL 管线自动校验 | 错误码阈值、月度重跑 | 极少数边缘价键案例 |
| 结构唯一性 | canonical SMILES 自动去重 | 官方漏斗数字可核 | 旧版本自建子集需自查 |
| 化学分类 | ClassyFire 规则分类 | 算法可复核 | 规则式误判(如糖苷类) |
| 来源生物/地域 | OLS4/Global Names Finder 映射 | 本体术语受控 | 依赖原始文献质量 |
| 文献关联 | Europe PMC/Crossref DOI 校准 | DOI 可点验 | 早期文献无 DOI |
| 天然产物属性 | 社区报告 + 策展人裁定 | 审计轨迹留痕 | 渐进收敛、非一次性 |
§7.3 泛化性
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 生成模型直接采样 | 输出偏向文献已报道骨架,novelty 虚高 | Tay 等 2023:1 亿采样经去重后剩 67,064,204 |
| 跨库活性迁移 | COCONUT 无活性标签,直接迁移 QSAR 会失败 | 字段字典不含活性列 |
| 立体敏感预测 | 10% 以上条目构型未定义,预测置信度下降 | 73,563 条未定构型 |
| 区域性药物发现 | 地理偏倚使欠采样区域的"覆盖率幻觉" | Frontiers 2023 拉美低估分析 |
| 3D 对接 | 未最小化坐标导致打分失真 | 官方下载页注记 |
§7.4 伦理
天然产物数据的获取关联生物多样性与惠益分享议题:分子结构对应的具体采样事件可能受《名古屋议定书》与来源国获取与惠益分享(ABS)法规约束。COCONUT 以 CC0 发布结构信息本身,但使用者做下游商业化开发时,仍须自行评估相关来源国 ABS 义务与专利状态。社区共治机制(报告需证据、变更留痕)是数据治理层面的正面实践。
§7.5 公平性
库内物种与地域分布反映全球科研资源的不均衡:研究密集地区的类群过采样,拉美生物多样性对应的天然产物被系统性低估。用 COCONUT 训练"全球天然产物化学空间"模型时,实际上学到的是"文献密集地区"的空间——在生物勘探优先级、生物多样性货币化评估等应用中应明确声明该边界。
§7.6 数据漂移
月度发布意味着条目增删与修正持续发生:新文献结构加入、误报合成物被撤销、社区修正改变元数据。v1→v2 的数据模型切换是一次"大漂移"(无立体母结构 → 立体感知,编号映射保留)。工程上应把漂移管理当作常态:固定版本做研究、增量同步做产品、审计轨迹做回溯。
| 漂移类型 | 触发机制 | 频率 | 应对 |
|---|---|---|---|
| 增量漂移 | 新文献结构入库 | 月度 | 断言行数容差 |
| 修正漂移 | 社区报告被裁定通过 | 不定期 | 依赖审计轨迹回溯 |
| 撤销漂移 | 误收录合成物被移除 | 不定期 | 记录撤销清单重建语料 |
| 模型漂移 | v1→v2 式 schema 切换 | 一次性/罕见 | 编号映射 + 迁移脚本 |
| 工具漂移 | RDKit/管线版本变化 | 低频 | 固定版本号入 requirements |
§7.7 DAIMS 24 项评估
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | CSV 一行一分子,字段平铺 |
| 2 | 唯一标识 | ✅ | CNP ID 全库唯一,立体变体共享主 ID 加后缀 |
| 3 | 特殊字符 | ⚠️ | SMILES 含 @、/、\ 等需引号保护,CSV 解析注意转义 |
| 4 | 重复行 | ⚠️ | 2.0 已按 canonical SMILES 去重,旧版本与自建子集需自查 InChIKey |
| 5 | 缺失编码 | ⚠️ | 空值缺失,无统一哨兵值 |
| 6 | 标签标识 | ✅ | ClassyFire superclass/class/subclass 全链 |
| 7 | 罕见类分组 | ⚠️ | 罕见骨架类别碎,建模前需合并长尾 |
| 8 | 偏倚评估 | ✅ | 官方论文自曝 NPLikeness 多峰、合成物残留 |
| 9 | 数据字典 | ✅ | 官方文档与数据库 schema 公开 |
| 10 | 信息性缺失解释 | ⚠️ | annotation score 部分解释,字段级缺失原因需自行推断 |
| 11 | 设备记录 | ⚠️ | 无仪器字段;计算方法学(CDK/RDKit/ClassyFire)已公开 |
| 12 | 共线性 | ⚠️ | 预计算描述符高度相关(MW 与重原子数等),回归特征需降维 |
| 13 | 编码映射 | ✅ | 物种映射 OLS4 本体/分类学,引用映射 DOI |
| 14 | 时间戳处理 | ✅ | 静态结构无时序问题;月度发布 + 变更日志可查 |
| 15 | 划分建议 | ⚠️ | 官方无划分,需采用 §5.3 分组策略 |
| 16 | 泄漏讨论 | ⚠️ | 立体/骨架泄漏需自行处理(§5.3、坑点 1) |
| 17 | 标签分布 | ✅ | 立体构成、NPLikeness 分布均已发表 |
| 18 | 测量偏倚 | ⚠️ | 无实测数据;文献与 curation 来源偏倚已述 |
| 19 | 外部验证建议 | ✅ | CAS/IUPAC/DOI 支持与 ChEMBL/PubChem 交叉验证 |
| 20 | 版本记录 | ✅ | 月度发布 + Zenodo DOI + 变更日志 |
| 21 | 预处理脚本 | ✅ | ChEMBL 清洗管线与平台源码开源 |
| 22 | 合规要求 | ✅ | CC0,无使用限制 |
| 23 | 多模态对齐 | ⚠️ | 无影像/序列模态;2D/3D 结构可对齐但 3D 未最小化 |
| 24 | 去标识化 | ✅ | 不含人类受试者数据 |
DAIMS 评分:18.5 / 24(13 项 ✅、11 项 ⚠️、0 项 ❌,✅ 计 1 分、⚠️ 计 0.5 分)。
评分解读:这是一个"结构层近乎满分、元数据层有缺口"的数据集。工程与合规侧(标识符、版本记录、开源管线、CC0)达到顶级开放库水准;扣分集中在划分缺位、立体信息不齐、缺失编码不统一与描述符共线性——这些都不是"脏",而是结构库天然属性与多源聚合的代价。
对你意味着什么:第一,直接拿来当生成预训练语料或虚拟筛选库是完全可行的,官方清洗已替你挡掉最差的数据;第二,做任何"评估类"任务前先按 §5.3 重建划分,随机划分是本库第一大陷阱;第三,元数据任务(来源预测、地理分析)要把缺失模式与 annotation score 纳入实验设计;第四,若任务依赖活性或立体,提前规划外联 ChEMBL/PubChem 或引入立体赋值模型。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| 67M 类天然产物库 | SIBER & A*STAR 团队 | 分子生成(以 COCONUT 为训练分布) | 有效性 89%(10,450,913/100,000,000 无效被剔除);NP-likeness 分布与训练集对齐 | 无官方内部基准,以分布对齐替代 | 字符级 LSTM 可从 COCONUT 学到可扩展的 NP 化学空间 |
| 系统性生成基准(转引) | 学术基准研究(转引自 Tay 等 2023) | 生成有效性对比 | SMILES-LSTM 95.9% / VAE 87.0% / GAN 37.9% | 不同架构、不同训练集,数值不可直接横比 | LSTM 类自回归模型在 SMILES 生成上显著占优 |
| NPstereo | Reymond 组(伯尔尼大学) | 从无立体 SMILES 赋立体化学 | 准确率/加权中心准确率(见其预印本) | 训练子集为 COCONUT 有 DOI 引用的 63,971 独特结构 | Transformer 可从文献级 SMILES 学出立体赋值 |
| 拉美 NP 生态位分析 | 墨西哥/巴西多机构 | 数据库覆盖度对比 | COCONUT 约 4.0×10^5 结构 | 对比 DNP 约 3×10^5(商业) | 开放库已达商业库量级,但区域覆盖仍不均 |
§8 基准性能与生态
§8.1 代表性基准结果
COCONUT 是参考库而非竞赛基准,没有统一排行榜。下表汇总以它为训练/评估对象的代表性已发表结果:
| 排名 | 模型 | 性能 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | SMILES-based LSTM(生成有效性) | 95.9% 有效 | 2023 | 字符级自回归语言模型 | 系统性基准研究,转引自 Tay, D. W. P. et al., 2023, Scientific Data. DOI 10.1038/s41597-023-02207-x | 随论文公开 |
| 2 | VAE(生成有效性) | 87.0% 有效 | 2023 | 变分自编码器 | 同上(系统性基准研究,转引) | — |
| 3 | GAN(生成有效性) | 37.9% 有效 | 2023 | 生成对抗网络 | 同上(系统性基准研究,转引) | — |
| 4 | Tay 等 NP 生成流水线 | 1 亿采样 → 67,064,204 有效独特分子 | 2023 | LSTM + 10 倍 SMILES 枚举增强 + ChEMBL 管线清洗 | Tay, D. W. P., Yeo, N. Z. X., Adaikkappan, K., Lim, Y. H., Ang, S. J., 2023, Scientific Data. DOI 10.1038/s41597-023-02207-x | github.com/SIBERanalytics/Natural-Product-Generator |
注:表中百分比为不同研究、不同协议下的产物,不可直接横比——训练集版本(2022-08 的 406,919 结构快照)、去立体与否、清洗规则均不一致。
§8.2 SOTA 总结与选型建议
生成方向:字符级 LSTM/Transformer 仍是 COCONUT 规模下性价比最高的起点;若追求立体保真,参考 NPstereo 把立体赋值做成独立后处理任务。判别方向:分子图神经网络 + 骨架分组 CV 是稳健默认;把 COCONUT 用于领域续预训练(domain-adaptive pretraining)时,先按 annotation score 分层裁剪。所有方向都建议报告 validity/uniqueness/novelty 三件套,并固定 Zenodo 版本号。
按目标的选型速查:
| 你的目标 | 首选路径 | 参考实现 |
|---|---|---|
| 发表生成模型论文 | LSTM/Transformer + 骨架分组 CV + 三指标 | Tay 等 2023 流水线 |
| 构建虚拟筛选库 | 官方 NPLikeness/SAS 预过滤 + 对接 | 官网 use-case 文件 |
| 立体敏感建模 | 主库过滤未定构型 + NPstereo 后处理 | reymond-group/NPstereo |
| 代谢组学 dereplication | 分子式+质量 CSV + 网络检索 | 官网质谱用例文件 |
| 教学/课程作业 | CSV lite + §6.1-§6.3 冒烟流程 | 本页代码块 |
§8.3 评测协议
| 协议要素 | 推荐约定 |
|---|---|
| 数据版本 | 固定月度版本,记录 Zenodo DOI;声明是否去立体、是否过滤合成物及所用规则 |
| 划分 | 骨架分组或聚类留出(§5.3);禁用行级随机划分作为主结果 |
| 指标(生成) | validity/uniqueness/novelty + NP-likeness 分布对齐(如 Wasserstein 距离) |
| 指标(判别) | ROC-AUC/PR-AUC 均值±标准差(5 折骨架分组 CV) |
| 指标(回归) | RMSE/MAE,报告骨架外泛化差距 |
| 基线 | 与 ChEMBL/PubChem 子集基线对比,证明"天然产物分布"本身带来增益 |
| 报告 | 随结果公布清洗脚本与版本号,保证第三方可复现 |
§8.4 相关数据集
| 数据集 | 规模 | 关系 | 获取 |
|---|---|---|---|
| SuperNatural 3.0 | 449,058 化合物及衍生物 | 补充衍生物与通路/毒性注释 | 学术开放 |
| Natural Products Atlas | 约 240,000 | 微生物 NP 补充源 | 开放 |
| UNPD | 约 229,000(含手性) | 立体信息补充 | 开放 |
| Dictionary of Natural Products | 约 300,000 | 注释最深的商业对标 | 商业许可 |
| IMPPAT | 9,596 化合物 / 1,742 植物 | 印度药用植物深耕子集 | 开放 |
| ChEMBL | 超 2 百万化合物(含合成与 NP) | 外联活性标签的首选 | 开放(CC BY-SA 类) |
| PubChem | 约 1×10^8 化合物 | 跨库标识符映射与活性文本 | 开放 |
§8.5 关键论文
- Sorokina, M., Merseburger, P., Rajan, K., Yirik, M. A., Steinbeck, C., 2021, Journal of Cheminformatics. DOI 10.1186/s13321-020-00478-9 —— v1 发布:53 个数据源、406,076 个独特结构与在线平台。
- Venkata Chandrasekhar, Rajan, K., Kanakam, S. R. S., Sharma, N., Weißenborn, V., Schaub, J., Steinbeck, C., 2024, Nucleic Acids Research. DOI 10.1093/nar/gkae1063 —— 2.0 重构:695,133 结构、清洗管线、社区共治与审计轨迹。
- Sorokina, M., Steinbeck, C., 2020, Journal of Cheminformatics. DOI 10.1186/s13321-020-00424-9 —— 123 个天然产物数据库的系统综述,COCONUT 的立项依据。
- Tay, D. W. P., Yeo, N. Z. X., Adaikkappan, K., Lim, Y. H., Ang, S. J., 2023, Scientific Data. DOI 10.1038/s41597-023-02207-x —— 以 COCONUT 训练 LSTM 生成 67M 类天然产物库的完整可复现流水线。
- Mullowney, M. W., Duncan, K. R., Elsayed, S. S., et al., 2023, Nature Reviews Drug Discovery. DOI 10.1038/s41573-023-00774-7 —— AI × 天然产物药物发现的权威综述,数据基础设施视角。
- Saldivar-Gonzalez, F. I., Aldas-Bulos, V. D., Medina-Franco, J. L., Plisson, F., 2022, Chemical Science. DOI 10.1039/D1SC04471K —— AI 时代天然产物发现的方法学地图(含 COCONUT 定位评述)。
§8.6 社区活跃度
平台由耶拿大学团队持续维护:月度发布、REST API 实时更新、GitHub 仓库(Steinbeck-Lab/coconut)接受 issue、文档站(steinbeck-lab.github.io/coconut)持续更新;v1 论文 543 次、2.0 论文 146 次引用(Semantic Scholar,截至 2026-09),化合物层面文献关联 24,272 次。社区共治(数据报告、批量提交模板、策展审核)在 2.0 落地,属于开放化学库中治理较完善的一档。
参与渠道:
- 报数据问题:化合物详情页提交报告(需附证据),或走 GitHub issue。
- 批量贡献:官网提供 CSV 提交模板,经策展人审核后入库。
- 本地部署:微服务架构 + Docker 容器,源码与部署文档公开。
- 程序化访问:OpenAPI 兼容 REST API,适合建机构级镜像与增量同步。
§8.7 生态快照
| 资源 | 类型 | 链接 | Star/热度截至 2026-09 | 推荐理由 |
|---|---|---|---|---|
| 官网 | 在线平台 | https://coconut.naturalproducts.net | — | 结构/子结构/相似性检索入口 |
| 下载页 | 数据分发 | https://coconut.naturalproducts.net/download | — | 全部格式与 use-case 文件 |
| Zenodo 归档 | 版本存档 | https://doi.org/10.5281/zenodo.13692394 | — | 固定版本复现 |
| GitHub 源码 | 代码 | https://github.com/Steinbeck-Lab/coconut | 见仓库 | 本地部署、issue 反馈 |
| 文档站 | 文档 | https://steinbeck-lab.github.io/coconut/ | — | schema、清洗步骤、API 用法 |
| API 文档 | 接口 | https://coconut.naturalproducts.net/api-documentation | — | OpenAPI 兼容实时查询 |
| Natural-Product-Generator | 下游代码 | https://github.com/SIBERanalytics/Natural-Product-Generator | 见仓库 | 67M 生成流水线复现 |
| NPstereo | 下游模型 | https://github.com/reymond-group/NPstereo | 见仓库 | 立体赋值方案 |
§9 相关资源与引用
§9.1 官方资源
- 主页:https://coconut.naturalproducts.net
- 下载:https://coconut.naturalproducts.net/download
- 文档:https://steinbeck-lab.github.io/coconut/
- REST API 文档:https://coconut.naturalproducts.net/api-documentation
- GitHub:https://github.com/Steinbeck-Lab/coconut
- Zenodo 数据归档:https://doi.org/10.5281/zenodo.13692394
- 源码存档 DOI:https://doi.org/10.5281/zenodo.13283948
- 社区报告/修正:化合物详情页与 GitHub issue 入口(平台内置)
§9.2 BibTeX 引用
@article{sorokina2021coconut,
title = {COCONUT online: Collection of Open Natural Products database},
author = {Sorokina, Maria and Merseburger, Peter and Rajan, Kohulan and Yirik, Mehmet Aziz and Steinbeck, Christoph},
journal = {Journal of Cheminformatics},
volume = {13},
pages = {2},
year = {2021},
doi = {10.1186/s13321-020-00478-9}
}
@article{chandrasekhar2024coconut,
title = {COCONUT 2.0: a comprehensive overhaul and curation of the collection of open natural products database},
author = {Venkata Chandrasekhar and Rajan, Kohulan and Kanakam, Sri Ram Sagar and Sharma, Nisha and Wei{\ss}enborn, Viktor and Schaub, Jonas and Steinbeck, Christoph},
journal = {Nucleic Acids Research},
volume = {53},
number = {D1},
pages = {D634--D643},
year = {2024},
doi = {10.1093/nar/gkae1063}
}
@article{sorokina2020review,
title = {Review on natural products databases: where to find data in 2020},
author = {Sorokina, Maria and Steinbeck, Christoph},
journal = {Journal of Cheminformatics},
volume = {12},
pages = {20},
year = {2020},
doi = {10.1186/s13321-020-00424-9}
}
@article{tay2023million,
title = {67 million natural product-like compound database generated via molecular language processing},
author = {Tay, Dillon W. P. and Yeo, Naythan Z. X. and Adaikkappan, Krishnan and Lim, Yee Hwee and Ang, Shi Jun},
journal = {Scientific Data},
volume = {10},
pages = {296},
year = {2023},
doi = {10.1038/s41597-023-02207-x}
}
@article{mullowney2023ai,
title = {Artificial intelligence for natural product drug discovery},
author = {Mullowney, Michael W. and Duncan, Katherine R. and Elsayed, Somayah S. and others},
journal = {Nature Reviews Drug Discovery},
year = {2023},
doi = {10.1038/s41573-023-00774-7}
}
§9.3 引用指南
| 使用情形 | 建议引用 |
|---|---|
| 任何数据使用 | Sorokina 2021(v1 论文,§9.2 第 1 条) |
| 使用 2.0 特性(本体映射、社区共治、审计轨迹) | Chandrasekhar 2024(§9.2 第 2 条) |
| 使用 use-case 文件(NPLikeness/SAS/QED、官能团、骨架) | 注明生成工具(RDKit/MORTAR)与下载月份版本 |
| 使用 REST API | 注明访问日期与端点版本 |
| 方法综述/数据库对比 | 同时引用 Sorokina & Steinbeck 2020 综述(§9.2 第 3 条) |
注意事项:官方许可为 CC0、无强制署名义务,上述建议出于学术规范与可复现性考虑;本 Wiki 引用的统计口径若与最新月度发布冲突,以官方文档与变更日志为准。
§10 AI 使用声明卡
§10.1 AI 模型列表
- 主笔模型:CodeBuddy Code(fast-model),负责资料整合、结构化写作与代码示例生成。
- 辅助工具:Semantic Scholar API(文献元数据核验)、WebSearch(事实核查)。
§10.2 AI 参与范围
AI 负责初稿撰写、结构组织、代码示例与表格整理;人工负责事实核验(每个规模数字溯源至官方论文/文档/API)、ICD-11/SNOMED 映射审核、坑点真实性把关与终审发布。数字类陈述均可回溯至 §10.3 输入来源。
§10.3 输入来源列表
- Sorokina, M., et al., 2021, Journal of Cheminformatics. DOI 10.1186/s13321-020-00478-9(v1 论文,Springer 官方页面)
- Venkata Chandrasekhar, et al., 2024, Nucleic Acids Research. DOI 10.1093/nar/gkae1063(2.0 论文,Oxford Academic)
- COCONUT 官方下载页:https://coconut.naturalproducts.net/download(格式、体积、CC0、use-case 文件)
- COCONUT 官方文档 analysis 页:https://steinbeck-lab.github.io/coconut/analysis.html(695,133、55,252 物种、2,653 地点、24,272 引用等口径)
- Semantic Scholar API 记录:DOI 10.1186/s13321-020-00478-9(引用 543,截至 2026-09)
- Semantic Scholar API 记录:DOI 10.1093/nar/gkae1063(引用 146,截至 2026-09)
- Tay, D. W. P., et al., 2023, Scientific Data. DOI 10.1038/s41597-023-02207-x(67M 生成流水线与作者名单)
- Semantic Scholar API 记录:DOI 10.1038/s41597-023-02207-x(作者名单与 36 次引用)
- Frontiers in Pharmacology, 2023. DOI 10.3389/fphar.2023.1207559(拉美低估与同类库规模对比)
- Frontiers in Drug Discovery, 2023. DOI 10.3389/fddsv.2023.1222655(SuperNatural 3.0 449,058 等对比数字)
- Mullowney, M. W., et al., 2023, Nature Reviews Drug Discovery. DOI 10.1038/s41573-023-00774-7(AI NP 发现综述,Semantic Scholar 记录)
- Saldivar-Gonzalez, F. I., et al., 2022, Chemical Science. DOI 10.1039/D1SC04471K(AI 时代 NP 发现评述)
- Sorokina, M., Steinbeck, C., 2020, Journal of Cheminformatics. DOI 10.1186/s13321-020-00424-9(123 库综述,Semantic Scholar 记录)
- Reymond 组 NPstereo 预印本与仓库:https://github.com/reymond-group/NPstereo(63,971 独特结构训练集口径)
- PMC 化学信息学综述(PD-1/PD-L1 方向):https://pmc.ncbi.nlm.nih.gov/articles/pmid/40559656/(45% 小分子药含 NP 药效团、NME 年均值、695,000+ 最新口径转述)
- ArXiv 萜类化学空间论文:https://arxiv.org/abs/2110.15047(v1 版超类与萜类子类规模)
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| frontmatter 与 INFOBOX 数字 | 千方病案医学编辑部 | 对照 FACTS.md 与官方来源逐项核对 | ✅ 已通过/已验证 |
| §2 ICD-11/SNOMED 映射 | 千方病案医学编辑部(执业药师) | 编码逐条人工核对 | ✅ 已通过/已验证 |
| §3-§4 规格与字段字典 | 化学 AI 数据工程师 | 对照官方论文/文档/下载页核对 | ✅ 已通过/已验证 |
| §6 代码与坑点 | 化学 AI 数据工程师 | RDKit 环境走查 + 坑点溯源 | ✅ 已通过/已验证 |
| §7 DAIMS 与偏倚分析 | 千方病案医学编辑部 | 逐项评定 + 复核评分计算 | ✅ 已通过/已验证 |
| §8-§9 引用与 BibTeX | 千方病案医学编辑部 | Semantic Scholar API 逐条核验 | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
除 §0 审核信息与本声明卡外,全部章节由 AI 初稿生成并经上表所列人工审核;代码示例经环境走查但未在全部硬件组合上回归测试。
§10.6 最后人工审核日期
2026-09-05(与 §0 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- gdb-17 — 共享标签:药物发现与化学 / 化学信息学 / 分子生成
- uspto-50k — 共享标签:药物发现与化学 / 化学信息学 / 分子生成
- open-reaction-database — 共享标签:药物发现与化学 / 化学信息学 / 分子生成
- crossdocked2020 — 共享标签:药物发现与化学 / 化学信息学 / 分子生成
- pdbbind — 共享标签:药物发现与化学 / 化学信息学
- toxcast — 共享标签:药物发现与化学 / 化学信息学
- synthea — 共享标签:药物发现与化学 / 分子生成
- trialbench — 共享标签:药物发现与化学 / 化学信息学
- zinc — 共享标签:药物发现与化学 / 化学信息学
- davis — 共享标签:药物发现与化学 / 化学信息学
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。
