Mondo Disease Ontology (mondo) — 统一全球疾病术语的开放疾病本体 — AI-Ready Wikipedia

29,315 条疾病术语 + 139,255 条跨库交叉引用的 OBO 旗舰本体,月度发布、CC BY 4.0、OWL 逻辑定义

来源 Monarch Initiative(Mondo Disease Ontology 维护方) url: https://mondo.monarchinitiative.org/发布时间: 2026-09-30最后更新: 2026-09-30 阅读 9
Mondo Disease Ontology (mondo) — 统一全球疾病术语的开放疾病本体 — AI-Ready Wikipedia

信息速览

数据集名称Mondo Disease Ontology (mondo) — 统一全球疾病术语的开放疾病本体 — AI-Ready Wikipedia
数据类型29,315 条疾病术语,139,255 条跨库交叉引用,OWL/OBO/JSON 多格式,CC BY 4.0 开放许可,月度版本发布
规模不适用(本体知识资源,无患者数据)
接入方式Monarch Initiative(Mondo Disease Ontology 维护方) url: https://mondo.monarchinitiative.org/
AI 就绪度

Mondo Disease Ontology (mondo) 疾病本体 — 统一全球疾病术语的开放疾病本体 AI-Ready Wikipedia


INFOBOX

字段 内容
数据集名称 Mondo Disease Ontology 疾病本体
英文全称 Mondo Disease Ontology(MONDO)
别名/简称 Mondo;MONDO;Mondo 疾病本体;Mondo Disease Ontology
疾病分类(ICD-11) 跨编码归一资源(本身不隶属单一 ICD 章节;Mondo 提供到 ICD-9/ICD-10-CM/ICD-11 的交叉引用,示例见 §2.1)
SNOMED CT 无直接等价映射,通过 xref 桥接临床概念(Mondo↔SNOMED CT 映射表见 §2.1b)
数据模态 疾病本体(有向无环图 + OWL 逻辑定义与等价公理 + 跨库交叉引用 + 同义词集)
AI 任务类型 疾病术语归一(term normalization)、跨库疾病概念映射(SSSOM)、知识图谱构建、疾病命名实体识别后归一、临床/文献疾病编码对齐
样本总数 29,315 条疾病术语(人类 23,214 + 非人类 6,100)、139,255 条跨库交叉引用、19,156 条术语定义(2026-09-01 release)
数据格式 OWL/RDF-XML、OBO 1.4、JSON(obographs)、SSSOM(映射)、TTL
许可证 CC BY 4.0 International(本体与全部数据产品)
访问级别 开放(无需注册,OBO Foundry PURL 直链下载,GitHub release 提供历史版本)
DUO 标签 不适用(本体知识资源,无人类受试者数据)
语言 英语(内容与界面);官方发布 mondo-international 多语种版(首批日语),说明见 §3.5
首发日期 2016(项目发起);2022-04 首版预印本;2025 正式论文发表于 Genetics
最后更新 2026-09-01(月度 release)
发布机构 Monarch Initiative(多机构联盟)
官方主页 https://mondo.monarchinitiative.org/
下载地址 https://github.com/monarch-initiative/mondo/releases
DOI 论文 10.1093/genetics/iyaf215(PMID 41052288);本体数据经 OBO Foundry PURL 与 GitHub release 发布
AI 就绪度评分 ⭐⭐⭐⭐⭐(5/5)— OBO Foundry 旗舰本体,OWL/OBO/JSON 标准格式、PURL 直链、SSSOM 映射与官方文档齐备;扣分项为月度版本漂移、跨快照计数/ID 不可直接比较,需自行固定 release 标签
页面状态 published

§0 E-E-A-T 审核与免责声明

医学审核:[千方病案医学编辑部] 交叉审核:§2 医学背景(疾病概念定义与 ICD-11/SNOMED CT 映射边界、罕见病与孟德尔病分类)、§7 偏倚分析(策展偏倚、来源本体偏倚、人群可及性偏倚)。

数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。

审核日期:2026-09-30

医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。本体的疾病分类与定义基于公开发表的文献与官方本体发布,未经逐一临床验证。任何基于该本体构建的 AI 模型在应用于临床决策前,必须经过独立的临床验证与监管审批。

技术免责声明:本页面的代码示例、预处理建议与工程结论基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性与预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。

数据使用合规:使用本页面描述的资源前,请务必阅读并遵守其原始许可协议。Mondo Disease Ontology 全部本体与数据产品采用 CC BY 4.0 许可,公开使用或再分发时须标识 Monarch Initiative 为数据创作者、附版权与许可声明,并建议注明具体 release 日期与版本标签。具体条款以 Mondo 官方文档 与 OBO Foundry 条目为准。


§1 数据集概览

§1.0 📌 30 秒速览

这是什么? Mondo 是一本"疾病名称的通行大辞典"。同一个疾病在不同数据库里有不同编号和写法——OMIM 叫它一种、Orphanet 叫它另一种、ICD 编码又是第三套——Mondo 把它们统一到一条具有稳定 ID(形如 MONDO:0005148)的"疾病概念"下,并记录每条概念与其他数据库的对应关系(交叉引用)。截至 2026-09-01 release,它收录了 29,315 条疾病术语,附带 139,255 条跨库交叉引用。

为什么重要? 疾病命名"各说各话"是医学数据互操作的根问题:临床记录、文献、基因关联库、保险编码用了四套语言,机器无法直接对齐。Mondo 用受控词汇与 OWL 逻辑定义(含等价公理)把这些表述收敛到单一语义枢纽,使得"跨数据库检索同一个病""把自由文本里的病名归一"成为可编程操作。它是生物医学知识图谱和罕见病诊断管线的事实底座。

我能用它做什么? 把临床文本或文献里出现的疾病名归一为 MONDO ID;用 SSSOM 映射在 OMIM/Orphanet/ICD/SNOMED CT 之间做跨库对齐;以 Mondo 为骨架搭建疾病知识图谱;配合表型本体 HPO 构建"表型→疾病"的诊断推理管线。下载无需注册,CC BY 4.0 允许商用,但使用时必须署名并注明 release 版本。

这是什么类型的资源? 必须强调:Mondo 是本体(ontology)知识资源,不是患者级实测数据集。它描述的是"疾病概念"而非"病人",没有样本、没有受试者、没有临床记录。把它按"AI-Ready 知识资源"口径使用(术语归一、映射、图谱骨架),而不是当作临床数据或统计样本,是本条目的第一原则。

§1.1 摘要

Mondo Disease Ontology 由 Monarch Initiative 维护、经 OBO Foundry 收录,其目标是把分散在世界各地的疾病命名体系整合为一个逻辑一致、机器可读的单一疾病本体。它的核心设计有三层:术语层(每条疾病一个稳定 ID 与一个首选定名 label)、关系层(is_a 层级、精确/狭义/广义/相关同义词、跨库 xref、OWL 等价类公理与逻辑定义)、治理层(逻辑推理器一致性校验 + CI 自动化 + 月度 release)。官方门户在 2026-09-30 实抓显示:疾病术语总数 29,315,其中人类疾病 23,214(肿瘤 4,737、感染性疾病 1,079、孟德尔遗传病 11,801、罕见病 16,378),非人类疾病 6,100(肿瘤 715、感染性疾病 499、孟德尔遗传病 1,375);跨库交叉引用 139,255 条,术语定义 19,156 条;同义词方面精确同义词 69,073、狭义 2,500、广义 1,443、相关 18,426(官方门户)。本体以 OWL/RDF-XML、OBO 1.4 与 JSON(obographs)三种格式经 OBO Foundry PURL 月度发布,许可为 CC BY 4.0(官方文档)。对 AI 工程师而言,Mondo 是"标签空间 + 结构先验 + 跨库映射"的三重资产:它既是归一任务的输出词表,又是图谱推理的语义骨架,还是连接外部疾病数据库(OMIM、Orphanet、DOID、EFO、ICD、SNOMED CT)的映射枢纽。

§1.2 战略价值

维度一:疾病语义的通用交换层。 疾病描述天然分散:OMIM 记孟德尔遗传病、Orphanet 记罕见病、Disease Ontology 做通用疾病分类、临床侧用 ICD 与 SNOMED CT、研究侧用 EFO。Mondo 用一套跨来源中立的受控词汇与 OWL 等价公理统一这些表述,使"同一疾病"在机器层面可被识别为同一概念。对 AI 团队,这意味着一次对齐即可接入多个上游疾病库的语义,无需为每对数据库单独维护映射矩阵;139,255 条 xref 正是这张现成的"翻译表"。

维度二:归一与推理的结构先验。 临床 NLP 与文献挖掘的常见痛点,是自由文本中的疾病名归一(如把"Type 2 diabetes"“T2DM”"非胰岛素依赖型糖尿病"归到同一 ID)。Mondo 同时提供三样东西:稳定的 ID 空间、带来源标注的同义词集(精确/狭义/广义/相关,天然给出匹配置信度)、以及逻辑定义与等价公理(可交由推理器做一致性校验)。以 Mondo 为归一目标,是把"字符串匹配"升级为"概念对齐"的关键一步。

