4. 分子の構築方法

4.1. Leap

LEaPはAmber分子動力学プログラムのインプットファイルを準備するモジュールです。 LEaPの名前の由来は、AmberのモジュールのPREP-LINK-EDIT-PARMの頭文字(LINK、EDIT and PARM)からきています。
LEaPにはtLEaPとxLEaPの二種類があり、そのうちxLEaPはX-Windowsのグラフィカル・ユーザインタフェースを利用したもので、大変簡単に分子の構築が行えます。

4.2. 入力データの例

4.2.1. コマンド

LEaPの核はコマンドラインインタフェースであり、コマンドによってオブジェクトを操作します。 LEaPコマンドのフォーマットは以下の2種類があります。

command argument1 argument2 argument3 ...
variable = command argument1 argument2 ...

ここでargumentはNUMBERs、STRINGs、LISTsなどのObjectsです。commandについては3.5章で説明します。

4.2.2. Objects

ObjectsとはLEaPの基本的な要素です。
ObjectsにはNUMBERsやSTRINGsのSimple ObjectsとUNITs、RESIDUEs、ATOMsのComplex Objectsがあります。 Complex Objectsとは複数のSimple Objectsを含んだObjectです。 例えば、RESIDUEsはATOMsとresidue name、connect atom、residue typeを含んだComplex Objectsです。 一番大きなObjectsはUNITsであり、Molecular DynamicsのInputFileの基となります。
つまりLEaPは、いくつかの小さなObjectsを組み合わせ目的のUNITsを作っていくオブジェクト指向の分子構築ソフトです。 以下にObjectsの簡単な説明を載せます。(詳細はマニュアルを参照して下さい。)

Simple Objects

項目 説明
Numbers 倍精度の数値。
STRINGs 文字列。スペースが間に入るときはダブルクォーテーションでくくる。
LISTs 一連のObjectsで次のように使用する。{ 1 2 3 }
PARAMETSETs Amber力場のパラメータのセット(bond、angle、torsion、nonbonded parameter)

Complex Objects

項目 説明
ATOMS name(STRING)、type(STRING)、charge(NUMBER)、position(NUMBER)などのObjectsを含んだComplex Objects。
RESIDUEs 複数のATOMs Objectsとconnect1 $sim$ 5(結合の情報)、restype、nameのObjectsを含むComplex Objects
UNITs RESIDUEsにPARAMSETsを加えたComplex Objectsで最も重要なObjects。

4.2.3. Complex ObjectsからSub objectsへのアクセス方法

あるObjectsからその中に含まれるObjectsにアクセスする時にはdot'.'使います。
例えばdipeptideというファイル名の付いたジペプチドALA-PHEにおいて、ALAをアクセスし、descコマンドで情報を引き出す場合には、以下の2通りのアクセス方法があります。

desc dipeptide.ALA (dipeptideのALAという名前のREDIDUEs)
又は
desc dipeptide.1(dipeptideの1番目のREDIDUEs)

同様に、ALAの3番目の原子のCAへアクセスする時には以下のように行います。

> desc dipeptide.ALA.CA
又は
> desc dipeptide.ALA.3
又は
> desc dipeptide.1.CA
又は
> desc dipeptide.1.3

4.2.4. Variables

Objectsを操作するために付けた名前をVariablesといいます。 Variablesはlistコマンドで表示できます。

4.3. xLEaPの使用方法

xLEaPはLEaPのX-Windowsバージョンです。 ユーザインタフェースを通じてモデルの構築が行えます。 本項ではDNAを例に説明します。 moduleコマンドにてAmber環境を読み込んでいる、という前提条件にて説明いたします。

4.3.1. データの準備

ディレクトリを作成します。

$ mkdir amber
$ cd amber

pdbファイルを作成するためのnabファイルを作成します。

$ vi nuc.nab
#以下の内容を記載
molecule m;
m = fd_helix( "abdna", "aaaaaaaaaa", "dna" );
putpdb( "nuc.pdb", m, "-wwpdb");

pdbファイルを作成します。

$ nab nuc.nab
$./a.out
$ ls -la
total 17736
drwxr-xr-x 2 XXXXXXX tsubame-users      512 Sep  1 09:27 .
drwxr-xr-x 9 XXXXXXX tsubame-users     4096 Sep  5 09:25 ..
-rwxr-xr-x 1 XXXXXXX tsubame-users 18000464 Sep  5 09:26 a.out
-rw-r--r-- 1 XXXXXXX tsubame-users      573 Sep  5 09:26 nuc.c
-rw-r--r-- 1 XXXXXXX tsubame-users       93 Sep  5 09:26 nuc.nab
-rw-r--r-- 1 XXXXXXX tsubame-users    51686 Sep  5 09:27 nuc.pdb
-rw-r--r-- 1 XXXXXXX tsubame-users     2165 Sep  5 09:27 tleap.out

