MindSpore新一代分子模擬庫:SPONGE

      網(wǎng)友投稿 737 2022-05-30

      MindSpore新一代分子模擬庫:SPONGE,由北大和深圳灣實驗室高毅勤課題組與華為MindSpore團隊聯(lián)合開發(fā),具有高性能、模塊化等特性,是一個完全自主研發(fā)的分子模擬軟件庫。基于MindSpore自動并行、圖算融合等特性,SPONGE可高效地完成傳統(tǒng)分子模擬過程,利用MindSpore自動微分的特性,可以將神經(jīng)網(wǎng)絡(luò)等AI方法與傳統(tǒng)分子模擬進行結(jié)合。

      背景介紹

      分子模擬是指利用計算機以原子水平的分子模型來模擬分子結(jié)構(gòu)與行為,進而模擬分子體系的各種物理、化學(xué)性質(zhì)的方法。它是在實驗基礎(chǔ)上,通過基本原理,構(gòu)筑起一套模型和算法,從而計算出合理的分子結(jié)構(gòu)與分子行為。近年來,分子模擬技術(shù)發(fā)展迅速并且在多個學(xué)科領(lǐng)域得到了廣泛的應(yīng)用。在藥物設(shè)計領(lǐng)域,可用于研究病毒、藥物的作用機理等;在生物科學(xué)領(lǐng)域,可用于表征蛋白質(zhì)的多級結(jié)構(gòu)與性質(zhì);在材料學(xué)領(lǐng)域,可用于研究結(jié)構(gòu)與力學(xué)性能、材料的優(yōu)化設(shè)計等;在化學(xué)領(lǐng)域,可用于研究表面催化及機理;在石油化工領(lǐng)域,可用于分子篩催化劑結(jié)構(gòu)表征、合成設(shè)計、吸附擴散,可構(gòu)建和表征高分子鏈以及晶態(tài)或非晶態(tài)本體聚合物的結(jié)構(gòu),預(yù)測包括共混行為、機械性質(zhì)、擴散、內(nèi)聚等重要性質(zhì)。

      相比于之前在傳統(tǒng)分子模擬軟件上結(jié)合SITS方法進行生物分子增強抽樣,SPONGE原生支持SITS并對計算流程進行優(yōu)化使得其使用SITS方法模擬生物體系更加高效。針對極化體系,傳統(tǒng)分子模擬采用結(jié)合量化計算等方式來解決電荷浮動等問題。即使采用機器學(xué)習(xí)降低計算量也會浪費大量時間在程序數(shù)據(jù)傳送的問題上。而SPONGE利用模塊化的特點可支持內(nèi)存上直接與機器學(xué)習(xí)程序通信大大降低了整體計算時間。

      圖1:結(jié)合SITS等方法對顯性溶劑中的丙氨酸二肽進行增強抽樣

      隨MindSpore1.2版本開源的SPONGE具備以下優(yōu)勢:

      1. 全模塊化分子模擬。模塊化構(gòu)建分子模擬算法,易于領(lǐng)域研發(fā)人員進行理論和算法的快速實現(xiàn),并為外部開發(fā)人員貢獻子模塊提供友好的開源社區(qū)環(huán)境。

      2. 傳統(tǒng)分子模擬與MindSpore結(jié)合的人工智能算法的全流程實現(xiàn)。在MindSpore中,研發(fā)人員能便利的將AI方法作用于分子模擬中。全算子化的SPONGE將與MindSpore進一步結(jié)合成為新一代端到端可微的分子模擬軟件,實現(xiàn)人工智能與分子模擬的自然融合。

      案例介紹

      下面,這里將簡單介紹一下MindSpore上的SPONGE的一個簡單案例,該案例使用SPONGE模擬了丙氨酸三肽水溶液體系。

      實踐前,確保已經(jīng)正確安裝MindSpore。如果沒有,可以通過MindSpore安裝頁面(MindSpore官網(wǎng))安裝MindSpore。

      1. 輸入文件準備

      本教程模擬體系中需要加載三個輸入文件,分別是:

      · 屬性文件(后綴為.in的文件),聲明模擬的基本條件,對整個模擬過程進行參數(shù)控制。

      · 拓撲文件(后綴為.param7的文件),拓撲文件描述的是體系內(nèi)部分子的拓撲關(guān)系及各種參數(shù)。

      · 坐標文件(后綴為.rst7的文件),坐標文件描述的是每個原子在體系中的初始時刻的坐標。

      拓撲文件和坐標文件可以通過建模過程由AmberTools中自帶的tleap工具建模完成,-(Download Amber MD)。

      通過tleap構(gòu)建了所需要的拓撲文件和坐標文件后,需要通過屬性文件聲明模擬的基本條件,對整個模擬過程進行參數(shù)控制。以本教程中的屬性文件為例,其文件內(nèi)容如下:

      NVT 290k mode = 1, # 分子動力學(xué)(MD)模式,1 表示模擬采用 NVT 系綜 dt= 0.001, # 模擬步長 step_limit = 1, # 模擬總步數(shù) thermostat=1, # 控溫方法,1 表示采用的是 Liujian-Langevin 方法 langevin_gamma=1.0, # 控溫器中的 Gamma_ln 參數(shù) target_temperature=290, # 目標溫度 write_information_interval=1000, # 輸出頻率 amber_irest=0, # 輸入方式,0 表示讀入amber格式的輸入坐標文件,其中不包含速度 cut=10.0, # 非鍵相互作用的距離

      案例的輸入文件完成后,分別命名為?http://NVT_290_10ns.in?、WATER_ALA.parm7和WATER_ALA_350_cool_290.rst7,這三個文件可以存放在本地工作區(qū)的自定義路徑下。

      2. 加載數(shù)據(jù)

      從三個輸入文件中,讀取模擬體系所需要的參數(shù),用于最后體系的計算,其加載代碼如下:

      import argparse from mindspore import context parser = argparse.ArgumentParser(description='Sponge Controller') parser.add_argument('--i', type=str, default=None, help='input file') parser.add_argument('--amber_parm', type=str, default=None, help='paramter file in AMBER type') parser.add_argument('--c', type=str, default=None, help='initial coordinates file') parser.add_argument('--r', type=str, default="restrt", help='') parser.add_argument('--x', type=str, default="mdcrd", help='') parser.add_argument('--o', type=str, default="mdout", help="") parser.add_argument('--box', type=str, default="mdbox", help='') parser.add_argument('--device_id', type=int, default=0, help='') args_opt = parser.parse_args() context.set_context(mode=context.GRAPH_MODE, device_target="GPU", device_id=args_opt.device_id, save_graphs=False)

      3. 構(gòu)建模擬流程

      使用SPONGE中定義的計算力模塊和計算能量模塊,通過多次迭代進行分子動力學(xué)過程演化,使得體系達到我們所需要的平衡態(tài),并記錄每一個模擬步驟中得到的能量等數(shù)據(jù)。其模擬流程構(gòu)建代碼如下:

      from src.simulation_initial import Simulation from mindspore import Tensor if __name__ == "__main__": simulation = Simulation(args_opt) save_path = args_opt.o for steps in range(simulation.md_info.step_limit): print_step = steps % simulation.ntwx if steps == simulation.md_info.step_limit - 1: print_step = 0 temperature, total_potential_energy, sigma_of_bond_ene, sigma_of_angle_ene, sigma_of_dihedral_ene, \ nb14_lj_energy_sum, nb14_cf_energy_sum, LJ_energy_sum, ee_ene, _ = simulation(Tensor(steps), Tensor(print_step)) # compute energy and temperature

      4. 運行腳本

      python main.py --i /path/NVT_290_10ns.in \ --amber_parm /path/WATER_ALA.parm7 \ --c /path/WATER_ALA_350_cool_290.rst7 \ --o /path/ala_NVT_290_10ns.out

      其中,--i?為MD模擬的屬性文件,控制模擬過程,--amber_parm?為MD模擬體系的拓撲文件,--c?為我們輸入的初始坐標文件,--o?為我們模擬輸出的記錄文件,其記錄了輸出每步的能量等信息,--path?為輸入文件所在的路徑,在本教程中為?sponge_in?文件夾。

      使用輸入文件,通過在指定溫度下進行模擬,計算力和能量,進行分子動力學(xué)過程演化。

      5. 運行結(jié)果

      MindSpore新一代分子模擬庫:SPONGE

      運行得到的結(jié)果在?.out?文件中,體系的能量變化都被記錄在該文件中,可以查看模擬體系的熱力學(xué)信息。在?.out?文件中記錄了體系的如下信息:

      _steps_ _TEMP_ _TOT_POT_ENE_ _BOND_ENE_ _ANGLE_ENE_ _DIHEDRAL_ENE_ _14LJ_ENE_ _14CF_ENE_ _LJ_ENE_ _CF_PME_ENE_

      其中記錄了模擬過程中輸出的各類能量, 分別是迭代次數(shù)(_steps_),溫度(_TEMP_),總能量(_TOT_POT_E_),鍵長(_BOND_ENE_),鍵角(_ANGLE_ENE_),二面角相互作用(_DIHEDRAL_ENE_),非鍵相互作用,其包含靜電力及Leonard-Jones相互作用。

      教程文檔:https://gitee.com/mindspore/docs/blob/master/tutorials/training/source_zh_cn/advanced_use/hpc_sponge.md

      展望

      在未來的版本中,會加入更多實用的分子動力學(xué)模擬模塊,支持更多應(yīng)用。之后,SPONGE各模塊會逐步支持自動微分和自動并行,對于銜接機器學(xué)習(xí)方案提供更友好的支持。歡迎廣大的分子動力學(xué)愛好者和研究者加入我們,共同拓展和維護SPONGE。

      AI開發(fā)平臺ModelArts MindSpore 機器學(xué)習(xí)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:深入理解Eureka之源碼解析
      下一篇:游戲行業(yè)轉(zhuǎn)型陣痛顯現(xiàn),數(shù)字天空借力華為云DevCloud成功突圍
      相關(guān)文章
      亚洲综合校园春色| 亚洲短视频在线观看| 亚洲综合精品第一页| 亚洲电影在线播放| 亚洲综合久久久久久中文字幕| 国产亚洲人成网站观看| 亚洲日韩欧洲无码av夜夜摸| 久久久久久亚洲精品不卡| 亚洲国产人成中文幕一级二级| 国产成人亚洲精品播放器下载| 亚洲GV天堂GV无码男同| 亚洲AV无码AV吞精久久| 日本系列1页亚洲系列| 久久精品国产亚洲av品善| 精品亚洲成A人在线观看青青| 亚洲JLZZJLZZ少妇| 九月婷婷亚洲综合在线| 亚洲国产主播精品极品网红| 亚洲天堂在线视频| 亚洲综合亚洲综合网成人| 亚洲日韩在线中文字幕第一页 | 亚洲精品国产免费| 亚洲不卡在线观看| 亚洲综合精品第一页| 亚洲av第一网站久章草| 亚洲国产一区明星换脸| 亚洲综合AV在线在线播放| 久久精品国产亚洲| 亚洲视频在线免费看| 亚洲人成影院77777| 国产亚洲精aa在线看| 亚洲AV成人无码网站| 精品国产香蕉伊思人在线在线亚洲一区二区 | 亚洲国产人成网站在线电影动漫| 亚洲A∨无码一区二区三区| 久久狠狠高潮亚洲精品| 色婷五月综激情亚洲综合| 亚洲国产精品成人午夜在线观看| 亚洲精品国产V片在线观看| 亚洲日产无码中文字幕| 久久精品国产亚洲77777|