日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

VMD中實(shí)現(xiàn)原子的數(shù)值著色方法

 day_day__UP 2015-05-06

本文的操作是在VMD 1.8.6中進(jìn)行。

 

想作出下面的圖嗎?

想讓體系中的原子在每一幀都可以按某一屬性(能量、位移、破壞程度等等)進(jìn)行著色嗎?

那就閱讀本文吧!

只要是對原子根據(jù)某一數(shù)值進(jìn)行著色,本文的方法都可以實(shí)現(xiàn),對單幀或多幀都適用。

 

 一、準(zhǔn)備數(shù)據(jù)文件

1、首先是需要用來著色的軌跡文件,單幀或多幀的都行,文件名為dump.pdb

這里要說明一下:文件名的后綴必須是VMD能識別的,建議使用pdb格式或xyz格式的(VMD默認(rèn)就能打開的格式),后面會解釋為什么。

 

得到pdb格式或xyz格式的方法:

打開VMD,成功導(dǎo)入軌跡文件或分子文件,VMD main窗口,fileàsave coordinates

Selected atoms 選擇 all;File type選擇 pdb,xyz。Frames下面用默認(rèn)的就行。

格式轉(zhuǎn)換后的文件存在VMD的安裝主目錄下(我的是C:\Program Files\University of Illinois\VMD)。

 

2、其次為用于給原子著色的數(shù)據(jù)文件,就是想讓原子按哪些數(shù)值顯示顏色,命名為user.data

數(shù)據(jù)文件的名字無所謂,但其格式有要求,數(shù)據(jù)文件里的數(shù)值只有單一的一列,而且從第一個值到最后一個值必須與軌跡文件中的原子一一對應(yīng),數(shù)值之間不能空行,例如:

dump文件的數(shù)據(jù)如下:

ITEM: TIMESTEP

0

ITEM: NUMBER OF ATOMS

20514

ITEM: BOX BOUNDS

-0.0001 0.8001

-0.0501 0.2001

-0.1001 0.1001

ITEM: ATOMS

1 Si 0.000124969 0.00039968 0.0004995

2 Si 0.0126218 0.00039968 0.0004995

3 Si 0.0251187 0.00039968 0.0004995

4 O 0.0376156 0.00039968 0.0004995

5 O 0.0501125 0.00039968 0.0004995

6 O 0.0626093 0.00039968 0.0004995

7 O 0.0751062 0.00039968 0.0004995

8 O 0.0876031 0.00039968 0.0004995

9 O 0.1001 0.00039968 0.0004995

10 Si 0.112597 0.00039968 0.0004995

 

那么user.data的格式為:

10

20

30

40

50

60

70

80

90

100

user.data文件里的數(shù)據(jù)1020、3040、50、6070、80、90、100分別對應(yīng)給原子Si、SiSi、OO、OO、OO、Si

 

用于著色的數(shù)值如果是在dump文件中一同輸出的,可以使用Linux下的awk, grep等命令提取出來,這個自己處理。

 

 

 二、tcl腳本操作

1、將上面的軌跡文件dump.pdb和用于著色的數(shù)據(jù)文件user.data拷貝到VMD的安裝主目錄下(C:\Program Files\University of Illinois\VMD),因?yàn)檫@個是VMDtk 控制臺工作的默認(rèn)目錄。

2、進(jìn)入tk控制臺

VMD Mainà Extensionsà TK Console

3、載入tcl腳本

腳本內(nèi)容:

 

set file dump.pdb        #設(shè)置file變量為軌跡文件dump.pdb

mol new $file waitfor all           #導(dǎo)入file指向的分子文件,并等待直到導(dǎo)入所有原子

set numframes [molinfo top get numframes]   #設(shè)置numframes變量為計(jì)算分子幀數(shù)的值

set numatoms [molinfo top get numatoms]   #設(shè)置numatoms變量為計(jì)算分子中原子的個數(shù)

set sel [atomselect top all]     #設(shè)置sel變量為分子編號為top的值,這個就不用管了

set fp [open "user.data" r]     #設(shè)置fp變量為讀入數(shù)據(jù)文件user.data

#下面開始處理循環(huán)

for {set i 0} {$i<$numframes} {incr i} {            #0幀開始循環(huán)

$sel frame $i

set ulist ""          #建立名字為ulist的表,表為空

puts "setting user values for frame [$sel frame].."  #輸出處理到哪一幀,便于查錯

for {set j 0} {$j<$numatoms} {incr j} {             #循環(huán)每一個原子

animate goto $i               #轉(zhuǎn)到第i幀,這個不用管了

gets $fp line                 #fp變量中讀入一行值,就是讀入user.data的一個值

lappend ulist $line            #將該值放入表ulist

}                         #內(nèi)循環(huán)結(jié)束

$sel set user $ulist           #對所有原子使用表中的值作為user

}                         #外部循環(huán)結(jié)束

$sel delete             #結(jié)束,刪除sel變量

 

有兩種方法載入腳本

1)手動輸入腳本

如果是從VMD main file中導(dǎo)入的軌跡文件,那么腳本就從第三行輸入,每輸一行按一下確認(rèn),操作下去。因?yàn)槭鞘謩訉?dǎo)入的軌跡,就不需要將軌跡文件放到主目錄下,對軌跡文件的格式也沒特別要求了,只需成功導(dǎo)入完畢就行。但user.data一定要放到主目錄下。

2)自動完成

由于是自動導(dǎo)入并處理的,所以要求軌跡文件格式為VMD的默認(rèn)格式,否則不能正常進(jìn)行下去。如果你不確定是不是默認(rèn)的格式,就按前面的方法轉(zhuǎn)換成pdb格式或xyz格式文件。根據(jù)你的文件名和格式修改一下腳本內(nèi)容,軌跡文件名替換腳本中的”dump.pdb”關(guān)鍵字,數(shù)據(jù)文件名替換”user.data”關(guān)鍵字.

將修改好的腳本文件也一同拷貝到VMD主目錄下,腳本文件名為user.tcl,然后在tk console中輸入

source user.tcl                  #導(dǎo)入user.tcl腳本 

按下Enter鍵就OK了。

這個時候雖然處理完了,還需要VMD窗口調(diào)整顯示才能最終完成,請看下面的。

 

三、顏色的顯示

這一步也非常重要!請仔細(xì)閱讀:

VMD Main中,GraphicsàRepresentations

Draw style 欄中,Coloring Method選擇“user”,如下圖:

Trajectory欄中,勾選“update color every frame

Color Scale Data Range中的數(shù)值表示的是著色數(shù)值范圍,如果默認(rèn)的最大值和最小值不是user.data中的最大值和最小值,可以手動輸入按下”set”即可,一般設(shè)置為user.data文件中的最大值和最小值。

顯示的顏色可以在VMD Mainà GraphicsàColoràColor scale中調(diào)整。

完成這個著色后,就可以通過create Rap 隨意做其它顯示了.

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多