维度三:知识图谱与多本体互操作的底座。 Mondo 是 OBO Foundry 的旗舰本体之一,与 HPO(表型)、Gene Ontology(基因功能)、ChEBI(化学实体)、Uberon(解剖)等通过导入与交叉引用衔接。对需要多本体联动的项目(如"基因→表型→疾病"三段推理、罕见病辅助诊断、病理报告结构化),以 Mondo 为疾病枢纽搭建语义层,可以省掉自建疾病映射矩阵的大头工作——前提是接受 OWL 工具链的工程复杂度与月度版本治理成本(见 §3.9、§6.5)。

§1.3 同类数据集横向对比

数据集 规模 模态 主要用途 与 Mondo 的差异
Mondo Disease Ontology 29,315 疾病术语 + 139,255 xref(2026-09) 疾病本体(DAG + OWL 逻辑定义) 疾病术语归一、跨库映射、知识图谱 整合来源最广、含逻辑定义与等价公理;术语随月度发布频繁演进
Disease Ontology (DOID) 上万条疾病术语 疾病本体 通用疾病分类、语义富集 与 Mondo 存在来源/映射关系;Mondo 在跨库整合与逻辑公理化上更深入
OMIM 约 16,000+ 基因-疾病条目 基因-疾病关联库 孟德尔遗传病研究 侧重基因位点与遗传证据;是 Mondo 的 cross ref 来源之一,非本体
Orphanet 数千罕见病实体 罕见病本体 + 关联 罕见病目录与编码 罕见病覆盖权威;是 Mondo 的 cross ref 来源之一
HPO(表型本体) 数万表型术语 表型本体 表型描述、诊断推理 正交互补:HPO 描述"症状/表型",Mondo 描述"疾病";两者常联用(见 §2.2)
SNOMED CT 数十万临床概念 临床术语系统 临床记录编码 覆盖面更广但许可受限;Mondo 通过 xref 与之桥接

对比表的核心结论:Mondo 是其中唯一同时具备"多来源整合 + OWL 逻辑定义与等价公理 + 开放 CC BY 4.0 + 月度版本治理"四件套的疾病本体,代价是术语粒度与版本漂移带来的使用复杂度(本条目坑点近半与版本和映射相关)。若你只需要一个稳定的疾病分类标签集,DOID 的演进更平缓;若需要跨 OMIM/Orphanet/ICD/SNOMED 的归一与逻辑推理能力,Mondo 是目前最完整的开放选择。

§1.4 版本时间轴

时间 事件 说明
2016 项目发起 Monarch Initiative 启动 Mondo,目标整合 Disease Ontology、EFO、Orphanet、OMIM 等既有疾病术语
2022-04-13 预印本发布(medRxiv) “Mondo: Unifying diseases for the world, by the world”(标题口径与正式论文不同,双口径存照见 §9)
2025 正式论文发表 《Mondo: Integrating Disease Terminology Across Communities》,Genetics,DOI 10.1093/genetics/iyaf215(PMID 41052288)
2025 mondo-international 启动 发布多语种国际版,首批日语翻译(DBCLS 主导)
2025-12-02 → 2026-09-01 月度 release 序列 v2025-12-02、v2026-01-06、v2026-02-03、v2026-03-03、v2026-04-07、v2026-05-05、v2026-06-02、v2026-07-06、v2026-08-04、v2026-09-01(最新)
2026-09-30 本条目抓取时点 官网记录 29,315 条疾病术语、139,255 条跨库交叉引用

§1.5 典型应用场景

  1. 临床文本疾病归一:把电子病历、出院小结、病理报告中的自由文本疾病名归一为 MONDO ID,为下游结构化与统计分析提供稳定标签(配合 §6.3 的匹配流水线)。
  2. 跨库疾病概念映射:用官方 SSSOM 映射或自建映射,在 OMIM、Orphanet、ICD、SNOMED CT 之间做对齐,支撑多中心队列的疾病口径统一。
  3. 生物医学知识图谱骨架:以 Mondo 的 is_a 层级与 xref 为疾病节点层,向上挂基因(GO)、表型(HPO)、化学实体(ChEBI),构建可推理的知识图谱。
  4. 罕见病诊断管线:配合 HPO 表型本体,把患者表型集合映射到候选疾病,Mondo 提供疾病端的语义归一("表型→疾病"链路见 §2.2)。
  5. 文献与数据库疾病抽取:在生物医学文献 NER 之后,用 Mondo 做实体链接(entity linking),把抽出的病名收敛到受控词汇。
  6. 保险与登记口径对齐:把理赔编码、疾病登记数据中的病名统一到 MONDO 概念,支撑跨机构的流行病学统计与真实世界研究(须注意 Mondo 并非计费编码系统,见 §1.6)。

§1.6 何时不要用 Mondo

  • 需要患者级实测数据:Mondo 没有病人、没有样本、没有临床测量值。需要病历数据时请转 EMR/eICU 类数据集。
  • 需要官方计费/行政编码:ICD-10-CM、ICD-11 有其官方规则与编码映射要求,Mondo 的 xref 是语义桥接而非计费替代。请以官方编码系统为准。
  • 需要法律/监管认定的疾病目录:Orphanet 在部分司法辖区具有罕见病目录地位,Mondo 是整合层而非认定机构。
  • 需要跨版本直接比较计数:不同 release 的术语数与 ID 集合会变化(本条目已记录 29,315 / 25,938 / 27,439 三口径冲突),未固定版本时不要横向比数。
  • 需要临床诊断依据:Mondo 是术语资源,不构成诊断标准;临床决策须依赖权威指南与监管审批的工具。

§2 医学背景

§2.1 ICD-11 与临床编码映射表

Mondo 本身不是临床编码系统,而是跨编码归一资源:它为每条疾病概念维护到临床编码系统的交叉引用,使"编码→概念→其他编码"的桥接成为可能。下表给出若干典型疾病概念在 Mondo 与临床编码侧的对应关系示例(示例用于说明映射形态,非穷举,实际映射以对应 release 的 xref 与官方映射文件为准)。

疾病概念(示例) MONDO ID(形态) ICD-10-CM(形态) ICD-11(形态) 说明
2 型糖尿病 MONDO:0005148 E11.- 5A11 常见代谢病,多来源均有对应
乳腺癌 MONDO:0007254 C50.- 2C6- 肿瘤类,Mondo 内含多种亚型
亨廷顿病 MONDO:0007739 G10 8A01.10 典型孟德尔遗传病
囊性纤维化 MONDO:0009061 E84.- CA25 罕见遗传病代表
马凡综合征 MONDO:0007947 Q87.4 LD28.0 结缔组织遗传病

使用要点:Mondo 的 xref 表达的是"语义相关",粒度未必 1:1——一个 ICD 编码可能对应多条 Mondo 概念(如肿瘤亚型细分),一条 Mondo 概念也可能对应多个编码(如 ICD-9 与 ICD-10 并存)。做编码对齐时务必读取映射的卡氏性(cardinality)与来源,切勿假定一一对应(对应坑点见 §6.5 坑点 4)。

§2.1b SNOMED CT 映射表

SNOMED CT 是临床侧最常用的术语系统,Mondo 通过 xref 与之桥接。下表为映射形态示例。

疾病概念(示例) MONDO ID(形态) SNOMED CT(形态) 映射性质
2 型糖尿病 MONDO:0005148 44054006 近似对应(临床概念 vs 本体概念)
哮喘 MONDO:0004979 195967001 部分对应
急性髓系白血病 MONDO:0018874 91861009 亚型结构差异较大
阿尔茨海默病 MONDO:0004975 26929004 近似对应
肺结核 MONDO:0018076 154283005 感染性疾病桥接

划界说明:Mondo 的 SNOMED CT 映射与它的 OMIM/Orphanet 映射性质不同——后两者是"疾病库↔疾病库"的同域整合,前者是"本体概念↔临床术语"的跨域桥接,映射置信度与粒度差通常更大。凡涉及临床直接使用,务必以 SNOMED CT 官方许可与其自身层级为准。

§2.2 疾病背景简介与本体划界

Mondo 之所以存在,源于疾病命名体系中根深蒂固的碎片化:OMIM 以基因位点为中心组织孟德尔病,Orphanet 以罕见病目录为中心,Disease Ontology 做通用疾病分类,临床侧用 ICD 与 SNOMED CT。同一疾病在不同系统中的名称、编号、边界各不相同,跨库检索与联合分析必须先把它们对齐到同一概念。Mondo 的定位就是这张"疾病概念对齐表"。

与 HPO 的划界(关键):库内同批生产的 Human Phenotype Ontology(HPO)是表型本体,描述的是"异常的表型/症状/体征"(如"肌张力低下"“癫痫发作”);Mondo 是疾病本体,描述的是"疾病/诊断实体"(如"脊髓性肌萎缩症")。二者正交且互补:HPO 在"症状"侧,Mondo 在"疾病"侧,典型联用是"患者表型集合(HPO)→ 候选疾病(Mondo)"的罕见病诊断推理(如 Exomiser、LIRICAL 类工具,以 HPO 表型驱动 Mondo 疾病排序)。同一疾病实体只应归属一侧:疾病名归 Mondo、表型/症状名归 HPO,混用会导致语义层级污染(对应坑点见 §6.5 坑点 6)。

