可伸缩的疾病动物模型检索技术∗
2020-12-23丘文峰胡金芳陈梅丽邓少嫦
丘文峰 胡金芳 陈梅丽 邓少嫦
(1.广东医科大学信息工程学院,东莞 523808)(2.广东省实验动物监测所,广东省实验动物重点实验室,广州 510663)
随着互联网的逐步社会化,各行各业的数据生产能力达到前所未有的高度,大数据(Big Data)概念在这一背景下被提了出来,并且吸引了越来越多的关注。疾病动物模型是开展医学研究及药物研发的重要支撑工具[1]。利用疾病动物模型开展研究,可以避免人体实验造成的风险和伦理问题,并可严格控制实验条件,排除复杂因素,增强实验材料的可比性,有助于全面地揭示疾病的本质和发展规律,传统模型检索存在共享困难、重复研究和扩展性差等问题[2-3]。目前,国外主要相关的数据库有:美国NIH国立研究资源中心的LAMHDI网站连接的小鼠基因组信息学数据库 MGI,大鼠基因组数据库RGD,斑马鱼模型数据库ZFIN,酵母菌基因组数据库SGD等。国内主要相关的数据库有:中国实验动物信息网络中心(国家实验动物数据资源中心)、国家遗传工程小鼠资源库等。这些数据库主要以关系数据库为基础,提供各类常规实验动物生物学数据和基因工程实验动物的特性研究数据。如何从数据库的海量数据中快速、高效地检索、智能挖掘出有用的动物模型信息是目前疾病动物模型检索的一大难题。
近年来,开源搜索引擎不断发展,Lucene、Sphinx、Xapian等代表性开源平台已成为站内搜索的新架构[4]。本文结合基于Lucene 的ElasticSearch技术,提出一种可伸缩的疾病动物模型检索技术。
1 基于ElasticSearch的疾病动物检索平台
1.1 采集服务
对网络开源的数据采集都是采用通用爬虫技术。但在特定领域,仅需要采集专门主题数据。此时,通用爬虫技术通常会采集到大量的不相关信息,极大地浪费硬件和网络资源,这些不相关信息也不利于后续数据分析与检索。为此,在现有主题爬虫技术的基础上,提出了一种适应疾病动物模型文献采集的爬虫技术。
文献数据的调查与收集阶段,检索的中文文献资源主要取自中国知网、万方数据库,外文文献以NCBI数据平台的pubmed和PMC数据库为主[5-6]。通过对动物模型制作与应用方面的文献结构特征和特定的搜索引擎检索模式的整理,并结合《人类疾病动物模型复制方法学》《人类疾病动物模型》以及《现代肿瘤学》等出版书籍中涉及的分类方法学的应用,对文献的检索工作进行分级,通过分级检索机制来实现文献的分类。
通过用户来定制上述指定资源中的检索关键词,再根据网站信息更新的频率,设定定时器,周期性爬虫这些网站或频道中的数据,并进行解析和主题分析。本文设计的针对疾病动物模型文献采集的爬虫软件结构如图1所示。用户可以对需要检索的动物模型主题提供关键词,并选择文献数据源。采集程序根据文献数据源信息更新频率定时爬取。分类器根据用户提供的动物模型进行文献分类和内容筛选,最后存入基础数据库中。
图1 针对疾病动物模型文献采集的爬虫软件结构Fig.1 Structure of reptile software for literature collection of animal model of disease
项目中动物模型的确定是通过动物模型相关综述类文献的统计获得,主要涉及的实验动物包括:鼠、兔、犬、猴、猪、鸡、斑马鱼、树鼩、旱獭和羊。平台中涉及的疾病分类信息是利用近几年的癌症流行趋势调查结果和癌症/肿瘤分类学专业书籍等资料的整理筛选出来,主要分为头颈部肿瘤(6种)、胸部肿瘤(3种)、腹腔肿瘤(4种)、泌尿及男性生殖系统肿瘤(3种)、妇科肿瘤(3种)、淋巴造血系统(2种)、皮肤软组织及骨肿瘤(2种)。在肿瘤动物模型制作方法的分类方面,主要采纳了传统的分类方法,即自发性动物模型、诱发型动物模型、移植型动物模型和基因工程动物模型四类。
采集程序的算法设计如图2所示。其中,最核心的问题是如何提取文献来源中感兴趣信息。项目中尝试采用两种方式,一种是通过获取网页内容,以DOM接口方式获取感兴趣信息;另一种是通过XPATH方式获取感兴趣信息。通过实验对比,最终采用XPATH方式提取文献信息。相关实验对比结果见表1。
图2 采集程序的算法流程Fig.2 Algorithm flow chart of acquisition program
表1 基于的DOM感兴趣提取与基于XPATH的感兴趣提取实验对比结果Table 1 Comparison of interest extractions based on DOM and XPATH
1.2 基础数据库
项目使用开源关系数据库MYSQL存储由采集程序获取的基础数据。MYSQL最早由瑞典MYSQL AB公司开发,后经Oracle收购。MYSQL是最流行的关系型数据库管理系统之一,而 AMP(Appache、MYSQL、PHP)是最流行的开源WEB开发框架。采集程序可以使用任何一种数据库存储,最终选择MYSQL主要是在系统整体设计中,MYSQL是一个最稳定,开发最高效的搭配。基础数据库包含采集数据的动物模型信息,文献标题、摘要、作者、基金项目、文献号、图文信息、关键词及动物模型分类等。
1.3 弹性搜索
项目使用 ElasticSearch作为搜索引擎核心。ElasticSearch由美国ElasticSearch BV公司开发,是一个基于Lucene的开源分布式实时搜索与分析引擎[7]。它能提供高效全文搜索、专门的查询语言、基于上下文的搜索建议、自动完成以及搜索片段(Snippet)的能力,同时能够方便生成 RESTful接口方便第三方应用动物模型数据库。它致力于使开发者能够使用尽量少的开发成本快速实现一个功能完整的检索系统,主要特点如下:①提供完整的RESTful API。所有的操作,包括搜索、统计分析、管理、监控都能够使用发送基于JSON的http请求实现。②分布式存储的非关系数据库,适应不断动态增长的大数据文献检索。这是ElasticSearch优于传统搜索引擎解决方案的地方。
由于基础数据采用MYSQL存储,因此需要把采集的 MYSQL数据同步至 ElasticSearch。这里需要解决两个技术难题:①数据的冗余性问题;②增量式更新。ElasticSearch本身不提供不同数据库之间的同步。存在不同的同步数据工具,如ElasticSearch-JDBC、python-MYSQL-rep lication、go-MYSQL-ElasticSearch、mysqlbinlog等。其中 Logstash是最稳定且易用的方案。
Logstash借助 Logstash-JDBC插件可以对任何支持JDBC数据接口的数据库进行读取。使用Logstash完成MYSQL与ElasticSearch同步的技术路线见图3。
图3 使用Logstash完成M YSQL与ElasticSearch同步Fig.3 Synchronization of mysql and elasticsearch using logstash
同步根据Logstash脚本配置完成。项目中同步的示例代码见图4。
其中,document_id指示唯一ID,用于解决同步过程中的冗余问题。为了解决文献数据持续增量更新问题,可以在上述脚本中增加“scheduler”属性,指示脚本周期性自动执行同步。此外,MYSQL查询时以“sql_last_value”为条件,只查询同步以后新加入的数据。
1.4 应用数据库
基于ElasticSearch的疾病动物检索平台,借助开源SNS系统UCHOME,通过二次开发文献检索插件为用户提供文献检索服务,见图5。用户数据存储在应用数据库中,包含用户信息,用户积分体系、活动、群组及分享信息。而文献检索功能通过ElasticSearch提供的RESTful API完成。实验表明,该方案能够推广应用于其他第三方应用平台,如移动应用。
1.5 系统设计
图4 Logstash同步脚本Fig.4 Logstash synchronization scrip t
图5 基于ElasticSearch的疾病动物检索平台的用户交互界面Fig.5 User Interface of Disease Animal Retrieval platform based on elasticsearch
综上所述,基于 ElasticSearch的疾病动物检索平台使用MYSQL,Appache服务器,服务器端采用W indows NT/2008 Server操作系统,编程语言为Java。文献搜索功能的实现采用的是ElasticSearch,即实时分布式搜索和分析引擎。这种弹性搜索模式主要用于全文搜索、结构化搜索和分析,是一种基于Apache Lucene(TM)的开源搜索引擎。文献自动分类利用分级检索机制将文献检索分为两个步骤:①以“动物分类+疾病分类”的检索组合方式,针对文献的“题目和摘要”进行一级检索,并下载全文。②利用建立好的标准字典与数据字典,以“模型制作方法分类”为相关的检索词,针对文献的“材料与方法”进行二级检索。这种分级检索机制在实现文献分类的同时,还可以系统自动剔除无关文献,保证检索获得的文献具有很高的相关性。基于ElasticSearch的疾病动物检索平台的系统结构见图6。
图6 基于ElasticSearch的疾病动物检索平台的系统结构Fig.6 System structure Diagram of Disease Animal Retrieval platform based on Elasticsearch
2 结论
本文从构建疾病动物检索平台采集服务、基础数据库、弹性检索和应用数据库四方面进行讨论。采集服务中针对两种不同的爬虫策略展开讨论,并给出技术实施建议。弹性检索是系统构建核心,研究中采用两种不同的异构数据库系统,难点在于如何实现数据的持续增量更新和解决冗余方案,本文给出研究中的解决方案。
二次开发在社区平台的基础上集成文献分类检索功能,并给出完整的系统架构。本研究开发的文献分类检索平台,可实现肿瘤疾病动物模型文献数据资源的整合,解决目前肿瘤动物模型资源数据信息无序分散的问题,并能动态地为研究者提供动物模型的最新研究进展,为科研工作者提供一个方便、实时、高效、专业的网络信息平台工具。同时,本研究将为进一步开展肿瘤动物模型文献数据挖掘工作奠定基础,逐步为行业提供模型制备的数据分析服务,并增值开发相关的特色数据库。
该文献分类检索系统的开发,是实现动物模型文献资源挖掘的第一步,是建设疾病动物模型资源共享平台的基础,是进一步挖掘文献数据资源、开发增值功能软件、建立特色数据库的关键。