哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

QM/MM幾何構(gòu)型優(yōu)化計算的python腳本

鴻之微 ? 來源:鴻之微 ? 作者:鴻之微 ? 2022-07-21 15:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

QM/MM結(jié)構(gòu)優(yōu)化

QM/MM幾何構(gòu)型優(yōu)化計算的python腳本如下:

import glob, math, os.path

from pBabel import AmberCrdFile_ToCoordinates3,

AmberTopologyFile_ToSystem ,

SystemGeometryTrajectory ,

AmberCrdFile_FromSystem ,

PDBFile_FromSystem ,

XYZFile_FromSystem

from pCore import Clone, logFile, Selection

from pMolecule import NBModelORCA, QCModelBDF, System

from pMoleculeScripts import ConjugateGradientMinimize_SystemGeometry,

FIREMinimize_SystemGeometry ,

LBFGSMinimize_SystemGeometry ,

SteepestDescentMinimize_SystemGeometry

# 定義結(jié)構(gòu)優(yōu)化接口

def opt_ConjugateGradientMinimize(molecule, selection):

molecule.DefineFixedAtoms(selection) #固定原子

#定義優(yōu)化方法

ConjugateGradientMinimize_SystemGeometry(

molecule,

maximumIterations = 40, # 最大優(yōu)化步數(shù)

rmsGradientTolerance = 0.1, #優(yōu)化收斂控制

trajectories = [(trajectory, 1)]

) # 定義軌跡保存頻率

# 定義能量計算模式

nbModel = NBModelORCA()

qcModel = QCModelBDF("GB3LYP:6-31g")

# 讀取體系坐標(biāo)和拓?fù)湫畔?/p>

molecule = AmberTopologyFile_ToSystem ("GallicAcid.prmtop")

molecule.coordinates3 = AmberCrdFile_ToCoordinates3("GallicAcid.crd")

# 關(guān)閉體系對稱性

molecule.DefineSymmetry(crystalClass = None) #QM/MM方法不支持使用周期性邊界條件

#. Define Atoms List

natoms = len(molecule.atoms) # 系統(tǒng)中總原子數(shù)

qm_list = range(72, 90) # QM 區(qū)原子

activate_list = range(126, 144) + range (144, 162) # MM區(qū)活性原子(優(yōu)化中可以移動)

#定義MM區(qū)原子

mm_list = range (natoms)

for i in qm_list:

mm_list.remove(i) # MM 刪除QM原子

mm_inactivate_list = mm_list[:]

for i in activate_list :

mm_inactivate_list.remove(i)

# 輸入QM原子

qmmmtest_qc = Selection.FromIterable(qm_list)

# 定義各選擇區(qū)

selection_qm_mm_inactivate = Selection.FromIterable(qm_list + mm_inactivate_list)

selection_mm = Selection.FromIterable(mm_list)

selection_mm_inactivate = Selection.FromIterable(mm_inactivate_list)

# . Define the energy model.

molecule.DefineQCModel(qcModel, qcSelection = qmmmtest_qc)

molecule.DefineNBModel(nbModel)

molecule.Summary()

#計算優(yōu)化開始時總能量

eStart = molecule.Energy()

#定義輸出文件目錄名

outlabel = 'opt_watbox_bdf'

if os.path.exists(outlabel):

pass

else:

os.mkdir (outlabel)

outlabel = outlabel + '/' + outlabel

# 定義輸出軌跡

trajectory = SystemGeometryTrajectory (outlabel + ".trj" , molecule, mode = "w")

# 開始第一階段優(yōu)化

# 定義優(yōu)化兩步

iterations = 2

# 順次固定QM區(qū)和MM區(qū)進行優(yōu)化

for i in range(iterations):

opt_ConjugateGradientMinimize(molecule, selection_qm_mm_inactivate) #固定QM區(qū)優(yōu)化

opt_ConjugateGradientMinimize(molecule, selection_mm) #固定MM區(qū)優(yōu)化

# 開始第二階段優(yōu)化

# QM區(qū)和MM區(qū)同時優(yōu)化

opt_ConjugateGradientMinimize(molecule, selection_mm_inactivate)

#輸出優(yōu)化后總能量

eStop = molecule.Energy()

#保存優(yōu)化坐標(biāo),可以為xyz/crd/pdb等。

XYZFile_FromSystem(outlabel + ".xyz", molecule)

AmberCrdFile_FromSystem(outlabel + ".crd" , molecule)

PDBFile_FromSystem(outlabel + ".pdb" , molecule)