与 Gene Ontology 的划界:GO 描述基因/蛋白的功能(生物过程、分子功能、细胞组分),Mondo 描述疾病概念。二者通过"疾病↔基因↔功能"链路在知识图谱中衔接:基因关联到疾病(Mondo 侧),基因本身承载功能注释(GO 侧)。跨库联查时,疾病层用 Mondo、功能层用 GO,不要互相替代。

§2.3 临床研究任务定义

以 Mondo 为资源的典型研究/工程任务如下表。

任务 输入 输出 评价要点
疾病术语归一(normalization) 自由文本疾病名 MONDO ID 准确率、对同义词/缩写的召回
跨库疾病映射(mapping) 源库疾病 ID/名称 目标库 ID + 置信度 映射卡氏性、误报与漏报
疾病 NER 后实体链接 文献/病历抽取病名 MONDO ID 归一覆盖率、歧义消解质量
知识图谱构建 多源疾病关联 疾病节点 + 关系图 逻辑一致性、xref 完整性
队列口径统一 多机构疾病编码 统一 Mondo 概念集 版本固定、映射可复现

§2.4 覆盖人群与物种划分

Mondo 的术语库按人类/非人类与疾病类别分层组织,官方门户在 2026-09-30 实抓的分布如下(注意:截至抓取时点的口径,随月度 release 变化)。

分层 数量 说明
疾病术语总数 29,315 官网 Total number of diseases
人类疾病(Human) 23,214 临床与研究主战场
— 肿瘤(Cancer) 4,737 人类肿瘤类
— 感染性疾病(Infectious) 1,079 人类感染性疾病
— 孟德尔遗传病(Mendelian) 11,801 单基因遗传病
— 罕见病(Rare) 16,378 罕见病子集(与孟德尔类有交叠,见 §3.2 说明)
非人类疾病(Non-human) 6,100 动物/模式生物疾病,服务比较医学与 One Health
— 肿瘤 715 非人类肿瘤类
— 感染性疾病 499 非人类感染性疾病
— 孟德尔遗传病 1,375 非人类遗传病

关于"罕见病 16,378 与孟德尔 11,801"的关系:两类并非互斥。罕见病的判定一般基于患病率/流行率阈值,而孟德尔遗传病是按遗传机制划分子集,二者存在交叉(许多孟德尔病同时是罕见病,但并非所有罕见病都是单基因病,也并非所有孟德尔病都被计入罕见病子集)。因此不要把各类别数字相加当作总数——分类计数之和与总数存在边界差异(官网 2026-09-30 口径下 Human 23,214 + Non-human 6,100 = 29,314,与总数 29,315 差 1,属边界计数,存照见 §9)。

§2.5 临床价值

Mondo 的临床价值在于语义对齐而非诊断本身。它使"跨系统检索同一疾病"“把病历病名归一到受控 ID”"把表型推理结果落到标准疾病概念"成为可编程的操作。在罕见病场景中,Mondo 与 HPO 联合支撑"表型→疾病"的候选排序;在多中心研究中,Mondo 支撑跨机构的疾病口径统一。必须强调:Mondo 是术语资源,不提供诊断阈值、不替代临床指南,任何临床决策系统都必须经过独立的临床验证与监管审批。

§2.6 金标准参考表

参考类别 权威来源 用途
本体官方发布 Mondo 官网 / GitHub releases / OBO Foundry PURL 获取本体与版本
论文 Vasilevsky et al., Genetics 2025(DOI 10.1093/genetics/iyaf215) 引用与方法学
文档 Mondo ReadTheDocs 使用指南与治理说明
映射规范 SSSOM(Simple Standard for Sharing Ontological Mappings) 跨库映射交换格式
表型联用 Human Phenotype Ontology(HPO) 表型-疾病推理
基因功能联用 Gene Ontology(GO) 疾病-基因-功能链路
临床编码 ICD-10-CM / ICD-11 / SNOMED CT 官方 编码对齐的目标系统

§3 数据集规格

§3.0 版本抉择矩阵

场景 推荐版本策略 理由
生产系统 / 长期项目 固定某一 release 标签(如 v2026-09-01)并本地存档 避免月度漂移导致结果不可复现
论文复现 与原文一致的 release + 记录日期 审稿要求可复现的版本锚点
探索性研究 最新 release 获取最新疾病概念与映射
跨机构队列统一 全队列统一 release 后冻结 保证疾病 ID 集合一致
国际/多语种场景 mondo-international(如日语版) 官方多语种标签与描述

核心建议:任何需要横向比较或长期维护的任务,都必须在管线配置中显式固定 release 标签,并把 release 日期与 DOI 一同存档(见 §6.10、§7.6)。

§3.1 模态详情

Mondo 是纯本体知识资源,无影像/信号/文本样本,其"模态"即本体的表达结构:

  • 术语(term):每条疾病概念的 ID(MONDO:xxxxxxx)与首选定名 label。
  • 定义(definition):文本定义(19,156 条),部分带来源标注。
  • 同义词(synonym):精确/狭义/广义/相关四类(69,073 / 2,500 / 1,443 / 18,426),是归一匹配的置信度信号。
  • 层级关系(is_a):疾病概念的父子层级,构成 DAG。
  • 交叉引用(xref):到 OMIM、Orphanet、DOID、EFO、ICD、SNOMED CT、MeSH、MedGen 等外部资源的引用(139,255 条)。
  • 逻辑定义与等价公理:OWL 表达的必要/充分条件,用于推理器一致性校验与概念对齐。

§3.2 按子集样本数表

子集 术语数(2026-09-30 口径) 说明
全部疾病术语 29,315 官方 Total
人类疾病 23,214 Human
人类-肿瘤 4,737 Cancer
人类-感染性疾病 1,079 Infectious
人类-孟德尔遗传病 11,801 Mendelian
人类-罕见病 16,378 Rare(与孟德尔类存在交叉)
非人类疾病 6,100 Non-human
mondo-rare 罕见病子集文件 官方发布的罕见病专用子集
mondo-international 多语种版(首批日语) 2025 年新增国际版

注:上表各类别间存在交叉与边界计数差异,不可直接求和。不同来源(官网实抓、搜索快照、早期 brief)的疾病总数不同,本条目已存照(§9)。

§3.3 格式表

格式 扩展名 用途 特点
OWL / RDF-XML mondo.owl 逻辑推理、本体交换 含完整公理与逻辑定义,体积最大
OBO 1.4 mondo.obo 扁平文本处理 每术语一段(stanza),易解析,常用于映射与轻量处理
JSON (obographs) mondo.json 程序化读取 图结构 JSON,便于应用集成
SSSOM 映射文件 跨库映射交换 标准化的映射表格式(含置信度与来源)
TTL — 语义网集成 Turtle 序列化,用于 SPARQL 等场景

§3.4 存储大小

资产 量级 说明
mondo.owl 约 242 MB 全公理化 OWL,含逻辑定义
mondo.json 约 103 MB obographs JSON
mondo.obo 约 50.7 MB OBO 1.4 文本

说明:以上为 release 资产的量级口径,非逐字节实测;实际大小随 release 变化。生产环境请在下载后自行计算校验值并随 release 标签存档。

§3.5 标注方式与国际化

Mondo 的"标注"体现为本体的策展(curation)流程:

  1. 人工审编:由策展人依据文献与权威来源新增/修订疾病术语、定义与层级。
  2. 逻辑定义与等价公理:以 OWL 表达疾病概念的必要/充分条件,用于自动分类与一致性校验。
  3. 多来源整合:导入并交叉引用 OMIM、Orphanet、DOID、EFO、ICD、SNOMED CT、MeSH、MedGen 等,形成 139,255 条 xref。
  4. 多语种扩展:2025 年起的 mondo-international 提供跨语言标签与描述,首批为日语(DBCLS 主导)。

§3.6 策展者与一致性

策展由 Monarch Initiative 及其合作网络(含 ClinGen、Kids First 等)的研究者与临床信息学人员完成,论文作者约百人量级,末位为 Melissa A. Haendel 与 Christopher J. Mungall。一致性通过逻辑推理器校验(无矛盾)、CI 自动化回归(结构规则与 QA 报告)与月度 release 评审共同保证。

§3.7 采集与发布周期

  • 发布节奏:月度 release(实测序列 v2025-12-02 → … → v2026-08-04 → v2026-09-01)。
  • 发布渠道:GitHub releases + OBO Foundry PURL(purl.obolibrary.org/obo/mondo.*)。
  • 发布内容:mondo.owl / mondo.obo / mondo.json / mondo-rare / mondo-international。
  • 资助:NIH-NHGRI RM1 HG010860-01(Phenomics First Resource)。

§3.8 覆盖范围

  • 物种:人类疾病为主(23,214),兼含非人类疾病(6,100)服务比较医学。
  • 疾病类别:肿瘤、感染性疾病、孟德尔遗传病、罕见病等。
  • 语言:英语为主,mondo-international 提供多语种(首批日语)。
  • 来源覆盖:OMIM、Orphanet、SNOMED CT、NCIT、GARD、MeSH、UMLS、ICD-9、ICD-10-CM、ICD-11、EFO、DO、MedGen、OGMS、MeDRA、OncoTree、NORD、NANDO、OMIA、MalaCards、ClinGen 等(官方 sources 页)。

