ver. May 2002


1.1. 2D NMRデータのフーリエ変換.


1.1.1. 測定パラメータの解析.

 2DNMRデータの処理を行う前には,どのようなパラメータ(データポイント,phase sensitiveモード,位相など)でこのデータが測定されたのかを知っておく必要があります.
 データポイント情報については,次項で述べます.
 phase sensitiveモードについては,僕が書いたパルス・プログラムで測定した場合,TROSYや他の特別な例を除いて,ほとんど全てがStates et al.かStates-TPPIでphase sensitive測定を行っています.従って上記の特殊な例を除いて,ほとんど間違いなくデータはcomplex型で取り込まれています.
 また位相については,僕は観測方向の位相についてはあまり気にしておらず,その都度マニュアルで補正する主義ですが,間接測定軸についてはほとんどの場合はパルス・プログラムの中で規定することで決まった値で位相が合うようになっています.位相パラメータについてはパルス・プログラムの中にコメントとして記述してある場合が多いのでそれを確認しておいてください.手元にパルス・プログラムがない場合は,測定データのディレクトリ中の"pulseprogram"というテキストファイルを参照してみましょう.

/home/ito/XWINNMR/data/13C15N_FixJC/4/acqu
/home/ito/XWINNMR/data/13C15N_FixJC/4/acqu2
/home/ito/XWINNMR/data/13C15N_FixJC/4/acqu2s
/home/ito/XWINNMR/data/13C15N_FixJC/4/acqus
/home/ito/XWINNMR/data/13C15N_FixJC/4/cag_par
/home/ito/XWINNMR/data/13C15N_FixJC/4/cpdprg4
/home/ito/XWINNMR/data/13C15N_FixJC/4/format.temp
/home/ito/XWINNMR/data/13C15N_FixJC/4/pdata/
/home/ito/XWINNMR/data/13C15N_FixJC/4/pulseprogram    <= これです.
/home/ito/XWINNMR/data/13C15N_FixJC/4/scon
/home/ito/XWINNMR/data/13C15N_FixJC/4/ser


例 i_noezzhsqc2r) 

;
defined parameters.
;---------- for adjasting centre of 180 pulses.
"d11=p20-p1"            ; 15N 90deg - 1H 90deg.
"d12=p12*0.5-p20"       ; 13C_180/2 - 15N_90.
"d13=p10-p1"            ; 13C 90deg - 1H 90deg.
;---------- for 15N-HSQC part.
"d2=2.3m"
"d6=2.3m-p15-74u-p2"
"d7=2.3m-p15-102u-p2-p20*2.0"
;---------- for t1 (1H) evolution.
"d0=4u"                                 ; 45/0 phase correction .
;---------- for t2 (15N) evolution.
"d10=in10*0.5-p20*2.0/3.14-p10"         ; 90/-180 phase correction .
;"d10=4u"
;---------- mixing time.
;d8:NOE mixing time.
"d18=d8-p18-p19-p20-400u"
;---------- for multi-dimensionality loop parameters.
"l3=(td1/2)"
"l4=(td2/2)"
aqseq 312

 
1.1.2. [filename].ser.parファイルの作成.

 AZARAを使ってデータ処理をする場合,作業ディレクトリに,(1)測定データのパラメータを記述したファイル([filename].ser.par ファイル)と,(2)データ処理のスキームを記述したファイル([filename]_zf.scrファイル,[filename]_mem.scr ファイル)の2種のファイルを作成します.ここでは例として2D 1H-15N HSQCデータのフーリエ変換での処理を取り上げ,まず[filename].ser.par ファイルの作成について説明します.
 [filename].ser.parファイルには次のようなことが記述されています.このうち太字の部分が最低限必要な行です.

 2次元や3次元データについての典型的な[filename].ser.parファイルを集めてありますので適宜ダウンロードして参考にしてみてください.

ndim 2

file /home/ito/XWINNMR/data/13C15N_FixJC/4/ser

int
swap  ! we need swap when drx->intel

