新冠病毒藥物研發分秒必爭,阿里高性能計算如何出力?
阿里妹導讀:新冠狀病毒疫情發生后,為了幫助抗攻擊疫情,阿里云免費向全球公共科研機構提供高性能計算、SCC超級計算集群和CPU/GPU機器、云超算及AI等技術。
近期,不少研究機構和高校在阿里云上E-HPC云超算上進行藥物研發相關的數值計算,阿里云超算團隊提供了技術支持與跟進。
本文主要介紹藥物篩選階段,E-HPC云超算如何幫助研發人員實現大量小分子庫的快速并發處理。同時,介紹全球健康藥物研發中心GHDDI算力和成果共享開放平臺的阿里云解決方案。
病毒、藥物研發和高性能計算
一款藥物的誕生周期極其漫長,從最早的新藥研發到上市,至少要經歷10年。
在疫情這般分秒必爭的背景下,時間尤為珍貴。因此在本次過程中,許多科學家會嘗試從已有的藥物里面,找到能治療新冠的藥,免去了后續大量審批上市等步驟。
化合物發現階段,以往的方法是通過大量實驗做篩選,發現可能適合的化合物。如今,科學家嘗試通過機器模擬分子化合物與靶點的相互作用,從而篩選出可能有效的化合物做實驗。
在此過程中,高性能計算(HighPerformance Computing,簡稱HPC),常被稱為“超算”,是現代藥物研發必不可少的支持。
云計算的興起更是改變了科學家獲取算力、享受超算服務的方式。比如阿里云E-HPC 云超算產品,能夠讓科學家自助在云上搭建高性能集群系統,滿足藥物研發人員對計算平臺的需求。
此外,云上算力規模龐大且靈活,科學家可以按需購買,而不用擔心被算力規模限制了研發速度。
那么,具體病毒、藥物研發和高性能計算之間具體聯系幾何?我們將從從病毒如何在宿主復制擴散開始講起,到藥物抑制方法舉例,最后給出高性能計算在藥物研發的作用。
病毒和藥物研發
病毒是由核酸分子(DNA或RNA)與蛋白質構成的非細胞形態,如下圖煙草花葉病毒所示。因為是非細胞的,無法通過細胞分裂的方式來完成數量增長,它們通過進入宿主細胞并利用宿主細胞內的代謝工具來合成自身的拷貝,并完成病毒的組裝[1]。冠狀病毒(CoV)是一種是一組高度同源的,單鏈正譯RNA病毒,其具有以上的病毒特征,可引起多種嚴重程度不同的呼吸道,腸道,肝臟和神經系統疾病,在過去的12年中出現的兩種新型的,即嚴重的急性呼吸系統綜合癥(SARS-CoV)和中東呼吸系統綜合癥(MERS-CoV)[2],以及目前肆掠的COVID-19都屬于這種病毒。
COVID-19病毒
某病毒蛋白分子結構[4]
病毒進入宿主細胞后,病毒基因組完成復制、轉錄(除了正譯RNA病毒外)以及病毒蛋白質合成,然后組裝行成更多數目的病毒,其生命流程如下圖所示(無包膜病毒簡易示圖)。
利用藥物干擾病毒復制過程,可以有效抑制病毒對機體的傷害。例如,病毒蛋白在合成過程中,需要蛋白酶的介入,如3cl蛋白酶和ProPL蛋白酶,抑制蛋白酶的功能就是抑制病毒的方法之一。蛋白酶上能夠被其它物質(配體、藥物)識別或結合的結構,被稱為靶點(BiologicalTarget)。找到能夠與病毒的蛋白酶合適的靶點結合的配體(小分子藥物),通過藥物的作用改變蛋白酶的立體結構,進而改變其功能,阻礙病毒蛋白合成,導致病毒無法復制,實現抑制病毒復制的效果。[3]
藥物研發與高性能計算
藥物研發是一個非常復雜和非常耗時的過程,藥物篩選只是流程前期一個環節。例如,之前提的尋找跟蛋白病毒酶結合的小分子,由于存在不同種類或研究機構的配體(小分子)庫,配體(小分子)庫數量巨大,每個配體庫的配體數量成千上萬,甚至更大,通過實驗方式一一測試驗證是不切合實際的。通過計算機數值模擬進行篩選,對不同配體的結合效果進行打分,篩選出打分高且結合模式合理的一些配體作為候選藥物進行實驗驗證,能夠有效加速藥物的研究進程。
由于配體庫巨大,如果在有限時間完成篩選,也是一個巨大的挑戰。例如,配體庫有10,000個候選配體,每個配體平均處理時間為1.5個小時,總共需要15,000 個小時(625天)。因此,為在規定時間內算完,需要具備以下條件:
- 擁有強大計算能力的計算平臺;
- 大容量存儲,用于存放處理數據和計算結果;
此外,為了保證篩選計算能夠高效、順利完成,還需要計算服務,包括:
- 集群軟件運行環境,保證在多機環境下軟件運行,以及數據訪問;
- 能夠支持多任務在多機環境下并發處理的并行方案。
除計算平臺外,藥物篩選還需要高性能應用軟件。藥物篩選模擬計算包括Docking和分子動力學計算:Docking 耗時相對較小,常用于大量配體的初步篩選,主要軟件有dock6、Autodock Vina、Glide 等;分子動力學模擬計算比較耗時,測試作用的時間變化,用于對Docking初選結果進一步分析,主要軟件有Gromacs,Namd,Amber等,GPGPU加速效果一般比較明顯。
E-HPC高通量藥物篩選方案
藥物研發需要強大計算能力的高性能集群,如何獲取這些計算資源和服務呢?
伴隨著云計算的興起,從云上獲取計算服務器服務成為一個新的途徑,同時阿里云提供不同產品服務,如云超算產品E-HPC(Elastic High PerformanceComputing),集群共享文件系統NAS/CPFS,數據庫等。其中E-HPC 云超算產品,能夠讓用戶自助在云上搭建自己的高性能集群系統,配置高性能服務器和大容量存儲,提供軟件多節點運行和高通量任務處理解決方案,直接滿足藥物研發人員對計算平臺的需求。
E-HPC云超算
阿里云E-HPC云超算產品是云原生的高性能計算集群解決方案,將阿里云的計算產品(ECS/EGS/裸金屬服務器/超級計算集群)、網絡(VPC/RoCE)和存儲(NAS/OSS/CPFS)等產品進行整合,配置高性能計算作業管理和賬戶管理,并集成常用的HPC應用軟件,實現讓用戶在頁面操作,獲取自己的高性能計算集群,擁有root權限,對集群進行管理配置。
除功能以外,性能上阿里云提供多種計算實例類型,提供各種計算能力(1vCPU、2vCPU、4vCPU … 104vCPU)、不同內存配比(1vCPU:2GB,1vCPU:4GB, 1vCPU: 8GB)的算例、或配有GPU或FPGA加速卡,CPU類型多為Intel 最新架構。其中,彈性裸金屬服務器(ECS BareMetal Instance)是基于阿里云完全自主研發的下一代虛擬化技術而打造的新型計算類服務器產品,兼具虛擬機的彈性和物理機的性能及功能特性,釋放整機的計算性能;裸金屬服務器配有支持RMDA的RoCE高速網絡,變成超級計算集群SCC (SuperComputing Cluster) 產品,滿足大規模高并發的應用場景。
E-HPC高通量任務解決方案
高性能計算環境提供基礎的計算平臺,要實現高效的藥物篩選,還需要一種高通量任務解決方案。
例如,使用DOCK6 處理配體(小分子)庫的對接案例,在一個文件夾中,如mol2,存放大量的小分子文件,每個小分子處理流程是一樣的,均需要跟相同的受體(如病毒蛋白酶)進行計算。
如果使用串行的處理方式,代碼如下圖所示。其中,dock.in 為DOCK6命令的輸入文件,并且需要根據小分子文件名修改相應的參數取值。這段代碼遍歷mol2文件夾下每個分子文件,對每個文件生成對應的dock.in輸入文件,然后運行dock6命令進行處理。
- for molin in mol2/*; do
- molin_name=`basename $molin`
- cp dock.in $molin_name.dock.in
- sed -ie "/^ligand_atom_file/cligand_atom_file $molin" $molin_name.dock.in
- sed -ie "/^ligand_outfile_prefix/cligand_outfile_prefix $molin_name" $molin_name.dock.in
- dock6 -i $molin_name.dock.in -o $molin_name.dock.out
- done
串行執行,時間長,無法利用高性能集群的計算能力,如何在集群上多節點、多核并發的處理,實現快速處理呢?實現方法也有多種,如手工的將mol2文件夾分成若干個子文件夾,每個文件夾分得少量的小分子文件,然后在每個子文件串行執行。這種方式需要過多的人工參與,尤其是在有任務出錯,需要調整重新提交的場景,很容出現重算、漏算。
- E-HPC 高通量任務定義和啟動
E-HPC 提供了高通量任務解決方案。對于本案例,通過3個步驟就能夠實現大量小分子文件的并發處理。
1. 將mol2文件下的分子文件名保存到一個文件文件,如molin。
- $ ls mol2/* > molin
2. 編寫處理單個小分子文件的腳本 task.sh,小分子文件名用 $molin 代替,對比串行邏輯,可以看出是直接復制for循環內的處理代碼。
- molin_name=`basename $molin`
- cp dock.in $molin_name.dock.in
- sed -ie "/^ligand_atom_file/cligand_atom_file $molin" $molin_name.dock.in
- sed -ie "/^ligand_outfile_prefix/cligand_outfile_prefix $molin_name" $molin_name.dock.in
- dock6 -i $molin_name.dock.in -o $molin_name.dock.out
3. 通過E-HPC 高通量任務處理命令 ehpcarr 提交task.sh運行,并返回作業號2[].manager。此時,任務已經使用96個CPU core進行并發處理了,如果節點包含CPU core數目少于96時,會自動分配到多個節點。例如,使用12 CPU core的實例,所有分子處理任務會在8個節點上運行。
- $ ehpcarr submit -w 96 ./task.sh molin
- 2[].manager
- E-HPC 高通量任務狀態查詢
使用ehpcarr命令,根據作業號進行查詢任務的并發執行情況。從查詢結果可以得倒每個任務當前的處理狀態,包括完成(DONE)、運行(RUNNING)、失敗(FAILED)、排隊(INIT),每個任務處理的啟示截止時間,通過對任務執行時間可以預估下次使用的計算資源。
從查詢結果可以看出:
- E-HPC 作業調度器啟動了8個節點進行藥物篩選處理;
- 不同任務分配到不同的計算節點(0號任務分配到compute001,10520任務分配到compute008);
- 相同節點有不同的并發任務(0,111都在compute001并發處理)。
- $ ehpcarr status 2[].manager
E-HPC 解決方案,是基于高性能集群作業調度器的數組作業,并進行了增強:
- 限定任務的并發數量,避免1個任務1個作業引發集群大量排隊作業,影響其它集群使用者作業的運行;
- 能夠實現任務的動態調度,充分利用計算資源。
GHDDI開放共享平臺
在新冠狀病毒疫情下,資源和研究成果共享,能極大的加速研究者的進展,避免重復的工作。
全球健康藥物研發中心(GlobalHealth Drug Discovery Institute,簡稱“GHDDI”)是由比爾及梅琳達·蓋茨基金會、清華大學和北京市政府共同創立和建設的一個獨立運營、非營利性質的新型藥物研發機構。
GHDDI在阿里云之上搭建了開放共享平臺,使用E-HPC搭建高性能計算集群,用于藥物研發的模擬計算,同時為合作伙伴創建不同的云超算子賬戶,實現計算資源共享。
同時,為了將E-HPC云超算集群上的計算結果共享發布,將阿里云對象存儲產品OSS直接掛載到E-HPC超算集群上,把需要發布的結果放到OSS上。此外,在云上新建一個ECS計算服務器,用于搭建web服務器[4],將OSS訪問鏈接放在web服務器上,供大家瀏覽、下載。
總結
藥物研發需要強大計算能力的高性能計算集群,如藥物篩選需要進行大量小分子的Docking處理。
科學家可以利用阿里云E-HPC云超算產品,在云上快速構建高性能集群,獲取高性能的計算實例,滿足算力的需求。
同時,E-HPC提供了高通量任務處理的解決方案,使得藥物篩選在多計算節點、多核上并發處理,降低任務整體執行時間。此外,由于E-HPC是云原生的超算產品,因此能夠跟其它云產品打通,如對象存儲OSS,能夠容易、快速搭建計算、信息發布平臺。