§3.9 系统与工具规格

工具/库 用途 备注
ROBOT 本体转换、合并、校验 OBO 社区标准 CLI
owltools / OWL API OWL 解析与推理 Java 生态
pronto (Python) OBO 解析 轻量读取 stanza
rdflib (Python) RDF/OWL 处理 语义网通用
sssom-py SSSOM 映射读写 跨库映射标准库
fastobo / pyobo OBO 高效解析 处理大文件
OAK (Ontology Access Kit) 本体查询与导航 Monarch 生态工具
Protégé 本体浏览与编辑 桌面工具
BioPortal / OLS 在线浏览本体 免安装检索

工程提示:解析 200MB 级 OWL 文件时优先使用流式/索引化方案(如 OAK 的适配器),避免一次性全量载入内存(见 §6.5 坑点 5)。

§3.10 深度溯源链

原始文献与权威来源(OMIM/Orphanet/临床编码等)→ 策展人审编 → 逻辑定义与等价公理 → 多来源 xref 整合 → 推理器一致性校验 → CI 自动化回归 → 月度 release(GitHub + OBO PURL)→ 用户管线。

任一环节的口径都会影响下游:来源库的更新会经整合进入 Mondo,Mondo 的 release 又进入用户管线。因此完整的可复现链条必须包含 release 标签 + 来源库版本 + 映射文件版本三要素。

§4 数据结构

§4.0 目录树

Mondo 不以传统"数据集目录"形式分发,而是以本体文件 + 映射文件 + 辅助资产的形式发布。一个典型的本地工作目录建议组织如下。

mondo-workdir/
├── releases/
│   ├── v2026-09-01/
│   │   ├── mondo.owl              # 全公理化 OWL(约 242 MB)
│   │   ├── mondo.obo              # OBO 1.4 文本(约 50.7 MB)
│   │   ├── mondo.json             # obographs JSON(约 103 MB)
│   │   ├── mondo-rare.*           # 罕见病子集
│   │   └── mondo-international/   # 多语种版(首批日语)
│   └── v2026-08-04/               # 上一版本(用于对比与回归)
├── mappings/
│   ├── mondo-omim.sssom.tsv       # Mondo↔OMIM 映射
│   ├── mondo-orphanet.sssom.tsv   # Mondo↔Orphanet 映射
│   └── mondo-icd.sssom.tsv        # Mondo↔ICD 类映射
├── derived/
│   ├── terms.tsv                  # 解析后的术语表(id/label/def)
│   ├── synonyms.tsv               # 同义词表(含 scope)
│   └── xrefs.tsv                  # 交叉引用表
└── manifest.json                  # release 标签、日期、校验值

核心约定:releases/<version>/ 下保留原始发布文件不可变;derived/ 放解析产物;manifest.json 记录 release 标签与校验值(对应坑点见 §6.5 坑点 2)。

§4.1 DAIMS 字段字典(mondo.obo 核心字段)

下表以 OBO 1.4 的 stanza 字段为主,对齐 DAIMS(Data Assurance and Integrity Model for Scientific data)的字段级描述习惯。

字段(OBO 键) 含义 类型 示例 DAIMS 关注点
id 疾病概念唯一标识 稳定 ID MONDO:0005148 主键唯一性、跨版本稳定性
name 首选定名 label 文本 type 2 diabetes mellitus 命名一致性
def 文本定义 文本 + 来源 "... [PMID:...]" 定义来源可溯
synonym 同义词(含 scope) 文本 + 作用域 EXACT "T2DM" 匹配置信度分层
is_a 上位疾病概念 引用 MONDO:0005015 层级完整性、无环性
xref 跨库交叉引用 引用 OMIM:125853 映射卡氏性、有效性
subset 子集归属 标签 rare、mondo_rare 子集口径一致
intersection_of 逻辑定义(部分) 逻辑表达式 — 逻辑一致性
equivalent_to 等价公理 逻辑表达式 — 概念对齐与推理
is_obsolete 废弃标记 布尔 true 死术语过滤
replaced_by 接替术语 引用 MONDO:... 历史标签迁移
property_value 扩展属性 键值 — 语义扩展

DAIMS 完整性说明:Mondo 的策展保证了主键(id)唯一与层级无环,但定义、同义词、xref 的覆盖率并非 100%——19,156 条定义相对 29,315 条术语仍有缺口,xref 也分布不均(临床编码侧尤其稀疏)。做归一或映射任务时,应对覆盖率缺口做显式处理,而非假定字段齐备。

§4.2 标签与同义词分布

同义词作用域 数量(2026-09-30 口径) 在归一中的作用
Exact(精确) 69,073 高置信匹配,可安全用于归一
Narrow(狭义) 2,500 需谨慎,方向性匹配
Broad(广义) 1,443 需谨慎,方向性匹配
Related(相关) 18,426 低置信,仅作候选

使用要点:作用域(scope)是 Mondo 内建的匹配置信度信号。精确同义词可直接用于字符串归一;狭义/广义/相关同义词存在方向性差异(如"小细胞肺癌"相对于"肺癌"是狭义),直接当作等价值会造成过匹配(见 §6.5 坑点 3)。

§4.3 关键统计

指标 数值(2026-09-30 口径)
疾病术语总数 29,315
人类疾病 23,214
非人类疾病 6,100
跨库交叉引用(DB cross refs) 139,255
术语定义(Term definitions) 19,156
精确同义词 69,073
狭义同义词 2,500
广义同义词 1,443
相关同义词 18,426

口径警告:以上为官方门户 2026-09-30 实抓值,与搜索快照(25,938)及早期 brief(27,439)不一致,属活跃本体的版本差异,不可混用(见 §9)。

§4.4 数据层级

Mondo 的组织层级自下而上为:

  1. 术语(Term):最小单位,一个疾病概念(MONDO ID)。
  2. 层级关系(is_a):术语间的父子关系,构成有向无环图(DAG)。如"2 型糖尿病" is_a “糖尿病” is_a “代谢病”。
  3. 类别子集(Subset):如罕见病子集(mondo-rare)、孟德尔遗传病等,用于场景化抽取。
  4. 交叉引用层(xref):连接外部资源,形成跨库网络。
  5. 逻辑层(OWL):等价公理与逻辑定义,赋予本体推理能力。

理解这一分层是关键:疾病概念可多父(DAG 非树),子概念必然继承父概念的全部语义(对应坑点见 §6.5 坑点 6)。

§4.5 缺失值与信息性缺失编码

字段 缺失形态 处理建议
def(定义) 无 def 行 视为"未提供定义",不可当作空字符串参与语义比较
xref 无对应来源引用 视为"未建立映射",不是"无该来源疾病"
synonym 仅有 label 归一时应回退到 label 精确匹配
subset 未归入任何子集 视为"未标注子集",非"不属于任何类别"
intersection_of 无逻辑定义行 视为"未提供逻辑定义",不可当作空逻辑参与推理
is_obsolete 未出现该行 默认有效;出现 true 时必须过滤

信息性缺失原则(DAIMS):Mondo 中的"无值"多具信息性——“无 xref"意味着"尚未建立映射"而非"不存在对应关系”,“无逻辑定义"意味着"尚未形式化"而非"不成立”。把它当作否定证据会引入系统性偏差。归一/映射流水线应显式区分"未收录"与"已判定不存在",并在元数据中记录缺失类型(未提供 / 不适用 / 待补充)。这一点对覆盖率敏感的任务(如按定义做语义检索)尤其关键:忽略定义缺口会导致对同一批术语的检索召回被系统性低估。


§5 划分与使用建议

§5.1 官方划分

Mondo 作为本体资源没有监督学习意义上的 train/val/test 划分。官方提供的是子集划分:

  • mondo-rare:罕见病子集。
  • mondo-international:多语种版本。
  • 按类别子集:肿瘤、感染性疾病、孟德尔遗传病等(通过 subset 标签或层级抽取)。

若你的任务需要"疾病分类"标签,应基于类别子集或层级祖先构造标签空间,而不是期望官方给出样本划分。

§5.2 社区惯例划分

在以 Mondo 为标签空间的下游任务(如疾病归一、实体链接评测)中,社区惯例是自行划分:

划分维度 常见做法 注意
按术语 随机抽术语做评测集 需防止同义词跨集泄漏
按同义词 训练用部分同义词、测试用留出同义词 更贴近真实归一场景
按来源 训练用某来源、测试用另一来源 评估跨库泛化
按疾病类别 留出某类别做零样本测试 评估类别泛化

§5.3 泄漏风险(重点)

疾病归一/实体链接任务的头号风险是标签泄漏:

  • 同义词泄漏:若同一 MONDO 概念的精确同义词被分到训练与测试两侧,模型可能"背下"字符串映射而非学到泛化。应按概念整体划分,保证同一概念的全部同义词落在同一侧。
  • 层级泄漏:父术语与其子术语语义高度重叠,若父在训练、子在测试,模型可能通过层级捷径"猜中"。评估跨类别泛化时,应留出整个子树而非随机术语。
  • xref 泄漏:若训练使用了某外部来源的映射,而测试恰好用同来源的映射做正样本,指标会虚高。应确保映射来源在划分上隔离。
  • 版本泄漏:用旧 release 训练、新 release 测试,看似"时间外推",实则同一概念的 ID 大多不变,不能当作真正的外部验证(见 §7.8)。

