陳云俠,張 洋,陳文波
(蘭州大學(xué)網(wǎng)絡(luò)安全與信息化辦公室,甘肅 蘭州 730000)
2014年在國際著名期刊《Nature》上報道了一種針對腫瘤癌細(xì)胞的激酶MTH1,文章指出MTH1是癌細(xì)胞生存所必需的,而在正常細(xì)胞中MTH1是非必需的[1-3]。MTH1是一種氧化嘌呤核苷三磷酸酶,內(nèi)含抗氧化相關(guān)修復(fù)基因,能夠?qū)NTP池中的氧化核苷酸進(jìn)行選擇地清除,為癌細(xì)胞生存所必須,所以對MTH1抑制劑的研究將對癌癥的治療有著重要的意義。
在藥物研究領(lǐng)域中對于新藥的發(fā)現(xiàn)工作主要使用虛擬篩選方法[4],這是一種計(jì)算密集型任務(wù)。在高性能計(jì)算的帶動下這種方法有了突飛猛進(jìn)的發(fā)展,極大地縮短了藥物研究與開發(fā)的進(jìn)程,提高了藥物開發(fā)的效率。計(jì)算機(jī)輔助藥物設(shè)計(jì)已經(jīng)成為現(xiàn)代藥物研發(fā)進(jìn)程中不可替代的方法[5-6]。最近文獻(xiàn)[7]用虛擬篩選方法來搜索潛在的藥物用于治療導(dǎo)致乙型腦炎的化合物NiV-G。文獻(xiàn)[8]用計(jì)算模擬的方法預(yù)測出雌二醇可能是治療CMT1A患者的首選藥物,CMT1A在不久的將來可能會引起生物學(xué)家的更多關(guān)注。
網(wǎng)格是大規(guī)模虛擬篩選的首選技術(shù),有報道稱使用Worldwide Grid的網(wǎng)格計(jì)算資源成功篩選了抗甲型流感病毒的藥物[9];文獻(xiàn)[10]利用EELA-2網(wǎng)格研究了在委內(nèi)瑞拉的登革熱病毒的分子流行病學(xué)的機(jī)制;有學(xué)者專門設(shè)計(jì)了名叫Hydra的軟件,使用165節(jié)點(diǎn)進(jìn)行了基于網(wǎng)格計(jì)算的藥物虛擬篩選的計(jì)算[11];開源的分布式計(jì)算軟件Hadoop已經(jīng)被用于基于UCSF Dock(僅限于LinuxOS)的藥物虛擬篩選中[12]。但是,網(wǎng)格技術(shù)需要先進(jìn)的架構(gòu),高效的工具、軟件等來管理,才能最大化利用共享的資源和架構(gòu),成本非常高;其次,它嚴(yán)重依賴分散的數(shù)據(jù)管理,一些軟件的定義不明確,有些應(yīng)用須修改才能適應(yīng)網(wǎng)格的使用,這些問題導(dǎo)致了網(wǎng)格技術(shù)比較難以進(jìn)一步推廣和應(yīng)用[13]。Hadoop是MapReduce計(jì)算模型的一個實(shí)現(xiàn)框架,它采用了共享的HDFS文件系統(tǒng)。該文件系統(tǒng)對本地服務(wù)器的磁盤讀寫要求很高,且會在節(jié)點(diǎn)間產(chǎn)生大量的流量,故對網(wǎng)絡(luò)的通暢性要求很高。所以,Hadoop架構(gòu)只有在完成網(wǎng)絡(luò)優(yōu)化后,才有可能實(shí)現(xiàn)計(jì)算性能提升[14]。以虛擬化技術(shù)為主的云計(jì)算,面對以性能為主的高性能計(jì)算應(yīng)用來說也不是一個很好的解決方案。
分布式計(jì)算在現(xiàn)代藥物設(shè)計(jì)中起到越來越重要的作用[15-17]。雖然很多關(guān)于藥物的分布式計(jì)算的研究已經(jīng)陸續(xù)被報道,但是相關(guān)的源碼和成型的軟件尚沒有被報道。對于一般的實(shí)驗(yàn)室來講,組建靈活方便并且穩(wěn)定有效的網(wǎng)格去進(jìn)行藥物的虛擬篩選仍然是一項(xiàng)不容易的工作。
JPPF提供了一種很好的異步分布式計(jì)算框架,可以管理和充分利用不同架構(gòu)乃至不同操作系統(tǒng)下的計(jì)算資源。如果將這些資源組織起來并高效地利用,就可以進(jìn)行大規(guī)模的虛擬篩選。不僅如此,通過JPPF(Java Parallel Processing Framework, Java并行處理框架)還可以統(tǒng)一調(diào)配后期的分子動力學(xué)模擬的任務(wù),將其部署到計(jì)算能力更高的GPU計(jì)算平臺上。GPU架構(gòu)的機(jī)器可以加速分子動力學(xué)模擬的計(jì)算,實(shí)驗(yàn)測試中1臺GPU就可以達(dá)到普通集群約224核心的計(jì)算能力[18]。所以,對于基于分子對接的虛擬篩選和分子動力學(xué)模擬來說,組建不同架構(gòu)的平臺資源進(jìn)行調(diào)度和參與計(jì)算就可以滿足不同方面的計(jì)算需要。
本文以JPPF異步分布式計(jì)算框架和AutodockVina分子對接技術(shù)作為基礎(chǔ)技術(shù),設(shè)計(jì)一種異步分布式虛擬篩選系統(tǒng),通過對100萬藥物分子集進(jìn)行篩選,最終得到MTH1抑制劑的目標(biāo)結(jié)果集。
JPPF是一個開源的網(wǎng)格計(jì)算架構(gòu),它可以在分布式環(huán)境下同時運(yùn)行多個Java應(yīng)用,利用它可以簡單方便地構(gòu)建異構(gòu)分布式計(jì)算環(huán)境來處理大規(guī)模并行問題[19]。
為了減少處理時間,JPPF將一個應(yīng)用分解成能夠在多臺計(jì)算機(jī)上同時執(zhí)行的小任務(wù)來實(shí)現(xiàn),使得需要大規(guī)模處理能力的應(yīng)用可以在任意數(shù)量的計(jì)算機(jī)上運(yùn)行。JPPF提供了多種負(fù)載平衡算法、故障轉(zhuǎn)移、錯誤恢復(fù)和應(yīng)用級安全策略,并可以與J2EE集成。JPPF具備下列特點(diǎn):可以快速建立和運(yùn)行JPPF網(wǎng)格;根據(jù)需求動態(tài)擴(kuò)展;與領(lǐng)先的J2EE應(yīng)用服務(wù)器連接;易于編程的模型;細(xì)粒度的監(jiān)控和管理;容錯和自我修復(fù)能力;高性能的服務(wù)水平和可靠性。
JPPF包括clients、servers和nodes這3個部分。clients通過調(diào)用JPPF API將應(yīng)用程序的計(jì)算任務(wù)提交給JPPF網(wǎng)格;servers接收來自clients的任務(wù)并將任務(wù)分派到nodes上,然后接收從nodes計(jì)算得到的結(jié)果并將結(jié)果返回給clients;nodes執(zhí)行真正的計(jì)算任務(wù)[20]。這3部分之間的關(guān)系如圖1所示。
圖1 JPPF的基本結(jié)構(gòu)
由圖1可以看出,server扮演著非常重要的角色,負(fù)責(zé)client和nodes之間的通信。在實(shí)際部署中,如果采用一個server負(fù)責(zé)所有處理情況,那么當(dāng)server出現(xiàn)故障或崩潰時整個JPPF網(wǎng)格將癱瘓。JPPF可以擴(kuò)展成包含多個server的結(jié)構(gòu),各server之間通過P2P的網(wǎng)絡(luò)連接方式進(jìn)行通信,并且對于clients和nodes提供了額外的連接選項(xiàng)和容錯機(jī)制。在這種拓?fù)浣Y(jié)構(gòu)中,每一個server視它的對等節(jié)點(diǎn)為一個client,并被它的對等節(jié)點(diǎn)看作是一個node,這極大地增強(qiáng)了JPPF的可靠性。
AutoDockVina是一款由Molecular Graphics實(shí)驗(yàn)室的Dr. Oleg Trott開發(fā)的用于分子對接和虛擬篩選的開源軟件[21]。目前該軟件已經(jīng)歷2代,分別是AutoDock 4和AutoDockVina,其中AutoDock 4是AutoDockVina之前的一個版本。除了用于分子對接之外,這2個版本還可以實(shí)現(xiàn)原子之間引力關(guān)系的可視化,這可以指導(dǎo)有機(jī)合成化學(xué)家設(shè)計(jì)更好的所需材料[22]。AutoDockVina因?yàn)榫哂袦?zhǔn)確性高、運(yùn)算速度快、容易使用等特征,所以與其他同類軟件相比具有極強(qiáng)的競爭優(yōu)勢。相對于之前的版本AutoDock 4,AutoDockVina通過在多核機(jī)器上使用多線程技術(shù)以及充分利用所有的CPU和GPU資源,極大地提高了綁定模式預(yù)測的平均性能,實(shí)現(xiàn)了2個數(shù)量級的性能提升,進(jìn)一步提高了綁定模式預(yù)測的精度[23]。此外,AutoDockVina已經(jīng)嚴(yán)格地通過被稱為Directory of Useful Decoys基準(zhǔn)程序的測試。在兼容性方面,AutoDockVina與AutoDock 4都采用PDBQT分子結(jié)構(gòu)文件格式,該文件可以通過MGLTools產(chǎn)生和查看,具有很好的兼容性。鑒于AutoDockVina的設(shè)計(jì)理念,用戶并不需要理解其實(shí)現(xiàn)細(xì)節(jié)、搜索參數(shù)、聚合結(jié)果等,具有簡單容易的特點(diǎn)。
基于JPPF的虛擬篩選計(jì)算系統(tǒng)架構(gòu)如圖2所示,主要包括4個部分:Molgridcal、Server、計(jì)算節(jié)點(diǎn)和網(wǎng)絡(luò)。
圖2 虛擬篩選系統(tǒng)架構(gòu)
Molgridcal主要完成對篩選數(shù)據(jù)的預(yù)處理,即從不同的藥物數(shù)據(jù)庫導(dǎo)入需要篩選的分子,對分子進(jìn)行轉(zhuǎn)化并建立最終篩選的數(shù)據(jù)庫。該系統(tǒng)選取ZINC、Pubchem和SuperNature這3個藥物數(shù)據(jù)庫的分子。首先將ZINC數(shù)據(jù)庫中的小分子直接導(dǎo)入基于ChemAxon和MySQL建立的數(shù)據(jù)庫。對于Pubchem和SuperNature數(shù)據(jù)庫中的2D分子,通過腳本和ChemAxon過濾掉與數(shù)據(jù)庫中已經(jīng)收錄的重復(fù)結(jié)構(gòu)的小分子,并將其轉(zhuǎn)化成3D結(jié)構(gòu),最后將處理好的全部小分子都導(dǎo)入到指定的數(shù)據(jù)庫中,以備虛擬篩選。Server主要是將待篩選的數(shù)據(jù)分配到相應(yīng)的計(jì)算節(jié)點(diǎn)上。
該系統(tǒng)設(shè)計(jì)了2種方法用于系統(tǒng)的負(fù)載均衡:一種是了解每一個計(jì)算資源的計(jì)算能力,手動發(fā)送不同的任務(wù)量到不同的計(jì)算節(jié)點(diǎn);另外一種是使用Monte Carlo的自適應(yīng)啟發(fā)式算法分配任務(wù)到不同的計(jì)算節(jié)點(diǎn)。計(jì)算節(jié)點(diǎn)主要由各種異構(gòu)計(jì)算資源組成,用于對目標(biāo)的任務(wù)進(jìn)行虛擬篩選或者模擬??煽康木W(wǎng)絡(luò)保證分子數(shù)據(jù)在虛擬篩選過程的有效傳輸。
1)準(zhǔn)備待篩選的100萬目標(biāo)分子數(shù)據(jù),部署數(shù)據(jù)存儲服務(wù)器。
2)部署和配置Molgridcal和Server。
3)啟動Molgridcal,對待篩選的數(shù)據(jù)進(jìn)行讀取,等到Molgridcal對數(shù)據(jù)讀取結(jié)束,啟動Server。
4)當(dāng)計(jì)算節(jié)點(diǎn)連接上相應(yīng)的Server之后,此計(jì)算節(jié)點(diǎn)會從Molgridcal上下載一個待篩選的分子,然后進(jìn)行計(jì)算。計(jì)算結(jié)束之后,將節(jié)點(diǎn)的計(jì)算結(jié)果上傳到數(shù)據(jù)服務(wù)器。
5)所有的分子篩選結(jié)束之后,將計(jì)算的結(jié)果進(jìn)行分析。
虛擬篩選需要用到的實(shí)驗(yàn)環(huán)境主要分3個部分。
第1部分是數(shù)據(jù)中心,存儲了所有的數(shù)據(jù)。使用的是華碩KCMA-D8,其硬盤容量為1 TB,操作系統(tǒng)使用的是CentOS release 6.2。
第2部分為JPPF的服務(wù)器,使用的是IBM System x3550,操作系統(tǒng)為CentOS release 6.3。
第3部分為計(jì)算節(jié)點(diǎn),包括一個GPU集群,由4個曙光GPU工作站組成,每個GPU工作站節(jié)點(diǎn)配置2 個Intel Xeon 5650 2.66 GHz 6核CPU處理器,4塊NVIDIA Tesla C2050 GPU卡,使用的操作系統(tǒng)為CentOS release 5.4。一個CPU集群,包含3個Intel Xeon 5650服務(wù)器節(jié)點(diǎn),每個節(jié)點(diǎn)擁有2個Intel Xeon 5650雙核CPU 處理器,操作系統(tǒng)為CentOS release 6.3。2臺迷你臺式電腦,其中1臺使用的是Intel 酷睿i5 3470四核CPU處理器,操作系統(tǒng)為Microsoft Windows 7 Professional,另一臺使用的是CentOS release 6.6,Intel酷睿2雙核處理器。
MTH1的分子模型如圖3所示。其中,條狀圖代表蛋白質(zhì),球狀圖代表鈉離子,其余的棍狀模型圖代表水分子。
圖3 MTH1的分子模型
考慮到數(shù)據(jù)服務(wù)器的存儲空間和內(nèi)存限制,將100萬的待篩選分子進(jìn)行了劃分并設(shè)置了每次篩選的分子數(shù)量,具體如表1所示。在每一個等待篩選的文件夾中放置40000個左右的分子,將任務(wù)分為25份。如果計(jì)算機(jī)的存儲空間和內(nèi)存足夠大,可以設(shè)置每次篩選更多的分子。
表1 100萬MTH1的類藥分子的劃分
任務(wù)編號原始個數(shù)任務(wù)編號原始個數(shù)VS140209VS1440856VS241546VS1540612VS341380VS1640122VS440017VS1740979VS540056VS1840609VS640051VS1940701VS740472VS2040054VS840261VS2140161VS940108VS2240154VS1040462VS2340171VS1140031VS2440604VS1240245VS2560084VS1324067總計(jì)101413
以任務(wù)編號VS1的40209個待虛擬篩選分子為例,不同的計(jì)算資源(小型CPU集群、GPU集群、普通PC機(jī))對其篩選情況如表2所示。
表2 不同計(jì)算資源的虛擬篩選情況(以VS1為例)
編號IP地址:端口號最大支持線程數(shù)/單任務(wù)最多使用線程數(shù)狀態(tài)任務(wù)量110.1.255.247:111984/5Connected95210.1.255.250:111984/5Connected101310.1.255.252:111984/5Connected974202.201.1.10:111984/5Connected16285202.201.1.10:1119924/5Connected16316202.201.1.10:1120024/5Connected16367202.201.1.10:1120124/5Connected16358202.201.1.10:1120224/5Connected16399202.201.1.10:1120324/5Connected163810202.201.1.20:1119824/5Connected166011202.201.1.20:1119924/5Connected166012202.201.1.20:1120024/5Connected165313202.201.1.20:1120124/5Connected166214202.201.1.20:1120224/5Connected166715202.201.1.20:1120324/5Connected165916202.201.1.21:1119824/5Connected165517202.201.1.21:1119924/5Connected164918202.201.1.21:1120024/5Connected166119202.201.1.21:1120124/5Connected165620202.201.1.21:1120224/5Connected165621202.201.1.21:1120324/5Connected164722202.201.1.21:1119824/5Connected164823202.201.1.21:1119924/5Connected164624202.201.1.21:1120024/5Connected165825202.201.1.21:1120124/5Connected164626202.201.1.21:1120224/5Connected165227202.201.1.21:1120324/5Connected164328210.26.55.130:111982/5Connected11129210.26.55.51:111984/5Connected220總數(shù)40209
表2中,編號1~3為小型的CPU集群,每一個節(jié)點(diǎn)有4個CPU計(jì)算核心;編號4~27為GPU集群,有4個節(jié)點(diǎn),由于每一個計(jì)算節(jié)點(diǎn)的CPU計(jì)算核心有24個,而每一個篩選任務(wù)最多只能使用5個核心,因此在一個節(jié)點(diǎn)上重復(fù)運(yùn)行了6個任務(wù);編號28~29為普通PC機(jī),可以使用的CPU計(jì)算核心數(shù)分別為2個和4個。
由表2可以看出,所有的計(jì)算資源都能成功地連接,同時對相關(guān)的任務(wù)進(jìn)行計(jì)算。由于GPU集群不僅擁有超強(qiáng)計(jì)算能力的GPU,同時還擁有較多的CPU計(jì)算核心,因此它的計(jì)算能力是最強(qiáng)的。在只是使用一個計(jì)算節(jié)點(diǎn)的情況下,GPU集群是CPU集群計(jì)算速度的990倍,是雙核PC機(jī)的900倍,是4核PC機(jī)的450倍。因此,雖然CPU的計(jì)算能力和核數(shù)對計(jì)算速度有一定的影響,但是GPU對系統(tǒng)計(jì)算速度的提升更加明顯和有效。
本次實(shí)驗(yàn)采用不同構(gòu)架的計(jì)算資源實(shí)現(xiàn)了對MTH1類藥分子的虛擬篩選,并篩選出前10名的類藥分子,具體如表3所示。前10名類藥分子用于進(jìn)一步的分析,排名越靠前的分子說明是親和力越強(qiáng)的分子。
表3 虛擬篩選出的前10名類藥分子
編號類藥分子親和力/(kcal/mol)1ZINC72003306-13.12ZINC09559647-13.13ZINC13750217-13.04ZINC04141488-12.95ZINC63097139-12.96ZINC04815059-12.97ZINC04909555-12.98ZINC78511930-12.69ZINC16780432-12.610ZINC35882888-12.6
系統(tǒng)選取了MTH1晶體結(jié)構(gòu)中的配體TH287作為對照,通過分子對接得到TH287和MTH1的親和能是-8.7 kcal/mol。而通過虛擬篩選得到的前10名類藥分子都是低于這個數(shù)值的,說明這些分子是潛在的MTH1的配體。
以排名第1(No.1)的類藥分子(ZINC ID:ZINC72003306)為例,分子結(jié)構(gòu)如圖4所示。
圖4 ZINC72003306的分子結(jié)構(gòu)
MTH1活性口袋中的活性位點(diǎn)由氨基酸N33、D119和D120組成。如圖5所示,通過比較TH287和No.1分子在MTH1結(jié)合口袋中的結(jié)合模式可以看到,No.1分子和TH287都能結(jié)合在氨基酸N33、D119和D120形成的空腔周圍,表明了通過虛擬篩選的方法可找到直接靶向MTH1的藥物分子。
圖5 TH287和類藥分子ZINC72003306及MTH1的結(jié)合模式
虛擬篩選需要大規(guī)模的計(jì)算資源,但是傳統(tǒng)的網(wǎng)格技術(shù)嚴(yán)重依賴分散、高效的數(shù)據(jù)管理,已經(jīng)不適合應(yīng)用到大規(guī)模的腫瘤藥物篩選和模擬。而通過對分布式資源的彈性調(diào)度不僅可以集中計(jì)算資源,還可以整合可利用的空閑資源一起參與這種大規(guī)模分布式應(yīng)用。同時,既能節(jié)約購買計(jì)算資源的成本,還可以充分發(fā)揮每一種資源的利用率,滿足不同的計(jì)算需求。本文設(shè)計(jì)了一種基于JPPF分布式并行框架的虛擬篩選系統(tǒng),該系統(tǒng)使用了不同類型的計(jì)算資源,包括普通PC機(jī)、CPU集群和GPU集群。為了測試JPPF藥物篩選系統(tǒng)的性能,系統(tǒng)對100萬藥物分子集進(jìn)行了篩選,并選出排名前10名的類藥分子。通過比較TH287和No.1分子在MTH1結(jié)合口袋中的結(jié)合模式,發(fā)現(xiàn)No.1分子和TH287都能結(jié)合在氨基酸N33、D119和D120形成的空腔周圍,表明使用本文設(shè)計(jì)的虛擬篩選方法可以找到直接靶向MTH1的藥物分子。實(shí)驗(yàn)同時驗(yàn)證了不同計(jì)算資源的計(jì)算速度和計(jì)算能力成正比。該系統(tǒng)的實(shí)現(xiàn)為快速構(gòu)建大規(guī)模藥物分子虛擬篩選技術(shù)提供了一種解決方案。