dim 1
npts 2048
sw 2890.625
sf 600.13
refppm 4.7750
refpt 824.5000
nuc 1H

dim 2
npts 512
sw 932.835820895522
sf 60.810663
refppm 118.110
refpt 256.5000
nuc 15N


1.1.2.1. 最低限必要なパラメータ.

 最低限必要な行についての説明を以下に記します.

(1) "ndim"は次元の数を規定しており,"ndim 2"は2次元ということになります.3次元なら"ndim 3"です.
(2) "file"行には測定データ(serファイル)の場所を記述します.
(3) "int"はBrukerの測定データがint型であることを示しています.
(4) "swap"は,NMR装置のワークステーション(SGI O2)と,プロセスするコンピュータ(LINUX PC)のバイナリ形式が異なり(SGI: bigendian, PC: littleendian),swapを行ってあげる必要があることを"示しています.
(5) "dim 1","dim 2"はこれ以下の6行はそれぞれのディメンジョンのパラメータであることを示しています.Brukerの場合,観測軸が" dim 1"に,間接観測軸はパルス・プログラム上でループをまわしている順番に従って,"dim 2","dim 3 ",...となります.
(6) "npts"はそれぞれのディメンジョンのポイント数(real + imaginary)です.Brukerで測定する時の"TD"パラメータに相当します.
 それぞれの軸のポイント数は,測定データのディレクトリ中のテキストファイル("acqus"および"acqu2s ")を参照して確認することができます( 注意: "acqu","acqu2"ファイルには正しいパラメータが収められていません.必ず"s"がついているファイルを参照すること! ).

/home/ito/XWINNMR/data/13C15N_FixJC/4/acqu
/home/ito/XWINNMR/data/13C15N_FixJC/4/acqu2
/home/ito/XWINNMR/data/13C15N_FixJC/4/acqu2s   <= "dim 2"のパラメータ

/home/ito/XWINNMR/data/13C15N_FixJC/4/acqus    <= "dim 1"のパラメータ
/home/ito/XWINNMR/data/13C15N_FixJC/4/cag_par
/home/ito/XWINNMR/data/13C15N_FixJC/4/cpdprg4
/home/ito/XWINNMR/data/13C15N_FixJC/4/format.temp
/home/ito/XWINNMR/data/13C15N_FixJC/4/pdata/
/home/ito/XWINNMR/data/13C15N_FixJC/4/pulseprogram
/home/ito/XWINNMR/data/13C15N_FixJC/4/scon
/home/ito/XWINNMR/data/13C15N_FixJC/4/ser


"acqus"ファイルの中には:

. . . . .
##$SW_h= 10000
##$TD= 2048
##$TE= 300
. . . . .

という記述があり,この2048という値を"dim 1"の"ntps"に入れます.
 また,"acqu2s"ファイルの中には:

. . . . .
##$SW_h= 932.835820895522
##$TD= 512
##$TE= 300
. . . . .

という記述があり,この512という値を"dim 2"の"ntps"に入れます.

1.1.2.2. 他のパラメータ.

 [filename].ser.parファイルに記述できる他のパラメータについての説明を以下に記します.これらのパラメータは" plot2"において正しい化学シフトで表示するために必要です.[filename].ser.parにこれらのパラメータが定義されていれば,フーリエ変換等のデータ処理後に,スペクトルのパラメータを記述するファイル( [filename].spc.par)に引き継がれます.したがって,これらのパラメータをこの段階では定義せず,[filename].spc.par を直接編集してもいいわけですが,僕はあらかじめ[filename].ser.parファイルに定義してしまう場合がほとんどです.その理由は,データ処理後に [filename].spc.parを直接編集しても,もう一度データ処理をした場合に[filename].spc.par の内容がオーバーライトされてしまうからです.

(1) "sw"はスペクトル幅(Hz)です.この値は"acqus"を参照し,"SW_h"というパラメータを見ることで確認できます.

