#はじめに
GROMACSでは原子を指定するのにインデックスファイル(*.ndx)が必要になることがあります。
この記事ではインデックスファイルを作るためのユーティリティであるgmx make_ndxの使い方についてご紹介します。
#使い方
今回はこちらの系で実行します。
タンパク質とリガンドからなる系です。
GROMACSのバージョンは2021.2です。
コマンドはシンプルです。
gmx make_ndx -f npt.gro
するとこんな表示がでてきます。
:-) GROMACS - gmx make_ndx, 2021.2 (-:
GROMACS is written by:
Andrey Alekseenko Emile Apol Rossen Apostolov
Paul Bauer Herman J.C. Berendsen Par Bjelkmar
Christian Blau Viacheslav Bolnykh Kevin Boyd
Aldert van Buuren Rudi van Drunen Anton Feenstra
Gilles Gouaillardet Alan Gray Gerrit Groenhof
Anca Hamuraru Vincent Hindriksen M. Eric Irrgang
Aleksei Iupinov Christoph Junghans Joe Jordan
Dimitrios Karkoulis Peter Kasson Jiri Kraus
Carsten Kutzner Per Larsson Justin A. Lemkul
Viveca Lindahl Magnus Lundborg Erik Marklund
Pascal Merz Pieter Meulenhoff Teemu Murtola
Szilard Pall Sander Pronk Roland Schulz
Michael Shirts Alexey Shvetsov Alfons Sijbers
Peter Tieleman Jon Vincent Teemu Virolainen
Christian Wennberg Maarten Wolf Artem Zhmurov
and the project leaders:
Mark Abraham, Berk Hess, Erik Lindahl, and David van der Spoel
Copyright (c) 1991-2000, University of Groningen, The Netherlands.
Copyright (c) 2001-2019, The GROMACS development team at
Uppsala University, Stockholm University and
the Royal Institute of Technology, Sweden.
check out http://www.gromacs.org for more information.
GROMACS is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2.1
of the License, or (at your option) any later version.
GROMACS: gmx make_ndx, version 2021.2
Executable: /usr/local/gromacs/2021.2_GPU/bin/gmx
Data prefix: /usr/local/gromacs/2021.2_GPU
Working dir: /home/tacoma/work/make_ndx
Command line:
gmx make_ndx -f npt.gro
Reading structure file
Going to read 0 old index file(s)
Analysing residue names:
There are: 162 Protein residues
There are: 1 Other residues
There are: 10126 Water residues
There are: 8 Ion residues
Analysing Protein...
Analysing residues not classified as Protein/DNA/RNA/Water and splitting into groups...
Analysing residues not classified as Protein/DNA/RNA/Water and splitting into groups...
0 System : 33005 atoms
1 Protein : 2601 atoms
2 Protein-H : 1291 atoms
3 C-alpha : 162 atoms
4 Backbone : 486 atoms
5 MainChain : 649 atoms
6 MainChain+Cb : 800 atoms
7 MainChain+H : 810 atoms
8 SideChain : 1791 atoms
9 SideChain-H : 642 atoms
10 Prot-Masses : 2601 atoms
11 non-Protein : 30404 atoms
12 Other : 18 atoms
13 LIG : 18 atoms
14 CL : 8 atoms
15 Water : 30378 atoms
16 SOL : 30378 atoms
17 non-Water : 2627 atoms
18 Ion : 8 atoms
19 LIG : 18 atoms
20 CL : 8 atoms
21 Water_and_ions : 30386 atoms
nr : group '!': not 'name' nr name 'splitch' nr Enter: list groups
'a': atom '&': and 'del' nr 'splitres' nr 'l': list residues
't': atom type '|': or 'keep' nr 'splitat' nr 'h': help
'r': residue 'res' nr 'chain' char
"name": group 'case': case sensitive 'q': save and quit
'ri': residue index
>
既に0-21までのgroupが認識されています。
代表的なものは、
- System : 系中の全原子
- Protein : タンパク質
- Ion : イオン
- Water : 水
それ以外にも
- LIG : リガンド(groファイル中で残基名がLIGとなっているのでこのように表示されている)
などあります。
この状態で"q"と入力すると、0-21までのgroupを含むindex.ndxファイルが出力されます。
グループを作るためのコマンドは下部分に書いていますが、わかりにくいので以下で例を示していきます。
##タンパク質とリガンドを含むグループを作成する
group 1 (Protein) と group 13 (LIG) を合わせたグループを作ります。
> 1 | 13
Copied index group 1 'Protein'
Copied index group 13 'LIG'
Merged two groups with OR: 2601 18 -> 2619
22 Protein_LIG : 2619 atoms
「|」 は「or」を意味しています。したがって、1と13を合わせたgroupができます。
group 22 ができたことがわかります。
別の方法としては、group 21 の Water_and_ions 以外の原子ということで、
> ! 21
とすることもできます。
「!」は「not」の意味です。
##特定の名前の原子のみを集めたgroupを作成する
原子名CBの原子のgroupを作るときは
> a CB
Found 151 atoms with name CB
22 CB : 151 atoms
ワイルドカードも使えるようで例えばCから始まる原子(つまり炭素原子すべて。Cl原子があるときは除く必要がある)を選択することも可能です。
> a C*
Found 826 atoms with name C*
23 C* : 826 atoms
##残基番号で選択する
1番目から10番目の残基を選択します。
残基のインデックスは1始まりです。念のため。
> r 1-10
Found 178 atoms with res.nr. in range 1-10
24 r_1-10 : 178 atoms
##特定残基の炭素原子を選択
残基1-10番の炭素原子を選択しましょう。
> r 1-10 & a C*
Found 178 atoms with res.nr. in range 1-10
Found 826 atoms with name C*
Merged two groups with AND: 178 826 -> 56
27 r_1-10_&_C* : 56 atoms
「&」はandです。
##groupを残基ごとに分解する
↑で作ったgroupを残基ごとに分解します。
> splitres 27
Splitting group 27 'r_1-10_&_C*' into residues
>
0 System : 33005 atoms
1 Protein : 2601 atoms
2 Protein-H : 1291 atoms
3 C-alpha : 162 atoms
4 Backbone : 486 atoms
5 MainChain : 649 atoms
6 MainChain+Cb : 800 atoms
7 MainChain+H : 810 atoms
8 SideChain : 1791 atoms
9 SideChain-H : 642 atoms
10 Prot-Masses : 2601 atoms
11 non-Protein : 30404 atoms
12 Other : 18 atoms
13 LIG : 18 atoms
14 CL : 8 atoms
15 Water : 30378 atoms
16 SOL : 30378 atoms
17 non-Water : 2627 atoms
18 Ion : 8 atoms
19 LIG : 18 atoms
20 CL : 8 atoms
21 Water_and_ions : 30386 atoms
22 C_C* : 826 atoms
23 C* : 826 atoms
24 r_1-10 : 178 atoms
25 r_1 : 19 atoms
26 r_3 : 19 atoms
27 r_1-10_&_C* : 56 atoms
28 r_1-10_&_C*_MET_1 : 5 atoms
29 r_1-10_&_C*_ASN_2 : 4 atoms
30 r_1-10_&_C*_ILE_3 : 6 atoms
31 r_1-10_&_C*_PHE_4 : 9 atoms
32 r_1-10_&_C*_GLU_5 : 5 atoms
33 r_1-10_&_C*_MET_6 : 5 atoms
34 r_1-10_&_C*_LEU_7 : 6 atoms
35 r_1-10_&_C*_ARG_8 : 6 atoms
36 r_1-10_&_C*_ILE_9 : 6 atoms
37 r_1-10_&_C*_ASP_10 : 4 atoms
##groupを1原子ごとに分解する
> splitat 27
Splitting group 27 'r_1-10_&_C*' into atoms
表示は長くなりますが抜粋すると
42 r_1-10_&_C*_CA_5 : 1 atoms
43 r_1-10_&_C*_CB_7 : 1 atoms
44 r_1-10_&_C*_CG_10 : 1 atoms
45 r_1-10_&_C*_CE_14 : 1 atoms
46 r_1-10_&_C*_C_18 : 1 atoms
47 r_1-10_&_C*_CA_22 : 1 atoms
48 r_1-10_&_C*_CB_24 : 1 atoms
49 r_1-10_&_C*_CG_27 : 1 atoms
50 r_1-10_&_C*_C_32 : 1 atoms
51 r_1-10_&_C*_CA_36 : 1 atoms
52 r_1-10_&_C*_CB_38 : 1 atoms
53 r_1-10_&_C*_CG2_40 : 1 atoms
54 r_1-10_&_C*_CG1_44 : 1 atoms
55 r_1-10_&_C*_CD_47 : 1 atoms
56 r_1-10_&_C*_C_51 : 1 atoms
こんな感じです。
##groupの名前を変える
group 22 の名前を変えたければ、
> name 22 Protein_and_ligand
これでgroup 22 の名前が「Protein_and_ligand」に変わりました。
ここでエンターキーをただ押すことで現在のグループのリストを見ることができます。
>
0 System : 33005 atoms
1 Protein : 2601 atoms
2 Protein-H : 1291 atoms
3 C-alpha : 162 atoms
4 Backbone : 486 atoms
5 MainChain : 649 atoms
6 MainChain+Cb : 800 atoms
7 MainChain+H : 810 atoms
8 SideChain : 1791 atoms
9 SideChain-H : 642 atoms
10 Prot-Masses : 2601 atoms
11 non-Protein : 30404 atoms
12 Other : 18 atoms
13 LIG : 18 atoms
14 CL : 8 atoms
15 Water : 30378 atoms
16 SOL : 30378 atoms
17 non-Water : 2627 atoms
18 Ion : 8 atoms
19 LIG : 18 atoms
20 CL : 8 atoms
21 Water_and_ions : 30386 atoms
22 Protein_and_ligand : 2619 atoms
nr : group '!': not 'name' nr name 'splitch' nr Enter: list groups
'a': atom '&': and 'del' nr 'splitres' nr 'l': list residues
't': atom type '|': or 'keep' nr 'splitat' nr 'h': help
'r': residue 'res' nr 'chain' char
"name": group 'case': case sensitive 'q': save and quit
'ri': residue index
##groupを削除する
group 27 を削除します。
> del 27
Removed group 27 'r_1-10_&_C*'
##これまで作成したgroupを保存してmake_ndxから抜ける
> q
出力ファイル名を指定していなければ、index.ndxが出力されています。
#おわりに
その他もいろいろあると思いますが、知らないので今回はこれで終わりにします。
例えばcaseって何なのでしょうね。
#参考
公式マニュアルにはあまり説明がありませんが一応。