張浩然 張兆祥 劉 娟* 胡黔楠
1(武漢大學(xué)計算機學(xué)院 湖北 武漢 430072)2(天津工業(yè)生物技術(shù)研究所 天津 300308)
?
基于Android的代謝網(wǎng)絡(luò)可視化和生化反應(yīng)搜索的實現(xiàn)
張浩然1張兆祥1劉娟1*胡黔楠2
1(武漢大學(xué)計算機學(xué)院湖北 武漢 430072)2(天津工業(yè)生物技術(shù)研究所天津 300308)
摘要代謝網(wǎng)絡(luò)和生化反應(yīng)代謝路徑的研究是合成生物領(lǐng)域的重要內(nèi)容,目前亟需相關(guān)計算機軟件來輔助分析。針對這種情況以及目前移動互聯(lián)網(wǎng)發(fā)展趨勢,開發(fā)了一種基于Android的代謝網(wǎng)絡(luò)可視化和生化反應(yīng)搜索引擎系統(tǒng)。該系統(tǒng)將Android作為展示平臺,顯示代謝網(wǎng)絡(luò)的三維模型,提供生化反應(yīng)的搜索,這些都為生物合成和藥物發(fā)現(xiàn)領(lǐng)域的研究人員提供了參考。系統(tǒng)用美觀的三維模型顯示代謝網(wǎng)絡(luò),同時提供簡單的便捷的操作界面供用戶查詢生化反應(yīng)。
關(guān)鍵詞Android系統(tǒng)代謝網(wǎng)絡(luò)可視化生化反應(yīng)
0引言
合成生物學(xué)是21世紀(jì)初新出現(xiàn)的一門交叉學(xué)科,在通過闡明并模擬生物合成的基本規(guī)律基礎(chǔ)上,將工程學(xué)科的理念應(yīng)用到生物學(xué)方面,達(dá)到人工設(shè)計并構(gòu)造舊的、擁有特殊生理功能的生物系統(tǒng),從而開辟廉價生產(chǎn)藥物、化學(xué)品等的生物制造方法。與傳統(tǒng)的生物學(xué)研究方式完全相反,合成生物學(xué)是從最基本的要素開始逐步構(gòu)造生物體的零部件直到人工生命系統(tǒng)。
研究基因組規(guī)模的代謝網(wǎng)絡(luò)和不同的生化反應(yīng)代謝路徑是合成生物學(xué)的一個重要內(nèi)容。通過計算機輔助模擬方式研究代謝網(wǎng)絡(luò)逐漸成為生物學(xué)家的一個重要研究手段。而代謝網(wǎng)絡(luò)的可視化則是研究復(fù)雜代謝網(wǎng)絡(luò)的重要環(huán)節(jié),傳統(tǒng)的代謝網(wǎng)絡(luò)可視化工具多以二維方式展示,但是三維可視化可以更加生動地描述代謝網(wǎng)絡(luò)中的元素,這樣既能在宏觀層面上直觀展示以代謝途徑為單位的功能模塊,也能微觀層面上探索網(wǎng)絡(luò)元素之間的關(guān)聯(lián),為生物合成和藥物發(fā)現(xiàn)領(lǐng)域的研究人員提供了參考[1]。生化反應(yīng)在維持生命和促進(jìn)細(xì)胞生長的過程中起著非常重要的作用,因此本文整合了RxnFinder搜索引擎來方便研究人員搜索生化反應(yīng),RxnFinder是一個專業(yè)的生化反應(yīng)搜索引擎,用于從KEGG反應(yīng)數(shù)據(jù)庫中搜索反應(yīng),生物信息學(xué)數(shù)據(jù)庫KEGG是由日本京都大學(xué)生物信息學(xué)中心的Kanehisa實驗室建立,它包含了超過8000條生化反應(yīng)[2]。
互聯(lián)網(wǎng)的快速發(fā)展帶動了其他行業(yè)的快速發(fā)展,未來互聯(lián)網(wǎng)也在逐漸從傳統(tǒng)互聯(lián)網(wǎng)向移動互聯(lián)網(wǎng)轉(zhuǎn)變,移動互聯(lián)網(wǎng)的高速發(fā)展也為生物技術(shù)發(fā)展帶來契機。本文開發(fā)一款基于Android操作系統(tǒng)的代謝網(wǎng)絡(luò)的三維可視化,同時整合了生化反應(yīng)的搜索引擎,充分利用移動客戶端的優(yōu)勢,方便研究人員研究代謝網(wǎng)絡(luò)和查詢生化反應(yīng)。
1系統(tǒng)結(jié)構(gòu)設(shè)計
1.1系統(tǒng)總體設(shè)計
新一代的互聯(lián)網(wǎng)程序朝著面向服務(wù),面向應(yīng)用,面向資源的方向發(fā)展。同時在目前移動互聯(lián)網(wǎng)終端用戶數(shù)量爆發(fā)性增長的大趨勢下,針對具體需求分析,本文采用基于C/S的系統(tǒng)架構(gòu),充分利用服務(wù)器和Android客戶端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到客戶端和服務(wù)器端分別實現(xiàn),既充分利用了客戶端的計算能力減輕了服務(wù)器端運行負(fù)荷,又降低了服務(wù)器與客戶端通訊所產(chǎn)生的流量開銷。本文的整個系統(tǒng)架構(gòu)如圖1所示,用戶通過Android客戶端來進(jìn)行交互,Android客戶端將用戶的請求發(fā)送到Web服務(wù)器,Web服務(wù)器負(fù)責(zé)接收客戶端的請求分析處理后進(jìn)一步請求后臺數(shù)據(jù)庫來提供查詢與存儲支持。在后臺服務(wù)器選擇上,由于需要與武漢大學(xué)組合生物合成和新藥發(fā)現(xiàn)教育部重點實驗室平臺進(jìn)行整合,從兼容性和可維護(hù)性方面考慮,決定使用由Python語言實現(xiàn)的開源框架Django,也方便了將來進(jìn)行擴展。服務(wù)器端數(shù)據(jù)庫則采用加州大學(xué)伯克利分校計算機系開發(fā)的PostgreSQL數(shù)據(jù)庫,PostgreSQL不僅提供了良好的可移植性方便了數(shù)據(jù)的轉(zhuǎn)移,同時其豐富的引擎選擇為應(yīng)用提供了良好的性能保證。
圖1 系統(tǒng)總體架構(gòu)圖
1.2Android客戶端設(shè)計
本文的Android系統(tǒng)的總體結(jié)構(gòu)如圖2所示。Android程序整體就是一種典型MVC結(jié)構(gòu),其中M指邏輯模型,V指視圖模型,C指控制器。視圖層一般采用層次化的XML配置文件來描述,控制層一般通過眾多的Activity協(xié)同處理來實現(xiàn),模型層則是處理數(shù)據(jù)庫和網(wǎng)絡(luò)等耗時的IO操作。MVC模式將應(yīng)用程序的邏輯控制與界面展示完全分開,互不干擾。這種模式既方便了與他人進(jìn)行合作開發(fā),每人只需要開發(fā)自己的功能模塊而不會相互影響,也方便了以后修改業(yè)務(wù)流程或業(yè)務(wù)規(guī)則改變時,只需要改動MVC的模型層,而不需要對整個系統(tǒng)進(jìn)行太大的改動[3]。
圖2 Android軟件結(jié)構(gòu)圖
本文的Android軟件主要分為三個部分:生化反應(yīng)的搜索(RxnFinder),代謝網(wǎng)絡(luò)的三維可視化(ModNet3D),生物合成領(lǐng)域的新聞顯示(News)。
(1) 本文目前的代謝網(wǎng)絡(luò)主要是基于大腸桿菌的代謝網(wǎng)絡(luò),通過專門針對手機等嵌入式設(shè)備而設(shè)計的OpenGLES進(jìn)行渲染,最終繪制成球棍狀三維模型。根據(jù)代謝網(wǎng)絡(luò)的定義,代謝網(wǎng)絡(luò)可以劃分為三個層次:代謝途徑,反應(yīng)以及化合物。因此,在代謝網(wǎng)絡(luò)三維模型中,球體代表化合物,棍代表化合物之間的反應(yīng),而每一個連通的圖則是一個代謝途徑(Pathway)。用戶既可以通過PathwayID、PathwayName來搜索指定的Pathway,也可以通過CompoundID、CompoundName來搜索包含指定Compound的Pathway。
(2) 生化反應(yīng)的搜索數(shù)據(jù)主要來源于KEGG反應(yīng)數(shù)據(jù)庫,用戶能夠通過MoleculeName(分子名稱)、ECNumber(反應(yīng)酶的代號)、PathwayName(途徑名稱)來搜索相關(guān)的生化反應(yīng)。用戶可以查看反應(yīng)的詳細(xì)信息,包括反應(yīng)兩端的分子結(jié)構(gòu),反應(yīng)的催化酶的詳細(xì)信息。
(3) 新聞模塊則顯示一些生物合成相關(guān)的科研、會議、產(chǎn)品等新聞。
1.3服務(wù)器端設(shè)計
服務(wù)器端的主要功能是處理客戶端KEGG反應(yīng)數(shù)據(jù)庫的信息和新聞信息的請求,服務(wù)器前端使用了基于異步IO并發(fā)的Nginx服務(wù)器,并通過多重機制保證服務(wù)效率如Web響應(yīng)緩存機制,基于Apache的多路負(fù)載均衡,GZIP壓縮等并支持用戶身份驗證操作。將需要頻繁更新的數(shù)據(jù)放在服務(wù)器端方便以后對數(shù)據(jù)進(jìn)行增刪改,而Android客戶端本地不需要改任何代碼就可以獲取最新數(shù)據(jù)。當(dāng)客戶端的HTTP請求到來時,服務(wù)器端會對客戶端的請求進(jìn)行解析,查詢WEB緩存,緩存命中直接將結(jié)果返回到客戶端,否則將訪問后臺數(shù)據(jù)庫獲取數(shù)據(jù)后返回到客戶端。本文主要通過JSON(JavaScriptObjectNotation)來傳遞服務(wù)器和客戶端之間的數(shù)據(jù)。JSON是一種輕量級的數(shù)據(jù)交換格式,主要使用鍵值對形式保存數(shù)據(jù),并支持與許多數(shù)據(jù)類型的原生轉(zhuǎn)換,另外與常規(guī)使用的XML格式相比,減少了大量的冗余信息,既可以加快客戶端與服務(wù)器端的通信速度,還可以節(jié)約手機客戶端的流量。
2主要算法實現(xiàn)
為了能夠?qū)⒋x網(wǎng)絡(luò)較好地展示成三維模型,本文使用受力驅(qū)動布局中的KamadaKawai(KK)算法。這也是代謝網(wǎng)絡(luò)可視化的核心算法。KK布局算法將節(jié)點之間的邊看成彈簧,無論彈簧是被壓縮還是被拉伸,彈簧都會存在能量。如果兩個節(jié)點相距過近,則彈簧會被壓縮,算法會自動將兩個節(jié)點距離分開,相反,如果兩個節(jié)點相距過遠(yuǎn),則彈簧被被拉伸,算法就會將兩個節(jié)點距離拉近。KK布局算法會自動調(diào)整所有頂點,直到整個代謝網(wǎng)絡(luò)達(dá)到能量最小值[4]。
算法輸入:圖G= (V,E)
算法輸出:V中所有頂點坐標(biāo)值
算法評價函數(shù)如下所示:
首先初始化頂點集V的坐標(biāo),(xi,yi,zi)和(xj,yj,zj)分別表示頂點(vi,vj)的三維坐標(biāo),ki,j表示彈簧的彈性系數(shù),li,j表示彈簧間初始長度,算法的目標(biāo)就是尋找出點集V中所有點的坐標(biāo)位置,使E最小。由于尋找最優(yōu)解是一個NP完全問題,因此本文采取了模擬退火算法來求出趨于全局最優(yōu)解的最優(yōu)解。其基本思想如下:
(1) 初始化頂點V的坐標(biāo),初始化解狀態(tài)S,初始化溫度T。
(2) 隨機選取一個頂點在空間內(nèi)隨機移動一小段距離,得到新解狀態(tài)S′,計算E(S′)。
(3) 如果E(S′) (4) 如滿足終止條件,則將當(dāng)前解作為最優(yōu)解,結(jié)束算法,否則,將T減少,轉(zhuǎn)第(2)步。 3Android軟件實現(xiàn)與測試 3.1Android軟件實現(xiàn) 在開發(fā)環(huán)境的選擇上,雖然Google推出了自己的Android開發(fā)環(huán)境AndroidStudio,但是由于最近才發(fā)布,目前還存在不少bug待解決,因此最終采用Eclipse+ADT開發(fā)環(huán)境,同時采用AndroidSDK4.4.2+JavaJDK6開發(fā)平臺,程序編譯完成后就會生成apk文件,拷貝到移動終端就可以編譯運行[5]。 本地數(shù)據(jù)存入SQLite數(shù)據(jù)庫中,軟件采用模塊化開發(fā)思想,提供詳細(xì)的對外接口,做到高內(nèi)聚,內(nèi)耦合方便后續(xù)修改和增加新功能,并通過github進(jìn)行版本控制,可以很方便地與他人一起開發(fā)。 Github上有眾多開源Android項目可以供我們學(xué)習(xí)使用,同時我們也可以修改別人的開源代碼運用到自己的項目上。本文主要使用了JPCT-AE,async-http-client等開源庫。 JPCT-AE是一款封裝了OpenGLES的3D游戲引擎,開發(fā)人員只需要調(diào)用它提供的API就可以實現(xiàn)一些很酷的三維效果,而且可以在Android平臺上實現(xiàn)快速渲染。async-http-client是一個封裝了Apache的HttpClient開源庫,但是它所有的Http請求都會在主UI線程之外執(zhí)行,而且回調(diào)函數(shù)會在Android主UI線程執(zhí)行,因此你不需要擔(dān)心常見的ANR(ApplicationNotResponding)問題。 3.2Android軟件測試 3.2.1RxnFinder模塊 RxnFinder模塊通過MoleculeName,ECNumber,PathwayName從后臺數(shù)據(jù)庫中查詢生化反應(yīng)。例如,用戶可以選擇PathwayName,然后輸入methioninebiosynthesis(甲硫氨酸生物合成),就可以搜索到這個pathway相關(guān)的一些反應(yīng),可以進(jìn)一步點擊反應(yīng)列表來查看反應(yīng)詳細(xì)信息,如圖3所示。 圖3 基于Android的生化反應(yīng)搜索效果圖 3.2.2ModNet3D模塊 ModNet3D模塊通過OpenGLES庫來展示代謝網(wǎng)絡(luò)的三維模型[6]。用戶可以直接選擇Pathway來搜索Pathway的三維模型,也可以通過選擇compound來搜索包含這個compound的pathway三維模型。例如,用戶選擇polymyxinresistance(多粘菌素抗性途徑)這個Pathway,手機屏幕上就會顯示這個pathway的代謝網(wǎng)絡(luò)。如圖4所示,用戶可以滑動屏幕來旋轉(zhuǎn)三維模型,還可以通過手指來放大和縮小三維模型。當(dāng)用戶點擊一個球體(化合物)時,軟件會顯示化合物的詳細(xì)結(jié)構(gòu)和名稱。因為絕大部分的反應(yīng)是在酶的作用下發(fā)生的,所以當(dāng)用戶點擊一條邊(生化反應(yīng))時,軟件會自動跳轉(zhuǎn)到Expasy網(wǎng)站查詢作用于這個反應(yīng)的酶的詳細(xì)信息。Expasy是由瑞士生物信息學(xué)研究所維護(hù)的一個專業(yè)的蛋白質(zhì)分析系統(tǒng),是一個生物信息的門戶。 圖4 基于Android的代謝網(wǎng)絡(luò)三維圖 3.2.3News模塊 News模塊主要提供生物合成領(lǐng)域科研,會議,產(chǎn)品等新聞信息。當(dāng)用戶點擊某個新聞模塊時,服務(wù)器端的新聞信息列表以Json格式傳遞給客戶端,客戶端只需要進(jìn)行解析并顯示詳細(xì)新聞列表。當(dāng)用戶點擊某個具體新聞時,就會鏈接到該新聞的網(wǎng)站,顯示詳細(xì)新聞信息。所有的新聞數(shù)據(jù)都存放在服務(wù)器端,更新時只需要更新服務(wù)器端新聞信息,而已經(jīng)瀏覽過的新聞數(shù)據(jù)則存儲在本地sqlite數(shù)據(jù)庫中,以免再次更新新聞?chuàng)p耗流量。 4討論 本文開發(fā)的Android軟件實現(xiàn)了代謝網(wǎng)絡(luò)可視化,整合了生化反應(yīng)搜索引擎RxnFinder。針對基因組規(guī)模的代謝網(wǎng)絡(luò),使用經(jīng)典布局算法,設(shè)計了一個三維可視化系統(tǒng)ModNet3D。與電腦相比,手機屏幕上顯示三維模型更易操作,用戶只需要使用一些簡單的手勢就可以操作這個三維模型??蛻舳四壳疤峁┝艘源竽c桿菌代謝網(wǎng)絡(luò)為例的可視化分析,為生物合成和藥物研發(fā)領(lǐng)域的研究人員提供了使用案例。同時,以后制作了新的代謝網(wǎng)絡(luò),只需要在服務(wù)器端更新,然后在Android本地端進(jìn)行同步后就可以通過客戶端來觀察新的代謝網(wǎng)絡(luò)。生化反應(yīng)搜索引擎可以通過分子名稱,反應(yīng)酶代號,途徑名稱來搜索相關(guān)反應(yīng)的詳細(xì)信息,用戶可以很快捷地查詢反應(yīng)表達(dá)式,分子結(jié)構(gòu),反應(yīng)酶信息等,極大方便了生物合成領(lǐng)域研究人員檢索KEGG反應(yīng)[7,8]。 本系統(tǒng)目前仍然存在一些不足之處,這也是下一步改進(jìn)的方向。由于手機屏幕的限制,無法像電腦屏幕顯示大量信息,所以只能顯示用戶選擇的具體代謝途徑,無法把整個大腸桿菌的代謝網(wǎng)絡(luò)顯示在手機屏幕上。另外受服務(wù)器端系統(tǒng)規(guī)模限制對 移動端用戶數(shù)量支持有限,當(dāng)用戶達(dá)到一定規(guī)模后,會出現(xiàn)反應(yīng)遲鈍的假死現(xiàn)象,后續(xù)通過分布式架構(gòu)改進(jìn)它。 5結(jié)語 本文針對基因組規(guī)模的代謝網(wǎng)絡(luò),設(shè)計了一個基于Android的三維可視化系統(tǒng)ModNet3D,同時為了方便研究人員對生化反應(yīng)進(jìn)行分析,整合KEGG反應(yīng)數(shù)據(jù)庫,提供了一系列方式供用戶搜索生化反應(yīng)。隨著移動互聯(lián)網(wǎng)的快速發(fā)展,未來合成生物領(lǐng)域與移動互聯(lián)網(wǎng)之間會產(chǎn)生更多的交集,會有越來越多的開發(fā)人員開發(fā)生物領(lǐng)域相關(guān)的軟件。因此,目前亟需一個開放的平臺,可以供互聯(lián)網(wǎng)研究人員與生物研究人員交流的平臺,相互促進(jìn)發(fā)展,使移動互聯(lián)技術(shù)在生物領(lǐng)域產(chǎn)生更大的影響。 參考文獻(xiàn) [1] 許曉彤.基因組規(guī)模代謝網(wǎng)絡(luò)的三維可視化系統(tǒng)的設(shè)計與實現(xiàn)[D].武漢:武漢大學(xué)計算機學(xué)院,2013. [2]HuQN,DengZ,HuHN,etal.RxnFinder:biochemicalreactionsearchenginesusingmolecularstructures,molecularfragmentsandreactionsimilarity[J].Bioinformatics,2011,27(17):2465-7. [3]RetoMeier.Android4高級編程[M].北京:清華大學(xué)出版社,2013. [4]BeckerMY,RojasI.Agraphlayoutalgorithmfordrawingmetabolicpathways[J].Bioinformatics,2001,17(5):461-467. [5]WeimengLee.Android編程入門經(jīng)典[M].北京:清華大學(xué)出版社,2012. [6]KevinBrothaler.OpenGLES應(yīng)用開發(fā)實踐指南:Android卷[M].北京:機械工業(yè)出版社,2014. [7]CroftD,O’KellyG,WuG,etal.Reactome:adatabaseofreactions,pathwaysandbiologicalprocesses[J].NucleicAcidsRes,2011,39(Databaseissue):D691-7. [8]KanehisaM,GotoS,FurumichiM,etal.KEGGforrepresentationandanalysisofmolecularnetworksinvolvingdiseasesanddrugs[J].NucleicAcidsRes,2010,38(Databaseissue):D355-60. IMPLEMENTATION OF ANDROID-BASED METABOLIC NETWORKS VISUALISATIONANDBIOCHEMICALREACTIONSEARCH Zhang Haoran1Zhang Zhaoxiang1Liu Juan1*Hu Qiannan2 1(School of Computer,Wuhan University,Wuhan 430072,Hubei,China)2(Tianjin Institute of Industrial Biotechnology,Tianjin 300308,China) AbstractResearch on metabolic networks and metabolic pathway of biochemical reaction is important for biosynthesis, and the related computer software is urgently needed at present to carry out assistant analysis. In light of this situation and based on current development trend of mobile Internet, we developed an Android-based system for metabolic networks visualisation and biochemical reaction search engine. The system regards the Android as the display platform, it demonstrates the 3D model of metabolic networks and provides biochemical reaction searches, both of these provide the references for researchers in biosynthesis and drug discovery fields. The system displays the metabolic networks with beautiful 3D model, and meanwhile presents simple and convenient operation interface for users to search the biochemical reactions. KeywordsAndroid systemMetabolic networkVisualisationBiochemical reaction 收稿日期:2014-12-26。張浩然,碩士生,主研領(lǐng)域:數(shù)據(jù)挖掘。張兆祥,碩士生。劉娟,教授。胡黔楠,教授。 中圖分類號TP311 文獻(xiàn)標(biāo)識碼A DOI:10.3969/j.issn.1000-386x.2016.06.054