輸出體系收斂信息如下(此處僅展示前20步優(yōu)化收斂結(jié)果):

----------------------------------------------------------------------------------------------------------------

Iteration Function RMS Gradient Max. |Grad.| RMS Disp. Max. |Disp.|

----------------------------------------------------------------------------------------------------------------

0 I -1696839.69778731 2.46510318 9.94250232 0.00785674 0.03168860

2 L1s -1696839.82030342 1.38615730 5.83254788 0.00043873 0.00126431

4 L1s -1696839.90971371 1.41241184 5.29242524 0.00067556 0.00172485

6 L0s -1696840.01109863 1.41344485 4.70119338 0.00090773 0.00265969

8 L1s -1696840.09635696 1.44964059 5.72496661 0.00108731 0.00328490

10 L1s -1696840.17289698 1.28607709 4.73666387 0.00108469 0.00354577

12 L1s -1696840.23841524 1.03217304 3.00441004 0.00081945 0.00267931

14 L1s -1696840.30741088 1.40349698 5.22220965 0.00162080 0.00519590

16 L1s -1696840.43546466 1.32604042 4.51175225 0.00158796 0.00455431

18 L0s -1696840.52547251 1.27123125 4.20616166 0.00158796 0.00428040

20 L0s -1696840.60265453 1.08553355 3.12355616 0.00158796 0.00470223

----------------------------------------------------------------------------------------------------------------

輸出體系總能量信息如下:

9fc1cc7a-080b-11ed-ba43-dac502259ad0.png

注:QM/MM幾何構(gòu)型優(yōu)化一般不容易收斂,在實際操作中需要的技巧較多。常見的有,固定MM區(qū),優(yōu)化QM區(qū);然后固定QM區(qū)優(yōu)化MM區(qū)。如此往復(fù)循環(huán)幾次后,再同時優(yōu)化QM區(qū)和MM區(qū)。優(yōu)化是否收斂,和QM區(qū)的選擇及QM/MM邊界是否有帶電較多的原子等關(guān)系很大。為了加速優(yōu)化,可以在計算時固定MM區(qū),僅選擇離QM區(qū)較近的合適區(qū)域,作為活性區(qū)域,在優(yōu)化中坐標(biāo)可以變化。

QM/MM激發(fā)態(tài)計算

基于上一步的QM/MM幾何構(gòu)型優(yōu)化,繼而即可將MM區(qū)活性原子添加到QM區(qū)進行QM/MM-TDDFT計算,完整的代碼如下:

import glob, math, os.path

from pBabel import AmberCrdFile_ToCoordinates3,

AmberTopologyFile_ToSystem ,

SystemGeometryTrajectory ,

AmberCrdFile_FromSystem ,

PDBFile_FromSystem ,

XYZFile_FromSystem

from pCore import Clone, logFile, Selection

from pMolecule import NBModelORCA, QCModelBDF, System

from pMoleculeScripts import ConjugateGradientMinimize_SystemGeometry,

FIREMinimize_SystemGeometry ,

LBFGSMinimize_SystemGeometry ,

SteepestDescentMinimize_SystemGeometry

# 定義結(jié)構(gòu)優(yōu)化接口

def opt_ConjugateGradientMinimize(molecule, selection):

molecule.DefineFixedAtoms(selection) #固定原子

#定義優(yōu)化方法

ConjugateGradientMinimize_SystemGeometry(

molecule,

maximumIterations = 40, # 最大優(yōu)化步數(shù)

rmsGradientTolerance = 0.1, #優(yōu)化收斂控制

trajectories = [(trajectory, 1)]

) # 定義軌跡保存頻率

# 定義能量計算模式

nbModel = NBModelORCA()

qcModel = QCModelBDF("GB3LYP:6-31g")

# 讀取體系坐標(biāo)和拓?fù)湫畔?/p>

molecule = AmberTopologyFile_ToSystem ("GallicAcid.prmtop")

molecule.coordinates3 = AmberCrdFile_ToCoordinates3("GallicAcid.crd")

# 關(guān)閉體系對稱性

molecule.DefineSymmetry(crystalClass = None) #QM/MM方法不支持使用周期性邊界條件

#. Define Atoms List

natoms = len(molecule.atoms) # 系統(tǒng)中總原子數(shù)

qm_list = range(72, 90) # QM 區(qū)原子

activate_list = range(126, 144) + range (144, 162) # MM區(qū)活性原子(優(yōu)化中可以移動)

#定義MM區(qū)原子

mm_list = range (natoms)

for i in qm_list:

