2Dスペクトルのスペクトル強度をポイント毎に明記した、“E17.8E3”フォーマットのマトリックスデータが必要です。
ここでは「Felix」を使用してSAS_CNSプログラムでフィッティングで使うスペクトルの行列データを作成します。
a. Felixでデータ処理を行ない、化学シフトをリファレンスを取る。
b. フィッティングに使いたい領域を拡大し、View/Limits/Manual Limits/ からポイントと化学シフトを記録しておく。
c. ファイル“FELIX2ASCII.pl”の中で最初と最後の行番号を指定する。
d. 行を一本一本バッファに入れては数値ファイルとして出力する。
“FELIX2ASCII.exe”には指定した全部の行についてのコマンドがならぶので、
これをFelixを立ち上げたXwindowにコピーペーストする。
→ Felixを立ち上げたディレクトリにasc行番号.txtというファイルがたくさんできる。
e. tarファイルにまとめる。 → 作業を行いたいマシンにFTPし、再びバラす。
$ tar cf ./xxx.tar ./asc*.txt
(ftp)
$ tar xvf xxx.tar
f. “PREP_REARRANGE.pl”にも同様に最初と最後の行番号を指定し、走らせる。
$ PREP_REARRANGE.pl < PREP_REARRANGE.in > PREP_REARRANGE.exe
g. “PREP_REARRANGE.exe”を実行する。これでascxxx.txtのフォーマットが少し書き換わって、対応するxxx.txtができる。
これがうまくいったらascxxx.txtはもう要らない。
h. “REARRANGE.pl”の4行目で出力する行列ファイルの名前を指定する。例えばcoca.mat。
6行目と41行目で行番号を指定する。
44行目でカラム番号を指定する。
i. “REARRANGE.exe”を実行する。これでクルードのスペクトル行列ファイができる。
これがうまくいったらxxx.txtはもう要らない。
j. Felixの出力ではやたらと大きな値でスペクトル強度が表現されているので適当なところにスケールしたい。
例えば最大強度を1に規格化する。
Originなどの表計算ソフトで行列データを表示して、最大強度がいくつ位か確認する。
“THRESHOLD.pl”の4行目28行目でy軸のポイント数を入力。
9行目11行目でx軸のポイント数を入力。
13行目に今調べた最大強度を入力。
$ THRESHOLD.pl < coca.mat > coca_scal.mat
k. 最後にSAS-fitting program用に数値のフォーマットを直すと同時にy軸を反転する。
まず“invymat.f”をコンパイルする。
$ f77 invymat.f
$ mv a.out invymat.out
$ invymat.out
とすると入力ファイル名、出力ファイル名とx軸y軸のポイント数を聞いてくるので答える。
a. “sas_cns parameters.txt”の記述を、“anneal.inp”中の568行目あたりの“Read experimental data”セクションに加える。
b. 以下の行をhigh-temperature MDの前の行、できれば“Begin protocol to generate structures”セクションの直前に追加。
wmin
1.0
1.0
1.0
1.0
1.0
1.0
これは、以下のエネルギー項0-5について、それぞれの重み付けのためのスケール因子を初期化しています。
0: chemical shift fitting,
1: spectrum fitting of coi-(cacb)i region,
2: spectrum fitting of cai-cbi region (NOT IN USE),
3: spectrum fitting of cai-cai-1region,
4: spectrum fitting of DQ-cacb region,
5: spectrum fitting of cai-c'i-1 region,
このスケールは、MD中にいつでも変えることができます。
c. 例えばCNSコマンドに関するエネルギー項に対して、“smin”を宣言する。
「high-temperature MD」の1st cooling と「2nd cooling steps」のどちらかについて、
そのスペクトルフィッティングのエネルギー項を、有効または無効にする。
flags exclude *
include bond angle dihe impr vdw
noe cdih coup oneb carb ncs dani
sani harm smin end
d. CNSを実行します。
$ cns < anneal_mod.inp > anneal_mod.out