. . . . .
0 0 3 3 0 0 0 0 0 0 0 0 0 0 0 0
##$SW_h= 10000
##$TD= 204
. . . . .

 ただし,フーリエ変換後にスペクトルの中の特定領域を取り出して,他の領域を捨ててしまう場合(例えば1H-15N HSQCの場合は,欲しいシグナルはH2Oのシグナルよりも低磁場に現れるので,その領域のみを取り出す場合が多い)は,切り出した領域に相当するスペクトル幅を書いておく必要があります.

(2) "sf"はスペクトル周波数(MHz)です.この値も"acqus"を参照し,"BF1"," BF2 ","BF3","BF4","BF5"などのパラメータを見ることで確認できます.

. . . . .
##$AUNM= <au_zg>
##$BF1= 600.13
##$BF2= 150.902749
##$BF3= 150.902749
##$BF4= 60.810663
##$BF5= 92.123609

##$BYTORDA= 1

. . . . .

 "BF"の後の数字は観測チャンネルの番号を示しています.和光のDRX600装置では,標準設定として以下のようにチャンネルを割り当てています.

channel 1: 1H
channel 2 & 3 : 13C
channel 4: 15N
channel 5: 2H

したがって,1H軸には"BF1"の値,13C軸には"BF2"の値,15N軸には"BF4"の値を入力してください.

(3) "refppm"は"refpt"で指定したポイントにおける化学シフトを入力します.
 通常1H核については,"refpt"にH2Oシグナルの位置(データ処理後のスペクトルの中心)を入力し,"refppm "には下の式にしたがって計算した結果を入力しています.
 nポイントのデータの中心が何ポイント目かという問題は,ソフトウエアによって異なるのですが,AZARAの場合はn/2+0.5(つまり2048ポイントだったら1024.5)になります(注意!).

refppm = 4.7 - 0.015 * (probe temp - 303)

(e.g. 293K: 4.850, 298K: 4.775, 303K: 4.7000, 308K: 4.625, 313K: 4.550)

 13C核や15N核については,"refpt"にデータ処理後のスペクトルの中心の位置を入力し,"refppm"には,スペクトルの中心の化学シフトを入れています.測定の際に中心の化学シフトを記録しておく(13C核なら" o2p",13CO核なら"o3p",15N核なら"o4p"で表示される)か,下の式にしたがって計算した結果を入力しています. ただし,"o2p","o3p"と実際の13C核や13CO核の化学シフトの間には2.2ppmの差が,また"o4p"と実際の15N核の化学シフトの間には2.127ppmの差があるので注意してください.

13C核(カルボニル核以外)の場合:

refppm = o2p +2.2 もしくは refppm = O2 /BF2 +2.200

("O2"は"acqus"の中の"O2"の値,もしくは"acqu2s"の中の"O1 "の値)
("BF2"は"acqus"の中の"BF2"の値,もしくは"acqu2s"の中の" BF1 "の値)

"acqu2s"の中では,2次元目(間接観測軸)のオフセットや基準周波数が,"O1"や"BF1"として保存されています.そのため上のような" acqus"と"acqu2s"の間のパラメータの不一致が起こります.

13CO核の場合:

refppm = o3p +2.2 もしくは refppm = O3 /BF3 +2.200

("O3"は"acqus"の中の"O3"の値,もしくは"acqu2s"の中の"O1 "の値)
("BF3"は"acqus"の中の"BF3"の値,もしくは"acqu2s"の中の" BF1"の値)

15N核の場合:

refppm = o4p +2.2 もしくは refppm = O4 /BF4 +2.127

("O4"は"acqus"の中の"O4"の値,もしくは"acqu2s"の中の" O1 "の値)
("BF4"は"acqus"の中の"BF4"の値,もしくは"acqu2s"の中の" BF1"の値)

 フーリエ変換の際にzero fillingやLinear Predictionを行うか,もしくはMEMの処理を行う場合には,データ処理後に当該軸のポイント数が何ポイントになっているはずなのかを考えて"refpt"を入力する必要があります.
 例えば,観測軸が2048ポイント(real 1024ポイント, imaginary 1024ポイント),間接観測軸が512ポイント(real 256ポイント,imaginary 256ポイント)である上の1H-15N HSQCデータを例にとり,データ処理のやり方と最終的に得られるポイント数(中心のポイント数)を表にしてみました.

 