mm_list.remove(i) # MM 刪除QM原子

mm_inactivate_list = mm_list[:]

for i in activate_list :

mm_inactivate_list.remove(i)

# 輸入QM原子

qmmmtest_qc = Selection.FromIterable(qm_list)

# 定義各選擇區(qū)

selection_qm_mm_inactivate = Selection.FromIterable(qm_list + mm_inactivate_list)

selection_mm = Selection.FromIterable(mm_list)

selection_mm_inactivate = Selection.FromIterable(mm_inactivate_list)

# . Define the energy model.

molecule.DefineQCModel(qcModel, qcSelection = qmmmtest_qc)

molecule.DefineNBModel(nbModel)

molecule.Summary()

#計算優(yōu)化開始時總能量

eStart = molecule.Energy()

#定義輸出文件目錄名

outlabel = 'opt_watbox_bdf'

if os.path.exists(outlabel):

pass

else:

os.mkdir (outlabel)

outlabel = outlabel + '/' + outlabel

# 定義輸出軌跡

trajectory = SystemGeometryTrajectory (outlabel + ".trj" , molecule, mode = "w")

# 開始第一階段優(yōu)化

# 定義優(yōu)化兩步

iterations = 2

# 順次固定QM區(qū)和MM區(qū)進行優(yōu)化

for i in range(iterations):

opt_ConjugateGradientMinimize(molecule, selection_qm_mm_inactivate) #固定QM區(qū)優(yōu)化

opt_ConjugateGradientMinimize(molecule, selection_mm) #固定MM區(qū)優(yōu)化

# 開始第二階段優(yōu)化

# QM區(qū)和MM區(qū)同時優(yōu)化

opt_ConjugateGradientMinimize(molecule, selection_mm_inactivate)

#輸出優(yōu)化后總能量

eStop = molecule.Energy()

#保存優(yōu)化坐標(biāo),可以為xyz/crd/pdb等。

XYZFile_FromSystem(outlabel + ".xyz", molecule)

AmberCrdFile_FromSystem(outlabel + ".crd" , molecule)

PDBFile_FromSystem(outlabel + ".pdb" , molecule)

# TDDFT計算

qcModel = QCModelBDF_template ( )

qcModel.UseTemplate (template = 'head_bdf_nosymm.inp' )

tdtest = Selection.FromIterable ( qm_list + activate_list )

# . Define the energy model.

molecule.DefineQCModel ( qcModel, qcSelection = tdtest )

molecule.DefineNBModel ( nbModel )

molecule.Summary ( )

# . Calculate

energy = molecule.Energy ( )

輸出體系總能量信息如下:

9fdb3d0e-080b-11ed-ba43-dac502259ad0.png

同時生成.log結(jié)果文件,和普通的激發(fā)態(tài)計算一樣,可以看到振子強度,激發(fā)能,激發(fā)態(tài)的總能量等信息

No. 1 w= 4.7116 eV -1937.8276358207 a.u. f= 0.0217 D= 0.0000 Ova= 0.6704

CV(0): A( 129 )-> A( 135 ) c_i: 0.7254 Per: 52.6% IPA: 7.721 eV Oai: 0.6606

CV(0): A( 129 )-> A( 138 ) c_i: 0.2292 Per: 5.3% IPA: 9.104 eV Oai: 0.8139

CV(0): A( 132 )-> A( 135 ) c_i: 0.4722 Per: 22.3% IPA: 7.562 eV Oai: 0.6924

CV(0): A( 132 )-> A( 138 ) c_i: -0.4062 Per: 16.5% IPA: 8.946 eV Oai: 0.6542

隨后還打印了躍遷偶極矩

*** Ground to excited state Transition electric dipole moments (Au) ***

State X Y Z Osc.

1 0.0959 0.1531 0.3937 0.0217 0.0217

2 0.0632 -0.1286 0.3984 0.0207 0.0207

3 -0.0797 -0.2409 0.4272 0.0287 0.0287

4 0.0384 -0.0172 -0.0189 0.0003 0.0003

5 1.1981 0.8618 -0.1305 0.2751 0.2751

吸收光譜分析

對于激發(fā)態(tài)我們往往需要得到理論預(yù)測的吸收譜峰形,也就是將每個激發(fā)態(tài)的吸收按一定的半峰寬進行高斯展寬。在TDDFT計算正常結(jié)束后,我們需要進入終端用命令調(diào)用BDF安裝路徑下的plotspec.py腳本執(zhí)行計算。若用戶使用鴻之微云算力資源,進入命令端方式請查閱鴻之微云指南,此文不做贅述。

