丘文峰 胡金芳 陳梅麗 鄧少嫦
(1.廣東醫科大學信息工程學院,東莞 523808)(2.廣東省實驗動物監測所,廣東省實驗動物重點實驗室,廣州 510663)
隨著互聯網的逐步社會化,各行各業的數據生產能力達到前所未有的高度,大數據(Big Data)概念在這一背景下被提了出來,并且吸引了越來越多的關注。疾病動物模型是開展醫學研究及藥物研發的重要支撐工具[1]。利用疾病動物模型開展研究,可以避免人體實驗造成的風險和倫理問題,并可嚴格控制實驗條件,排除復雜因素,增強實驗材料的可比性,有助于全面地揭示疾病的本質和發展規律,傳統模型檢索存在共享困難、重復研究和擴展性差等問題[2-3]。目前,國外主要相關的數據庫有:美國NIH國立研究資源中心的LAMHDI網站連接的小鼠基因組信息學數據庫 MGI,大鼠基因組數據庫RGD,斑馬魚模型數據庫ZFIN,酵母菌基因組數據庫SGD等。國內主要相關的數據庫有:中國實驗動物信息網絡中心(國家實驗動物數據資源中心)、國家遺傳工程小鼠資源庫等。這些數據庫主要以關系數據庫為基礎,提供各類常規實驗動物生物學數據和基因工程實驗動物的特性研究數據。如何從數據庫的海量數據中快速、高效地檢索、智能挖掘出有用的動物模型信息是目前疾病動物模型檢索的一大難題。
近年來,開源搜索引擎不斷發展,Lucene、Sphinx、Xapian等代表性開源平臺已成為站內搜索的新架構[4]。本文結合基于Lucene 的ElasticSearch技術,提出一種可伸縮的疾病動物模型檢索技術。
對網絡開源的數據采集都是采用通用爬蟲技術。但在特定領域,僅需要采集專門主題數據。此時,通用爬蟲技術通常會采集到大量的不相關信息,極大地浪費硬件和網絡資源,這些不相關信息也不利于后續數據分析與檢索。為此,在現有主題爬蟲技術的基礎上,提出了一種適應疾病動物模型文獻采集的爬蟲技術。
文獻數據的調查與收集階段,檢索的中文文獻資源主要取自中國知網、萬方數據庫,外文文獻以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
項目使用開源關系數據庫MYSQL存儲由采集程序獲取的基礎數據。MYSQL最早由瑞典MYSQL AB公司開發,后經Oracle收購。MYSQL是最流行的關系型數據庫管理系統之一,而 AMP(Appache、MYSQL、PHP)是最流行的開源WEB開發框架。采集程序可以使用任何一種數據庫存儲,最終選擇MYSQL主要是在系統整體設計中,MYSQL是一個最穩定,開發最高效的搭配?;A數據庫包含采集數據的動物模型信息,文獻標題、摘要、作者、基金項目、文獻號、圖文信息、關鍵詞及動物模型分類等。
項目使用 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”為條件,只查詢同步以后新加入的數據。
基于ElasticSearch的疾病動物檢索平臺,借助開源SNS系統UCHOME,通過二次開發文獻檢索插件為用戶提供文獻檢索服務,見圖5。用戶數據存儲在應用數據庫中,包含用戶信息,用戶積分體系、活動、群組及分享信息。而文獻檢索功能通過ElasticSearch提供的RESTful API完成。實驗表明,該方案能夠推廣應用于其他第三方應用平臺,如移動應用。

圖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
本文從構建疾病動物檢索平臺采集服務、基礎數據庫、彈性檢索和應用數據庫四方面進行討論。采集服務中針對兩種不同的爬蟲策略展開討論,并給出技術實施建議。彈性檢索是系統構建核心,研究中采用兩種不同的異構數據庫系統,難點在于如何實現數據的持續增量更新和解決冗余方案,本文給出研究中的解決方案。
二次開發在社區平臺的基礎上集成文獻分類檢索功能,并給出完整的系統架構。本研究開發的文獻分類檢索平臺,可實現腫瘤疾病動物模型文獻數據資源的整合,解決目前腫瘤動物模型資源數據信息無序分散的問題,并能動態地為研究者提供動物模型的最新研究進展,為科研工作者提供一個方便、實時、高效、專業的網絡信息平臺工具。同時,本研究將為進一步開展腫瘤動物模型文獻數據挖掘工作奠定基礎,逐步為行業提供模型制備的數據分析服務,并增值開發相關的特色數據庫。
該文獻分類檢索系統的開發,是實現動物模型文獻資源挖掘的第一步,是建設疾病動物模型資源共享平臺的基礎,是進一步挖掘文獻數據資源、開發增值功能軟件、建立特色數據庫的關鍵。