VMDで水素結合を解析する (GUI, CUI)
概要
vmdで水素結合の解析をする。GUIとCUIでの方法を紹介する。
環境
macOS Mojave 10.14.5
vmd 1.9.3
GUIでの方法
まずは構造ファイルとトラジェクトリ ファイルを読み込む。読み込み方はこちら → VMDの使い方の基本 (Mac)
水素結合の数をプロット
VMD Main
==>Extensions
==>Analysis
==>Hydrogen Bonds
以下を参考に詳細を設定する。
Selection 1
:protein
Selection 2
:resname G39
Update selections every frame?
: チェックを外すと計算時間が短くなる。Only polar atoms (N, O, S, F)?
: チェックするCalculate detailed info for
:Residue pairs
をチェックするOutput directory
: お好みFrame/bond data?
: お好みDetailed hbond data?
: お好みFind hydrogen bonds!
: 設定が終わればここをクリックし、計算を始める
プロットが現れる。
File
からExport to PostScript
を選択すると画像を保存できる。また、Export to ASCII matrix...
を選択すると計算結果データを保存できる。
アウトプットファイルの説明
アウトプットファイルは2つある。Frame/bond data?
で指定された結果ファイル(test.dat
)とDetailed hbond data?
で指定された詳細ファイル(test-detailed.dat
)が出力される。
test.dat
: 計算結果が書かれている。各フレームの水素結合の本数が記述されている。
#frame number 0 2 1 0 2 0
test-detailed.dat
: 計算結果の詳細が書かれている。見つかった水素結合の組み合わせと、出現頻度が書かれている。Calculate detailed info for
オプションの設定によって詳細ファイルの内容が変わる。以下、出現頻度について補足を加える。
Residue pairs
open
下の例では、ARG290-Side
とG39389-Side
での水素結合出現頻度が0.30%となっている。今回は全部で1000フレームあったので1000*0.30/100=3フレームで水素結合があったことになる。
Unique hbond
open
下の例では、残基名は同じ(ARG290-Side
とG39389
)だが、NH1
、NH2
、O1B
、O1A
という原子名の違いで出現頻度が計算されている。
All hbonds
open
下の例では、ARG290-Side
とG39389-Side
間での水素結合出現頻度が154.55%となっており、100%を超えている。この理由は上記Unique hbond
の例からわかる通り、78.22+76.22+0.10=154.54%となる。よってAll hbonds
では出現頻度は原子間で計算しているが、組み合わせが残基間で表示されていることがわかる。
Hydrogen Bondsメニューオプション
- Input options
Molecule
:解析したい分子の指定Selection 1
:解析したい原子の指定Selection 2
:解析したい原子の指定Frame
:解析したいフレームの指定Update selections every frame?
:フレームごとにSelection 1,2
で指定した原子の選択を毎回更新するかどうかの指定。原子を時間依存しないように指定(ex 原子名など)していればチェックを外すことで計算時間を節約できる。原子を時間依存するように指定(ex 座標での指定、またはprotein within 5 of (resname G39)
のように、時間経過によって選択される原子が変化する)していれば毎回更新しなければならない。Only polar atoms
:解析対象原子をN, O, S, F
に限定するSelection 1 is the
:Selection 1
で選んだ原子をドナー、アクセプター、またはその両方として解析するかどうか。Selection 1
でドナーとすると、Selection 2
で選んだ原子はアクセプターとなる。Donor-Acceptor distance
:水素結合を定義するときの距離Angle cutoff
:水素結合を定義するときの角度Calculate detailed info for
:解析結果の詳細情報を定義する。ここが一番理解しにくい。具体例はtest-detailed.dat
。- None:何もしない
- All hbonds:原子間で水素結合があると1とカウントする。しかし、集計自体は残基間で行われる。よって、出現頻度が100%を超えるものもある。
- Residue pairs:残基間で水素結合があると1とカウントする。残基間で水素結合が2本以上あったとしても、1とカウントする。
- Unique hbond:原子間で水素結合があると1とカウントする。
- Output options
Output directory
:出力ファイルのディレクトリLog file
:ログファイル名Frame/bond data
:出力ファイル名Detailed hbond data
:解析結果の詳細ファイル名
CUIでの方法
vmdのスクリプト作成が初めてという方はこちら→VMDのスクリプトの書き方。
measure hbonds
水素結合情報はmeasure hbonds
で取得できる。このコマンドで取得できるのは水素結合を形成しているドナー、アクセプター、水素のインデックスを要素とするリスト。リストの長さは3つ(ドナー、アクセプター、水素)なので、ここから水素結合の本数、角度、距離など様々な情報を取得できる。ここでは、例としてGUIで出力した結果ファイル(test.dat
)と同様の出力をする。
mol load pdb test.pdb dcd test.dcd set out_file [open test.dat w] set num_frames [molinfo top get numframes] for {set i 1} {$i < $num_frames} {incr i} { set donor [atomselect top "protein" frame $i] set acceptor [atomselect top "resname G39" frame $i] set hbond_li [measure hbonds 3 20 $donor $acceptor] set num_hbonds [llength [lindex $hbond_li 0]] puts $out_file "$i\t$num_hbonds" } exit
水素結合の本数はmeasure hbonds
で取得したリストのいづれかの長さと等しくなる。結合の距離を計算したいときはmeasure bond {3 5}
のようにすればインデックスが3と5の原子間距離を計算できる。詳しくは参考文献を参照。