4.3.2. xLEaPの起動

xLEaPを起動するためにはサーバ上でxleapコマンドを実行します。

$ xleap -s -f <filename>
<filename>は、$AMERHOME/dat/leap/cmd/下のファイル等を指定してください。
$ xleap -s -f /apps/t3/sles12sp2/isv/amber/amber16up10/dat/leap/cmd/leaprc.DNA.bsc1

xleapコマンドを実行するとUniverse Editorウィンドウが表示されます。

xLEaPの起動時のオプションを以下に示します。

-h start-up optionsのリストの表示
-I {dir} サーチするディレクトリの追加
-f {file} スタート時に実行するコマンドの入ったファイルの読み込み
-s スタート時に`leaprc'を読み込まない

4.3.3. パラメータの付加

追加で力場を読み込むため、ウィンドウ内で以下のように実行します。

> seource leaprc.water.tip3p

力場を読み込んだのでPDBを読み込むため、以下のように実行します。
下記はユーザが作成したディレクトリを指定してください

> dna = loadpdb "<PathToDirectory>/amber/dna/nuc.pdb"
total atoms in file: 638

PDBを表示、編集するため、以下のように実行します。

> edit dna

実行後、DNAが表示されたUnit editorウィンドウが表示されます。

以下のコマンドで真空条件のDNAのパラメータを保存できます。

> saveamberparm dna dna_vac.prmtop dna_vac.inpcrd

このまま保存すると以下の電荷に関するワーニングが出ますが、prmtopおよびinpcrdファイルが作成されます。 prmtopおよびinpcrdファイルは5章で説明します。詳細はマニュアルをご確認ください。

> saveamberparm dna dna_vac.prmtop dna_vac.inpcrd
Checking Unit.
WARNING: The unperturbed charge of the unit: -18.000000 is not zero.

 -- ignoring the warning.

Building topology.
Building atom parameters.
Building bond parameters.
Building angle parameters.
Building proper torsion parameters.
Building improper torsion parameters.
 total 110 improper torsions applied
Building H-Bond parameters.
Incorporating Non-Bonded adjustments.
Not Marking per-residue atom chain types.
Marking per-residue atom chain types.
 (no restraints)

4.3.4. チャージの付加

ワーニングに対応するため、以下のコマンドでイオンの付加を行います。 0は電荷をノーマルにするというオプションです。

> addions dna Na+ 0

-18の電化に対して18個ナトリウムイオンが追加されました。

> addions dna Na+ 0
18 Na+ ions required to neutralize.
Adding 18 counter ions to "dna" using 1A grid
Grid extends from solute vdw + 3.65  to  9.75
Resolution:      1.00 Angstrom.
grid build: 0 sec
 (no solvent present)
Calculating grid charges
charges: 0 sec
Placed Na+ in dna at (6.44, 3.95, 17.79).
Placed Na+ in dna at (5.44, -5.05, 10.79).
Placed Na+ in dna at (-10.56, 5.95, 13.79).
Placed Na+ in dna at (-10.56, -6.05, 19.79).
Placed Na+ in dna at (-1.56, 11.95, 9.79).
Placed Na+ in dna at (-10.56, -4.05, 6.79).
Placed Na+ in dna at (-6.56, 4.95, 27.79).
Placed Na+ in dna at (11.44, -8.05, 22.79).
Placed Na+ in dna at (0.44, -12.05, 13.79).
Placed Na+ in dna at (11.44, 7.95, 10.79).
Placed Na+ in dna at (1.44, 11.95, 19.79).
Placed Na+ in dna at (10.44, -9.05, 4.79).
Placed Na+ in dna at (-7.56, 7.95, -0.21).
Placed Na+ in dna at (-11.56, -8.05, 27.79).
Placed Na+ in dna at (13.44, 1.95, 24.79).
Placed Na+ in dna at (-2.56, -12.05, 23.79).
Placed Na+ in dna at (-10.56, 8.95, 21.79).
Placed Na+ in dna at (13.44, 0.95, 3.79).

Done adding ions.

カウンターイオンがどのように入ったか確認するため、以下を実行します。

> edit dna

DNAの周りにカウンターイオンが存在することが確認できました。

4.3.5. MDの入力ファイルの作成

電荷がノーマルになったprmtopとinpcrdファイルを保存します。

> saveamberparm dna dna_cio.prmtop dna_cio.inpcrd

エラーが起こっていないことを確認してください。

> saveamberparm dna dna_cio.prmtop dna_cio.inpcrd
Checking Unit.
Building topology.
Building atom parameters.
Building bond parameters.
Building angle parameters.
Building proper torsion parameters.
Building improper torsion parameters.
 total 110 improper torsions applied
Building H-Bond parameters.
Incorporating Non-Bonded adjustments.
Not Marking per-residue atom chain types.
Marking per-residue atom chain types.
 (no restraints)

4.3.6. 水の付加

溶媒などを入れるため、コピーを作成しておきます。

> dna_cio = copy dna

水のボックスを作成します。 TIP3Pモデルを利用し、DNAの周りに8オングストロームのボックスを作成します。

> solvatebox dna TIP3PBOX 8.0

エラーが起こっていないことを確認してください。
2767個の水分子で満たされた約47x46x59のボックスが作成されました。

> solvatebox dna TIP3PBOX 8.0
  Solute vdw bounding box:              27.738 26.738 40.099
  Total bounding box for atom centers:  43.738 42.738 56.099
  Solvent unit box:                     18.774 18.774 18.774
  Total vdw box size:                   46.743 45.963 58.910 angstroms.
  Volume: 126564.801 A^3
  Total mass 56295.944 amu,  Density 0.739 g/cc
  Added 2767 residues.

水がどのように入ったか確認するため、以下を実行します。

> edit dna

DNAの周りに水が入ったことが確認できました。

実際の計算で利用するために八面体ボックスで設定するために下記のコマンドを実行します。

> solvateoct dna_cio TIP3PBOX 8.0

以下の出力が表示されます。

> solvateoct dna_cio TIP3PBOX 8.0
Scaling up box by a factor of 1.368620 to meet diagonal cut criterion
  Solute vdw bounding box:              27.987 26.927 38.921
  Total bounding box for atom centers:  60.819 60.819 60.819
      (box expansion for 'iso' is  51.9%)
  Solvent unit box:                     18.774 18.774 18.774
  Volume: 118123.162 A^3 (oct)
  Total mass 61286.376 amu,  Density 0.862 g/cc
  Added 3044 residues.

可視化して確認します。

> edit dna_cio

セルが八面体となっているprmtopとinpcrdファイルを保存します。

> saveamberparm dna_cio dna_wat.prmtop dna_wat.inpcrd

水で埋めたDNAをpdbファイルに出力するには以下のコマンドを実行します。

> savepdb dna dna.pdb
> savepdb dna_cio dna_cio.pdb

問題がない場合は以下のように表示されます。

> savepdb dna dna.pdb
Writing pdb file: dna.pdb
   printing CRYST1 record to PDB file with box info
> savepdb dna_cio dna_cio.pdb
Writing pdb file: dna_cio.pdb
   printing CRYST1 record to PDB file with box info

4.3.7. 分子の変更

Unit editerによる分子の変更手順について、先程読み込んだDNAを例にとって説明します。
PDBを表示、編集するため、以下のように実行します。

> edit dna

Unit editerが起動します。

Drawモード
Unit editorウィンドウ内のDRAWボタンをクリックし、マウスカーソルをViewing Window(右図の黒い部分)内に入れるとマウスカーソルが鉛筆の形になります
このモードをDRAWモードと呼びます。 このモードでは以下の処理が行えます。

  • 原子の生成

必要な原子を選択し、Viewing Window上でクリックします。 原子はElementsエリアのボタン、もしくはother elementsより選択ください。

  • 結合の作成

結合の始点から終点までドラッグします。 二重結合の場合は2回、三重結合の場合は3回行います。
下図の左側が操作中の画面表示、右図が操作後の結合表示となります。

モデルの回転、移動、ズーミング
モデルの回転、移動、ズーミングはDRAWモード、ERASEモード、SELECTモード、TWISTモード、MOVEモードのいずれのモードにおいても以下の操作で行えます。

  • モデルの回転

マウスの中ボタンでドラッグします。
(マウスによっては中ボタンがないものやホイールクリックに割り当てられているものがございます)

  • モデルの平行移動

マウスの右ボタンでドラッグします。

  • モデルの拡大・縮小

中クリックを押しながら右クリックを押し、ドラッグ
もしくは、Ctrlキーを押しながらマウスの右ボタンでドラッグします。
(注)マシンの設定により異なる場合があります。

ERASEモード
ERASEボタンをクリックし、ERASEモードにします。 このモードで原子または結合部分をクリックすると原子や結合が消去できます。

SELECTモード
SELECTボタンをクリックし、SELECTモードにします。 マウスの左ボタンでドラッグすると選択範囲の原子が選択され、違う色で表示されます。

選択範囲の解除は、シフトキーを押下しながらマウス左ボタンでドラッグします。 選択された原子はMOVEモードやTWISTモードで操作が行えます。

TWISTモード

4つの接続されている原子をSELECTモードで選択した後、TWISTボタンをクリックし、TWISTモードにします。 マウス左ボタンをドラッグすると、1つの原子をもとにして接続ボンドが回転します。

MOVEモード
MOVEボタンをクリックし、MOVEモードにします。 マウス左ボタンをドラッグするとSELECTモードで選択された原子だけが移動します。

自分の扱う分子のパラメータがAMBERのオリジナルデータベースにない場合は、新規にパラメータを作成する必要があります。 すでに設定されている場合はこのセクションをとばして下さい。

SELECT機能で編集したい原子を選択し、Unit editorウィンドウのDisplayメニューからNamesとTypesを選択し、表示させます。
Editメニューから Edit selected atomsを選択します。

Edit selected atomsウィンドウが表示されるので、NAME TYPE, CHARGE等を編集します。

編集が終わったらEdit selected atomsウィンドウのTableメニューよりSave and quitを選択し、終了します。

4.3.8. チェック

Check unitは以下の4点についてチェックを行います。

  • bonds length
  • non-integral total charge of the UNIT
  • missing force field atom type
  • close contacts between nonbonded ATOMs

Unit editorウィンドウでSELECTモードにし、ペプチド全体を選択します。

Unit menuからCheck unitを選択し、types、chargeに問題がないことを確認します。

4.3.9. 構造最適化

Edit menuからRelax selectionを選択します。 これは選択された原子のbonds、angles、torsionsについて最適化を行います。

4.4. LEaPのヘルプコマンド

Universe Editorウィンドウ内で、helpコマンドを実行すると使用可能なコマンドの一覧が表示されます。 また、helpコマンドの引き数に詳細を知りたいコマンドをつけて実行すると、そのコマンドの詳細なマニュアルが表示されます。

> > help
Help is available on the following subjects:

_cmd_options_       _types_             add                 addAtomTypes
addH                addIons             addIons2            addIonsRand
addPath             addPdbAtomMap       addPdbResMap        alias
alignAxes           bond                bondByDistance      center
charge              check               clearPdbAtomMap     clearPdbResMap
clearVariables      combine             copy                createAtom
createParmset       createResidue       createUnit          crossLink
debugOff            debugOn             debugStatus         deleteBond
deleteOffLibEntry   deleteRestraint     desc                deSelect
displayPdbAtomMap   displayPdbResMap    edit                flip
groupSelectedAtoms  help                impose              list
listOff             loadAmberParams     loadAmberPrep       loadMol2
loadMol3            loadOff             loadPdb             loadPdbUsingSeq
logFile             matchVariables      measureGeom         quit
relax               remove              restrainAngle       restrainBond
restrainTorsion     saveAmberParm       saveAmberParmNetcdf saveAmberParmPert
saveAmberParmPol    saveAmberParmPolPertsaveAmberPrep       saveMol2
saveMol3            saveOff             saveOffParm         savePdb
scaleCharges        select              sequence            set
set_default         setBox              showdefault         solvateBox
solvateCap          solvateDontClip     solvateOct          solvateShell
source              transform           translate           verbosity
zMatrix            

For a list of the current aliases, type "alias".

4.5. LEaPのコマンド

ここでは、LEaPで使用される主なコマンドの使用法を示します。 他のコマンドについてはhelpコマンド、あるいはマニュアルを参照して下さい。

4.5.1. addPath

addPath path path: STRING
ファイルをサーチするPassの追加。

> addPath /home0/procon/xkibuse

4.5.2. alias

alias [ string1 [ string2 ] ] string1: STRING string2: STRING
エイリアスの作成。

> alias q quit

4.5.3. charge

charge container
container: UNIT/RESIDUE/ATOM

Total chargeの計算。

> charge ALA

4.5.4. check

alias unit [ params ]
unit: UNIT params: PARMSET

UNITのチェック。bonds length、total charge、missing force field、close contactsについて調べる。

> check ALA

4.5.5. combine

variable = combine list variable: objest
list: LIST

list中のUNITsを一つのUNITに繋げる。 原子の結合は行わない。(sequence commandは結合も行う。)

> tripeptide= combine ALA GLY PRO

4.5.6. copy

newvariable = copy variable newvariable: objest variable: objest
コピーを作る。

> ala = copy ALA
備考
> ala = ALA
は違う意味で、これはALAにalaという別名を付けたことになります。つまり、alaを編集するとALAも同時に編集されます

4.5.7. desc

desc variable variable: objest
objectの内容の表示。

> desc ALA
> desc ALA.1

4.5.8. edit

edit unit unit: UNIT
エディターの起動(xleapのみで動作)。

> edit insulin_monomer

4.5.9. help

help string string: STRING
ヘルプ。

> help quit

4.5.10. impose

impose unit seqlist internals unit: UNIT
seqlist: LIST internals: LIST

UNITのinternal coordinatesをインポーズする。 下の例では、UNIT中のsequence numbers 1、2、3のRESIDUE部をαヘリックスコンフォメーションにしています。

> impose peptide { 1 2 3 } { { $N $CA $C $N -40.0 } { $C $N $CA $C -60.0 } }

4.5.11. list

list
現在定義されている全てのvariablesを表示

> list

4.5.12. listOff

listOff library library: STRING
libraryに保存されているUNITs/PARMSETsの表示。

> listOFF amino4.lib

4.5.13. loadAmberParams

variables = loadAbmerParams filename variable: PARMSET
filename: STRING

AMBER format papameter set fileをロードし、variableに置く。

> parm91 = loadAmberParams parm91X.dat

4.5.14. loadAmberPrep

loadAbmerPrep filename filename: STRING
ファイル名filenameのAMBER PREP input fileをロードし、filenameと同じ名前のUNITを生成する。

> loadAmberPrep cra.in

4.5.15. loadOff

loadOff filename filename: STRING
ファイル名filenameのOFF libraryをロードする。そのlibraryのUNITsやPARAMSETsの全てがロードされる。

> loadAmberPrep cra.in

4.5.16. loadPdb

variables = loadPdb filename variable: object
filename: STRING

ファイル名filenameのProtein Databank format fileをロードする。 このCommandの使用の際は注意が必要です。マニュアルを参照して下さい。

> crambin = loadPdb 1crn

4.5.17. mesureGeom

mesureGeom atom1 atom2 [ atom3 [ atom4 ] ] atom1: ATOM
atom2: ATOM atom3: ATOM atom4: ATOM

distance、angle、torsionの計測。

> measure ALA.ALA.1 ALA.ALA.3 ALA.ALA.5

4.5.18. quit

quit
LEaPの終了。

> quit

4.5.19. saveAmberParm

saveAmberParm unit topologyfilename coordinatefilename unit: UNIT
topologyfilename: STRING coordinatefilename: STRING

そのUNITに対するトポロジーファイルとcoordinateファイルを保存する。 これらのfilesがLEaPの最終生成物で、この後に続くMDの入力ファイルになる。

> saveAmberParm ALA ala.top ala.crd

4.5.20. saveOff

saveOff object filename object: object
filename: STRING

UNITsやPARAMSETsをfilenameでObject File Format(OFF)で保存。 もしfilenameが既存するならそのfileに追加される。

> saveOff BGLU bglu.lib

4.5.21. savePdb

savePdb unit filename unit: UNIT
filename: STRING

UNITsやPARAMSETsをfilenameでObject File Format(OFF)で保存。 もしfilenameが既存するならそのfileに追加される。

> saveOff BGLU bglu.lib

4.5.22. sequence

variables = sequence list variable: UNIT
list: LIST

list中のUNITsを一つのUNITに繋げる。

> oxytocin = sequence { CYS TYR ILE GLN ASN CYS PRO LEU GLY }
> edit oxytocin

4.5.23. solvateBox

solvateBox solute solvent buffer [ closeness ] solute: UNIT
solvent: UNIT buffer: object closeness: NUMBER

soluteの周りに溶媒を用意する。 bufferはsolute ATOMから溶媒のBOXの壁までの距離で、単一の数値の時はx、y、z方向全てに対して同じ値が使われる。 これは下の例のようにLISTで3方向別々に指定できる。closenessは溶媒とsoluteの距離です。単位はA

> solvateBox sol WATBOX216 8 2.0
> solvateBox sol WATBOX216 { 8.2 7.4 9.0 } 2.0

4.5.24. solvateShell

solvateShell solute solvent thickness [ closeness ] solute: UNIT
solvent: UNIT thickness: NUMBER closeness: NUMBER

soluteの周りに溶媒のシェルを作る。

> solvateShell shell WATBOX216 8.0 2.0

4.5.25. source

source filename
filename: STRING

テキストファイルの中のCommandを実行。

> source file.x

4.5.26. zMatrix

zMatrix object zmatrix
マニュアルをご確認下さい。