§5.4 交叉验证与外部验证建议

  • 交叉验证:按概念分组的 K 折(GroupKFold,group=MONDO 概念),确保同义词与子术语不跨折。
  • 外部验证:留出完全独立来源的疾病名称集(如某临床术语系统的自由文本病名),评估归一对"未见来源"的泛化能力。
  • 负样本构造:使用狭义/广义同义词构造"近似但不等价"的困难负样本,检验模型是否区分方向性(对应 §4.2)。
  • 一致性检查:对涉及逻辑推理的任务,用推理器在留出集上做一致性验证,作为结构性外部检验。

§6 AI 就绪指南

§6.0 云端快速启动

Mondo 是轻量文本资源,普通笔记本即可处理;云端仅需在需要跑推理器或做大图谱联查时使用。

# 创建环境并安装解析依赖(Python 示例)
python3 -m venv .venv && source .venv/bin/activate
pip install pronto==2.* rdflib==7.* pyobo==0.* sssom==0.* oaklib==0.*

# 下载指定 release(示例:v2026-09-01 的 OBO 与 JSON)
mkdir -p releases/v2026-09-01 && cd releases/v2026-09-01
curl -L -o mondo.obo  https://github.com/monarch-initiative/mondo/releases/download/v2026-09-01/mondo.obo
curl -L -o mondo.json https://github.com/monarch-initiative/mondo/releases/download/v2026-09-01/mondo.json

# OBO Foundry PURL 直链(始终指向最新,生产环境请勿用于固定版本)
curl -L -o mondo-latest.obo http://purl.obolibrary.org/obo/mondo.obo

# 计算校验值并记录到 manifest
shasum -a 256 mondo.obo mondo.json | tee ../../manifest.sha256

要点:生产环境务必从 GitHub release 标签下载固定版本,不要用 PURL 直链(PURL 始终指向最新,会造成版本漂移,见 §6.5 坑点 2)。

§6.1 快速上手

# 用 pronto 读取 OBO 并做一次最简单的疾病名归一(精确同义词匹配)
import pronto

ont = pronto.Ontology("releases/v2026-09-01/mondo.obo")

# 构建 名称/同义词 -> MONDO ID 索引(仅用 EXACT 作用域,见 §4.2)
index = {}
for term in ont.terms():
    if term.obsolete:
        continue
    keys = {term.name.lower()}
    for syn in term.synonyms:
        if syn.scope == "EXACT":
            keys.add(syn.description.lower())
    for k in keys:
        index.setdefault(k, set()).add(term.id)

def normalize(name: str):
    return sorted(index.get(name.strip().lower(), []))

print(normalize("T2DM"))              # 期望命中 MONDO:0005148
print(normalize("type 2 diabetes mellitus"))

# —— 命中多个概念时的消歧示例(按术语字数/层级打分,取最具体者)——
def disambiguate(candidates, ancestors):
    # 偏好"最具体"的概念:祖先越少越具体;平手时取字典序,保证确定性
    return sorted(candidates, key=lambda c: (len(ancestors.get(c, set())), c))[0]

cands = normalize("diabetes mellitus")
if len(cands) > 1:
    print("best:", disambiguate(cands, {}))

要点:只把 EXACT 同义词放进索引;NARROW/BROAD/RELATED 需要方向性处理(见 §6.3、坑点 3)。归一返回的是集合(一个名称可能命中多个概念,需消歧);消歧规则必须在管线中显式定义并固定,否则同一输入可能得到不同结果。

§6.2 数据获取

渠道 地址 适用
GitHub releases(推荐) github.com/monarch-initiative/mondo/releases 固定版本、可复现
OBO Foundry PURL purl.obolibrary.org/obo/mondo.owl/.obo/.json 快速取最新(勿用于生产固定)
官方门户 mondo.monarchinitiative.org 浏览统计与下载入口
BioPortal / OLS 在线浏览 API 免下载检索

资产清单:mondo.owl(≈242MB)、mondo.json(≈103MB)、mondo.obo(≈50.7MB)、mondo-rare、mondo-international。

§6.3 预处理全流程

import pronto
from collections import defaultdict

ont = pronto.Ontology("releases/v2026-09-01/mondo.obo")

# Step 1: 过滤废弃术语,构建有效术语集
valid = {t.id: t for t in ont.terms() if not t.obsolete}

# Step 2: 计算祖先闭包(is_a 传递闭包)—— 层级任务必需
def ancestors(term_id, memo={}):
    if term_id in memo:
        return memo[term_id]
    out = set()
    for parent in ont[term_id].superclasses(distance=1):
        out.add(parent.id)
        out |= ancestors(parent.id)
    memo[term_id] = out
    return out

term_ancestors = {tid: ancestors(tid) for tid in valid}

# Step 3: 构建带作用域的同义词索引
syn_index = defaultdict(set)   # name_lower -> {mondo_id}
for tid, t in valid.items():
    syn_index[t.name.lower()].add(tid)
    for syn in t.synonyms:
        syn_index[syn.description.lower()].add((tid, syn.scope))

# Step 4: 抽取交叉引用表
xrefs = defaultdict(list)
for tid, t in valid.items():
    for x in t.xrefs:
        xrefs[tid].append(str(x))   # 形如 'OMIM:125853'

# Step 5: 构建输出表并落盘
import csv
with open("derived/terms.tsv", "w", newline="") as f:
    w = csv.writer(f, delimiter="\t")
    w.writerow(["mondo_id", "label", "n_xrefs", "n_ancestors", "obsolete"])
    for tid, t in valid.items():
        w.writerow([tid, t.name, len(xrefs[tid]), len(term_ancestors[tid]), False])
print("terms:", len(valid))

要点:ancestors 的 memo 跨调用共享以加速;superclasses(distance=1) 只取直接父,避免混入非 is_a 关系(视具体需求而定)。

§6.3b 子集抽取(mondo-rare / 类别)

# 抽取罕见病子集(若使用官方 mondo-rare 文件则直接读取)
rare = pronto.Ontology("releases/v2026-09-01/mondo-rare.obo")
rare_ids = {t.id for t in rare.terms() if not t.obsolete}

# 或用 subset 标签在主干本体内筛选
rare_by_subset = {t.id for t in valid.values()
                  if any("rare" in str(s).lower() for s in t.subsets)}
print("rare (file):", len(rare_ids), "| rare (subset tag):", len(rare_by_subset))

要点:文件子集与 subset 标签的计数可能不同(口径差异),固定一种口径并记录(对应 §3.2 的不可求和说明)。

§6.4 PyTorch DataLoader(疾病归一示例)

import torch
from torch.utils.data import Dataset, DataLoader
import random

class DiseaseNormDataset(Dataset):
    """把 (疾病名变体 -> MONDO 概念) 构造成分类/检索样本。"""
    def __init__(self, syn_pairs):
        # syn_pairs: List[(text, mondo_id)]
        self.pairs = syn_pairs
        self.label2idx = {m: i for i, m in enumerate(sorted({p[1] for p in syn_pairs}))}

    def __len__(self):
        return len(self.pairs)

    def __getitem__(self, i):
        text, mondo_id = self.pairs[i]
        return text, self.label2idx[mondo_id]

def collate(batch, tokenizer, max_len=64):
    texts, labels = zip(*batch)
    enc = tokenizer(list(texts), padding=True, truncation=True,
                    max_length=max_len, return_tensors="pt")
    return enc, torch.tensor(labels)

# —— 关键:按概念分组划分,防同义词泄漏(见 §5.3)——
all_pairs = [(t, m) for t, m in ...]  # 自建 (text, mondo_id)
concepts = sorted({m for _, m in all_pairs})
random.seed(42); random.shuffle(concepts)
cut = int(0.8 * len(concepts))
train_c, test_c = set(concepts[:cut]), set(concepts[cut:])
train = [p for p in all_pairs if p[1] in train_c]
test  = [p for p in all_pairs if p[1] in test_c]

# loader = DataLoader(DiseaseNormDataset(train),
#                     batch_size=128, shuffle=True,
#                     collate_fn=lambda b: collate(b, tokenizer))
print("train concepts:", len(train_c), "| test concepts:", len(test_c))

要点:划分以概念为单位(不是以文本行为单位),这是防泄漏的核心(§5.3)。若采用对比学习,应对同一概念的 EXACT 同义词作正对、对 NARROW/BROAD 同义词作困难负对;采样器需保证每个 batch 内含同一概念的多个同义词变体,否则对比损失无法收敛。

§6.5 坑点(8 个)

以下 8 个坑点按"新手命中率高 + 后果严重"筛选,每个给出问题/症状/三级解法。前 5 个与本体使用直接相关,后 3 个是版本治理与跨库整合层面的深水区。

⚠️ 坑点 1:把疾病本体当患者级数据集使用(分类:认知错位)

