大家好!本文给大家介绍来自阿斯利康的AI工程总监Eliseo Papa带领的研究团队发表在bioRxiv的一篇文章“Biological Insights Knowledge Graph: an integrated knowledge graph to support drug development”。文中提出了一个新的知识图谱——Biological Insights Knowledge Graph (BIKG),它充分结合了来自公开数据源和阿斯利康企业内部数据源的相关数据,能够为一系列任务(从新靶点的识别,到现有药物的再利用)提供洞察力。本文描述了实现BIKG图的主要设计选择,并讨论了其从图的构建到开发的生命周期的各个方面。
1
介绍
随着机器学习算法处理生命科学知识图谱的的发展,越来越多的工作集中于构建支持此类算法的集成知识图谱。例如,OpenBIOLink提供了一个通用基准来评估生命科学相关任务的机器学习算法;DRKG结合了最相关的资源来支持药物再利用任务;CKG汇集了多组学数据以支持精准医疗。
知识图谱的一个重要作用是可以作为机器学习模型的训练数据,尤其是图机器学习模型。本文描述的Biological Insights Knowledge Graph (BIKG):阿斯利康的一个项目。其旨在构建一个结合公共和内部数据的知识图谱,以推进使用机器学习来进行知识发现的研究。BIKG整合了来自多种数据源的数据,包括ChEMBL或Ensembl等公共数据库、使用自然语言处理 (NLP) 技术从全文出版物中提取的信息,以及作为阿斯利康药物开发过程和生物实验的一部分收集的各种专有数据集。
当在构建知识图谱时,图构建的过程专注于统一多源数据集的结构和工作流的灵活性,同时还必须考虑它们作为训练数据的新用途,其会影响核心设计的选择。因此,除了对组织上的知识图谱的常见要求(例如能够精确地捕获域并赋予用户搜索和查询数据的能力)之外,BIKG还对于处理多用例和支持特定用例的机器学习模型提出了额外挑战:简化数据模型以执行下游任务;可以针对不同的用例轻松定制图形内容;对图内容进行不同的投影以支持更广泛的消费模式等。
2
BIKG的开发
2.1 图的构建:汇集不同的数据源,执行数据集成任务以生成图并提供多种访问选项。
图1. BIKG项目概览(数据类型、图构建、示例用例)
2.1.1数据源
- 静态参考数据集。描述特定领域的标准数据集是BIKG图的“主干”,它们定义了用于表示相应域的高级结构和域实体的标识约定。这包括药物发现中常用的流行标准数据集,例如用于基因的Ensembl、用于药物化合物的ChEMBL、用于疾病的Mondo,以及Gene Ontology等。除了实际的内容数据,不同来源提供的映射集的集成本身就代表了附加值,允许终端用户在其特定用例来源的命名模式和图使用的规范模式之间快速切换。
- NLP提取的非结构性信息。使用NLP技术从自由文本来源(如PubMed中的科学文献)中提取的大规模关系丰富了图的内容。就数量而言,NLP提取的数据构成了图的最大组成部分(约80%的图的边)。
- 用户贡献的数据。有些终端用户拥有生物信息学背景,熟悉脚本编码和表格数据的操作。Python API有一个Bring Your Own Data (BYOD)模块能够让用户将数据转换为适合自动插入图形的预定义表格格式。使用这个API,用户可以解析自己的数据并将其集成到图的副本中。
2.1.2管道概述
BIKG是通过在云中运行的可再生的数据管道构建的,并且能够拓展以处理庞大的数据量。
图2. 图构建管道的主要步骤
- Build:配置中指定的源集将根据数据类型(节点、映射或边)加载并合并到一个表中。每个表都有一组标准化的列和潜在的其他列,这些列合并到含有所有列的单个表中(这会导致产生一个稀疏表,因为不同的节点类型具有不同的上下文数据)。此步骤包括了节点重复数据的删除和边的压缩。
- Testing:在图上运行语法和语义测试。为了确保大型生物医学知识图谱的数据质量,作者进行了以下几项检查:使用Great Expectations(GE)数据测试框架验证输入输出数据、配置和其他文件;在图上运行各种数据测试(例如,验证边表中引用的所有节点id是否存在于节点表中等);节点重复检查;Upper Level Ontology(ULO)约束检查(如图3)。
图3. BIKG ULO的核心片段
- Analysis:对图内容进行分析和记录。这包括计算简单的图形度量(节点、边和三种类型的分解、计数),并生成较小但具有代表性的节点和边的示例,用于目视检查。
- Sampling:由于整个图较大,因此产生几个小的样品以便于测试和基准标记。
- Public:此步骤生成完整图的子集。未来工作打算开放BIKG中由公开可用的数据组成的部分。
- Projections:此步骤创建图形的几个投影。不同的投影包含所有或大部分图数据,但以不同的文件格式实现,以服务于不同的目的(例如用于加载三重存储的RDF格式,用于加载Neo4j的CSV格式等)。
2.1.3 数据访问
根据用户的配置文件和任务的不同,需要以不同的方式与图进行交互。例如:关键字搜索、结构化查询或向模型输入数据。在构建BIKG图之后,最终用户可以通过以下几种不同的访问路径来访问BIKG图:
- 浏览器
BIKG浏览器是一个web界面工具,能够让用户方便检索和浏览图数据。其后端由一个定制的Elasticsearch索引提供支持,该索引将BIKG节点捕获为一组多字段文档,支持分面模糊关键字检索。浏览器索引提供了一个GraphQL API,支持对节点和边进行描述性查询。这个GraphQL API既为web UI服务,也让终端用户能够直接从脚本中检索数据。
图4. BIKG浏览器用户界面
- 图数据库
为了支持对BIKG图数据进行复杂的结构化查询,图数据被转换成适合加载到图数据库的格式。图数据库市场包括两个主要的开发流:RDF三重存储和属性图。最初,RDF三重存储主要用于处理复杂的结构化SPARQL查询,而属性图通常专注于图遍历算法。因此,BIKG图也被导出为两种适合于这两种不同模式的格式:rdf和Neo4j(CSV)。
- 列式存储器转储
考虑到图数据主要用于数据分析和ML任务,使数据易于从Python脚本访问很重要。为此,BIKG提供紧凑格式的数据转储,并使用相应的Python API直接使用数据,这比通过查询图数据库来检索数据更快、更方便。
3
图的使用:支持终端用户应用机器学习技术来解决用例任务。
3.1 Python库
为了最大限度地发挥BIKG在数据科学和机器学习中的作用,更直观和快速地访问数据。作者开发了一个Python包(图5),主要用于加载用户想要进行训练的BIKG数据子集。该包附带一个文档网站,包含快速入门、教程、信息和API解释(图6)。
图5. BIKG Python库的使用
图6. BIKG实例教程
3.2.2示例用例
- 靶点识别
作者建立了一个去中心化的管道来整合对用户很重要的实验数据。一旦摄入这些数据,连同来自BIKG的信息,就会生成所选疾病区域的潜在基因靶点的排名列表。作者利用该管道对慢性阻塞性肺疾病、哮喘和肺癌等潜在靶点进行了排名,在内部取得了重大成功。另外还通过尝试预测未发表的新靶点来测试公共数据管道。作者使用了2015年之前发布的数据作为训练集,并使用2015 - 2020年间发布的新发现的相关疾病靶点作为测试集。该模型可以预测未来5年内出现的95个相关新靶点中的16个,而当使用更多的数据类型并专注于特定疾病的子图时还可以观察到更高的性能。
- 对CRISPR screen的结果重新排序
获得耐药性是癌症治疗困难的一个主要因素。确定获得耐药性的关键驱动因素的一个策略是基于功能基因组筛选,如CRISPR screens。CRISPR screen识别出了数千个潜在的目标,而为了找到最有希望的基因,科学家们通常要经历漫长而费力的人工验证过程。作者通过建立在BIKG之上的推荐系统加速了这一过程。推荐引擎使用多目标 Pareto优化产生潜在最优解决方案的Pareto前沿,用户可以根据具体的用例需求对结果重新排序。
4
总结
BIKG项目的重点在于构建一个集成内部和外部相关数据的生命科学领域的知识图谱,暂时仅供阿斯利康内部使用。它可以应用于机器学习算法并获得新的洞察力。该方法在几个示例用例中已经证明了它的价值,例如CRISPR推荐和靶点识别。另外,这样的知识图谱还拥有组织层面上的次级效益:
- 缩短数据准备工作的时间:把构建图时调整数据格式和特征解析等常见的任务考虑在内,这给科学家留下更充足的时间进行实际研究。
- 提高质量:专用的API和模板,可以支持按需要快速添加用户数据以及获得来自涉众的快速反馈。
- 降低成本:核心图以及通用的任务解决方案可以在跨用例和跨组织单位之间重用。
在未来的工作中,作者将专注于研究BIKG图去适应新的用例,并提高其对新型机器学习技术(如图神经网络、强化学习和可解释人工智能)的适用性。
参考资料
Geleta D, Nikolov A, Edwards G, et al. Biological Insights Knowledge Graph: an integrated knowledge graph to support drug development. bioRxiv; 2021. DOI: 10.1101/2021.10.28.466262.