AMBERでは原子集団に対して拘束力をかけることが出来る。これは、拘束をかけることで効率的に構造空間を出来ることがあるためである。 以下では読者が使うであろう主要ないくつかの拘束の例を紹介する。

1. デカルト座標に対して拘束をかける

以下のようなコマンドをmdinファイルに追加することで、restraintmaskで指定された原子集団に対してrestraint_wtをばね定数として持つ調和振動子型ポテンシャルを加える(単位はkcal/molである)。ここでは“:1”として1残基目を拘束するように設定している。詳細な原子集団の選び方の記法はAtom maskの解説を参照されたい。

  ntr=1,
  restraint_wt=5,
  restraintmask=':1'


2. 原子間距離に対して拘束をかける

以下のようにnmropt=1のコマンドをmdinファイルに追加し、拘束の設定が書かれたDISANGファイル(ここではdist)をmdinファイルの一番最後にDISANG=distとして追加することで拘束をかける。

Production
 &cntrl
  imin=0,
  ntx=5,
 ・
 ・
  nmropt=1 # 拘束の設定が書かれたDISANGファイルを読み込む
  ・
  ・
 /
 $wt
 type='END',
 &end
DISANG=dist # DISANGファイル名を指定する

以下のようにDISANGファイルをdistとして作成し、どの原子間に、どのような拘束をかけるのか設定する。

&rst
   iat=1, 2, # 拘束をかけたい2個の原子番号を指定する。
   r1=0, r2=5, # 2種類の原子間の距離(Å)がr2からr3の間は拘束が働かない
   r3=5, r4=10,
   rk2=50.0, rk3=50.0, # rk2とrk3は、それぞれにr1からr2、r3からr4の間にかける距離(Å)の二乗の関数の係数
/

ここで、今回の例ではr2とr3、rk2とrk3が等しいので、調和振動子型のポテンシャル型となることに気付くだろう。他にも非対称な関数型にしたり、対称であるが、r2とr3の間がフラットな関数型等が設定できる。


3. 角度・二面角に対して拘束をかける

角度・二面角に対して拘束をかける場合には、原子間距離の拘束で紹介したようにmdinファイルを編集し、DISANDファイルを少し修正すればよい。以下に角度の場合の例を示す。

&rst
   iat=1, 2, 3, # 拘束をかけたい3種類の原子番号を指定する。
   r1=0, r2=5, # なす角(degree)がr2からr3の間は拘束が働かない
   r3=5, r4=10,
   rk2=50.0, rk3=50.0, # rk2とrk3は、それぞれにr1からr2、r3からr4の間にかけるなす角(degree)の二乗の関数の係数
/

上記の例では角度の場合であるが、二面角の場合には4個の原子をiatで指定するように変更すればよい。


4. DISANGファイルを使用して重心間距離を指定する

これまで紹介したDISANGファイルによる拘束では、例えば2個の原子間距離は指定できても、複数原子から構成される残基の重心間距離などは指定できなかった。以下のようにiatの値を-1に変更し、igr1とigr2によって2個の原子集団を指定できる。

&rst
   iat=-1, -1,
   igr1=1,2,3,4,5,6,7,8,9,10, # igr1とigr2で指定された原子を含む2個の原子集団の距離を計算する
   igr2=11,12,13,14,15,16,17,18,19,20, 
   r1=0, r2=5,
   r3=5, r4=10,
   rk2=50.0, rk3=50.0,
   ir6=0, # それぞれの原子集団の位置を重心として計算する
/


参考文献
http://ambermd.org/doc12/Amber16.pdf