方法文章

基于云的生物医学出版物中用户定义短语-类别关联的短语挖掘与分析

10.9K 次观看

DOI:

10.3791/59108

2019年2月23日

* These authors contributed equally

本文内容

摘要

我们提供了一种实验方案及相关的编程代码和元数据样本,以支持基于云平台的自动化识别,在生物医学文献中识别用户选定知识领域内代表独特概念的短语与类别之间的关联。通过本方案量化的短语-类别关联可促进对选定知识领域的深入分析。

摘要

生物医学文本数据的快速增长已远远超过人工整理和分析的能力,因此需要新型的文本挖掘工具,以从大量科学报告中提取生物学见解。2016年开发的上下文感知语义在线分析处理(Context-aware Semantic Online Analytical Processing,CaseOLAP)流程,能够通过分析文本数据,量化用户自定义的短语与类别之间的关系。CaseOLAP 具有广泛的生物医学应用。

我们开发了一种支持端到端短语挖掘与分析平台的基于云环境的实验方案。本方案包括数据预处理(例如下载、提取和解析文本文件)、使用Elasticsearch进行索引与检索、构建一种称为文本立方体(Text-Cube)的功能性文档结构,以及利用核心CaseOLAP算法对短语与类别之间的关系进行量化分析。

我们的数据预处理为所有相关文档生成键值映射。预处理后的数据被建立索引,以实现对包含实体的文档进行检索,进而促进文本立方体(Text-Cube)的构建和CaseOLAP评分的计算。所获得的原始CaseOLAP评分通过一系列整合分析进行解读,包括降维分析、聚类分析、时间序列分析和地理分布分析。此外,CaseOLAP评分还用于构建图形数据库,从而实现对文档的语义映射。

CaseOLAP 以准确(识别关系)、一致(高度可重复)和高效(每秒处理 100,000 个词)的方式定义短语与类别之间的关系。通过遵循本方案,用户可访问云计算环境,以支持其对 CaseOLAP 的自定义配置和应用。该平台提高了可访问性,并为生物医学界提供了短语挖掘工具,支持广泛的生物医学研究应用。

引言

手动评估数百万个文本文件以研究短语与类别之间的关联(例如., 年龄组与蛋白质关联)无法与自动化计算方法提供的效率相媲美。我们希望介绍基于云的上下文感知语义在线分析处理(CaseOLAP)平台作为一种短语挖掘方法,用于在生物医学背景下自动计算短语与类别之间的关联。