问题:Mondo 是本体知识资源,描述"疾病概念"而非"病人"。误以为它能提供样本量、临床测量或人群统计,会从根上误用整个资源——例如把"29,315 条疾病术语"当成"29,315 个病例"。
症状:需求文档里写"用 Mondo 训练诊断模型"却拿不到任何患者特征;把术语计数当样本数写进论文被审稿人直接质疑。
解决:

  1. 简单方法:明确 Mondo 的定位是"语义层/标签空间",患者级数据另找来源(EMR、队列库)。
  2. 进阶方法:把 Mondo 用在正确环节——归一、映射、图谱骨架,与真实数据管线解耦。
  3. SOTA 方法:以 Mondo 为疾病节点层,联合 HPO(表型)、GO(功能)、真实队列数据构建分层知识图谱,各层职责清晰。
    参考:Mondo 官方门户;本条 §1.0、§3.1

⚠️ 坑点 2:版本漂移与 PURL 直链击穿可复现性(分类:工程陷阱)

问题:Mondo 月度发布,术语增删与映射修订是常态。若生产管线使用 OBO Foundry PURL 直链(始终指向最新),两个时间点的分析结果不可比;不同快照的疾病总数(29,315 / 25,938 / 27,439)正是这种漂移的体现。
症状:三个月前的归一结果今天对不上;论文被要求"注明 Mondo 版本"时无法回答;同一批数据两次运行标签集合不同。
解决:

  1. 简单方法:从 GitHub release 标签下载固定版本,本地存档并记录 release 日期。
  2. 进阶方法:用 DVC/git-lfs 登记 release 资产与 sha256;监控术语数变化作为漂移指标,超阈值触发回归测试。
  3. SOTA 方法:建立"本体版本迁移层"——利用 is_obsolete/replaced_by 信息自动改写历史标签,使旧标注平滑升级到新版本。
    参考:Mondo releases;Mondo 文档

⚠️ 坑点 3:混淆同义词作用域(EXACT/NARROW/BROAD/RELATED)(分类:预处理陷阱)

问题:Mondo 的 91,442 条同义词(69,073 精确 + 2,500 狭义 + 1,443 广义 + 18,426 相关)不等价。把狭义/广义同义词当精确同义词做双向归一,会引入方向错误与方法论不可解释的过匹配。
症状:把"小细胞肺癌"归到"肺癌"概念并被当作等价;把广义术语当精确匹配导致归一结果层级错位;模型在困难负样本上大面积失败。
解决:

  1. 简单方法:归一索引只放 EXACT;NARROW/BROAD 仅在需要层级映射时单独处理。
  2. 进阶方法:按 scope 设置匹配置信度权重;对 NARROW/BROAD 记录方向,构建有向匹配而非等价匹配。
  3. SOTA 方法:用逻辑定义与等价公理做严格等价判定(推理器层面),字符串匹配只作候选生成。
    参考:本条 §4.2;OBO 文献

⚠️ 坑点 4:假定 Mondo↔临床编码是一一对应(分类:映射误用)

问题:Mondo 到 ICD/SNOMED CT 的 xref 是"语义桥接"而非 1:1 映射。一个 ICD 编码可能对应多条 Mondo 概念(肿瘤亚型细分),一条 Mondo 概念也可能对应多个编码(ICD-9 与 ICD-10 并存)。
症状:编码对齐时大量"多对一/一对多"冲突未处理,统计口径错乱;把 xref 直接当成计费编码使用导致合规风险。
解决:

  1. 简单方法:读取映射时保留卡氏性(一个源 ID 对应几个目标),不假定唯一。
  2. 进阶方法:用 SSSOM 的映射元数据(置信度、映射类型 exact/broad/narrow)做分层,冲突项人工裁决。
  3. SOTA 方法:把编码对齐建模为多对多的图匹配问题,用本体逻辑定义约束可接受的映射组合。
    参考:本条 §2.1、§2.1b;SSSOM 规范

⚠️ 坑点 5:全量载入 242MB OWL 导致内存爆炸(分类:工程陷阱)

问题:mondo.owl 约 242MB,直接用 OWL API/rdflib 全量构建三元组图会消耗数 GB 内存;在容器或笔记本上极易 OOM。
症状:解析到一半进程被 kill;CI 上因内存超限失败;简单查询也要等数分钟。
解决:

  1. 简单方法:不需要逻辑推理时用 mondo.obo(50.7MB)或 mondo.json(103MB)替代 OWL。
  2. 进阶方法:用 OAK/Ontology Access Kit 的索引化适配器按需加载;或先转换成本地数据库(SQLite)再查。
  3. SOTA 方法:只需层级/标签时预计算为精简 TSV(§6.3),把大文件一次性加工成小索引,之后不再触碰原文件。
    参考:本条 §3.3、§3.4

⚠️ 坑点 6:混淆疾病概念与表型概念(Mondo vs HPO)(分类:语义污染)

问题:Mondo 是疾病本体、HPO 是表型本体,二者正交。把症状/表型名归到 Mondo、把疾病名归到 HPO,或在同一标签空间混用两者 ID,会污染语义层级。
症状:"肌张力低下"被错误映射到某个疾病 ID;知识图谱中表型与疾病节点混层,推理结果不可解释;"表型→疾病"管线方向混乱。
解决:

  1. 简单方法:严格分域——疾病名进 Mondo,症状/表型名进 HPO,物理隔离两个索引。
  2. 进阶方法:在图上显式建模"疾病 has_phenotype 表型"边,使两者通过受控关系而非 ID 混用连接。
  3. SOTA 方法:用 OBO Foundry 的导入关系(Mondo 与 HPO 的官方互操作)做跨本体推理,保持各本体职责边界。
    参考:本条 §2.2;HPO 官方

⚠️ 坑点 7:跨版本拼接注释生成"幽灵术语"(分类:预处理陷阱)

问题:Mondo 保留废弃术语与合并记录(is_obsolete/replaced_by)。旧缓存、跨版本拼接或第三方教程数据可能让标注挂到已废弃概念上,制造只有历史意义的"幽灵标签"。
症状:标签空间比当前 release 多;个别标签全部样本来自历史时间窗;查询报"unknown term"。
解决:

  1. 简单方法:解析后过滤 is_obsolete: true,并用 id ∈ 当前有效术语集 做交集校验。
  2. 进阶方法:用 replaced_by 把废弃概念的标注迁移到接替概念(注意可能多值,需裁决)。
  3. SOTA 方法:建定期任务,把"幽灵术语率"纳入数据质量看板,配合 release QA 报告校验。
    参考:本条 §4.1、§4.5

⚠️ 坑点 8:把自动化/大模型映射当成无需人工复核的金标准(分类:质量治理)

问题:跨库疾病映射(尤其 xref 缺失的临床编码侧)常借助自动化或大模型补全,但映射会继承来源侧的过映射与幻觉错误,且本体的命名/粒度偏倚会被放大。
症状:自动化补全的映射里出现"语义相近但不等价"的错误对;下游统计因错误映射失真;错误在多个下游项目中扩散。
解决:

  1. 简单方法:所有自动生成的映射标记来源为"automatic",与官方 xref 分离存放,不混入金标准。
  2. 进阶方法:用 SSSOM 元数据记录置信度与生成方法,抽样人工复核,量化错误率。
  3. SOTA 方法:把映射质量纳入持续评估(对已知映射做回归);用本体逻辑一致性作为自动化映射的额外筛子。
    参考:本条 §7.4、§7.5;SSSOM 规范

§6.6 数据增强(安全与危险)

增强方式 安全性 说明
同义词扩展(EXACT) ✅ 安全 用官方精确同义词扩训练样本,首选
大小写/标点规范化 ✅ 安全 文本层面归一,不改变语义
缩写扩展 ⚠️ 谨慎 需权威缩写表,避免歧义
拼写扰动 ⚠️ 谨慎 可提升鲁棒性,但可能制造不存在病名
用 NARROW/BROAD 互换 ❌ 危险 改变语义方向,破坏等价性
大模型生成病名变体 ❌ 危险 可能生成幻觉病名,污染标签

§6.7 模型推荐表

任务 推荐模型/方法 说明
疾病名归一(字符串) 精确/模糊匹配 + 同义词索引 基线,快且可解释
疾病名归一(语义) 生物医学文本编码器(如 BioBERT/SapBERT 类) 处理写法差异
实体链接 候选生成 + 重排序(含层级特征) 结合 is_a 与 scope
映射补全 规则 + 逻辑约束 + 人工复核 慎用纯自动生成
知识图谱推理 OWL 推理器 / 图神经网络 利用等价公理与层级

§6.8 硬件需求表

场景 内存 说明
解析 OBO/JSON 做归一 4-8 GB 轻量,笔记本可行
全量载入 OWL 做推理 16-32 GB 建议服务器
预计算索引后查询 1-2 GB 推荐的生产形态
大图谱联查(GO/HPO 联动) 32 GB+ 视图规模而定

§6.9 评估指标代码

from sklearn.metrics import accuracy_score, f1_score

def eval_normalization(y_true, y_pred):
    """y_true/y_pred: List[MONDO ID 或 None],用于疾病归一评估。"""
    # 严格准确率:必须完全命中
    strict = accuracy_score(y_true, y_pred)
    # 容忍:预测为真实概念的祖先/后代时部分计分(示例:仅统计精确匹配,祖先容忍需另传层级表)
    macro_f1 = f1_score(y_true, y_pred, average="macro", zero_division=0)
    # 覆盖率:非 None 预测占比
    coverage = sum(p is not None for p in y_pred) / len(y_pred)
    return {"strict_acc": strict, "macro_f1": macro_f1, "coverage": coverage}

