• Molclus FAQ

    Molclus FAQ

    文/Sobereva@北京科音

    First release: 2024-Dec-8   Last update: 2025-Feb-12


    筆者開發的免費的分子構象和團簇構型搜索程序Molclus(http://www.keinsci.com/research/molclus.html)如今已經非常流行,在網上經常有人提問此程序的使用問題。這里我把一些比較常見的問題進行統一回答。日后還會對本文內容有進一步追加。


    Q1:Molclus是干什么?
    A:如果你沒有任何量子化學背景知識,先把《辨析計算化學中的任務類型和理論方法》(http://www.shanxitv.org/680)看了。多原子分子、原子/分子團簇體系的勢能面上一般有不止一個極小點,直接基于自己猜的初始結構去用Gaussian等程序做幾何優化,極可能會優化到不是能量最低的極小點,這會導致之后做的分析討論沒實際意義、結果有誤導性。Molclus可以幫助你獲得能量最低的極小點,即全局最小點的結構,這是體系最有意義的結構。

    此外,柔性分子、團簇的勢能面上通常有一批能量都很低、能量相差不大的極小點結構,在實際研究的溫度下都有一定出現比例(參見《根據Boltzmann分布計算分子不同構象所占比例》http://www.shanxitv.org/165),計算構象權重的光譜(參見《使用Multiwfn繪制構象權重平均的光譜)http://www.shanxitv.org/383和《使用Multiwfn繪制NMR譜》http://www.shanxitv.org/565)以及計算構象權重的熱力學量(參見《使用Shermo結合量子化學程序方便地計算分子的各種熱力學數據》http://www.shanxitv.org/552)需要得到這些低能量極小點的結構和出現百分比,Molclus也可以很好地實現這個目的。


    Q2:怎么引用Molclus程序?
    A:計算化學程序的引用在《寫計算化學文章時引用理論方法、基組、程序時應注意的問題》(http://www.shanxitv.org/370)里明確強調了。使用Molclus發文章(包括給別人代算)必須按照主頁http://www.keinsci.com/research/molclus.html上明確寫明的方式引用,引用必須在正文里體現。Molclus完全免費,按要求正確引用Molclus是對此程序開發和維護的最好的支持。


    Q3:使用Molclus程序遇到問題如何求助?
    A:在計算化學公社論壇(http://bbs.keinsci.com)的“量子化學”版塊發帖,發帖時選擇Molclus分類。也可以在筆者創建的思想家公社QQ群里提問,群介紹和群號見http://www.shanxitv.org/QQrule.html。我看到后都會盡量回答。提問時必須把使用細節交代得盡可能清楚,避免含糊其辭或引起歧義,注意看《在網上求助計算化學問題的時候必須把問題描述得詳細、具體、準確、清楚》(http://www.shanxitv.org/620)。


    Q4:Molclus程序怎么上手?
    A:Molclus主頁http://www.keinsci.com/research/molclus.html上明確給了具體教程,寫得極為詳細,認真一個字一個字閱讀、照著操作即可。

    需要注意的是,Molclus雖然非常易于使用、靈活方便,但不代表這是完全黑箱程序,使用者不能一點計算化學常識都沒有。Molclus需要調用第三方程序來做單點、幾何優化、振動分析等任務。Molclus調用哪個程序,用戶就應當有相應程序的最基本常識。例如使用Molclus調用Gaussian做優化和單點能計算是最常涉及的情況,因此用戶就得懂Gaussian最基本的使用,要不然連Gaussian怎么安裝和運行、Gaussian模板文件里怎么寫關鍵詞、最常見的Gaussian報錯都不知道怎么解決可不行。而且僅當你具備基本的Gaussian計算常識的情況下,才能知道怎么針對當前的體系根據精度要求和計算資源選擇合適的級別用Molclus做構型或構象搜索。不具備相關知識的話非常建議通過北京科音初級量子化學培訓班(http://www.keinsci.com/KEQC)快速且系統地學習。


    Q5:Molclus做構型/構象搜索的基本流程是什么?
    Molclus的最簡單的使用過程是:
    (1)用Molclus的gentor或genmer或第三方程序產生一批初始構型/構象記錄在traj.xyz文件里,這是多幀的xyz格式的文件,見《談談記錄化學體系結構的xyz文件》(http://www.shanxitv.org/477
    (2)用Molclus對當前目錄下的traj.xyz里的構型/構象依次做優化,得到的結構和能量都會儲存在isomers.xyz里
    (3)用Molclus里的isostat工具對isomers.xyz中的結構去重、按能量排序,得到cluster.xyz,里面第一個就是全局能量最小點結構,后面的是能量次低的結構

    更準確而且也是實際中特別常用的流程如下,這里以普通有機體系為例
    (1)如上所述先產生一批初始構型/構象
    (2)用Molclus結合xtb程序在很便宜但也較糙的GFN-xTB級別下對這些構型/構象依次做很快速的優化(對柔性大體系這一步可能要對幾百甚至上千個結構做計算)
    (3)用isostat對優化后的結構去重、按能量排序得到cluster.xyz
    (4)將cluster.xyz改名為traj.xyz,用Molclus調用Gaussian在精度夠用而且也不貴的B3LYP-D3(BJ)/6-31G*級別下對之前能量最低的幾kcal/mol的結構(通常在幾十個以內)進行更準確的優化以及做振動分析(后者是為了檢驗虛頻情況以及獲得自由能熱校正量),并且之后自動在M06-2X/def2-TZVP級別下做較高精度的單點能計算。此時isomers.xyz里存的是各個結構及其較準確的自由能
    (5)用isostat對isomers.xyz里的結構去重、按自由能排序得到cluster.xyz,并且可以輸入溫度讓isostat直接算出來各個結構的Boltzmann出現比率

    記住如果是做溶液情況下的構型/構象搜索,單點計算必須帶溶劑模型(建議用SMD),優化和振動分析最好也帶上以圖穩妥(建議用IEFPCM)。如果嫌振動分析貴也可以不做,最后isostat會將按照電子能量而非自由能排序,給出的Boltzmann分布的準確性可能會差不少。

    沒有哪種構型/構象搜索流程對所有情況都是最理想的,精度和效率不可能同時特別理想,上面說的只是對一般有機體系的精度和效率比較均衡的搜索流程。使用者可根據實際情況隨機應變。具體操作細節在Molclus官網上的教程里都有體現。

    上述提到的Gaussian是收費的,因版權問題實在不方便用Gaussian的話也可以讓Molclus調用免費的ORCA量子化學程序來代替,再加上xtb和Molclus都是免費的,因此利用Molclus做構象搜索可以全程免費,只不過ORCA在優化+振動分析方面的整體穩健性方面不如Gaussian。用ORCA的話,上述優化+振動分析部分建議用B97-3c,單點計算部分建議用wB97M-V/def2-TZVP結合gCP形式的BSSE校正。ORCA和xtb的使用在《北京科音高級量子化學培訓班》(http://www.keinsci.com/KAQC)里有極其全面的介紹。


    Q6:哪種方式產生初始構型/構象最適合我?
    A:不同方式產生初始構型/構象各有長處,在Molclus官網上寫明了,如下所示。有不清楚的可以在公社論壇或QQ群里向我咨詢
    ? Molclus自帶的genmer程序結合Molclus:用于分子團簇或原子團簇構型搜索,使用簡便。對于分子團簇搜索這通常是首選。唯一局限性是對分子的構象考慮不夠充分,因為genmer將分子當成剛性來堆積,因此不適合單分子柔性很強的情況,這種情況更適合后面說的做動力學程序結合Molclus。相關介紹和示例看《genmer:生成團簇初始構型結合molclus做團簇結構搜索的超便捷工具》(http://bbs.keinsci.com/thread-2369-1-1.html
    ? Molclus自帶的gentor程序結合Molclus:用于分子構象搜索。使用簡便,但不支持環狀區域構象搜索(環狀區域是指諸如環己烷這樣有多種構象的環狀區域)。對于可旋轉的鍵不很多的分子的構象搜索這是首選,可控性最強。相關介紹和示例看《gentor:掃描方式做分子構象搜索的便捷工具》(http://bbs.keinsci.com/thread-2388-1-1.html
    ? 第三方的Confab或Frog2構象生成程序結合Molclus:用于分子構象搜索。使用最為傻瓜化,但不支持環狀區域構象搜索、不支持普通有機分子以外的情況。相關介紹和示例看《將Confab或Frog2與Molclus聯用對有機體系做構象搜索》http://bbs.keinsci.com/thread-20063-1-1.html
    ? xtb程序跑動力學軌跡結合Molclus:普適性極強,用于構象搜索、原子/分子團簇構型搜索皆可,使用容易。但由于模擬時間長度有限,有動力學采樣不充分導致遺漏構型/構象的風險(風險隨動力學模擬時間增長而減小)。相關介紹和示例看《使用Molclus結合xtb做的動力學模擬對瑞德西韋(Remdesivir)做構象搜索》(http://bbs.keinsci.com/thread-16255-1-1.html
    ? GROMACS等經典力場分子動力學程序結合Molclus:用于分子團簇搜索和分子構象搜索。使用稍繁瑣,因為得創建拓撲文件,且被動力學模擬的體系必須有恰當的力場,好處是動力學模擬耗時極低,因此動力學采樣不充分導致遺漏構型/構象的風險很小。相關介紹和示例看《使用molclus程序做團簇構型搜索和分子構象搜索》(http://bbs.keinsci.com/thread-577-1-1.html)。不了解GROMACS使用的話推薦通過《北京科音分子動力學與GROMACS培訓班》(http://www.keinsci.com/KGMX)學習相關使用知識。


    Q7:為什么運行Molclus的時候閃退/崩潰?
    只有兩個可能:
    (1)被Molclus所讀取的traj.xyz的格式有問題導致程序崩潰。要按照《談談記錄化學體系結構的xyz文件》(http://www.shanxitv.org/477)說的用文本編輯器檢查其內容看是否符合標準格式。也可以試圖往免費的VMD可視化程序里載入,如果載入不了也說明格式有問題
    (2)被Molclus所讀取的settings.ini文件有問題。典型情況是用戶修改里面設置的時候把格式改亂了,導致無法被讀取。也有的用戶干了多余的事,自作主張地把他覺得不需要的內容給刪掉了,導致Molclus沒法讀取要讀取的內容。還有的用戶直接把老版本Molclus的settings.ini放到新版本Molclus目錄下用,由于新、老版本此文件里面包含的選項不同,導致新版本Molclus無法正常讀取之(所以不要干這種事,要改什么設置一定要在當前版本Molclus自帶的settings.ini基礎上按照原本的格式改)
    死活搞不明白的話,到計算化學公社論壇發帖,把整個Molclus目錄壓縮后作為附件上傳。


    Q8:為什么運行Molclus自帶的genmer或gentor后程序閃退/崩潰?
    A:要么是涉及的xyz文件格式有問題,自行檢查;要么是genmer的genmer.ini、gentor的gentor.ini里的格式沒寫對或者寫的內容有bug。死活搞不明白的話,到計算化學公社論壇發帖,把整個genmer或gentor目錄壓縮后作為附件上傳。


    Q9:為什么產生的isomers.xyz內容為空?
    A:這說明連一個結構都沒跑成功。一定要仔細看Molclus運行窗口中的提示,Molclus在執行什么、運行狀態如何,都提示得清清楚楚。導致此問題常見的原因如下,是哪種情況根據Molclus輸出的提示就能很容易地判斷(實在看不懂的話在提問時把完整截圖貼出來)
    (1)Molclus調用Gaussian、xtb等第三方程序失敗。通常是第三方程序在機子里沒裝好,或者settings.ini里調用它們的命令沒寫對
    (2)連一個任務都還沒跑完。如果你確信你的計算設置沒有離譜的地方,就繼續等著
    (3)所有任務都運行失敗了。如果把settings.ini里的ibkout設為1,每個任務的被調用的第三方程序的輸出文件都會被保留,應當根據里面的信息結合相應程序的使用常識判斷當前是什么原因所致。常見的問題包括:模板文件里關鍵詞寫錯了、凈電荷或自旋多重度設錯了、SCF/幾何優化不收斂。


    Q10:怎么Molclus老也算不完?
    A:如果根據Molclus的提示能確信任務正在算著,這種情況無非就是以下原因
    (1)CPU忒爛導致耗時太高。一些初學者對耗時沒基本常識,在個位數核心的CPU上就想讓Molclus調用Gaussian或ORCA用DFT優化上百原子體系、對其做振動分析,耗時不高才怪。牽扯到大批量上百原子體系的DFT計算都應該有個像樣的性能較好的服務器,要不然做構象搜索可能得跑N天甚至一周以上。也可能使用者的CPU并不差,但沒恰當并行,或者非要用Windows版的Gaussian,導致CPU性能無法充分發揮
    (2)用的計算級別過于昂貴。諸如讓Molclus調用Gaussian對挺大的體系用def2-TZVP這么貴的基組做優化、對其用雙雜化泛函做單點計算甚至優化,耗時不高才怪
    (3)遇到了難收斂。應根據被調用的程序的使用常識,根據其臨時輸出文件內容判斷當前是什么情況。Molclus調用第三方程序用的命令在屏幕上提示得清清楚楚,被調用的程序產生的臨時輸出文件是哪個也體現得明明白白,比如Gaussian就是gau.out。對于調用Gaussian做幾何優化,若一個任務老跑不完,顯然應該想到用GaussView打開gau.out,看看是遇到了震蕩難收斂還是什么其它情況,以及弄清楚當前跑多少步了、是不是每一步的耗時太高,等等。如果真遇上幾何優化難收斂,Gaussian用戶可以參考《量子化學計算中幫助幾何優化收斂的常用方法》(http://www.shanxitv.org/164)在模板文件里加上適當的幫助收斂的關鍵詞。對于Molclus調用ORCA也是類似的處理思路


    Q11:Molclus對各個結構優化時有個別沒成功,結果可以用么?
    A:我只能說沒優化成功的任務占總結構數目比例越小,遺漏重要結構的概率越低。如果你用ibkout=3把失敗的任務的輸出文件都備份了出來,可以看看其優化最后一幀的結構和isostat排序后能量最低一批結構的差異,如果看上去優化失敗的結構繼續跑下去也不太可能收斂到能量較低的結構去,那這樣的結構就可以舍棄。而如果你懷疑它繼續優化有可能能得到一個不可忽視的能量很低的結構,那就把他回爐結合適當的關鍵詞重新優化。值得注意的是settings.ini里可以通過ngeom指定對traj.xyz里哪些幀進行處理,iappend設1可以把新得到的結果在之前的isomers.xyz上續寫,因此可以方便地將回爐的結果累加到之前的上面。


    Q12:Molclus能在Windows下用么?
    A:能是能,但在Linux下用更理想。xtb程序雖然有Windows版,但有些bug,Windows下使用時容易莫名其妙中斷。因此筆者在Windows主機下用Molclus調用xtb時都是在VMware虛擬機里裝的Linux客戶機里用。而且Gaussian的Windows版的計算效率不及Linux版,尤其是CPU核數較多時相差很懸殊,這點在《Gaussian的安裝方法及運行時的相關問題》(http://www.shanxitv.org/439)里專門說了。


    Q13:為什么Windows下用Molclus調用Gaussian計算時蹦出Gaussian圖形窗口后卡住不動?
    A:那是因為你把settings.ini里gaussian_path的路徑設成了比如g16w.exe(對于Gaussian 16來說),帶w后綴的只是Gaussian 16圖形界面這層殼,g16.exe才是真正的Gaussian 16程序本體,gaussian_path必須指定成它的路徑。


    Q14:為什么Molclus調用xtb不能運行,屏幕上提示諸如:'xtb'不是內部或外部命令,也不是可運行的程序
    A:顯然是xtb程序沒在機子里裝好,倘若裝好了就直接可以用xtb命令調用xtb程序,自然不會有這種提示。仔細看《將Gaussian與Grimme的xtb程序聯用搜索過渡態、產生IRC、做振動分析》(http://www.shanxitv.org/421)了解xtb怎么安裝。


    Q15:為什么Windows下用Molclus調用Gaussian計算時提示No executable for file l1.exe?
    A:沒有把Gaussian的文件夾加入GAUSS_EXEDIR環境變量所致。這點在《使用molclus程序做團簇構型搜索和分子構象搜索》(http://bbs.keinsci.com/thread-577-1-1.html)里專門說了,在文中搜GAUSS_EXEDIR。或者你加了但路徑沒寫對,也可能環境變量尚未生效(嘗試重啟機子再試)。


    Q16:genmer產生構型時怎么考慮單分子的構象?是否需要先對單分子做構象搜索?
    A:genmer把每個分子當做剛性看待,所以沒法考慮。如果單分子的柔性較強,因此形成復合物的時候構象可能發生極大的變化,那么建議使用分子動力學方式產生團簇初始結構的traj.xyz文件。對于柔性分子先對單分子做構象搜索意義不大,畢竟分子間相互作用可能導致復合物中的分子的構象相對于在孤立狀態下發生很大變化。


    Q17:genmer產生多少個初始構型合適?
    A:產生的初始構型越多,顯然經過批量優化后遺漏掉能量最低構型的可能性就越低。對于分子較小、分子數較少的團簇的構型搜索,比如水的四聚體,初始構型產生大幾十個就足夠了。分子越大、分子數越多的團簇,由于勢能面維度更高、極小點更多,原理上應該產生越多的初始構型。鑒于調用xtb程序做GFN-xTB級別的初篩耗時非常低(調用GFN-FF分子力場的話耗時更低),優化大幾百、上千個都完全不是難事,因此在計算量可以接受的情況下對較大的體系產生的初始構型原則上多多益善。也可以根據之前得到的結果憑直覺判斷是不是還有遺漏能量更低構型的可能,如果懷疑有這種可能性,可以讓genmer再產生一批構型,讓Molclus再次批量優化并續寫到之前的isomers.xyz上。


    Q18:gentor該旋轉哪些鍵?
    A:旋轉的鍵越多,產生的初始構象數顯著越多,導致構象搜索耗時明顯越高,因此不能太多。只有柔性的、現實環境下易于旋轉的鍵才應該在gentor里要求旋轉來產生各種初始構象,這憑借基本常識就能判斷。現實中不易旋轉的鍵有:(1)有單套pi共軛作用的鍵,比如肽鍵就有pi共軛使其C-N鍵的旋轉勢壘巨高、在常溫下不可能自發旋轉 (2)旋轉后會嚴重破壞之前存在的顯著的吸引性的分子內弱相互作用,比如導致破壞好多氫鍵 (3)旋轉后會出現嚴重的位阻作用而且無法靠旋轉其它部分回避。

    也不是所有易于旋轉的鍵都應當納入考慮,這憑常識就能判斷,比如甲基雖然在常溫下極易旋轉,但旋轉前后的結構是相同的,自然旋轉它毫無意義。

    如果你實在缺乏常識,索性用confab產生初始構象,但不像gentor那樣有可控性。


    Q19:isostat的能量和結構去重閾值怎么設置合適?
    A:若無特殊情況就用默認設置即可。閾值多大合適和計算級別的精度無關,而取決于幾何優化的收斂精度。默認的去重閾值適合幾何優化收斂限偏嚴的情況(如Gaussian默認的收斂限)。當你用了較寬松的幾何優化收斂限,去重閾值也需要相應地放寬。

    如果發現得到的cluster.xyz中有肉眼看上去特別接近的結構,說明去重閾值偏小,導致本應該只保留其中一個的情況下多個結構都被保留了,此時可以稍微加大閾值(如變成默認的兩倍)重新嘗試。但閾值也不能太大,否則能量和結構比較接近的對應實際不同極小點的構象會只保留一個。


    Q20:isostat判斷重復結構的原理是什么?
    A:在《使用molclus程序做團簇構型搜索和分子構象搜索》(http://bbs.keinsci.com/thread-577-1-1.html)里專門說了,仔細看相關部分。


    Q21:怎么對過渡態做構象搜索?
    A:不小的體系的化學反應只發生在體系的一部分區域,可以叫反應區域,整個反應路徑中只有這部分區域的原子涉及的內坐標有特別顯著變化、牽扯化學鍵的改變,基于這點可以做過渡態的構象搜索。首先照常搜索過渡態,然后用gentor對非反應區域做各種二面角的旋轉產生traj.xyz,在Molclus做批量優化時用settings.ini里的freeze設置將反應區域的原子凍住,之后照常用Molclus做剩下的構象搜索步驟即可。當然,反應區域和非反應區域會存在一定耦合,非反應區域處于不同構象時反應區域的結構也會多多少少有所不同。因此為了嚴謹起見,建議以上述構象搜索得到的能量最低一批結構作為初猜再次優化過渡態,并取其中能量最低的過渡態。


    Q22:為什么用OpenBabel通過Confab方法產生一批構象時失敗?
    A:和OpenBabel版本可能有關,讀者請下載《將Confab或Frog2與Molclus聯用對有機體系做構象搜索》(http://bbs.keinsci.com/thread-20063-1-1.html)里直接提供的OpenBabel版本,并且先確保對帖子里的體系能正常產生構象然后再做自己的體系。并且要參考帖子確保輸入的OpenBabel命令合理,包括選項的大小寫。OpenBabel不要裝到默認的C盤的目錄下,免得由于操作系統可能的權限限制導致OpenBabel無法成功創建新文件。也要確保提供給OpenBabel的mol2文件格式合理,參考《談談記錄化學體系結構的mol2文件》(http://www.shanxitv.org/655)。


    Q23:Molclus怎么在超算上用?
    A:筆者不用超算,也并未特意考慮Molclus在超算上用的情況。但Molclus是完全可以在超算上跑的,參考以下帖子
    《consearch:一鍵提交slurm的molclus構象搜索腳本》(http://bbs.keinsci.com/thread-43932-1-1.html
    《分享molclus配套PBS作業提交腳本》(http://bbs.keinsci.com/thread-15598-1-1.html
    《分解合并Molclus任務的小腳本splitMC》(http://bbs.keinsci.com/thread-14361-1-1.html


    Q24:為什么Molclus做構型/構象搜索得到的能量最低結構比我一開始自己手動建模和計算得到的還更高?
    A:有兩個可能原因
    (1)數據沒有可比性。比如一個取的是電子能量,一個取的是自由能。或者你自己讀數據沒讀對地方。或者計算級別(理論方法和基組)、設置(溶劑模型、DFT積分格點、算熱力學量用的溫度等)不嚴格相同。或者用的計算程序版本不同。諸如此類問題必須自己反復認真檢查,別人在遠程難以跟你說清楚。
    (2)molclus做構型/構象搜索采樣不夠充分,這是產生traj.xyz的方式不理想所致(如genmer產生的構型數太少、gentor忽略了一些重要的二面角的旋轉、跑動力學用的溫度太低或時間不夠長,等等),或者搜索流程不當所致(比如預篩選的時候用的計算級別不當而導致把關鍵結構給篩掉了),這會使得能量最低的結構沒被最終搜索出來,而你自己擺的結構又恰好在優化后收斂到了能量更低的結構。
    molclus做構型/構象搜索的原理易于理解、全流程都是十分透明的,結合量子化學計算的常識、對勢能面的理解、對Molclus的使用邏輯的認識,用戶很容易就能搞清楚導致這種問題的原因。

    久久精品国产99久久香蕉