CaseOLAP 平台最初于2016年提出1,由于采用了称为文本立方体(Text-Cube)的功能性文档管理机制2,3,4 ,能够在保持文档底层层级结构和邻近关系的同时实现文档的分布式管理,因此相较于传统的数据管理和计算方法具有更高的效率。该平台已应用于生物医学研究5 ,用于研究实体与类别之间的关联。CaseOLAP 平台主要包括六个关键步骤:数据下载与提取、解析、索引构建、文本立方体(Text-Cube)创建、实体计数以及 CaseOLAP 得分计算;其中,CaseOLAP 得分计算是本实验方案的主要重点 (图1、图2表1

为了实施 CaseOLAP 算法,用户需设定感兴趣的主题类别(例如疾病、体征与症状、年龄组、诊断)以及感兴趣的实体(例如蛋白质、药物)。本文包含的一个类别示例是“年龄组”,其子类别包括“婴儿”、“儿童”、“青少年”和“成人”,这些子类别作为文本立方体(Text-Cube)的单元格,而蛋白质名称(同义词)及缩写则作为实体。采用医学主题词表(MeSH)来检索与所定义类别相对应的文献(见表2)。MeSH 描述符按层次树结构组织,允许在不同特异性层级上检索文献 (示例见图3)。CaseOLAP 平台利用数据索引和搜索功能,对与特定实体相关的文献进行整理,进而实现文献到实体的计数映射以及 CaseOLAP 分数的计算。

CaseOLAP 评分计算的详细信息可参见先前的出版物1,5。该评分基于底层 Text-Cube 文档结构中的特定排序标准进行计算。最终得分为完整性流行度特异性三项的乘积。完整性用于描述一个代表性实体是否为一个完整的语义单元,能够共同指向一个有意义的概念。用户自定义短语的完整性被设定为 1.0,因其在文献中被视为标准短语。特异性表示某一短语在一个文档子集中的相对相关性,相较于其他单元格中的情况。它首先通过比较目标数据集中蛋白质名称的出现频率,计算该实体对特定单元格的相关性,并提供归一化的特异性评分。流行度反映的是某一短语在文档子集中出现频率越高,则其流行度评分也越高。在某一单元格中罕见的蛋白质名称排名较低,而由于采用了频率的对数函数,其提及频率的增加所带来的评分提升呈递减趋势。对这三个概念的定量衡量依赖于:(1)实体在某一单元格内及跨单元格的词频;(2)包含该实体的文档数量(即文档频率),同样涵盖单元格内部及跨单元格的情况。

我们利用 PubMed 数据集和我们的算法研究了两个具有代表性的场景。我们关注线粒体蛋白如何与两种独特的 MeSH 描述符类别相关联:"Age Groups" 和 "Nutritional and Metabolic Diseases"。具体而言,我们从 PubMed 收集的 20 年(1998 年至 2018 年)出版物中检索出 15,728,250 篇文献,其中包含 8,123,458 篇具有完整 MeSH 描述符的唯一摘要。相应地,我们系统地分析了从 UniProt(uniprot.org)以及 MitoCarta2.0(http://mitominer.mrc-mbu.cam.ac.uk/release-4.0/begin.do>)获取的 1,842 种人类线粒体蛋白名称(包括缩写和同义词)。我们使用本研究方案分析了这些蛋白与 8,899,019 篇出版物及相关实体的关联性;构建了文本立方体(Text-Cube),并计算了相应的 CaseOLAP 分数。

方案

注意:本实验方案基于 Python 编程语言开发。运行该程序前,请预先在设备上安装 Anaconda Python 和 Git。本方案中提供的命令基于 Unix 环境。本方案详细说明了如何从 PubMed(MEDLINE)数据库下载数据、解析数据,并搭建云计算平台,用于短语挖掘及用户自定义实体-类别关联的量化分析。

1. 获取代码和 Python 环境配置

  1. 从 GitHub 下载或克隆代码仓库(https://github.com/CaseOLAP/caseolap)或通过键入‘git clone https://github.com/CaseOLAP/caseolap.git终端窗口中。
  2. 导航至“caseolap”目录。这是项目的根目录。在执行本方案步骤的过程中,该目录下的“data”目录将被填充多个数据集。“input”目录用于存放用户提供的数据。“log”目录包含用于故障排查的日志文件。“result”目录用于存储最终结果。
  3. 使用终端窗口,进入你克隆我们 GitHub 仓库的目录。使用‘environment.yml’ 文件,通过输入 ‘conda env create -f environment.yaml 在终端中. 然后通过输入‘source activate caseolap’ 在终端中。

2. 下载文档

  1. 确保 config 目录中的“ftp_configuration.json”文件内的 FTP 地址与以下链接中提供的年度基线文件或每日更新文件的链接地址一致:https://www.nlm.nih.gov/databases/download/pubmed_medline.html
  2. 若仅需下载基线文件或仅下载更新文件,请在 config 目录下的“download_config.json”文件中将相应选项设置为“true”。默认情况下,程序会同时下载并解压基线文件和更新文件。解压后的 XML 数据示例可在此处查看:https://github.com/CaseOLAP/caseolap-pipelines/blob/master/data/extracted-data-sample.xml
  3. 在终端窗口中输入“python run_download.py”以从 PubMed 数据库下载摘要。此操作将在当前目录下创建一个名为“ftp.ncbi.nlm.nih.gov”的目录。该过程将检查所下载数据的完整性,并将其解压至目标目录。
  4. 若下载过程失败,请进入“log”目录,查看“download_log.txt”中的日志信息。若下载成功完成,下载过程的调试信息将被记录在此日志文件中。
  5. 下载完成后,请浏览“ftp.ncbi.nlm.nih.gov”目录,确认其中包含“updatefiles”或“basefiles”或两者皆有,具体取决于“download_config.json”中的下载配置。文件统计信息将保存在“data”目录下的“filestat.txt”文件中。

3. 解析文档

  1. 确保在步骤2中下载并解压的数据位于‘ftp.ncbi.nlm.nih.gov’目录下。该目录在本步骤中作为输入数据目录。
  2. 要修改数据解析模式,请在“parsing_config.json在“config”目录下的文件中,将相应值设置为“true”。默认情况下,它会解析 PMID、作者、摘要、医学主题词(MeSH)、地址、期刊、出版日期
  3. 类型‘python run_parsing.py在终端中输入“”以从已下载(或已解压)的文件中解析文档。此步骤将解析所有已下载的 XML 文件,并为每个文档创建一个 Python 字典,其中包含键(例如., PMID, 作者, 摘要, MeSH 根据第3.2步中解析模式的设置生成文件。
  4. 数据解析完成后,确保将解析后的数据保存到名为‘pubmed.json“数据目录”中的。已解析数据的示例如下所示: 图3.
  5. 转到“log”目录以查看其中的 log 消息parsing_log.txt若解析过程失败,则会显示“”。如果过程成功完成,调试信息将被打印到日志文件中。

4. 主题词到 PMID 的映射

  1. 确保解析后的数据(“pubmed.json”)位于“data”目录中。
  2. 在终端中输入“python run_mesh2pmid.py”以执行MeSH到PMID的映射。此操作将创建一个映射表,其中每个MeSH术语收集其关联的PMID。单个PMID可能属于多个MeSH术语。
  3. 映射完成后,请确认“data”目录中存在“mesh2pmid.json”文件。前20项映射统计的示例见表-2图45
  4. 若该过程失败,请进入“log”目录查看“mesh2pmid_mapping_log.txt”中的日志信息。若过程成功完成,映射的调试信息将输出至该日志文件中。

5. 文档索引

  1. 从 Elasticsearch 官网下载应用程序 https://www.elastic.co目前,下载可在此处获取 (https://www.elastic.co/downloads/elasticsearch)。要下载远程云中的软件,请输入‘wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-x.x.x.tar.gz’ 在终端中。确保‘x.x.x上述命令中的“’”应替换为正确的版本号。
  2. 确保下载的‘elasticsearch-x.x.x.tar.gz’ 文件出现在根目录中,则通过输入‘tar xvzf elasticsearch-x.x.x.tar.gz 在终端窗口中。
  3. 打开一个新终端,通过输入“cd Elasticsearch/bin在终端中从根目录执行。
  4. 在终端窗口中输入“./Elasticsearch”以启动Elasticsearch服务器。确保服务器启动过程中无错误信息。若启动Elasticsearch服务器时出现错误,请按照以下说明操作: (https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html).
  5. 修改“index_init_config.json在“config”目录中的“’设置索引初始化。默认情况下,将选择所有存在的项目。
  6. 类型 ‘python run_index_init.py在终端中输入“’以在Elasticsearch服务器中启动索引数据库。这将使用一组称为索引信息的标准来初始化索引(例如, 索引名称,类型名称,分片数量,副本数量)。您将看到提示信息,表明索引已成功创建。
  7. 选择“index_populate_config.json在“config”目录中,通过将其值设置为“true”来选择所有项目。默认情况下,将选中所有存在的项目。
  8. 确保已解析的数据('pubmed.json')存在于'data'目录中。
  9. 类型 ‘python run_index_populate.py在终端中输入“’以通过创建包含两个组件的批量数据来填充索引。第一个组件是包含元数据信息的字典 索引名称,类型名称, 批量编号 例如, PMID). A 第二个组成部分是包含所有标签信息的数据字典(例如 标题,摘要,医学主题词).
  10. 转到“log”目录以查看其中的 log 消息indexing_log.txt如果此过程失败,请重试。如果过程成功完成,索引的调试信息将被打印到日志文件中。

6. 文本立方体的创建

  1. 下载最新版可在以下网址获取的MeSH树:(https://www.nlm.nih.gov/mesh/filelist.html)。当前代码版本在输入目录中使用2018年版MeSH树文件“meshtree2018.bin”。
  2. 定义感兴趣的类别(例如,疾病名称、年龄组、性别)。一个类别可包含一个或多个MeSH描述符。https://meshb-prev.nlm.nih.gov/treeView)。收集某个类别的MeSH ID。将类别名称保存在文件“textcube_config.json’ 在配置目录中(参见下载版本中“年龄组”类别的示例)textcube_config.json’ 文件)。
  3. 将收集到的MeSH ID类别用空格分隔并排成一行。将类别文件保存为‘类别.txt“输入”目录中的“年龄组”MeSH ID 示例(见下载版本中的‘分类.txt’ 文件)。该算法会自动选择所有下属的MeSH描述符。根节点及其下属节点的示例如下所示: 图4.
  4. 确保“mesh2pmid.json’位于“data”目录中。如果MeSH树已使用不同的名称更新(例如,“meashtree2019.bin)位于“input”目录中,请确保在“input”目录的数据路径中正确表示这一点run_textube.py’ 文件。
  5. 类型‘python run_textcube.py在终端中输入“’”以创建名为Text-Cube的文档数据结构。这将为每个类别创建一组文档(PMIDs)。单个文档(PMID)可能属于多个类别(参见 表 3A,表 3B, 图6A 图7A)。
  6. 文本立方体创建步骤完成后,请确保以下数据文件已保存至“data”目录:(1)细胞到PMID的对应表,文件名为“textcube_cell2pmid.json”,(2)一个将PMID映射到细胞的表格作为“textcube_pmid2cell.json”,(3)将某个细胞的所有后代MeSH术语集合为“meshterms_per_cat.json”(4)Text-Cube 数据统计为“textcube_stat.txt”.
  7. 转到“log”目录以查看其中的 log 消息textcube_log.txt如果此过程失败,将显示“”。如果过程成功完成,日志文件中将打印出文本立方体创建的调试信息。

7. 实体计数

  1. 创建用户自定义实体(例如蛋白质名称、基因、化学品)。每行输入一个实体及其缩写,用“|”分隔。将实体文件保存为“entities.txt”,并存放在“input”目录中。实体示例见表4
  2. 确保Elasticsearch服务器正在运行。否则,请转至步骤5.2和5.3,重新启动Elasticsearch服务器。您的Elasticsearch服务器中应已建立一个名为“pubmed”的索引数据库,该数据库在步骤5中创建。
  3. 确保“textcube_pmid2cell.json”文件位于“data”目录中。
  4. 在终端中输入“python run_entitycount.py”以执行实体计数操作。该操作将从索引数据库中检索文档,统计每个文档中实体的出现次数,并收集包含这些实体的PMID。
  5. 实体计数完成后,请确认最终结果已保存为“entitycount.txt”和“entityfound_pmid2cell.json”,并存放于“data”目录中。
  6. 若该过程失败,请进入“log”目录,查看“entitycount_log.txt”中的日志信息。若过程成功完成,实体计数的调试信息将被输出至该日志文件中。

8. 元数据更新

  1. 确保所有输入数据(‘entitycount.txt’,‘textcube_pmid2cell.json’,‘entityfound_pmid2cell.txt’) 位于“data”目录中,这些是元数据更新的输入数据。
  2. 类型 ‘python run_metadata_update.py在终端中输入“’以更新元数据。这将准备一组元数据(例如细胞名称、相关MeSH、PMID),用于表示细胞中的每篇文本文档。此处展示了Text-Cube元数据的一个示例。 表 3A表 3B。
  3. 元数据更新完成后,确保“metadata_pmid2pcount.json’ 和 ‘元数据细胞2pmid.json“文件保存在‘data’目录中。
  4. 转到“log”目录以查看其中的“log”消息metadata_update_log.txt如果此过程失败,则会显示“”。如果过程成功完成,元数据更新的调试信息将被打印在日志文件中。

9. CaseOLAP 评分计算

  1. 确保“data”目录中包含“metadata_pmid2pcount.json”和“metadata_cell2pmid.json”文件。这些文件是计算得分的输入数据。
  2. 在终端中输入“python run_caseolap_score.py”以执行CaseOLAP得分计算。该步骤将基于用户定义的类别计算各实体的CaseOLAP得分。CaseOLAP得分等于完整性流行度特异性三者的乘积。
  3. 得分计算完成后,确认结果已保存至“result”目录下的多个文件中(例如,“pop.csv”保存流行度,“dist.csv”保存特异性,“caseolap.csv”保存CaseOLAP得分)。CaseOLAP得分计算的汇总结果也见于表5
  4. 若该过程失败,请进入“log”目录,查看“caseolap_score_log.txt”中的日志信息。若过程成功完成,CaseOLAP得分计算的调试信息将被输出至该日志文件中。

结果

为了生成示例结果,我们以“年龄组”和“营养与代谢性疾病”两个主题词/描述符作为用例,实现了 CaseOLAP 算法。

年龄组。我们选择了“年龄组”(Age Groups)的全部4个子类别(婴儿、儿童、青少年和成人)作为文本立方体(Text-Cube)中的单元格。所获得的元数据和统计结果如表3A所示。文本立方体各单元格间文献数量的比较如图6A所示。成人组包含172,394篇文献,是所有单元格中数量最高的。成人与青少年子类别之间的共享文献数量最多(26,858篇)。值得注意的是,这些文献仅包含我们关注的实体(即线粒体蛋白)。图6B中的维恩图展示了在每个单元格内以及多个单元格重叠区域中发现的实体(即线粒体蛋白)数量。在所有年龄组子类别中共享的蛋白数量为162种。成人子类别中独有的蛋白数量最多(151种),其次是儿童(16种)、婴儿(8种)和青少年(1种)。我们通过CaseOLAP评分计算了蛋白与年龄组之间的关联性。与婴儿、儿童、青少年和成人子类别关联性最高的前10种蛋白(基于其平均CaseOLAP评分)分别为:固醇26-羟化酶(Sterol 26-hydroxylase)、α-晶状体蛋白B链(Alpha-crystallin B chain)、25-羟基维生素D-1α-羟化酶(25-hydroxyvitamin D-1 alpha-hydroxylase)、血清转铁蛋白(Serotransferrin)、柠檬酸合酶(Citrate synthase)、L-丝氨酰-tRNA(L-seryl-tRNA)、钠/钾转运ATP酶α-3亚基(Sodium/potassium-transporting ATPase subunit alpha-3)、谷胱甘肽S-转移酶omega-1(Glutathione S-transferase omega-1)、NADPH:肾上腺皮质还原酶(NADPH:adrenodoxin oxidoreductase)以及线粒体肽甲硫氨酸亚砜还原酶(Mitochondrial peptide methionine sulfoxide reductase),如图6C所示。在热图中,成人子类别显示出10个信号强度更高的单元格,相较于青少年、儿童和婴儿子类别的热图单元格,表明这前10种线粒体蛋白与成人子类别的关联性最强。线粒体蛋白固醇26-羟化酶在所有年龄子类别中均表现出较高的关联性,其热图单元格的信号强度高于其他9种线粒体蛋白。两组间评分绝对差值的统计分布显示,均值差异的99%置信区间范围如下:(1)'ADLT'与'INFT'之间的均值差异范围为(0.029至0.042);(2)'ADLT'与'CHLD'之间的均值差异范围为(0.021至0.030);(3)'ADLT'与'ADOL'之间的均值差异范围为(0.020至0.029);(4)'ADOL'与'INFT'之间的均值差异范围为(0.015至0.022);(5)'ADOL'与'CHLD'之间的均值差异范围为(0.007至0.010);(6)'CHLD'与'INFT'之间的均值差异范围为(0.011至0.016)。

营养与代谢性疾病。 我们选取“营养与代谢性疾病”下的两个子类别(即代谢性疾病和营养障碍),以构建一个文本立方体中的两个单元格。所获得的元数据和统计结果如表3B所示。文本立方体各单元格间文献数量的比较显示在图7A中。子类别“代谢性疾病”包含54,762篇文献,其次为“营养障碍”,包含19,181篇文献。这两个子类别之间共有7,101篇共享文献。值得注意的是,这些文献仅包含我们关注的实体(即线粒体蛋白)。图7B中的维恩图展示了在每个单元格内以及多个单元格重叠区域中发现的实体数量。我们通过CaseOLAP评分计算蛋白质与“营养与代谢性疾病”之间的关联性。该应用场景中关联性最强的前10种蛋白质(基于其平均CaseOLAP评分)分别为:Sterol 26-hydroxylase、Alpha-crystallin B chain、L-seryl-tRNA、Citrate synthase、tRNA pseudouridine synthase A、25-hydroxyvitamin D-1 alpha-hydroxylase、Glutathione S-transferase omega-1、NADPH: adrenodoxin oxidoreductase、Mitochondrial peptide methionine sulfoxide reductase 和 Plasminogen activator inhibitor 1(见图7C)。所有蛋白质中超过一半(54%)在代谢性疾病和营养障碍两个子类别之间共享(共397种蛋白)。有趣的是,在代谢性疾病子类别中,近一半(43%)的相关蛋白是独有的(300种),而营养障碍子类别中仅有少量独有蛋白(35种)。Alpha-crystallin B chain 与代谢性疾病子类别的关联性最强。Sterol 26-hydroxylase, mitochondrial 在营养障碍子类别中表现出最强的关联性,表明该线粒体蛋白在描述营养障碍的研究中具有高度相关性。两组“MBD”与“NTD”之间评分绝对差异的统计分布显示,均值差异的99%置信区间范围为0.046至0.061。

CaseOLAP 工作流程图;文本提取、解析、索引以实现高效的实体分析
图1. CaseOLAP工作流程的动态视图。 该图展示了CaseOLAP工作流程的5个主要步骤。步骤1中,工作流程首先下载并提取文本文档(例如来自PubMed的文献)。步骤2中,对提取的数据进行解析,为每篇文档建立数据字典,并生成MeSH到PMID的映射关系。步骤3中,进行数据索引以支持快速高效地检索实体。步骤4中,利用用户提供的分类信息(例如.,对每个单元格进行根部医学主题词(MeSH)标注以构建文本立方体。在第5步中,通过对索引数据执行实体计数操作来计算CaseOLAP得分。这些步骤以迭代方式重复进行,以利用公共数据库(如PubMed)中最新可用的信息不断更新系统。 请点击此处以查看此图的放大版本。

数据处理工作流程图;MeSH 到 PMID 的映射、索引、文本立方体构建。
图 2. CaseOLAP 工作流程的技术架构。 本图展示了 CaseOLAP 工作流程的技术细节。来自 PubMed 仓库的数据从 PubMed FTP 服务器获取。用户通过其设备连接到云服务器(例如 AWS 连接),并创建一个下载管道,将数据下载并提取到云中的本地仓库。提取的数据通过数据解析管道进行结构化、验证并转换为合适的格式。在解析过程中,同时生成 MeSH 到 PMID 的映射表,用于文本立方体的构建。解析后的数据以类似 JSON 的键值字典格式存储,并包含文档元数据(例如 PMID、MeSH、发表年份)。索引步骤通过 Elasticsearch 的实现进一步优化数据,以处理大规模数据。接下来,通过应用 MeSH 到 PMID 的映射,使用用户定义的类别构建文本立方体。当文本立方体构建和索引步骤完成后,进行实体计数。实体计数数据被整合到文本立方体的元数据中。最后,基于底层文本立方体结构计算 CaseOLAP 分数。请点击此处查看本图的放大版本。

显示研究元数据(包括标题、期刊和摘要详情)的 JSON 数据。
图 3. 一个解析后文档的示例。 本图展示了解析后数据的一个示例。解析后的数据以键-值对的形式排列,适用于索引和文档元数据的生成。在本图中,PMID(例如“25896987”)作为键,相关联的信息集合(例如标题、期刊、发表日期、摘要、MeSH、物质、部门和地点)作为值。此类文档元数据的首个应用是构建 MeSH 到 PMID 的映射(图 5表 2),随后用于构建文本立方体(Text-Cube),并基于用户提供的实体和类别计算 CaseOLAP 分数。请点击此处查看该图的放大版本。

年龄组分类示意图;从婴儿到老年阶段的人员层级划分。
图4. 一个MeSH树状图的示例。 '年龄组的医学主题词树来自美国国立卫生研究院数据库(MeSH Tree 2018)中的树形数据结构, )。通过使用MeSH描述词及其对应的节点ID(例如,Persons [M01]、Age Groups [M01.060]、Adolescent [M01.060.057]、Adult [M01.060.116]、Child [M01.060.406]、Infant [M01.060.703])来收集与特定MeSH描述词相关的文献表 3A). 请点击此处以查看此图的放大版本。

生命周期阶段示意图;展示不同年龄组和类别,例如婴儿期和青春期。
图5. 年龄组中MeSH到PMID的映射。 该图以气泡图形式展示了在“年龄组”(Age Groups)医学主题词(MeSH)下收集的文本文献数量(每篇文献均关联一个PMID)。通过建立MeSH与PMID的映射关系,可获得在各MeSH描述符下收集的文献精确数量。共收集到3,062,143篇唯一文献,涵盖18个“年龄组”下属的MeSH描述符(见 表 2). MeSH描述符下所选PMID数量越多,代表该MeSH描述符的气泡半径就越大。例如,以MeSH描述符“Adult”检索到的文献数量最多(1,786,371篇),而以MeSH描述符“Infant, Postmature”检索到的文献数量最少(62篇)。
MeSH 与 PMID 映射的另一个示例是“营养与代谢疾病”(https://caseolap.github.io/mesh2pmid-mapping/bubble/meta.html共收集到 422,039 篇唯一文献,涵盖“营养与代谢疾病”类别下的 361 个下位 MeSH 描述符。其中,MeSH 描述符“Obesity”收录的文献数量最多(77,881 篇),其次为“Diabetes Mellitus, Type 2”(61,901 篇),而“Glycogen Storage Disease, Type VIII”收录的文献最少(1 篇)。相关表格也可在在线获取(https://github.com/CaseOLAP/mesh2pmid-mapping/blob/master/data/diseaseall.csv)。 请点击此处以查看此图的放大版本。

蛋白质表达分析;维恩图、热图、重叠图;生物数据集比较。
图6. 以“年龄组”为用例。 本图展示了 CaseOLAP 平台的一个用例结果。在此实例中,蛋白质名称及其缩写(参见表4中的示例)被设为实体,而“年龄组”包含以下细胞:婴儿(INFT)、儿童(CHLD)、青少年(ADOL)和成人(ADLT),被设为子类别(参见表3A)。(A) “年龄组”中的文献数量: 该热图显示了分布在“年龄组”各细胞中的文献数量(有关文本立方体构建的详细信息,请参见方案4和表3A)。文献数量越多,热图单元格的颜色越深(参见图例)。单篇文献可能被归入多个细胞中。热图对角线位置显示各细胞内的文献数量(例如,ADLT 包含 172,394 篇文献,为所有细胞中最高)。非对角线位置表示同时属于两个细胞的文献数量(例如,ADLT 和 ADOL 共有 26,858 篇共享文献)。(B) “年龄组”中的实体计数: 维恩图展示了在代表“年龄组”的四个细胞(INFT、CHLD、ADOL 和 ADLT)中发现的蛋白质数量。在所有细胞中共享的蛋白质数量为 162。成人(ADLT)组具有最多的特有蛋白质(151 种),其次为儿童(CHLD,16 种)、婴儿(INFT,8 种)和青少年(ADOL,1 种)。(C) “年龄组”中的 CaseOLAP 评分展示: 热图展示了每组中平均 CaseOLAP 评分最高的前 10 种蛋白质。CaseOLAP 评分越高,热图单元格颜色越深(参见图例)。蛋白质名称显示在左侧列,细胞(INFT、CHLD、ADOL、ADLT)沿 x 轴排列。某些蛋白质与特定年龄组表现出强关联性(例如,固醇-26-羟化酶、α-晶状体蛋白B链和L-丝氨酰-tRNA 与 ADLT 有强关联,而钠/钾转运ATP酶亚基α-3 与 INFT 有强关联)。请点击此处查看该图的放大版本。

蛋白质表达分析;柱状图、维恩图、热图;比较研究、代谢通路。
图7. 以“营养与代谢性疾病”为应用案例:本图展示了CaseOLAP平台另一项应用案例的结果。在此案例中,蛋白质名称及其缩写(参见表4)被用作实体,“营养与代谢性疾病”则被划分为两个子类别:代谢疾病(MBD)和营养障碍(NTD)(参见表3B)。(A).“营养与代谢性疾病”中的文献数量:该热图展示了“营养与代谢性疾病”各子类别中的文本文献数量(有关文本立方体构建的详细信息,请参见方案4和表3B)。热图中颜色越深,表示文献数量越多(见图例)。单篇文献可能被归入多个类别。热图对角线位置显示各子类别的文献总数(例如,MBD包含54,762篇文献,为两个子类别中最高)。非对角线位置表示两个子类别共享的文献数量(例如,MBD与NTD共享7,101篇文献)。(B).“营养与代谢性疾病”中的实体计数:维恩图展示了在代表“营养与代谢性疾病”的两个子类别(MBD和NTD)中发现的蛋白质数量。两个子类别共享的蛋白质数量为397种。MBD子类别包含300种特有蛋白质,NTD子类别包含35种特有蛋白质。(C).“营养与代谢性疾病”中的CaseOLAP评分展示:热图展示了在“营养与代谢性疾病”中平均CaseOLAP评分最高的前10种蛋白质。CaseOLAP评分越高,热图中对应单元格的颜色越深(见图例)。蛋白质名称显示在左侧列,子类别(MBD和NTD)沿x轴排列。部分蛋白质与特定疾病类别表现出强关联性(例如,α-晶状体蛋白B链与代谢疾病高度相关,而固醇26-羟化酶与营养障碍高度相关)。请点击此处查看该图的高清版本。

所花费时间(占总时间的百分比)CaseOLAP 平台中的步骤CaseOLAP 平台的算法与数据结构算法与数据结构的复杂度步骤的详细说明
40%下载和
解析
迭代与树解析算法包含嵌套循环和常数乘法的迭代:O(n^2),O(log n)。其中“n”表示迭代次数。下载流程对多个文件重复执行每个步骤。单个文档的解析则在原始 XML 数据的树状结构上逐项运行各处理过程。
30%索引、搜索与文本立方体创建迭代及基于 Elasticsearch 的搜索算法(排序、Lucene 索引、优先级队列、有限状态机、位操作技巧、正则表达式查询)与 Elasticsearch 相关的复杂度(https://www.elastic.co/)通过在数据字典上执行迭代过程来实现文档索引。文本立方体的创建整合了文档元数据以及用户提供的分类信息。
30%实体计数与 CaseOLAP 分值计算完整性、流行度和独特性计算中的迭代O(1)、O(n^2),以及根据迭代类型决定的多种与 CaseOLAP 分值计算相关的复杂度。实体计数操作列出相关文档,并对列表执行计数。所得实体计数数据用于计算 CaseOLAP 分值。

表1. 算法与复杂度。 本表列出了CaseOLAP平台中各项操作(如下载、解析)所花费的时间(占总时间的百分比)、数据结构以及所实现算法的详细信息。CaseOLAP实现了名为Elasticsearch的专业索引与搜索应用程序。有关Elasticsearch及内部算法复杂度的更多信息,请访问(https://www.elastic.co)。

MeSH 描述符收集的 PMIDs 数量
成人1,786,371
中年1,661,882
老年人1,198,778
青少年706,429
青年成人486,259
儿童480,218
80岁及以上老年人453,348
学龄前儿童285,183
婴儿218,242
新生儿160,702
早产儿17,701
低出生体重婴儿5,707
衰弱老年人4,811
极低出生体重婴儿4,458
小于胎龄儿3,168
极度早产儿1,171
极低出生体重婴儿1,003
过期产婴儿62

表2. MeSH 术语到 PMID 的映射统计。 该表格列出了“年龄组”下所有下属 MeSH 描述符及其收集到的 PMID(文本文档)数量。图5展示了这些统计数据的可视化结果。

A婴儿(INFT)儿童(CHLD)青少年(ADOL)成年(ADLT)
MeSH 根 IDM01.060.703M01.060.406M01.060.057M01.060.116
后代MeSH描述符数量9216
所选PMID数量16,46626,90735,158172,394
检测到的实体数量233297257443
B代谢性疾病(MBD)营养障碍(NTD)
MeSH 根 IDC18.452C18.654
后代MeSH数量
描述符
30853
收集的PMID数量54,76219,181
检测到的实体数量697432

表3. 文本立方体元数据。 以表格形式展示了Text-Cube元数据,表格中提供了关于类别以及MeSH描述符的根节点与子节点的信息,这些信息用于收集每个单元格中的文献。该表还提供了所收集文献及实体的统计信息。A) 年龄组:这是“年龄组”的表格展示,包括婴儿(INFT)、儿童(CHLD)、青少年(ADOL)和成人(ADLT),及其MeSH根ID、MeSH描述符的后代数量、选定的PMID数量和发现的实体数量。B) 营养与代谢性疾病:这是“营养与代谢性疾病”的表格展示,包括代谢性疾病(MBD)和营养障碍(NTD),列出了它们的MeSH根ID、下属MeSH描述符数量、选定的PMID数量以及发现的实体数量。

蛋白质名称及同义词缩写
线粒体N-乙酰谷氨酸合成酶,氨基酸乙酰转移酶,N-乙酰谷氨酸合成酶长形式;N-乙酰谷氨酸合成酶短形式;N-乙酰谷氨酸合成酶保守结构域形式(EC 2.3.1.1)
蛋白质/核酸去糖基酶 DJ-1(Maillard 去糖基酶)(癌基因 DJ1)(帕金森病蛋白 7)(帕金森综合征相关去糖基酶)(蛋白质 DJ-1)(EC 3.1.2.-) (EC 3.5.1.-) (EC 3.5.1.124)(DJ-1)
线粒体丙酮酸羧化酶(丙酮酸羧化酶)(EC 6.4.1.1)(PCB)
Bcl-2 结合因子 3(p53 上调凋亡调节因子)(JFY-1)
BH3 相互作用结构域死亡激动剂 [BH3 相互作用结构域死亡激动剂 p15(p15 BID);BH3 相互作用结构域死亡激动剂 p13;BH3 相互作用结构域死亡激动剂 p11](p22 BID) (BID) (p13 BID)(p11 BID)
线粒体ATP合酶α亚基(ATP合酶F1亚基α)
线粒体细胞色素P450 11B2(醛固酮合成酶)(醛固酮合成酶)(CYPXIB2)(细胞色素P-450Aldo)(细胞色素P-450C18)(类固醇18-羟化酶)(ALDOS) (EC 1.14.15.4) (EC 1.14.15.5)
线粒体60 kDa热休克蛋白(60 kDa伴侣蛋白)(伴侣蛋白60)(CPN60)(热休克蛋白60)(线粒体基质蛋白P1)(P60淋巴细胞蛋白)(HSP-60) (Hsp60) (HuCHA60)(EC 3.6.4.9) 
半胱天冬酶-4(ICE和Ced-3同源物2)(蛋白酶TX)[裂解为:半胱天冬酶-4亚基1;半胱天冬酶-4亚基2](CASP-4) (EC 3.4.22.57)(ICH-2) (ICE(rel)-II) (Mih1)

表4. 样本实体表。 本表展示了我们在两个用例中实现的实体样本:“年龄组”和“营养与代谢疾病”(图6图7表3AB)。这些实体包括蛋白质名称、同义词和缩写。每个实体(及其同义词和缩写)被逐一选取,并通过在索引数据上执行实体搜索操作进行处理(参见方案3和5)。搜索结果生成一份文档列表,进而支持后续的实体计数操作。

数量用户定义计算得出该数量的计算公式该数量的含义
完整性视为1.0的用户定义实体的完整性。代表一个有意义的短语。当该短语已是公认表达时,其数值为1.0。
流行度流行度计算公式见参考文献5的图1(工作流程与算法),“材料与方法”部分。基于短语在某一细胞内的词频,并以该细胞的总词频进行归一化。词频增加带来的影响呈递减趋势。
特异性特异性计算公式见参考文献5的图1(工作流程与算法),“材料与方法”部分。基于短语在某一细胞内的词频和文档频率,以及相邻细胞间的词频和文档频率,并以总词频和文档频率进行归一化。定量而言,表示某一短语在特定细胞中独有的概率。
CaseOLAP 分数CaseOLAP 分数计算公式见参考文献5的图1(工作流程与算法),“材料与方法”部分。基于完整性、流行度和特异性。数值始终介于0到1之间。定量表示短语与类别的关联程度。

表5. CaseOLAP 计算公式:CaseOLAP 算法由 Fangbo Tao 和 Jiawei Han 等人于2016年开发1。简而言之,本表展示了 CaseOLAP 评分的计算方法,其包含三个组成部分:完整性、流行度和特异性,以及它们对应的数学含义。在我们的使用案例中,蛋白质的完整性评分为1.0(即最高分),因为它们是已被确立的实体名称。我们使用案例中的 CaseOLAP 评分可参见图6C图7C

讨论

我们已证明,CaseOLAP 算法能够通过对大量文本数据进行分析,建立基于短语的定量关联,从而关联到基于知识的类别,并提取有意义的信息。按照本方案,用户可构建 CaseOLAP 框架,生成所需的文字立方体(Text-Cube),并通过计算 CaseOLAP 分数来量化实体与类别之间的关联性。所获得的原始 CaseOLAP 分数可用于整合性分析,包括降维、聚类、时间与地理分析,以及构建图形数据库,实现对文献的语义映射。

算法的适用性。 用户自定义实体的示例除蛋白质外,还可包括基因名称列表、药物、特定体征和症状(含其缩写及同义词)。此外,类别选择有多种选项,可用于支持特定的用户自定义生物医学分析(例如:解剖学 [A]、学科与职业 [H]、现象与过程 [G])。在我们的两个应用案例中,所有科学出版物及其文本数据均通过 PubMed 搜索引擎从 MEDLINE 数据库中获取,两者均由美国国家医学图书馆管理。然而,CaseOLAP 平台也可应用于其他包含具有文本数据的生物医学文献的数据库,例如美国食品药品监督管理局不良事件报告系统(FDA Adverse Event Reporting System, FAERS)。这是一个公开数据库,包含提交至 FDA 的医疗不良事件和用药错误报告信息。与 MEDLINE 和 FAERS 相比,医院内部存储患者电子健康记录的数据库不向公众开放,并受到《健康保险可携性与责任法案》(Health Insurance Portability and Accountability Act, HIPAA)的限制。

CaseOLAP 算法已成功应用于多种类型的数据(例如新闻文章)1该算法在生物医学文献中的应用始于2018年5。应用 CaseOLAP 算法的前提是每篇文档均需标注与概念相关联的关键词(例如生物医学出版物中的 MeSH 描述符、新闻文章中的关键词)。若无法获取关键词,可使用 Autophrase6,7 来收集最具代表性的短语并构建实体列表,然后再执行本方案。本方案不包含执行 Autophrase 的步骤。

与其他算法的比较。 自2005年以来,使用数据立方体8,9,10和文本立方体2,3,4的概念不断发展,以推动数据挖掘技术的适用性。在线分析处理(OLAP)11,12,13,14,15在数据挖掘与商业智能中的概念可追溯至1993年。OLAP通常从多个系统中聚合信息,并将其以多维格式存储。在数据挖掘中已实现多种类型的OLAP系统,例如:(1)混合事务/分析处理(HTAP)16,17,(2)多维OLAP(MOLAP)18,19—基于立方体,以及(3)关系型OLAP(ROLAP)20

具体而言,CaseOLAP 算法已与多种现有算法进行了比较,特别是结合了短语分段优化的算法,包括 TF-IDF+Seg、MCX+Seg、MCX 和 SegPhrase。此外,RepPhrase(RP,亦称 SegPhrase+)也与其自身的消融变体进行了比较,包括:(1)未引入完整性度量的 RP(RP No INT);(2)未引入流行度度量的 RP(RP No POP);(3)未引入区分度度量的 RP(RP No DIS)。基准测试结果见 Fangbo Tao 等人的研究1

在数据挖掘方面仍存在一些挑战,这些挑战能够为数据库中数据的存储与检索提供额外的功能。上下文感知语义分析处理(CaseOLAP)系统性地实现了Elasticsearch,以构建包含数百万文档的索引数据库(方案5)。文本立方体(Text-Cube)是基于已索引数据、由用户提供的分类构建的文档结构(方案6)。这增强了文本立方体内部及跨单元格文档的功能,使我们能够计算实体在文档中的词频以及特定单元格内的文档频次(方案8)。最终的CaseOLAP评分利用这些频率计算结果输出一个综合得分(方案9)。2018年,我们应用该算法研究了细胞外基质(ECM)蛋白与六种心脏疾病之间的关联,以分析蛋白-疾病关系。该研究的详细信息可参见Liem, D.A. 等人的研究5,表明CaseOLAP可在生物医学领域广泛用于探索多种疾病及其机制。

算法的局限性。 短语挖掘本身是一种从文本数据中管理和提取重要概念的技术。尽管该技术能够以数学形式(向量)发现实体与类别之间的关联,但无法判断这种关联的极性(例如,正向或负向倾向)。虽然可以利用带有指定实体和类别的 Text-Cube 文档结构对数据进行定量总结,但无法获得具有微观细粒度的定性概念。某些概念从过去至今持续演变,而当前针对特定实体-类别关联所呈现的总结包含了文献中的所有实例,这可能忽略了创新在时间上的传播过程。未来,我们计划解决这些局限性。

未来应用。 全球积累的数据中约有90%属于非结构化文本数据。从文本中识别出代表性的短语以及嵌入实体之间的关系,对于新技术(例如机器学习、信息抽取、人工智能)的应用而言是一项极为重要的任务。为了使文本数据具备机器可读性,需要将数据组织到数据库中,以便在其之上构建下一层工具。未来,该算法可成为提升数据挖掘功能的关键步骤,有助于信息检索以及实体与类别关联关系的量化分析。

披露

作者无任何利益冲突需要披露。

致谢

本工作部分得到了美国国家心肺血液研究所:R35 HL135772(资助对象:P. Ping);美国国家普通医学科学研究所:U54 GM114833(资助对象:P. Ping、K. Watson 和 W. Wang);U54 GM114838(资助对象:J. Han);Hellen & Larry Hoag 基金会和 S. Setty 博士的捐赠;以及加州大学洛杉矶分校 T.C. Laubisch 基金(资助对象:P. Ping)的支持。

参考文献

  1. Tao, F., Zhuang, H., et al. Phrase-Based Summarization in Text Cubes. IEEE Data Engineering Bulletin. , 74-84 (2016).
  2. Ding, B., Zhao, B., Lin, C. X., Han, J., Zhai, C. TopCells: Keyword-based search of top-k aggregated documents in text cube. IEEE 26th International Conference on Data Engineering (ICDE). , 381-384 (2010).
  3. Ding, B., et al. Efficient Keyword-Based Search for Top-K Cells in Text Cube. IEEE Transactions on Knowledge and Data Engineering. 23 (12), 1795-1810 (2011).
  4. Liu, X., et al. A Text Cube Approach to Human, Social and Cultural Behavior in the Twitter Stream.Social Computing, Behavioral-Cultural Modeling and Prediction. Lecture Notes in Computer Science. 7812, (2013).
  5. Liem, D. A., et al. Phrase Mining of Textual Data to analyze extracellular matrix protein patterns across cardiovascular disease. American Journal of Physiology-Heart and Circulatory. , (2018).
  6. Shang, J., et al. Automated Phrase Mining from Massive Text Corpora. IEEE Transactions on Knowledge and Data Engineering. 30 (10), 1825-1837 (2018).
  7. Liu, J., Shang, J., Wang, C., Ren, X., Han, J. Mining Quality Phrases from Massive Text Corpora. Proceedings ACM-Sigmod International Conference on Management of Data. , 1729-1744 (2015).
  8. Lee, S., Kim, N., Kim, J. A Multi-dimensional Analysis and Data Cube for Unstructured Text and Social Media. IEEE Fourth International Conference on Big Data and Cloud Computing. , 761-764 (2014).
  9. Lin, C. X., Ding, B., Han, J., Zhu, F., Zhao, B. Text Cube: Computing IR Measures for Multidimensional Text Database Analysis. IEEE Data Mining. , 905-910 (2008).
  10. Hsu, W. J., Lu, Y., Lee, Z. Q. Accelerating Topic Exploration of Multi-Dimensional Documents Parallel and Distributed Processing Symposium Workshops (IPDPSW). IEEE International. , 1520-1527 (2017).
  11. Chaudhuri, S., Dayal, U. An overview of data warehousing and OLAP technology. SIGMOD Record. 26 (1), 65-74 (1997).
  12. Ravat, F., Teste, O., Tournier, R. Olap aggregation function for textual data warehouse. ICEIS - 9th International Conference on Enterprise Information Systems, Proceedings. , 151-156 (2007).
  13. Ho, C. T., Agrawal, R., Megiddo, N., Srikant, R. Range Queries in OLAP Data Cubes. SIGMOD Conference. , (1997).
  14. Saxena, V., Pratap, A. Olap Cube Representation for Object- Oriented Database. International Journal of Software Engineering & Applications. 3 (2), (2012).
  15. Maniatis, A. S., Vassiliadis, P., Skiadopoulos, S., Vassiliou, Y. Advanced visualization for OLAP. DOLAP. , (2003).
  16. Bog, A. Benchmarking Transaction and Analytical Processing Systems: The Creation of a Mixed Workload Benchmark and its Application. , Springer Science & Business Media. 7-13 (2013).
  17. Özcan, F., Tian, Y., Tözün, P. Hybrid Transactional/Analytical Processing: A Survey. In Proceedings of the ACM International Conference on Management of Data (SIGMOD). , 1771-1775 (2017).
  18. Hasan, K. M. A., Tsuji, T., Higuchi, K. An Efficient Implementation for MOLAP Basic Data Structure and Its Evaluation. International Conference on Database Systems for Advanced Applications. , 288-299 (2007).
  19. Nantajeewarawat, E. Advances in Databases: Concepts, Systems and Applications. DASFAA 2007. Lecture Notes in Computer Science. 4443, (2007).
  20. Shimada, T., Tsuji, T., Higuchi, K. A storage scheme for multidimensional data alleviating dimension dependency. Third International Conference on Digital Information Management. , 662-668 (2007).

重印与许可

标签

CaseOLAP Elasticsearch MeSH