PrimeKG疾病数据流水线实战:MONDO、HPO、OMIM等5大数据库处理全流程解析

📅 2026/8/23 14:44:17
PrimeKG疾病数据流水线实战:MONDO、HPO、OMIM等5大数据库处理全流程解析
PrimeKG疾病数据流水线实战MONDO、HPO、OMIM等5大数据库处理全流程解析【免费下载链接】PrimeKGPrecision Medicine Knowledge Graph (PrimeKG)项目地址: https://gitcode.com/gh_mirrors/pr/PrimeKGPrimeKGPrecision Medicine Knowledge Graph精准医学知识图谱将 20 个高质量生物医学资源融合成一张异质知识图谱用 400 多万条关系描述 17,080 种疾病覆盖疾病、基因、蛋白、通路、药物等多个生物学尺度。本文面向新手手把手解析 PrimeKG 中疾病方向的数据流水线从 MONDO、HPO、OMIM、UMLS 到最终建图的完整处理流程帮你理解一张精准医学知识图谱是如何从零构建起来的。一、为什么需要疾病数据流水线疾病数据分散在几十个数据库里MONDO 定义了疾病的分类层级HPO 记录了疾病-表型注释OMIM 收录了数千种孟德尔遗传病的权威描述UMLS 则负责跨术语体系的映射。单独使用任何一个都无法刻画疾病全貌。PrimeKG 的思路是每个数据库写一个独立的处理脚本输出统一格式的 CSV 中间文件最后由建图脚本一次性整合。这就是datasets/processing_scripts/目录存在的意义——17 个脚本分别对应不同数据源全部输出到datasets/data/下供下游消费。二、准备工作一键拉取 20 个数据源环境安装两种方式# 方式一pip pip install -r updated_requirements.txt # 方式二conda conda env create --name PrimeKG --fileenvironment.yml批量下载原始数据仓库提供了datasets/primary_data_resources.sh脚本它会自动创建data/mondo、data/hpo、data/umls等 13 个数据目录用curl下载各数据库的原始文件OBO、RRF、TSV 等格式逐个调用对应的处理脚本完成清洗。如果只需自己构建最新版 PrimeKG克隆仓库后即可按此脚本执行OMIM 与 DrugBank 等需手动申请/认证获取git clone https://gitcode.com/gh_mirrors/pr/PrimeKG三、MONDO 疾病本体处理mondo.py 四步走MONDOMedical Ontology是疾病分类的核心骨架处理脚本为 mondo.py配套的 OBO 解析器是 mondo_obo_parser.py。整个流程只需 4 步步骤做什么输出文件1. 解析本体用OBOReader读取mondo.obo提取每个术语的 id、名称、是否弃用mondo_terms.csv2. 提取层级遍历所有is_a父级关系构成疾病上下位树mondo_parents.csv3. 抽取交叉引用解析 xref 字段如OMIM:615414打通与其他本体的桥梁mondo_references.csv4. 拆分定义与分组清洗 definition 字段按 subset 统计术语分组mondo_definitions.csv、mondo_subsets.csv 关键点第 3 步的mondo_references.csv是后续 UMLS 映射见第五节的输入——MONDO 与 OMIM 的mim_disease边正是从这里来的。四、HPO 人类表型本体术语 注释双管线HPO 的处理拆成两条独立管线1本体术语管线—— hpo.py解析器 hpo_obo_parser.py解析hp.obo产出hp_terms.csv术语表、hp_parents.csvis_a 层级、hp_references.csv交叉引用逻辑与 MONDO 几乎一致新手读懂一个即可举一反三。2疾病-表型注释管线—— hpoa.py读取phenotype.hpoa注释文件HPOA 格式跳过 4 行注释头并重新拼接多行记录按qualifier列拆分NOT限定词归入负向注释disease_phenotype_neg.csv其余归入正向注释disease_phenotype_pos.csv每条注释同时保留disease_ontologydisease_ontology_id这样同一个表型可以同时挂到 OMIM、MONDO 等不同疾病来源上。这就是知识图谱中占比最高的mim_phenotype边的原始来源2023 年 12 月版本新增了 57 万条此类边。五、OMIM 数据处理API 下载 工具函数OMIMOnline Mendelian Inheritance in Man是孟德尔遗传病的权威来源其处理涉及三个文件1. 数据下载datasets/omim/omim-api.ipynb这是一个 OMIM API 封装 notebook负责下载完整条目需先在 omim.org 申请 API Key落地为omim_full_path.json表型系列Phenotypic Series标题则手动下载为 tsv 文件。原始文件统一存放在datasets/omim/目录。2. 工具函数datasets/processing_scripts/omim_tools.py该脚本提供两个核心函数把庞杂的 JSON 转成整洁的 DataFrameget_omim_info()按mimNumber提取任意字段基因、外显率、遗传方式等get_omim_phenotype_info()展开phenotypeMapList抽取 HPO 表型号、表型系列号等直接产出建图所需的边表。3. 追加建图knowledge_graph/append_omim.ipynb该 notebook 读取mim2gene.txt、mimTitles.txt、genemap2.txt、morbidmap.txt等官方映射文件与 MONDO 交叉引用做连接为每个 OMIM 条目补全名称mimLabel / mimTitle然后批量生成mim_disease、mim_gene、mim_phenotype、mim_phenotypic_series等关系边追加进已有图谱。六、UMLS 映射给疾病节点对齐多套编号体系不同数据库用不同 ID 指同一种病ICD10、MeSH、SNOMED…UMLS 就是那个翻译官。1解析 UMLS 术语文件—— umls.py按|分隔解析MRCONSO.RRF的 14 个字段cui、source_cui、source、source_code 等只保留英文languageENG记录输出umls.csv。2构建 UMLS↔MONDO 映射—— map_umls_mondo.py分两条路直接映射从mondo_references.csv中取ontologyUMLS的 xref间接映射以source_cui、source_descriptor_dui、source_code三种键与 UMLS 表做内连接并只保留 OMIM、NCIT、MESH、MedDRA、ICD10、SCTID 等可信来源对两路合并去重后得到umls_mondo.csv让下游应用可以用任意术语体系的 ID 检索 PrimeKG 的疾病节点。七、整合建图build_graph.ipynb 一键出图所有中间 CSV 就绪后运行knowledge_graph/build_graph.ipynb即可一次性产出三个版本文件说明kg_raw.csv原始完整图所有节点与边kg_giant.csv最大连通分量剪枝后的巨图kg.csv正式发布版本社区数据加载器默认读取建图完成后若还需要特征工程疾病/药物文本描述可继续运行 engineer_features.ipynb 与 mapping_mayo.ipynb。跨数据源的通用工具如读取 json/gz 的read_data统一放在 scripts/utils.py 中复用。八、快速上手不建图也能用如果只想消费数据而不重建流水线直接下载 Harvard Dataverse 上的kg.csv约 4M 行用 pandas 即可查询import pandas as pd primekg pd.read_csv(kg.csv, low_memoryFalse) primekg.query(y_typedisease or x_typedisease)也可以借助社区数据加载器 PyTDCpip install PyTDCfrom tdc.resource import PrimeKG或 PyKEENpip install pykeen内置primekg数据集几行代码完成加载与网络转换。九、总结五条流水线的分工一览数据库处理脚本核心产出在图谱中的角色MONDOmondo.py术语/层级/引用/定义 4 表疾病节点骨架与上下位关系HPOhpo.py hpoa.py表型 3 表 正负向注释 2 表疾病-表型边最大边类型OMIMomim-api.ipynb omim_tools.pymim2gene、mimTitles 等映射表遗传病节点与基因/表型边UMLSumls.py map_umls_mondo.pyumls.csv、umls_mondo.csv跨体系疾病 ID 对齐建图build_graph.ipynbkg.csv 等 3 版图谱最终异质知识图谱 新手建议的阅读顺序先跑通 MONDO 管线最简单→ HPO → UMLS 映射 → OMIM需 API Key→ 建图。每个脚本都是下载 → 解析 → 输出 CSV三段式读懂一个就掌握了 PrimeKG 的全部模式。【免费下载链接】PrimeKGPrecision Medicine Knowledge Graph (PrimeKG)项目地址: https://gitcode.com/gh_mirrors/pr/PrimeKG创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考