• Gromacs的g_spatial產生的格點文件分析工具gmxgrid v1.2

    下載地址/usr/uploads/file/20150605/20150605005449_28617.rar


    gmxgrid V1.2
    Convert the cube file generated by g_spatial to recognizable format at specific plane
    Programmed by Sobereva, 2009-Oct-29

    bug report: sobereva[at]sina.com

    debut:2009-Feb-14
    V1.1:2009-JUL-13,修復一個原點位置錯誤的bug
    V1.2:2009-Oct-29,讀取的變量雙精度改為單精度,部分細節進行了改進,內存使用量減少為以前的1/4,增加了內存占用空間提示和讀取進度提示。輸出精度小數點后擴展為6位。

    gromacs提供了g_spatial工具,可以生成gaussian格點文件來描述分子在各個位置的密度分布。雖然VMD也提供了volumeslice顯示方式可以顯示格點數據的切面圖,gaussview4.1可以顯示g_spatial生成的格點數據的自定義平面的等值線圖,包括molden也可以實現同樣功能。但是顯示效果不好,畢竟是不是專業數據處理和繪圖的軟件,不適合用于文獻的插圖。
    gmxgrid這個程序主要有三個功能,第一個是把格點文件的數據提取出來,輸出每個數據點的坐標,即程序里的第1項。第二個功能是選取指定的XY/YZ/XZ平面,得到這個平面上的數據點以便做圖,即程序里的第2-4項。第三個功能是將一定范圍內平面的數據取平均輸出,即程序里的第5-7項,比如Z值在30至33.5埃之間的平面的數據取平均輸出。

    gmxgrid的用處:例如要研究在分子平面中溶劑在分子周圍分布情況,可以依如下方法進行:在VMD里旋轉要研究的那個分子,使之與坐標軸組成的面平行或垂直,比如讓分子內的六元環平行于X-Y平面,保存為新結構,用trjconv把軌跡向這個結構fit,用g_spatial得到溶劑密度的格點文件。用gmxgrid提取格點中那個分子所在平面的數據(或者z值在某個范圍內的平面的密度和),用sigmaplot、origin做圖,然后把分子圖形套進那個圖里(可以用相同方法做這個分子的密度分布,將兩個圖重疊,以確定分子在圖中的位置)。


    注意:格點文件中所用單位為波爾半徑,等于0.529177249埃,讀入VMD、gaussview后會被轉換為埃。為了與可視化程序保持一致,本程序在讀入格點文件時已經將單位轉換為埃,輸入參數和輸出結果都以埃為單位。

    讀取特別大的格點文件,如幾百兆,若程序剛載入文件就自動關閉,請確保有足夠大的內存空間,應為總格點數*4*4字節。另外將虛擬內存設大。

    關于g_spatial格點的單位,有兩種情況,一種是默認情況,一種是加了-nodiv。默認情況格點文件里的數值都會除以一個歸一化因子。加了-nodiv情況下,假設格點寬度就是-bin所設數值,即默認0.05nm,你計算了一個1ns的軌跡,得到其中一個格點的數值是1.8,就是說:在這1ns中,在這個0.05nm^3的空間內,平均有1.8個粒子。
    粒子就是指的你選的group里的所有粒子。

    以下關于高斯格點文件的介紹內容與gsgrid的readme.txt相同,但要注意g_spatial的格點文件與高斯生成的格點文件區別在于后者每6個數據換行一次,且最低維循環一遍后會換行,數據使用科學記數法。前者的每行內容就是最低維數據的一次循環,其間不換行,中維數據循環一次后會空一行。gsgrid與gmxgrid的區別在于gmxgrid處理的是g_spatial的文件格式,并添加了第5-7項功能。


    格點文件介紹:
    例如水的靜電勢的格點文件
    Title Card Required potenial //顧名思義
    Electrostatic potential from Total SCF Density //顧名思義
    3 -4.970736 -4.970736 -4.761332 //原子數 原點的X/Y/Z坐標
    80 0.125841 0.000000 0.000000 //第一個“坐標軸”上有80個數據點,每個數據點間隔為0.12584(以bohr為單位)
    80 0.000000 0.125841 0.000000 //第二個“坐標軸”
    80 0.000000 0.000000 0.125841 //第三個“坐標軸”
    8 8.000000 0.000000 0.000000 0.209404 //原子序號(氧),電子數,X/Y/Z坐標(以bohr為單位)
    1 1.000000 0.000000 1.481500 -0.837616
    1 1.000000 0.000000 -1.481500 -0.837616
    7.33384E-03 7.33602E-03 7.33151E-03 7.31988E-03 7.30070E-03 7.27354E-03 //每個點的數據,每六個換一行,E13.5格式。如果數據點數不是6的倍數,最低維循環后不足6個數據位置的地方會留空。
    7.23796E-03 7.19353E-03 7.13981E-03 7.07636E-03 7.00279E-03 6.91867E-03
    6.82364E-03 6.71732E-03 6.59939E-03 6.46955E-03 6.32753E-03 6.17312E-03
    ......
    這些數據點數據輸出的循環次序是:最低維=第三個“坐標軸”(此例即是Z軸),中維=第二個“坐標軸”,最高維=第一個“坐標軸”。

    數據點與其對應的坐標關系是:
    a(i,j,k)%x=originx+trans1x*(i-1)+trans2x*(j-1)+trans3x*(k-1)
    a(i,j,k)%y=originx+trans1y*(i-1)+trans2y*(j-1)+trans3y*(k-1)
    a(i,j,k)%z=originz+trans1z*(i-1)+trans2z*(j-1)+trans3z*(k-1)
    trans1/x/y/z代表第一個“坐標軸”三個分量,(或曰:格點的平移矢量)
    trans2/x/y/z代表第二個“坐標軸”三個分量
    trans3/x/y/z代表第三個“坐標軸”三個分量
    originx/y/z代表原點位置
    i、j、k代表某點在各個“坐標軸”上的數據點序號。

    如果用cubegen默認設置,一、二、三號坐標軸實際上就相當于笛卡爾坐標軸X/Y/Z,彼此正交。

    久久精品国产99久久香蕉