250 likes | 716 Views
NMR Data Processing Using NMRPipe. Basic Introduction to Use of NMR Pipe for 2D-4D http://spin.niddk.nih.gov/NMRPipe/ref/tutorial/ Email: roger@nmrfam.wisc.edu. Why learn about NMRPipe?. Other Popular Processing Programs: TopSpin (Bruker) V-NMRJ (Varian/Agilent) Felix.
E N D
NMR Data Processing Using NMRPipe Basic Introduction to Use of NMR Pipe for 2D-4D http://spin.niddk.nih.gov/NMRPipe/ref/tutorial/ Email: roger@nmrfam.wisc.edu
Why learn about NMRPipe? Other Popular Processing Programs: TopSpin (Bruker) V-NMRJ (Varian/Agilent) Felix Wide use in protein NMR community Independent of Agilent (Varian) & Bruker Script-driven “Parameterizes” the problem
Overview of Processing Steps bruker acqu Create conversion script fid.com procpar varian Convert fid fid.com test.fid fid/ser Initial Processing (WF, ZF, PH, FT) proc.com test.dat test.fid Viewing Manual Phase of Acq nmrDraw test.dat Final Processing (PH, POLY) proc’.com test.dat test.fid Data Conversion pipe2ucsf test.ucsf test.dat
Data Conversion Launch Bruker or Varian Click on Read Parameters Manually correct (if necessary) Y Axis Mode Varian: Y Observe Freq Save Script #!/bin/csh bruk2pipe -in ./ser \ -bad 0.0 -aswap -DMX -decim 3168 -dspfvs 20 -grpdly 67.9842681884766 \ -xN 2560 -yN 512 \ -xT 1262 -yT 256 \ -xMODE DQD -yMODE Echo-AntiEcho \ -xSW 6313.131 -ySW 15015.015 \ -xOBS 600.133 -yOBS 150.911 \ -xCAR 4.849 -yCAR 59.814 \ -xLAB 1H -yLAB 13C \ -ndim 2 -aq2D States \ -out ./test.fid -verb -ov
NMRPipe system • Uses UNIX pipes • The program nmrPipe applies a given function to a stream of data Example:
nmrPipe -in test.fid \ | nmrPipe -fn SP \ | nmrPipe -fn FT -di -out spec.ft Processing Scheme as Series of Connected Pipes UNIX pipes: commands are connected together in a series, where the output of one command becomes the input to the next command. A pipe is specified in UNIX by the “|” character between commands. The following scheme applies a sinusoid-to-a-power window function (SP), Fourier transform (FT), and deletes the imaginary part of the result (-di):
3D Processing tHtNtCO ωH ω NtCO tHtNtCO ωH ω NtCO tHtNtCO ωH ω NtCO tHtNtCO ωH ω NtCO tHtNtCO ωH ω NtCO Process each 2D plane Process the D3 dimension Combine 2D files into 3D file ωH ω NtCO ωH ω NtCO ωH ω NtCO ωH ω NtCO ωH ω N ω CO xyz2pipe ωH ω N ω CO (3D file)
Prototype 3D Processing Script Selects stream from D1 #!/bin/csh xyz2pipe -in ./data/test%03d.fid -x -verb \ | nmrPipe -fn POLY -time \ | nmrPipe -fn SP -off 0.45 -end 1.00 -pow 2 -c 0.5 \ | nmrPipe -fn ZF -auto \ | nmrPipe -fn FT \ | nmrPipe -fn PS -p0 65 -p1 0 -di \ | nmrPipe -fn EXT -x1 12.0ppm -xn 4.5ppm -sw \ | nmrPipe -fn TP \ | nmrPipe -fn SP -off 0.45 -end 0.98 -pow 1 -c 1.0 \ | nmrPipe -fn ZF -auto \ | nmrPipe -fn FT \ | nmrPipe -fn PS -p0 -90 -p1 180 -di \ | nmrPipe -fn POLY -auto -ord 0 \ | nmrPipe -fn TP \ | nmrPipe -fn POLY -auto -ord 0 \ | pipe2xyz -out ./data/test%03d.ft2 -y -ov -verb # Processing of first 2D dims … Baseline correct FID (D1) … Cosine squared bell WF (D1) … ZF to next power of 2 (D1) … Fourier transform (D1) … Phase correction (D1) … Extract spectral window (D1) … Transpose to process 2nd dim … Cosine square bell WF … ZF to next power of 2 (D2) … Fourier transform (D2) … Phase correction (D2) … Zero order BC (D2) … Transpose back to D1 … Zero order BC (D1) … Write out plane Process D1,D2 (x,y) Plane
Prototype 3D Processing Script (cont.) xyz2pipe -in ./data/test%03d.ft2 -z -verb \ | nmrPipe -fn SP -off 0.45 -end 0.98 -pow 1 -c 0.5 \ | nmrPipe -fn ZF -auto \ | nmrPipe -fn FT \ | nmrPipe -fn PS -p0 0 -p1 0 -di \ | pipe2xyz -out ./data/test%03d.ft3 -z -ov -verb xyz2pipe -in ./data/test%03d.ft3 -y -verb \ > ./hnco.ft3 #Process D3 dimension … Cosine squared bell WF … Zero fill to next power of 2 … Fourier transform … Phase … Write out plane #Combine 2D files into 3D file Process D3 (z)
Working Though Some Real Life NMR-Pipe Examples a.k.a What the heck is going on?
File Conversion: Ex 1 Question: Why does the “Bruker” and “Varian” programs think that all experiments are 3D? Answer: It doesn’t. You need to click on “Read Parameters”. The Bruker and Varian file conversion programs launch with a default template. No attempt is made to read the local directory contents until “Read Parameters” is clicked.
File Conversion: Ex 2 Question: Why does my conversion script think that my 2D 1H-15N experiment is a 2D 1H-13C experiment? Answer: You are using a Varian (Agilent) spectrometer and the company considers referencing to be a trade secret. Seriously, the Varian proc files are ambiguous and an external problem cannot infer axis referencing. You must explicitly choose the spectrometer frequency
File Conversion: Ex 3 #!/bin/csh var2pipe -in ./fid -noaswap \ -xN 1232 -yN 400 \ -xT 616 -yT 200 \ -xMODE Complex -yMODE Complex \ -xSW 7689.350 -ySW 2200.000 \ -xOBS 599.708 -yOBS 60.775 \ -xCAR 4.773 -yCAR 118.268 \ -xLAB H1 -yLAB N15 \ -ndim 2 -aq2D States \ -out ./test.fid -verb -ov sleep 5 Question: Why does a simple file conversion of a 2D file take so long? Answer: Because you explicitly told your computer to absolutely nothing for 5 seconds!!! For an obscure reason probably having to do with threading issues, the programs Bruker and NMRPipe, by default, insert a “sleep 5” command which tells the shell to pause for 5 seconds prior to exiting the shell script.
Missing/Corrupt Spectrum Delete test.fid Run ./ft.com See error Run fid.com Run ft.com nmrDraw test.ft2 Life is Good!
Effect of Incorrect Acq Mode Acquisition mode cannot always be inferred from the acquisition meta data i.e. the bruker/varian program may not populate y-MODE, z-MODE correctly Examples of correct & incorrect acquisition mode (Complex / Rance-Kay) Example of unphased but correct acquisition. Similar look in tails but not presence of extra peaks.
Effect of EXT (extraction) Observe resolution at 5751 x 4096. Exit nmrDraw Edit ft.com and comment out Both POLY commands EXT command Run ft.com Observe resolution at 16384 x 4096 Observe full sweep width -1.5 to 11.1 PPM Restore EXT command Run ft.com Observe sweep width at 6.5-10.0 PPM
Common Syntax Errors Remove last \ in PS command 5 lines from bottom Run ft.com Observe error Restore ‘\’ character but insert a space afterwards Run ft.com Observe error Remove space after ‘\’ Run ft.com Life is good again!
ZF Command nmrDraw test.ft2 Right click on mouse Menu and select 2D zoom (or type ‘z’) Select region containing peaks between 8 and 9 PPPM Right click on Mouse Menu and select 1D Horiztonal (or Type ‘h’) Move cursor to 125.4 PPM Observe smoothness of peak profile. Peak width at contour is about 0.06 PPM. Exit nmrDraw Edit ft.com and comment out both ZF commands Run ft.com. Notice how fast it is! nmrDraw test.ft2 Observe resolution at 217 x 200 Repeat steps 2-5 Observe blockiness of peak but overall width is unchanged
ZF Command (cont) Uncomment ZF lines Remove –zf 4 but leave auto flag intact Run ft.com Observe resolution at 720 x 512 This is typical ZF configuration (1 zero fill operation)
WF (SP ) Copy first WF command and commnent out top line Compare -fn SP –off 0.50 (PI/2) = 90 -fn SP –off 0.20 (PI/5) = 36 Comment out WF command s (no WF) Run ft.com See what sync wiggles look like Other window functions GM: Gaussian window EM: Exponential line broadening GMB: Combination of exponential and guassian
PS (-p0 and –p1 parms) cp PS command and comment out the first version Zero out PH0 for 1H dimension Run ft.com Launch nmrDraw and observe how manual zero order phasing corrects problem Restore PH0 and zero out PH1 for 1H dimension Run ft.com Launch nmrDraw and observe how manual 1st order phasing corrects problem Zero out both PH0 and PH1 for 1H dimension Run ft.com Launch nmrDraw and observe that both zero order and 1st order phasing is required Take out –di and observe error
POLY command Baseline correction Key placement in scripts after all fourier transformation -ord can be used to reduce order of polynomial. Use 0 or 1 for simple zero order and linear correction