• 在VMD里將cube文件瞬間繪制成效果極佳的等值面圖的方法

    在VMD里將cube文件瞬間繪制成效果極佳的等值面圖的方法

    文/Sobereva@北京科音  2019-May-21


    1 前言

    Multiwfn(http://www.shanxitv.org/multiwfn)是產生量子化學研究和波函數分析中用到的各種格點數據最方便也最強大的工具,可以在自帶的界面里直接顯示出等值面,也可以把數據導出成cube文件從而在免費的VMD程序(http://www.ks.uiuc.edu/Research/vmd/)里繪制出效果更好的圖像。不了解cube文件者請參看《Gaussian型cube文件簡介及讀、寫方法和簡單應用》(http://www.shanxitv.org/125)。筆者感到每次給初學者解釋怎么在VMD里操作顯示出等值面特別費勁、費事。筆者之前寫過一篇文章《用VMD繪制藝術級軌道等值面圖的方法》(http://www.shanxitv.org/449),里面介紹了一種利用自編的VMD腳本超級方便地繪制出效果絕贊的軌道等值面圖的做法。于是筆者想到,不如干脆寫一個腳本,從而對于任意類型的cube文件都可以敲幾下鍵盤就能瞬間在VMD里畫出極好的等值面圖。本文就介紹一下這個腳本,我深信這個腳本會有極高的實用價值(相比之下,大部分其它可視化程序的顯示效果都丑爆了,操作步驟還更繁瑣)。


    2 腳本

    本文介紹的VMD腳本是showcub.vmd,在Multiwfn程序包里的examples\scripts目錄下。將這個文件拷到VMD目錄下,并且用文本編輯器編輯此目錄下的vmd.rc文件(對于Windows版VMD而言),在末尾插入source showcub.vmd。這樣每次VMD啟動時就會自動執行此腳本使其中定義的命令生效。此腳本定義了四條命令,可以直接在VMD的控制臺里輸入,這里直接給出一些例子:

    cub MIO:將VMD目錄下的MIO.cub繪制成等值面圖,正值和負值部分分別用綠色和藍色顯示,等值面數值分別為默認值0.05和-0.05
    cub MIO 0.02:同上,但正值和負值部分等值面數值直接分別設為0.02和-0.02
    cubiso 0.015:在使用cub命令后使用,把當前載入的格點數據的正值和負值部分分別設為0.015和-0.015

    有的時候我們需要同時將兩個cube文件顯示在一起,此腳本里也定義了相應命令用于此目的,示例:
    cub2 eri nozomi:將VMD目錄下的eri.cub和nozomi.cub同時繪制成等值面,分別用綠色和藍色表示,等值面數值都為默認的0.05(注:如果eri和nozomi格點數據里也有負值部分,負值部分不會被顯示出來)
    cub2 eri nozomi 0.02:同上,但是二者的等值面數值都直接設為0.02
    cub2iso 0.015:在使用cub2命令后使用,代表把已載入的兩套cube文件對應的等值面數值都設為0.015

    每次使用cub或cub2命令之前都會自動將之前載入的格點數據從VMD中清掉,因此這倆命令可以反復用無數次。

    和前述的《用VMD繪制藝術級軌道等值面圖的方法》里的做法一樣,用VMD繪制出來之后,可以借助Multiwfn程序包里的examples\scripts\VMDrender_full.bat將等值面通過Tachyon渲染器渲染成非常漂亮的圖像。

    下面給一些例子,VMD用的是1.9.3 Windows版。大家先按上述說明把vmd.rc設置好。


    3 例子:用VMD顯示自旋密度等值面

    在《談談自旋密度、自旋布居以及在Multiwfn中的繪制和計算》(http://www.shanxitv.org/353)一文中筆者舉了丁烷雙自由基的例子。我們用Multiwfn的主功能5計算完這個體系的自旋密度格點數據后,在后處理菜單選擇導出cube文件,當前目錄下就得到了spindensity.cub。將此文件挪到VMD目錄下,啟動VMD,直接輸入cub spindensity 0.01,馬上看到下圖,綠色和藍色分別對應自旋密度為正和為負的部分。

    為了得到更好的效果,我們把Multiwfn的examples\scripts目錄下的VMDrender_full.bat拷到VMD目錄下。在VMD里選擇File - Render,渲染器選Tachyon(別選后面帶internal的那個),點擊Start Rendering。然后雙擊VMDrender_full.bat執行這個批處理文件,過一會兒VMD目錄下就出現了full.bmp,效果如下,可見非常理想,富有立體感而且有陰影效果。

    之前筆者錄過一段視頻《使用Multiwfn結合VMD繪制自旋密度等值面圖》(https://www.bilibili.com/video/av26312131),由視頻可見,如果不用腳本而手動在VMD里進行操作來顯示出等值面,操作步驟多,而效果還明顯不如本文的做法好。


    4 例子:用VMD同時顯示電子激發過程中空穴和電子的等值面

    筆者之前在《使用Multiwfn做空穴-電子分析全面考察電子激發特征》(http://www.shanxitv.org/434)中介紹了一種極為重要的考察電子激發特征的方法,此方法可以把空穴和電子分布都給出來。按照文中的做法將空穴和電子格點數據都算出來后,在后處理菜單里可以看到將二者導出為cube文件的選項,選了之后會得到electron.cub和hole.cub。我們現在用VMD將二者同時繪制成等值面。

    將這兩個cube文件都挪到VMD目錄下,啟動VMD,在文本窗口輸入cub2 electron hole。此時圖形窗口里只看到了結構,沒看到等值面,這是因為默認的等值面數值太大。我們通過cub2iso命令不斷嘗試不同的等值面數值,發現當輸入cub2iso 0.002命令的時候,空穴和電子的分布特征看起來都比較明顯。和上一節一樣通過VMDrender_full.bat進行渲染,得到下圖:

    這圖雖然表面上效果看起來很不錯,但對于空穴-電子分析來說并不算特別理想。因為我們希望能把空穴與電子分布的交疊特征比較清楚地展現出來,但是當前的圖看不清楚這點。此時我們可以嘗試其它材質。進入Graphics - Representation,把Material改為EdgyGlass,然后在Selected Molecule里切換成electron.cub,再次把Material改為EdgyGlass,此時空穴和電子就都是EdgyGlass材質了,二者的交疊在圖形窗口中已經可以看得非常清楚了。如果你用VMDrender_full.bat來渲染,得到的圖像如下

    此時的圖很不錯,但可能會有人覺得有點偏亮。你可以編輯VMDrender_full.bat的內容,把里面的-trans_raster3d改為-trans_vmd,-fullshade改為-mediumshade,再次運行腳本,得到下圖

    可能又有人嫌這個圖有點偏暗,你可以在圖像編輯程序如ps里調調曝光度、飽和度之類直到最滿意。在Photoshop里把上圖的曝光度(Ctrl+Alt+E)增加0.6后得到下圖,此時亮度正合適,而且空穴和電子的重疊看得非常清楚,完美!


    5 例子:用VMD顯示水四聚體的密度差圖

    在Multiwfn手冊4.4.8節給出了繪制水四聚體的密度差圖的步驟,也就是讓整個水四聚體的密度減去構成它的每個單體的密度。我們將算出來的密度差格點數據導出成cube文件,然后用VMD來渲染。如果直接用VMDrender_full.bat渲染,雖然效果很好,但是陰影搞得圖像略微復雜,反倒有點不便于分析,因此我們還是按照上一節,改成-trans_vmd和-mediumshade選項然后再渲染,之后在Photoshop里按Ctrl+Alt+E,把灰度系數校正(Gamma)改為0.7后得到下圖,可見又漂亮,又把密度差特征展現得很清楚。

    6 例子:苯甲酮的LOL-pi

    在《在Multiwfn中單獨考察pi電子結構特征》(http://www.shanxitv.org/432)一文中介紹了怎么通過Multiwfn非常簡單地繪制出平面和非平面體系的描述pi電子結構的函數的圖像,其中對一個非平面體系苯甲酮繪制了LOL-pi等值面圖。使用本文的腳本,直接用cub命令將LOL-pi的格點數據文件載入VMD,等值面設為0.5后,通過VMDrender_full.bat渲染直接就得到了下面這個效果非常理想的圖像。


    7 總結&其它

    本文提供的腳本可以又快又好又方便地將一個或兩個cube文件繪制成等值面,尤其是建議Multiwfn用戶都掌握本文的做法。

    用VMDrender_full.bat渲染出的效果并非對任何情況都總是理想,應根據實際情況調節,在http://www.shanxitv.org/449文中對于作圖設定還有更多討論,本文不再累述。尤為值得一提的是如果在.bat里加入-shadow_filter_off,可以避免由于等值面產生大量陰影而使得圖像較暗,用了-trans_vmd后若感覺圖像偏暗,除了如上文用ps調節外也可以嘗試這個選項。大家也可以在Graphics - Representation中對設置自行進行各種修改、在Graphics - Materials里對材質定義進行調整、在Display里調整光源來試圖改進效果。等值面是否光滑和格點間距有直接關系,間距越小越光滑,但計算也越昂貴,詳見《Multiwfn FAQ》(http://www.shanxitv.org/452)的Q39的討論。

    .bat里-res后面的數字定義的是渲染出來的圖像尺寸,設得越小則Tachyon渲染耗時越低。

    久久精品国产99久久香蕉