# 层级感知指标需用 §6.3 的 term_ancestors 表判定预测与真值的包含关系
def hierarchy_aware(y_true, y_pred, ancestors):
    ok = 0
    for t, p in zip(y_true, y_pred):
        if p == t or (p is not None and p in ancestors.get(t, set())):
            ok += 1
    return ok / len(y_true)

要点:疾病归一的评估必须同时报告严格准确率与层级容忍指标,并明确容忍规则(预测为祖先是否算对)——不同论文口径不同,直接比数会失真。

§6.10 MLOps 笔记

  • 版本固定:管线配置中显式写 release 标签(如 mondo_v2026-09-01),禁止 PURL 直链进入生产。
  • 校验值:下载后计算 sha256 并随 release 标签存档,作为数据契约。
  • 漂移监控:定期对比关键指标(术语数、xref 数、定义覆盖率)变化,超阈值告警。
  • 映射版本与本体版本绑定:SSSOM 映射文件必须与本体 release 成对存档,避免"新本体 + 旧映射"的隐性错配。
  • 回归测试:对固定的一组"金标准疾病名→ID"用例做回归,检测版本升级后的意外变化。
  • 不可变发布:releases/<version>/ 只读,派生索引可重建,原始文件永不原地修改。

§7 质量评估与局限性

§7.1 已知偏倚表

偏倚类型 表现 影响 缓解
策展偏倚 孟德尔遗传病与罕见病覆盖更密,感染性/环境相关疾病较稀疏 归一在非遗传病上召回更低 按类别分层评估,不报单一总指标
来源偏倚 来源库(OMIM/Orphanet)以基因与罕见病为中心 继承来源库的命名与粒度偏好 引入临床来源交叉验证
人群可及性偏倚 研究充分的人群/疾病更完整 对欠服务人群疾病覆盖不足 显式记录覆盖缺口,谨慎外推
语言偏倚 主本体以英语为主 非英语病名归一需依赖翻译版 使用 mondo-international 或自建翻译映射
自动化映射偏倚 自动补全映射继承来源侧错误 错误映射在下游扩散 分离自动映射,抽样人工复核

§7.2 策展质量

Mondo 的质量由三重机制保证:逻辑推理器一致性校验(本体无矛盾)、CI 自动化回归(结构规则与 QA 报告)、月度 release 评审。但需注意:字段覆盖率并非 100%——29,315 条术语对应 19,156 条定义,定义缺口约三成;xref 在临床编码侧分布不均。因此"官方发布"不等于"字段完备",下游应显式处理覆盖率缺口。

此外,质量评估需区分"结构质量"与"语义质量":结构质量(无环、主键唯一、格式规范)由自动化保障,可信度高;语义质量(某条定义是否准确、某个映射是否语义正确)依赖人工策展,其可靠性取决于策展深度与评审强度,在覆盖稀疏的疾病类别中相对更弱。下游若在高风险场景(如临床辅助)使用,应优先选择定义与 xref 完备的概念,并对稀疏概念加做人工复核。

§7.3 泛化性表

泛化维度 表现 说明
跨来源泛化 中 对已整合来源(OMIM/Orphanet)好,对未整合来源弱
跨语言泛化 弱-中 英语最优,其他语言依赖翻译版
跨版本泛化 中 概念 ID 较稳定,但计数与边界会变
跨疾病类别泛化 不均衡 遗传病强、其他类别弱
临床自由文本泛化 中 依赖同义词覆盖与消歧质量

§7.4 伦理

Mondo 是术语资源,不涉及人类受试者数据或个人敏感信息(无患者记录、无 PII)。相关的伦理关注点在于:① 疾病分类可能隐含对人群的价值判断,应避免用本体标签做歧视性推断;② 归一/映射的错误在临床下游可能造成实际危害,必须人工复核;③ 自动化或大模型生成的映射不得未经审核直接进入临床路径。使用须遵守 CC BY 4.0 的署名要求。

§7.5 公平性

  • 覆盖公平:不同疾病类别的策展深度不均(遗传病 vs 感染性/环境病),导致归一能力在类别间不平等,可能使某些疾病的研究数据更难对齐。
  • 人群公平:研究充分的人群其疾病概念更完整,欠服务人群可能面临更低的归一覆盖率,长期会放大数据不平等。
  • 语言公平:非英语病名的归一依赖翻译版,覆盖不足时形成语言门槛。
  • 建议在评估中按类别/人群/语言分层报告指标,而非只报全局数字。

§7.6 数据漂移

漂移来源 表现 监控手段
月度 release 术语数、xref 数、定义数变化 对比关键计数(本条目已记录 29,315/25,938/27,439 三口径)
来源库更新 上游新增/修订疾病经整合进入 追踪 OMIM/Orphanet 等来源版本
映射修订 已有 xref 被修正 SSSOM 版本 diff
废弃/合并 术语被标记 obsolete 或 replaced_by 监控废弃术语率

三口径冲突存照(本条目抓取时点 2026-09-30):官方门户实抓疾病总数为 29,315;搜索快照为 25,938;早期 brief 为 27,439。三者不一致正是活跃本体的版本漂移特征。本条目以官网最新实抓为主口径,另两口径存照(见 §9)。

§7.7 DAIMS 24 项检查表

# DAIMS 检查项 状态 说明
1 主键唯一性 ✅ MONDO ID 唯一
2 主键稳定性 ⚠️ 跨版本大体稳定,废弃术语除外
3 字段定义清晰 ✅ OBO 字段语义明确
4 字段覆盖率 ⚠️ 定义约 65%(19,156/29,315)
5 数据来源标注 ✅ 定义与 xref 带来源
6 层级无环 ✅ DAG 保证无环
7 层级完整性 ⚠️ 部分概念层级较浅
8 同义词作用域标注 ✅ EXACT/NARROW/BROAD/RELATED
9 交叉引用有效性 ⚠️ 临床编码侧覆盖不均
10 废弃机制 ✅ is_obsolete/replaced_by
11 逻辑一致性 ✅ 推理器校验
12 版本可追溯 ✅ 月度 release + 标签
13 许可明确 ✅ CC BY 4.0
14 下载可复现 ✅ GitHub release 固定版本
15 校验值 ⚠️ 官方未统一公布 sha256
16 多语种支持 ⚠️ 首批日语,覆盖有限
17 文档完备 ✅ ReadTheDocs
18 映射标准 ✅ SSSOM
19 临床可用性声明 ⚠️ 需自行做合规声明
20 偏倚披露 ⚠️ 部分披露,需自查
21 更新频率声明 ✅ 月度
22 社区支持 ✅ Monarch 生态
23 互操作性 ✅ OBO Foundry 生态
24 持久标识 ✅ PURL + DOI(论文)

结论:Mondo 在结构完整性、标准化与治理上表现优秀(多数 ✅),主要短板集中在字段覆盖率、临床编码映射完备性、校验值公布三处(⚠️),需下游自行补齐。

§7.8 外部验证矩阵

验证维度 方法 可获得的保证
逻辑一致性 推理器全量校验 本体无矛盾
映射准确性 与官方 SSSOM 对照 + 抽样人工 映射质量
归一对准率 独立来源病名集评测 跨来源泛化
稳定性 跨 release 回归测试 复现性
临床合理性 临床专家抽样复核 语义正确性

重要提醒:用旧 release 训练、新 release 测试不构成独立外部验证(同一概念 ID 大多不变),真正的外部验证需使用完全独立来源的疾病名称集。


§8 基准与生态

§8.1 官方工具与生态角色(无模型排行榜说明)

Mondo 是本体资源,没有传统 ML 意义上的 benchmark 排行榜。它的"评估"体现为逻辑一致性验证、跨库映射覆盖率与归一对准率。生态角色如下:

角色 代表 说明
维护方 Monarch Initiative 本体策展与发布
标准组织 OBO Foundry 本体收录与规范
集成平台 BioPortal、OLS 在线浏览与 API
映射标准 SSSOM 跨库映射交换
下游应用 ClinGen、Kids First、Ancestry、Human Cell Atlas 疾病语义对齐的用户

§8.2 选型建议

  • 需要疾病术语归一/映射:Mondo 是首选开放资源;若需临床编码专精,叠加 SNOMED CT/ICD 映射。
  • 需要表型推理:Mondo + HPO 组合(表型→疾病)。
  • 需要基因-疾病关联:Mondo 作疾病层,联用 OMIM/DisGeNET(库内条目 159/449)。
  • 需要功能语义:Mondo 作疾病层,联用 Gene Ontology(库内条目 441)。
  • 许可受限场景:确认可用 CC BY 4.0(Mondo)后再选源,避免误用受限临床术语。

§8.3 评测协议

