• 顯示粒子運動軌跡的VMD腳本

    顯示粒子運動軌跡的VMD腳本

    文/Sobereva   2010-Jun-29


    經常需要通過將運動軌跡連線來描繪粒子的運動路徑,此腳本可以實現這個目的

    proc showtrj {fps1 fps2 space selection} {
    set selnow [atomselect top $selection frame $fps1]
    set selnext [atomselect top $selection frame $fps1]
    set num [$selnow num]
    for {set fps $fps1} {$fps<$fps2} {incr fps $space} {
    $selnow frame $fps
    $selnext frame [expr $fps+$space]
    $selnow update
    $selnext update
    for {set i 0} {$i<$num} {incr i 1} {
    draw line [lindex [$selnow get {x y z}] $i] [lindex [$selnext get {x y z}] $i]
    draw sphere [lindex [$selnext get {x y z}] $i] radius 0.12
    }
    puts "Frame $fps done"
    }}

    使用方法:showtrj 最初幀 最末幀 幀數間隔 選擇范圍

    下圖是VMD自帶的alanin軌跡的1至95幀中兩末端的C的軌跡,首先運行draw color red設定軌跡為紅色(默認為藍色),然后執行showtrj 1 95 1 "index 1 61" 即可。圓點是每一幀兩原子的位置,圖中的結構是第95幀的情況。可見alanin最初的alpha螺旋結構發生了很大變化,兩端最后縮到一起,成了C形構象。




    下圖是某蛋白平衡狀態1ns內的CA原子的運動軌跡。不想繪制顯示每幀的圓球只需將腳本中draw sphere [lindex [$selnext get {x y z}] $i] radius 0.12這句去掉。由于軌跡幀數較多(1000幀),每幀都繪制一次不僅速度很慢,而且線條太密,所以改成每50幀繪制一次。運行showtrj 0 1000 50 "name CA"得到下圖


    久久精品国产99久久香蕉