進入終端后,在目錄下運行$BDFHOME/sbin/plotspec.py bdf.out,會產(chǎn)生兩個文件,分別為bdf.stick.csv和bdf.spec.csv,前者包含所有激發(fā)態(tài)的吸收波長和摩爾消光系數(shù),可以用來作棒狀圖,后者包含高斯展寬后的吸收譜(默認(rèn)的展寬FWHM為0.5 eV),分別對比真空環(huán)境以及溶劑化效應(yīng)下高斯展寬后的吸收譜情況,并用Excel、Origin等作圖軟件作圖如下:

9ffc7adc-080b-11ed-ba43-dac502259ad0.png

上圖也可說明由于QM/MM計算考慮溶劑化效應(yīng),存在周圍其他分子的相互作用,從而使得吸收光譜發(fā)生紅移現(xiàn)象。
審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 光譜分析
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    10402
  • python
    +關(guān)注

    關(guān)注

    58

    文章

    4885

    瀏覽量

    90306

原文標(biāo)題:鴻之微BDF軟件計算賞析|采用BDF的QM/MM多尺度計算方法研究晶體的光物理性質(zhì)(二)

文章出處:【微信號:hzwtech,微信公眾號:鴻之微】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    深入解析MCF51QM128微控制器:特性、規(guī)格與應(yīng)用指南

    深入解析MCF51QM128微控制器:特性、規(guī)格與應(yīng)用指南 在電子設(shè)計領(lǐng)域,選擇一款合適的微控制器對于項目的成功至關(guān)重要。MCF51QM128作為Freescale Semiconductor推出
    的頭像 發(fā)表于 04-10 12:30 ?180次閱讀

    探索MCF51QM128:一款卓越的微控制器

    探索MCF51QM128:一款卓越的微控制器 在電子工程領(lǐng)域,微控制器是眾多項目的核心。今天,我們來深入了解NXP Freescale Semiconductor的MCF51QM128微控制器,看看
    的頭像 發(fā)表于 04-09 16:10 ?209次閱讀

    使用PYTHON進行的跨平臺仿真

    內(nèi)部的解決方案,而且還允許跨平臺模擬,以從其他程序或編程語言獲益,并結(jié)合熟悉物理光學(xué)特性的VirtualLab Fusion,從而擴展模擬、優(yōu)化、設(shè)計和后處理的選項。 因此,我們正在深入研究
    發(fā)表于 04-02 08:21

    [VirtualLab] 使用Python運行VirtualLab Fusion光學(xué)仿真

    Fusion的簡單方法。在本示例中,我們將演示如何使用Python腳本運行光學(xué)仿真,以向用戶簡要概述這種跨平臺的仿真能力。 用例概覽 文件路徑 用戶可以在樣本文件的文件夾中找到所有文件。包含這些文件
    發(fā)表于 03-31 09:39

    [VirtualLab] 使用Python進行跨平臺參數(shù)掃描

    摘要 VirtualLab Fusion允許外部訪問其建模技術(shù)、求解器和結(jié)果。這有助于應(yīng)用其他數(shù)據(jù)處理或優(yōu)化工具來進一步研究光學(xué)模擬。在本示例中,我們演示如何使用Python腳本運行參數(shù)掃描,以及
    發(fā)表于 03-31 09:36

    如何在 VisionFive 上使用 Python 包?

    確保執(zhí)行以下步驟: 將 Fedora OS 刷新到 Micro-SD 卡中,如將 Fedora OS 刷新到 Micro-SD 卡部分中的VisionFive 單板計算機快速入門指南. 登錄
    發(fā)表于 03-30 08:28

    Altair OptiStruct:重構(gòu)結(jié)構(gòu)研發(fā)邏輯,引領(lǐng)工業(yè)仿真與優(yōu)化新紀(jì)元

    **AMSES自動化多級子結(jié)構(gòu)特征值求解器**,可快速處理百萬自由度超大規(guī)模模型,精準(zhǔn)計算數(shù)千階模態(tài),大幅縮短大型工程模型的求解周期;非線性分析領(lǐng)域,全面覆蓋材料非線性(彈塑性、超彈性、蠕變)、幾何大變形、接觸
    發(fā)表于 03-20 10:25

    官方新品 | 虹科PCAN-Explorer 7發(fā)布:帶來Python腳本與靈活授權(quán)新體驗

    虹科PCAN-Explorer7支持Python腳本+授權(quán)管理升級在CAN總線技術(shù)持續(xù)進化的當(dāng)下,我們始終相信,工具的革新應(yīng)與技術(shù)的前沿同頻,更應(yīng)讓復(fù)雜的研發(fā)與分析工作,回歸簡潔、高效的本質(zhì)。虹科
    的頭像 發(fā)表于 12-05 11:03 ?1159次閱讀
    官方新品 | 虹科PCAN-Explorer 7發(fā)布:帶來<b class='flag-5'>Python</b><b class='flag-5'>腳本</b>與靈活授權(quán)新體驗

    光子精密QM系列閃測儀優(yōu)化VR眼鏡關(guān)鍵制程質(zhì)量控制

    隨著VR產(chǎn)品全面轉(zhuǎn)向Pancake光學(xué)方案,透鏡及結(jié)構(gòu)件的尺寸公差要求更為嚴(yán)格?,F(xiàn)有檢測方法的效率與穩(wěn)定性已成為制約生產(chǎn)良率提升與成本控制的關(guān)鍵因素。為解決此瓶頸,光子精密推出QM系列閃測儀解決方案,旨在實現(xiàn)對關(guān)鍵尺寸的高頻次、高重復(fù)性測量,為核心制程的質(zhì)量控制與工藝優(yōu)化
    的頭像 發(fā)表于 11-28 13:36 ?648次閱讀
    光子精密<b class='flag-5'>QM</b>系列閃測儀<b class='flag-5'>優(yōu)化</b>VR眼鏡關(guān)鍵制程質(zhì)量控制

    Python 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴展的商品詳情爬蟲實戰(zhàn)

    一、技術(shù)選型:為什么選 Python 而不是 Java? 結(jié)論: “調(diào)研階段用 Python,上線后如果 QPS 爆表再考慮 Java 重構(gòu)?!?二、整體架構(gòu)速覽(3 分鐘看懂) 三、開發(fā)前準(zhǔn)備(5
    的頭像 發(fā)表于 10-21 16:59 ?626次閱讀
    用 <b class='flag-5'>Python</b> 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴展的商品詳情爬蟲實戰(zhàn)

    Pico Technology發(fā)布Python軟件包pyPicoSDK

    現(xiàn)有 PicoSDK 的基礎(chǔ)上構(gòu)建,使工程師、開發(fā)人員和業(yè)余愛好者能夠創(chuàng)建 Python 腳本,更加快速方便地控制其 PicoScope 設(shè)備。
    的頭像 發(fā)表于 09-29 15:03 ?1109次閱讀

    termux調(diào)試python猜數(shù)字游戲

    特性 - ? 智能范圍提示(太大/太小) - ? 嘗試次數(shù)計數(shù)器 - ? 錯誤輸入防護 - ? 移動端友好界面 --- ? 四、進階優(yōu)化建議 ```python 可擴展功能(在現(xiàn)有代碼中添加
    發(fā)表于 08-29 17:15

    termux如何搭建python游戲

    計算庫(如Numpy,用于物理引擎) pip install numpy # 交互增強工具(如IPython,便于調(diào)試) pip install ipython ``` 三、終端優(yōu)化與開發(fā)
    發(fā)表于 08-29 07:06

    Python腳本實現(xiàn)運維工作自動化案例

    還在為重復(fù)性運維工作而煩惱?每天被各種告警、監(jiān)控、部署搞得焦頭爛額?作為一名有10年經(jīng)驗的運維老司機,今天分享5個超實用的Python自動化腳本,讓你的運維工作效率提升300%!這些都是我在生產(chǎn)環(huán)境中實際使用的案例,代碼簡潔高效,拿來即用!
    的頭像 發(fā)表于 08-27 14:46 ?1363次閱讀

    怎么導(dǎo)出python邊緣計算中的APP,想進行修改又找不到源碼?

    怎么導(dǎo)出python邊緣計算中的APP,想進行修改又找不到源碼
    發(fā)表于 08-06 07:33
    甘德县| 博野县| 沛县| 永修县| 海宁市| 兰西县| 沧州市| 冕宁县| 信宜市| 永和县| 白河县| 宜都市| 北川| 三台县| 垣曲县| 普格县| 永清县| 汝城县| 塔城市| 义马市| 华阴市| 盘山县| 巴东县| 宁强县| 阿拉善左旗| 靖宇县| 应城市| 曲靖市| 安泽县| 孝感市| 璧山县| 黄陵县| 顺平县| 拜泉县| 信丰县| 嘉禾县| 大邑县| 萨迦县| 新竹市| 玉龙| 阿荣旗|