YASARAには、自動でMDトラジェクトリを解析しHTML形式のレポートに出力できるマクロファイル「md_analyze.mcr」が付属しています。
このマクロファイルを編集すると、デフォルトの解析の他に、ユーザーのオリジナルの解析を追加することもできます。
この記事では、マクロファイルを編集して、特定の原子間距離の時間推移をグラフに出力する方法を紹介します。
※この記事は、YASARA Ver.25.12.1を使用して作成しています。
使用するMDトラジェクトリ
今回は例として、HIVプロテアーゼとアタザナビルの共結晶構造(PDB ID: 3EKY)を使用してYASARAでMDを実行し、トラジェクトリファイルを用意しました。
MDは、md_run.mcrを使用して実行し、normalモードで5 ns 実行しました。
今回追加するグラフ
今回は、下図の丸で囲んだ、リガンドの水素原子とレセプターのアスパラギン酸の酸素分子との距離のグラフを例として、解析レポートに追加してみます。
原子の情報
MDシミュレーションの初期構造ファイル(~_water.sce)を開き、原子をクリックしてマーク(ハイライト表示)すると、左上のHUD(Head Up Display)、「ATOM PROPERTIES」に原子の情報が出力されるので、ここから原子名などを確認することができます。
今回解析に選んだ2原子のプロパティ情報は以下になります。
原子2: 原子名:OD2 / 残基名:ASP/ 残基番号:25 / 分子名:B
md_analyze.mcrの編集手順
それでは、解析マクロmd_analyze.mcrを編集して、オリジナルのプロットを追加してみます。
1. 付属マクロファイルのコピー
オリジナルのマクロファイルを残しておくため、まずは適当な場所(作業フォルダなど)にファイルをコピーします。YASARA付属のマクロファイルは、YASARAインストールディレクトリ内の「mcr」フォルダに保存されています。ここから、今回編集するマクロファイル「md_analyze.mcr」をコピーして下さい。
2. マクロファイルの表示
コピーしたマクロファイルをテキストエディタで開きます。(Windowsであればメモ帳など)3. マクロファイルの編集
Ctrl+Fキーを押して「distance」と入力し検索します。上から4番目にヒットする、下記の項目が今回編集する箇所になります。(YASARA ver.25.12.1の場合)ここには次のように、解析の具体例と入力例が記載されています。
例:molecule/chain AのGlu 123のカルボキシル基(Cdelta)と、molecule/chain BのArg 345のグアニジニウム基の(Czeta)間の距離をプロットする。
注意:この距離測定では周期境界を考慮しており、最小のセル辺長の半分を超える距離では予期しない結果が生じることがあります。このような大きな距離を測定する場合は、以下の『AnalyzeOutsideCell』セクションにあるDistanceの例を参照してください。
入力例:
Plot "Distance CD Res Glu 123 Mol A, CZ Res Arg 345 Mol B",'Distance between Glu 123 [Cdelta] and Arg 345 [Czeta]','Distance','DGLUARG'
このように、md_analyzeマクロでは、「Example:~」として、様々な解析例が記載されています。デフォルトでは 「#」でコメントアウトされているため実行されませんが、ここに記載されている入力例を参考に参考に編集し、目的の表やプロットを追加することができます。最後の行をアンコメント(行頭の#を削除)して編集するか、下の行に追記するなどして編集します。
先ほどの入力例の構成は次のようになっています。
Plot "Distance CD Res Glu 123 Mol A, CZ Res Arg 345 Mol B",'Distance between Glu 123 [Cdelta] and Arg 345 [Czeta]','Distance','DGLUARG'
①"Distance CD Res Glu 123 Mol A, CZ Res Arg 345 Mol B"
ここは、Distanceコマンドで2原子間の距離を出力しています。
今回は先ほど確認した次の2原子を指定したいので、
原子1:HAM / 残基名:DR7/ 残基番号:100 / 分子名:A
原子2:OD2 / 残基名:ASP/ 残基番号:25 / 分子名:B
この部分は例として以下のように入力しておきます。
"Distance HAM Res DR7 100 Mol A, OD2 Res ASP 25 Mol B"
※原子の指定の記載方法には決まりはありません。 YASARAで認識できる方法であれば他の指定方法も利用できます(原子の番号で指定するなど)。
②'Distance between Glu 123 [Cdelta] and Arg 345 [Czeta]'
カンマで区切り、次にグラフのタイトルを入力します。ここからの②~④の入力内容は決まったルールは無く、任意の文字列を使用できます。
今回は、以下のように指定してみます。
'Distance between DR7 100 [HAM] and ASP 25 [OD2]'
③'Distance'
カンマで区切り、続いてグラフ縦軸に指定したい文字列を入力します。今回はそのまま'Distance'と指定しておきます。
④'DGLUARG'
カンマで区切り、最後にグラフの凡例名を指定します。今回は以下のように指定してみます。
'DR7ASP'
※任意の文字列を使用できますが、ハイフン「-」 やスペースを入れないように注意してください。
以上をまとめて、マクロファイルに以下を追記してみます。
(入力例)
Plot "Distance HAM Res DR7 100 Mol A, OD2 Res ASP 25 Mol B",'Distance between DR7 100 [HAM] and ASP 25 [OD2]','Distance','DR7ASP'
※文頭には半角スペース2文字分を入れてください。
4. マクロファイルの保存
マクロファイルを編集したら、上書き保存します。テキストファイルとして保存してしまった場合は、拡張子を「.mcr」に変更してください。
編集済みであることがわかるように、ファイル名を変更しておくとよいです。
解析マクロ実行
準備ができたら、マクロターゲットを指定して、先ほど保存したマクロを実行します。
- Option > Macro & Movie > Set target からマクロターゲットを指定(ターゲットの指定はMD実行時と同じ)
- Option > Macro & Movie > Play macro から先ほど保存したマクロファイルを指定して実行
解析レポートの確認
解析が終了すると、html形式のレポートが表示されます。追加したグラフを確認してみます。
グラフタイトル:'Distance between DR7 100 [HAM] and ASP 25 [OD2]'
グラフ縦軸:'Distance'
凡例名:'DR7ASP'
と、指定した通りにグラフが出力されました。
補足情報
md_analyze.mcrの編集方法によって、一つの図に複数のデータをプロットすることもできます。
例えば、Distanceコマンドで原子の一方を「Res ASP 25 Mol B and Element O」としてアスパラギン酸の3つの酸素原子をまとめて指定すると、それぞれの酸素原子との距離が1つの図の中にプロットされます。このように複数のプロットを出力する場合は、最後のグラフ凡例を「Auto」としておくと「Graph1,2...」と自動で凡例名がつきます。なお、グラフの凡例名の番号は、Distanceコマンドの出力順になっています。
以下は入力例と出力されるグラフの例です。
Plot "Distance HAM Res DR7 100 Mol A, Res ASP 25 Mol B and ElementO",'Distance between HAM of DR7 and ASP 25[O atoms]','Distance','Auto'まとめ
マクロ中の「Example」と記載されている部分には、様々なプロットや表を追加するための例が記載されており、この記載例を参考に編集することで、簡単にオリジナルの解析をレポートに追加することができるようになっています。
今回は原子間の距離のグラフを追加しましたが、他にも様々な解析が可能です。追加したい解析があれば、「Example」と記載されている部分を探して試してみてください。