CASE 1
dim 1: no ZF
dim 2: no ZF

CASE 2
dim 1: no ZF
dim 2: 2 x ZF

CASE 3
dim 1: no ZF
dim 2: 4 x ZF

CASE 4
dim 1: 2 x ZF
dim 2: 2 x ZF

CASE 5
dim 1: 2 x ZF
dim 2: 4 x ZF

dim 1

1024 (512.5)

1024 (512.5)

1024 (512.5)

2048 (1024.5)

2048 (1024.5)

dim 2

256 (128.5)

512 (256.5)

1024 (512.5)

512 (256.5)

1024 (512.5)


 さらに,上のCASE 4について,dim 1方向である領域(lowerポイントからupperポイント分)以外を捨てるようなデータ処理をした場合に設定すべき"sw", "refpt"を表にしてみました.なのdim 1方向の最初の"sw"は10000 (Hz)としています.

 

CASE 4

(1-2048 pnt)

lower: 1
upper: 1024
(1-1024 pnt)

lower: 1025
upper: 1024
(1025-2048 pnt)

lower: 201
upper: 592
(201-792 pnt)

dim 1

sw 10000.000
refpt 1024.5

sw 5000.000
  (= 10000 * 1024 / 2048)
refpt 1024.5
  (= 1024.5 - 0.0)

sw 5000.000
  (= 10000 * 1024 / 2048)
refpt 0.5
  (= 1024.5 - 1024.0)

sw 2890.625
  (= 10000 * 592 / 2048)
refpt 824.5
  (= 1024.5 - 200.0)

dim 2

sw 932.8358
refpt 118.110

sw 932.8358
refpt 118.110

sw 932.8358
refpt 118.110

sw 932.8358
refpt 118.110


 dim 2についても同様の操作(lower, upper)を行った場合も,dim 2方向のパラメータを変更する必要があります.

 ここでは,"acqus"や"acqu2s"を見に行って必要なパラメータをチェックする方法を紹介しましたが,2次元データについてこれを簡便に行うためのシェル・スクリプトを用意してあります(~ito/tools/csh/chkpar2d).
 このスクリプトを実行するためには,~ito/tools/csh/にPATHを通すか,もしくは適当な場所にchkpar2dをコポーします.そして"acqus"や"acqu2s"が保存されているディレクトリに行って,"chkpar2d"を実行します.

miranda.ito (1)% cd ~ito/XWINNMR/data/13C15N_FixJC/12
miranda.ito (2)% chkpar2d
chkpar2d: extract parameters for 2D processing

===== dim 1 parameters =====
##$TD= 2048
##$SW_h= 10000
##$BF1= 600.13
##$NUC1= <1H>

refppm = 4.7 - 0.015 * (probe temp - 303)

===== dim 2 parameters =====
##$TD= 512
##$SW_h= 932.835820895522
##$BF1= 60.810663
##$O1= 7053
##$NUC1= <15N>

if NUC1=<13C>, refppm = O1 / BF1 + 2.200
if NUC1=<15N>, refppm = O1 / BF1 + 2.127

===== set avance DSPFVS DECIM =====
##$DSPFVS= 12
##$DECIM= 16


 1次元や3次元データに対しても同様にパラメータを抽出するスクリプト,"chkpar1d","chkpar3d"も用意してあります.

1.1.3. [filename]_zf.scrファイルの作成.

 

 続いて,実際にどのようなデータ処理を行うのかを記述してある[filename]_zf.scrファイルを作成します(名前に入っている"zf"は,単にプロセスする際にzero fillingすることが多いので"zf"と書いてあるに過ぎず,名前や拡張子のつけ方に規則はありません).

 例として,1H-15N HSQCスペクトルを処理するのに用いたファイルを示します.

 

input 15n_hsqc.ser.par

 

output /home/ito/Azara/spc/15N_HSQC_zf.spc

 