协议要素 建议做法
划分 按概念分组,防同义词/层级泄漏(§5.3)
指标 严格准确率 + 层级容忍指标 + 覆盖率(§6.9)
负样本 用 NARROW/BROAD 构造困难负样本
版本 固定 release,报告日期
映射评估 区分官方 xref 与自动补全映射
数据集 库内 rid 关系
Gene Ontology 441 基因功能本体,疾病-基因-功能链路
NCBI Disease 425 疾病语料/术语资源,Mondo 常作其归一目标
OMIM 159 孟德尔病来源库,Mondo 的 xref 源
DisGeNET 449 疾病-基因关联
SNOMED CT 557 临床术语,Mondo 桥接对象
ChEBI 314 化学实体本体,多本体联动
HPO 本轮同批 表型本体,与 Mondo 正交互补(§2.2 划界)

§8.5 关键论文 Top 6

  1. Vasilevsky NA, Toro S, Matentzoglu N, et al. Mondo: Integrating Disease Terminology Across Communities. Genetics. 2025. DOI 10.1093/genetics/iyaf215. PMID 41052288.
  2. Mungall CJ, et al. The Monarch Initiative: an integrative data and analytic platform. Nucleic Acids Res. 2017.
  3. Haendel MA, et al. The Monarch Initiative in 2019: an integrative data and analytic platform. Nucleic Acids Res. 2020.
  4. Köhler S, et al. The Human Phenotype Ontology in 2021. Nucleic Acids Res. 2021.(表型本体,联用)
  5. Matentzoglu N, et al. SSSOM: Simple Standard for Sharing Ontological Mappings. 2022.(映射标准)
  6. 早期预印本:Mondo: Unifying diseases for the world, by the world. medRxiv. 2022-04-13.

引用提示:第 1 条为正式论文(推荐引用),第 6 条为早期预印本(标题不同,见 §9.3 双口径提示);第 2、3 条为 Monarch 平台论文,用于理解 Mondo 的生态定位。

§8.6 社区活跃度

  • 发布节奏:月度 release,持续更新。
  • 代码托管:GitHub monarch-initiative/mondo,活跃维护。
  • 生态集成:OBO Foundry、BioPortal、Monarch 平台。
  • 资金保障:NIH-NHGRI RM1 HG010860-01。
  • 国际化:mondo-international(首批日语)持续扩展。
  • 贡献渠道:通过 GitHub issue 与 pull request 提报疾病概念修正,经策展人评审后并入月度 release。
  • 配套生态:Monarch 平台的疾病-表型-基因联合检索、OBO Foundry 的规范校验、BioPortal 的在线浏览共同构成社区使用面。

§8.7 生态快照表

维度 快照(2026-09)
最新 release v2026-09-01
疾病术语总数 29,315
跨库交叉引用 139,255
主要格式 OWL / OBO 1.4 / JSON
许可 CC BY 4.0
多语种 首批日语
维护机构 Monarch Initiative

§9 相关资源与引用

§9.1 官方资源清单

资源 地址
官方门户 https://mondo.monarchinitiative.org/
官方文档 https://mondo.readthedocs.io/
GitHub 仓库 https://github.com/monarch-initiative/mondo
GitHub Releases https://github.com/monarch-initiative/mondo/releases
OBO Foundry 条目 https://obofoundry.github.io/ontology/mondo
PURL 直链 http://purl.obolibrary.org/obo/mondo.owl / .obo / .json
BioPortal https://bioportal.bioontology.org/ontologies/MONDO
论文 https://doi.org/10.1093/genetics/iyaf215

§9.2 BibTeX 引用块

@article{vasilevsky2025mondo,
  title   = {Mondo: Integrating Disease Terminology Across Communities},
  author  = {Vasilevsky, Nicole A. and Toro, Sabrina and Matentzoglu, Nicolas and others},
  journal = {Genetics},
  year    = {2025},
  doi     = {10.1093/genetics/iyaf215},
  pmid    = {41052288}
}

@misc{mondo2026release,
  title        = {Mondo Disease Ontology, release v2026-09-01},
  author       = {{Monarch Initiative}},
  year         = {2026},
  howpublished = {\url{https://github.com/monarch-initiative/mondo/releases}},
  note         = {Licensed under CC BY 4.0}
}

@misc{mondo2022preprint,
  title        = {Mondo: Unifying diseases for the world, by the world},
  author       = {{Monarch Initiative}},
  year         = {2022},
  howpublished = {medRxiv preprint, 2022-04-13},
  note         = {Early preprint; title differs from the 2025 journal article}
}

§9.3 引用指南

  • 引用论文:优先引用 Vasilevsky et al., Genetics 2025(DOI 10.1093/genetics/iyaf215)。
  • 引用数据:必须注明具体 release 标签与日期(如 v2026-09-01),这是本体数据的可复现性要求。
  • 许可声明:Mondo 采用 CC BY 4.0,使用时须署名 Monarch Initiative 并附许可声明。
  • 双口径提示:若引用早期预印本,请注意其标题(“Unifying diseases for the world, by the world”)与正式论文标题不同,勿混为同一篇。
  • 工具使用:标注所使用的解析库与版本(如 pronto/pyobo/ROBOT),便于复现。

§10 AI 使用声明卡

§10.1 AI 模型列表

  • 大语言模型(文本起草与结构组织):本次词条编辑使用。
  • 检索增强(WebSearch/WebFetch 事实核验):覆盖官方门户统计、论文、GitHub releases、OBO Foundry、官方 sources 页与许可说明。

§10.2 AI 参与范围

AI 参与了以下环节:检索结果汇总、初稿撰写、代码示例起草、表格整理与 DAIMS 自评草案。事实性数字全部来源于 FACTS.md 登记的检索结果;AI 未进行任何独立实验或原始数据验证。

边界声明:AI 无法逐一实测 Mondo 文件内容(如验证 mondo.owl 的确切行数或解析耗时),文中文件大小均为量级定性口径而非逐字节实测;代码示例经静态逻辑走查而非实际运行验证;ICD/SNOMED 映射表中的编码形态示例用于说明映射结构,实际映射以对应 release 的官方文件为准。上述信息若用于生产,请以实际下载与运行为准。

§10.3 输入来源列表

  1. Mondo 官方门户(统计与下载入口). https://mondo.monarchinitiative.org/
  2. Mondo 官方文档. https://mondo.readthedocs.io/
  3. Monarch Initiative GitHub 仓库与 Releases. https://github.com/monarch-initiative/mondo
  4. OBO Foundry Mondo 条目. https://obofoundry.github.io/ontology/mondo
  5. Vasilevsky NA, et al. Mondo: Integrating Disease Terminology Across Communities. Genetics. 2025. DOI 10.1093/genetics/iyaf215(PMID 41052288).
  6. Mondo 预印本. Mondo: Unifying diseases for the world, by the world. medRxiv. 2022-04-13.
  7. OBO Foundry / OBO Library PURL. http://purl.obolibrary.org/obo/mondo.obo
  8. SSSOM 映射规范. https://github.com/mapping-commons/sssom
  9. BioPortal MONDO 条目. https://bioportal.bioontology.org/ontologies/MONDO
  10. Human Phenotype Ontology 官方. https://hpo.jax.org/
  11. Gene Ontology 官方. https://geneontology.org/
  12. Monarch Initiative 主站. https://monarchinitiative.org/

§10.4 人工校验表

内容模块 审核者 审核方式 审核状态
规模数字(术语数/xref 数/定义数) 千方病案医学编辑部 对照官方门户 2026-09-30 实抓逐项核对 ✅ 已通过
论文信息(标题/年份/DOI/PMID) 千方病案医学编辑部 对照 PubMed 与官方引用核对 ✅ 已通过
版本链(月度 release 序列) 千方病案医学编辑部 对照 GitHub releases 核对 ✅ 已通过
许可与引用合规表述 千方病案医学编辑部 对照 CC BY 4.0 与官方文档核对 ✅ 已通过
与 HPO/GO 的划界表述 千方病案医学编辑部 对照两本体官方定位核对 ✅ 已通过
ICD/SNOMED 映射表 千方病案医学编辑部 对照映射形态与官方说明核对 ✅ 已通过
代码示例可运行性 数据工程审核者 依赖库与 API 静态复核 + 逻辑走查 ✅ 已通过
坑点与工程表述 数据工程审核者 对照检索来源逐条核对 ✅ 已通过

§10.5 AI 生成章节标注

本页面正文由 AI 辅助起草,经人工审核修订后发布;§10.4 表列各模块的审核对应关系即为本节标注。

§10.6 最后人工审核日期

2026-09-30(与 §0 审核日期一致)。


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • omim — 共享标签:医疗NLP / 知识图谱 / 罕见病 / 基因组学与多组学
  • pharos — 共享标签:医疗NLP / 知识图谱 / 基因组学与多组学
  • cometa — 共享标签:医疗NLP / 知识图谱 / 命名实体识别
  • hpo — 共享标签:医疗NLP / 知识图谱 / 罕见病 / 基因组学与多组学
  • reactome — 共享标签:医疗NLP / 知识图谱 / 基因组学与多组学
  • gene-ontology — 共享标签:医疗NLP / 知识图谱 / 基因组学与多组学
  • hgnc — 共享标签:医疗NLP / 基因组学与多组学
  • pharmgkb — 共享标签:医疗NLP / 知识图谱 / 基因组学与多组学
  • medmentions — 共享标签:医疗NLP / 知识图谱 / 命名实体识别
  • distemist — 共享标签:医疗NLP / 知识图谱 / 命名实体识别

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集