Precision Medicine Knowledge Graph (PrimeKG): 构建面向精准医学的多模态知识图谱
本文是对发表在 Scientific Data 期刊上的数据描述论文《Building a knowledge graph to enable precision medicine》的学术报告。该研究由 Payal Chandak(Harvard-MIT Program in Health Sciences and Technology)、Kexin Huang(Stanford University Department of Computer Science)以及 Marinka Zitnik(Harvard Medical School Department of Biomedical Informatics)等人完成,于2023年正式发表。
一、研究背景与目标
精准医学的核心理念在于根据个体在遗传、环境和生活方式上的差异来制定个性化的诊断和治疗策略。然而,实现这一目标所依赖的生物医学知识本身呈现高度碎片化状态。复杂疾病的相关信息横跨基因组学、转录组学、蛋白质组学、分子功能、细胞内与细胞间通路、表型、治疗手段以及环境影响等多个组织尺度,散落在各类出版物、非标准化数据仓库、持续演化的本体论以及临床指南中。已有的一些疾病知识图谱虽然在特定领域取得了进展,但普遍存在疾病覆盖范围有限、缺乏多模态连接以及疾病实体表示不一致等突出问题。
在此背景下,研究者提出构建 Precision Medicine Knowledge Graph(PrimeKG),一个面向精准医学分析的多模态知识图谱。该工作的核心目标在于整合多个高质量数据资源,系统性地描述疾病与生物医学实体之间的复杂关系,从而为疾病分型、药物重定位、疾病机制解析以及人工智能辅助分析等任务提供统一且可扩展的数据基础。
二、数据资源整合与构建流程
PrimeKG 的构建整合了20个高质量的一次数据资源,这些资源在节点类型和关系类型上各有所长。主要资源包括:Bgee 基因表达知识库、Comparative Toxicogenomics Database (CTD)、DisGeNET 基因-疾病关联知识库、Disease Ontology、DrugBank、Drug Central、Entrez Gene、Gene Ontology、Human Phenotype Ontology (HPO)、Mayo Clinic 知识库、Mondo Disease Ontology (MONDO)、Orphanet、Reactome Pathway Database、Side Effect Resource (SIDER)、Uberon 多物种解剖本体、Unified Medical Language System (UMLS) 以及多个蛋白质-蛋白质相互作用数据库。
构建过程可分为几个关键步骤。首先是数据下载与预处理。研究者从各资源的官方数据源获取原始数据,并根据每个数据集的特点进行清洗和过滤。例如,Bgee 数据中仅保留错误发现率校正后 p 值不超过0.01的高质量表达记录;CTD 数据去除头部注释信息;DrugBank 数据通过 Beautiful Soup 包提取药物协同作用信息;Gene Ontology 数据利用 GOATools 包提取基因与 GO 术语之间的关系。
其次是节点类型的定义与本体标准化。PrimeKG 最终包含10种节点类型:生物过程、蛋白质、疾病、表型、解剖结构、分子功能、药物、细胞组分、通路和暴露。每种节点类型均采用统一的本体标识符进行编码。药物节点使用 DrugBank 标识符,疾病节点使用 MONDO 标识符,解剖节点使用 Uberon 标识符,通路节点使用 Reactome 标识符,基因/蛋白质节点使用 Entrez Gene ID,生物过程、分子功能和细胞组分使用 Gene Ontology 术语,表型与药物副作用统一归为 effect/phenotype 类型并使用 HPO ID 编码,暴露节点则使用 CTD 提供的 MeSH 标识符。
第三是跨资源的节点对齐与关系抽取。在整合不同数据库时,研究者特别关注了疾病与表型节点之间的重叠问题。由于 MONDO 和 HPO 同由 Monarch Initiative 开发,二者存在大量重叠节点。研究者通过识别同时存在于两个本体中的节点,将这些重叠表型节点转换为疾病节点,并相应调整相关边的类型。此外,UMLS 到 MONDO 的映射采用了直接交叉引用和间接映射两种策略,间接映射通过 OMIM、NCIT、MeSH、MedDRA、ICD-10 和 SNOMED CT 等中间本体完成。
第四是图的构建与清洗。在合并所有处理后的数据后,研究者删除了缺失值和重复边,添加了反向边,再次去重并移除自环,形成了原始知识图谱。为了确保图的连通性,使用 igraph 包提取了最大连通分量,该分量保留了原图中99.998%的边。最终 PrimeKG 包含129,375个节点和4,050,249条边。
第五是临床文本特征的补充。药物节点从 DrugBank 和 Drug Central 中提取了分子量、拓扑极性表面积、clogP、药物分组、状态、适应症、作用机制、药效学、半衰期和蛋白质结合等特征。疾病节点从 MONDO、Orphanet、Mayo Clinic 和 UMLS 中提取了定义、患病率、流行病学、临床描述、管理治疗方案、症状、病因、风险因素、并发症、预防以及就诊建议等特征。这些文本信息使 PrimeKG 不再仅仅是结构化的关系网络,而是具备了多模态数据分析能力。
三、疾病实体解析与节点分组
疾病实体的表示不一致是构建大规模疾病知识图谱的核心挑战之一。以自闭症谱系障碍为例,MONDO 包含37个相关疾病概念,UMLS 包含192个,而 Orphanet 仅包含6个。更关键的是,这些本体中定义的疾病亚型与临床实际观察到的亚型并不完全对应。临床研究仅识别出三种自闭症亚型,分别以癫痫、多系统与胃肠道疾病以及精神疾病为主要表现,而 MONDO 中的疾病概念如“autism, susceptibility to, 1”缺乏明确的临床含义。
为了解决这一问题,研究者采用了一种半自动化的无监督分组策略。首先,通过字符串匹配方法,识别以数字、罗马数字或“type”结尾的疾病名称,提取其主疾病短语并寻找匹配项。随后,利用 ClinicalBERT 语言模型获取疾病名称的词嵌入表示,该模型在 PubMed 生物医学文献和 MIMIC-III 出院摘要上进行了预训练,能够编码医学语义信息。研究者计算疾病名称嵌入向量之间的余弦相似度,并在相似度阈值0.98以上时进行人工审核,最终确认分组。经过这一过程,22,205个 MONDO 疾病概念被合并为17,080个具有临床意义的疾病节点,显著提高了疾病节点的边密度和临床相关性。
四、主要结果与技术验证
PrimeKG 相较于已有的三个重要生物医学知识图谱——SPOKE、HSDN 和 GARD——展现出四个显著优势。第一,疾病覆盖范围大幅扩展。PrimeKG 包含22,236个疾病术语,分组后为17,080个临床疾病,较现有知识图谱提升一到两个数量级。第二,药物-疾病关系类型更加丰富。除传统的“治疗”边外,PrimeKG 还包含适应症、禁忌症和超说明书用药等多种关系边,为分析药物如何影响疾病相关网络提供了更细粒度的信息。第三,罕见疾病覆盖显著。Orphanet 中9,348种罕见疾病的90.8%在 PrimeKG 中以疾病节点形式存在。第四,多模态特征。PrimeKG 为药物和疾病节点补充了临床文本描述,实现了分子知识与医学知识的融合。
在药物重定位验证中,研究者选取了2021年6月之后 FDA 批准的40种新疗法,其中11种为已重定位药物。由于 PrimeKG 的数据截止至2021年6月,这确保了无时间数据泄漏。对这11个药物-疾病对进行网络邻近性分析,结果显示在10个可评估的案例中,有8个案例中相关药物与适应症疾病之间的最短路径距离显著小于随机期望(Bonferroni 校正后 p ≤ 0.05)。例如,Inclisiran 与家族性高胆固醇血症之间的最短路径距离为2,而随机距离均值为4.61,表明仅需筛选3.4%的药物即可在该疾病邻近区域找到阳性结果。
五、PrimeKG 的数据结构与可用性
PrimeKG 以三元组形式存储,包含源节点、关系和目标节点。每个节点提供 node_index(图内唯一索引)、node_id(本体标识符)、node_type(节点类型)、node_name(节点名称)和 node_source(来源本体)。每条边提供 relation(关系类型)、x_index 和 y_index。该数据在标准 CPU 上5.18秒内即可加载至内存,查询响应时间一般不超过1秒。数据存储于 Harvard Dataverse,并提供了详细的更新构建指南和 Jupyter notebook 教程,确保了数据的可复现性和持续更新能力。
PrimeKG 的构建不仅解决了疾病知识图谱在覆盖范围、关系多样性和多模态特征方面的不足,更为未来的精准医学研究提供了一个可扩展、可更新的统一数据基础设施。通过与图神经网络等深度学习方法的结合,PrimeKG 有望在疾病生物标志物发现、疾病过程表征、疾病分类优化、表型特征识别以及药物重定位等方向发挥重要作用。