script_com 1

        complex

        avance 12 16

        conv_sine 8

        sinebell2 90

        zerofill 1

        fft

        complex

        avance_phase

        phase2 -127 77 213

        reduce

        base_trig2 8 2 150 850

        lower 201

        upper 592

end_script

 

script_com 2

        complex

        sinebell2 90

        zerofill 1

        fft

        complex

        phase 90 -180

        reduce

        base_trig 8 1

end_script

 

1.1.3.1. [filename]_zf.scrの構造と,ファイルの入出力.

 

 [filename]_zf.scrの構造は以下の様になっています.

 

input  [filename].ser.par

output [path]/[filename]_zf.spc

 

script_com 1

       ……

       ……

       ……

end_script

 

script_com 2

       ……

       ……

       ……

end_script

 

(1) input”には,[filename].ser.parファイルを指定し,”output”には出力されるべきスペクトル名をパスを含めて入力します.スペクトル名は慣例的に,[filename]_zf.spc[filename]_mem.spcというように,”spc”という拡張子をつけています.上のスクリプトのように入出力を定義すると,データ処理の結果,スペクトル名に更に”par”が付いたファイル名をもつファイルが作業ディレクトリ内に作成されます.

 

(2) それぞれの軸に対するプロセスの方法は,script_com [number]”と”end_script”の2つの行にはさまれた中に,実行する順番にコマンドを入力します.2次元データの場合,[number]には観測軸なら”1”を,間接観測軸なら”2”を入力します.

 

1.1.3.2. 観測軸のみに必要なコマンド.

 

 観測軸方向には,観測軸だけに必要なコマンドが入力されています.

 

(1) BrukerのAvanceシリーズ(われわれのDRX600もこれに含まれる)のスペクトロメータはデジタル・フィルターという機能があり,生データの観測軸を普通にフーリエ変換しても正常なスペクトルは得られません.従って,観測軸のプロセスの際には“avance [DSPFVS] [DECIM]”と”avance_phase”という2種のコマンドを正しい位置で行ってやる必要があります.

 avance [DSPFVS] [DECIM]”は,”complex”を宣言した直後に実行します.このコマンドが要求する2つの引数には,”acqus”の中の”DSPFVS”と”DECIM”の2つのパラメータを確認(もしくは”chkpar2d”を実行した時の出力の最後の2行を確認)して入力します.”DSPFVS”と”DECIM”の値はスペクトル幅に依存しているので同じスペクトル幅で測定している限り同じ値になります.

 

(2) conv_sine [number]”はconvolutionによってスペクトルの中心にある溶媒のシグナルを消去するためのコマンドです.Convolutionについての説明と”conv_sine”以外のAZARAのconvolutionコマンドについての紹介は省きますが,下の図にconvolutionの効果と引数の関係を示しました.

 convolutionを行わなかった場合,このスペクトルには中心に軽水シグナルが観測されます.これに対して”conv_sine”コマンドを実行し,かつ引数を128から8まで小さくしていくと,軽水シグナルが小さくなっていくことがわかります.また,軽水シグナルは引数が小さいほうがより効果的に消去されていますが,同時に軽水シグナル周辺のある範囲のシグナルも小さくなってしまっていることもわかります.したがって,軽水シグナルと十分に消去し,かつ軽水シグナルに最も近い「見たい」シグナルに対する影響をなるべく小さくするように引数の値を最適化する必要があります.といっても, triple-resonance NMRのように観測方向にはアミド・プロトンしか現れないような測定では,”conv_sine 8”か”conv_sine 16”をそのまま使ってもあまり影響はないでしょう.それに対してHCCH-TOCSYや3D 13C-separated NOESYのように,観測軸について軽水シグナルのごく近傍にもシグナルが観測される場合には,引数の値を十分に考慮する必要があるでしょう.

 

 

1.1.3.3. 2つの軸に共通のコマンド.


1.4. フーリエ変換.
1.5. plot2で2D NMRスペクトルを見る.
1.6. 位相補正および領域の設定.
1.7. foldingの解析.