The process in brief: Data are recorded and separated in the fid.com as “phasesfirst” (X: direct dimension (complex), Y: phases (2x2x2), Z: indirect dimension increments (F3, F2, F1), A: no points) After FT of the direct dimension, this one is sent to A, phases and increments remain as X and Y. The IST reconstruction is dependent on data arranged this way. phf2pipe (phasesfirst to pipe format) shuffles reconstructed data in X (phases) and Y (increments) to X (F3), Y (F2), and Z (F1), A remains the direct dimension. Now F1-3 are Fourier transformed. Values, file names, and locations should of course be changed to what corresponds to your data. We show two versions of data encoding, using interleaved acquisition in a single experiment and acquisition as chunks of data for coping with magnet drift. The pulse programs are provided as separate files. NUS sampling lists: Version 1, with a pulse program executable with xwinnmr, uses a linear vc list, which can be generated with a pearl script from the 3-column NUS list that the Poisson-gap sampling generator (obtainable at the Wagner lab homepage) provides. One has to take into account that the first data point recorded before any delay incrementation, and the first triple of numbers in the list then already represents the second data point acquired. The schedule used by the IST routine (called sched3D in the routine below), however, requires the first point to be 000 … Version 2 (pulse program executable with Topspin 3.x) directly uses a NUS list as generated by the sampling schedule generator (called nuslist in the routine below). You should make sure that the order of columns equals the one that the Topspin schedule generator would provide (recognizable from the maximal increments in each column). When using the schedule generator, make sure to request the number of points in each dimension as the number of complex points (half the number of points you would put into the eda window in Topspin/xwinnmr). Version 1: as recorded with xwinnmr and using interleaved acquisition of two regular scan and one diagonal compensation scan: 1. Splitting the ser file with nmrPipe (fid.com): #!/bin/csh #rm -r fid bruk2pipe -in ./108/ser \ -bad 0.0 -aswap -DMX -decim 720 -dspfvs 20 -grpdly 67.9895935058594 \ -xN 2304 -yN 24 -zN 718 -aN 0 \ -xT 1109 -yT 24 -zT 718 -aT 0 \ -xMODE DQD -yMODE Real -zMODE Real -aMODE Real \ -xSW 27777.778 -ySW 1848 -zSW 1848 -aSW 8756.567\ -xOBS 700.365 -yOBS 70.975 -zOBS 70.975 -aOBS 700.365\ -xCAR 4.986 -yCAR 118.841 -zCAR 118.841 -aCAR 4.985\ -xLAB HNx -yLAB 15Ny -zLAB 15Nz -aLAB HNa \ -ndim 3 -aq2D States \ | nmrPipe -fn COADD -cList 1 1 -0.65 -axis Y -time \ #| nmrPipe -fn MAC -macro ./ranceY.M -noRd -noWr \ #| nmrPipe -fn MAC -macro ./ranceZphf.M -noRd -noWr \ | pipe2xyz -out ./Dfid/testS%03d.fid -verb -ov echo S done sleep 5 (2a, temporary. Fourier transformation of the direct dimension (ft1phasing.com, for phasing of the direct dimension only, easier for a nondiagonal-compensated data set): #!/bin/csh -f # # 3D States-Mode HN-Detected Processing. rm -rf yzx xyz2pipe -in ./fid/testS%03d.fid -x \ #| nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 -size 600 \ | nmrPipe -fn EM -lb 20 -c 1 -size 600 \ | nmrPipe -fn ZF -size 4048 \ | nmrPipe -fn FT -verb \ | nmrPipe -fn PS -p0 -68.9 -p1 -46 -di \ | nmrPipe -fn EXT -x1 1380 -xn 2600 -sw \ #| nmrPipe -fn ZTP -verb \ | pipe2xyz -ov -out yzx/testS%03d.ft1 -x echo S done sleep 5 2. Fourier transformation of the direct dimension (ft1.com): #!/bin/csh -f # # 3D States-Mode HN-Detected Processing. rm -rf yzx xyz2pipe -in ./Dfid/testS%03d.fid -x \ #| nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 -size 600 \ | nmrPipe -fn EM -lb 20 -c 1 \ | nmrPipe -fn ZF -size 2048 \ | nmrPipe -fn FT -verb \ | nmrPipe -fn PS -p0 -68.9 -p1 -48 -di \ | nmrPipe -fn EXT -x1 690 -xn 1300 -sw \ | nmrPipe -fn ZTP -verb \ | pipe2xyz -ov -out Dyzx/testS%03d.ft1 -y echo S done sleep 5 3. Reconstruction of the indirect dimensions using the ISThms routine (which you can download on the Wagner lab homepage), ist.csh : #!/bin/csh -fxv setenv FM_PROG ~shyberts/bin set out_d = Drec mkdir -p ${out_d} # set I = $1 set I = 1 while ( $I <= 611 ) set II = ` echo $I | gawk '{printf("%03d", $1) }'` set in = testS$II.ft1 set out = testS$II.phf set tst = testS$II.tst if ( -f ${out_d}/${tst} ) then echo $in $out else touch ${out_d}/${tst} echo -n "started $in at " date ${FM_PROG}/ist_20110808_64b -ref 0 -dim 3 -user 1 -incr 1 -xN 19 -yN 19 -zN 88 verb 1 -vlist ./sched.3d -i_mult 0.98 -e_mult 0.98 -itr 200 < ./Dyzx/${in} >! ./${out_d}/${out} echo -n "ended $in at " date endif @ I += 1 end (4a. Individual Fourier transformation of indirect dimension X for phasing only (exemplary: ft2phasing.com, again: works better if you do this with uncompensated data): #!/bin/csh xyz2pipe -in Drec/testS%03d.phf | ~shyberts/bin/phf2pipe_20110801_64b -user 1 \ | pipe2xyz -out Drec/testS%03d%03d.ft1 -ov echo phf2pipe done xyz2pipe -in Drec/testS%03d%03d.ft1 -x -verb \ #| nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 \ | nmrPipe -fn EM -lb 20 \ | nmrPipe -fn ZF -size 128 \ | nmrPipe -fn FT -auto \ | nmrPipe -fn PS -p0 -26 -p1 0 -di \ | pipe2xyz -x -ov -out Dft_1/convS%03d%03d.ft4 xyz2pipe -in Dft_1/convS%03d%03d.ft4 -a -verb \ | nmrPipe -fn TP \ | pipe2xyz -x -ov -out Dft_1S/convS%04d%03d.ft4 sleep 5 ) (4b. Individual Fourier transformation of indirect dimensions for phasing only (exemplary: ft4phasing.com): #xyz2pipe -in Drec/testS%03d.phf | ~shyberts/bin/phf2pipe_20110801_64b -user 1\ #| pipe2xyz -out Drec/testS%03d%03d.ft1 -ov xyz2pipe -in Drec/testS%03d%03d.ft1 -z -verb \ #| nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 \ #| nmrPipe -fn ZF -size 32 \ ##| nmrPipe -fn FT -auto \ #| nmrPipe -fn PS -p0 -26.0 -p1 0.0 -di \ #| nmrPipe -fn TP -verb \ #| nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 \ ##| nmrPipe -fn MULT -i -1.0 \ #| nmrPipe -fn ZF -size 32 \ ##| nmrPipe -fn FT -auto \ #| nmrPipe -fn PS -p0 -3.6 -p1 0.0 -di \ #| nmrPipe -fn TP \ #| nmrPipe -fn ZTP -verb 2\ | nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 \ | nmrPipe -fn ZF -size 32 \ | nmrPipe -fn FT -neg -verb \ | nmrPipe -fn PS -p0 167 -p1 30 -di \ | nmrPipe -fn REV \ ##| nmrPipe -fn ZTP \ | pipe2xyz -x -ov -out Dft_4/fourD%04d%03d.ft4 xyz2pipe -in Dft_4/fourD%04d%03d.ft4 -a -verb \ #| nmrPipe -fn TP \ | pipe2xyz -x -ov -out Dft_4S/fourD%04d%03d.ft4 4. Fourier transformation of all indirect dimensions (ft234.com): xyz2pipe -in Drec/testS%03d.phf | ~shyberts/bin/phf2pipe_20110801_64b -user 1 \ | pipe2xyz -out Drec/testS%03d%03d.ft1 -ov echo phf2pipe done xyz2pipe -in Drec/testS%03d%03d.ft1 -x -verb \ | nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 \ | nmrPipe -fn ZF -size 64 \ | nmrPipe -fn FT -auto \ | nmrPipe -fn PS -p0 -2.0 -p1 0.0 -di \ | nmrPipe -fn TP -verb \ | nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 \ #| nmrPipe -fn MULT -i -1.0 \ | nmrPipe -fn ZF -size 64 \ | nmrPipe -fn FT -auto \ | nmrPipe -fn PS -p0 -3.6 -p1 0.0 -di \ | nmrPipe -fn TP \ | nmrPipe -fn ZTP -verb 2\ | nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 \ | nmrPipe -fn ZF -size 64 \ | nmrPipe -fn FT -neg -verb \ | nmrPipe -fn PS -p0 167 -p1 30 -di \ | nmrPipe -fn REV \ | nmrPipe -fn ZTP \ | pipe2xyz -z -ov -out Dft_4/fourD%04d%03d.ft4 5. Saving the nmrPipe planes in a single file (safefile.com): xyz2pipe -in Dft_4/fourD%04d%03d.ft4 -z -verb > D_HNNH.ft4 \ This file should be transformed into ucsf format by pipe2ucsf (comes with Sparky) for much better performance of CCPNmr. Version 2: as recorded with Topspin 3.2 and using five separate 4D data sets for coping with magnetic field drift: 1. Splitting each ser file with nmrPipe (fid.com): #!/bin/csh #for approx. referencing purposes, water was at 4.735 ppm bruk2pipe -in ./ser \ -bad 0.0 -aswap -DMX -decim 200 -dspfvs 20 -grpdly 68.003173828125 \ -xN 6144 -yN 8 -zN 1290 -aN 0 \ -xT 2994 -yT 8 -zT 1290 -aT 0 \ -xMODE DQD -yMODE Real -zMODE Real -aMODE Real \ -xSW 100000.000 -ySW 2857.143 -zSW 2857.143 -aSW 4616.805 \ -xOBS 1000.308 -yOBS 101.371 -zOBS 101.371 -aOBS 1000.308 \ -xCAR 7.775 -yCAR 117.729 -zCAR 117.729 -aCAR 7.775 \ -xLAB 1xx -yLAB 15Ny -zLAB 15Nz -aLAB 1H \ -ndim 3 -aq2D States \ | pipe2xyz -x -out ./fid/test%04d.fid -verb -ov -to 0 sleep 5 2. Adding the 4D data sets of regular scans (combine4d.com): #!/bin/csh #add 4 3d data sets echo starting addNMR -in1 31/fid/test%04d.fid -in2 33/fid/test%04d.fid -out combinedfid/t1est%04d.fid -verb echo next addNMR -in1 37/fid/test%04d.fid -in2 combinedfid/t1est%04d.fid -out combinedfid/t2est%04d.fid -verb echo next addNMR -in1 39/fid/test%04d.fid -in2 combinedfid/t2est%04d.fid -out combinedfid/combined%04d.fid -verb echo done final files in combinedfid 3. Subtracting the compensation scan data set (diagcomp0p6i.com): #!/bin/csh #add 2 3d data sets echo starting addNMR -in1 combinedfid/combined%04d.fid -in2 ref/test%04d.fid -out diagcomp0p6i/test%04d.fid -verb -c1 1 -c2 0.6 echo done (4a, temporary. Fourier transformation of the direct dimension (ft1phasing.com, for phasing of the direct dimension only): #!/bin/csh -f # # 3D States-Mode HN-Detected Processing. rm -rf yzx xyz2pipe -in ./diagcomp0p6/test%04d.fid -x \ #| nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 -size 600 \ | nmrPipe -fn EM -lb 50 -c 1 \ | nmrPipe -fn ZF -size 4096 \ | nmrPipe -fn FT -verb \ | nmrPipe -fn PS -p0 -216 -p1 -65 -di \ | nmrPipe -fn EXT -x1 1875 -xn 2165 -sw \ #| nmrPipe -fn ZTP -verb \ | pipe2xyz -ov -out Dyzx0p6/test%03d.ft1 -x echo S done sleep 5 ) 4. Fourier transformation of the direct dimension (ft1.com): #!/bin/csh -f # # 3D States-Mode HN-Detected Processing. rm -rf yzx xyz2pipe -in ./diagcomp0p6i/test%04d.fid -x \ #| nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 -size 600 \ | nmrPipe -fn EM -lb 150 -c 1 \ | nmrPipe -fn ZF -size 4096 \ | nmrPipe -fn FT -verb \ | nmrPipe -fn PS -p0 -216 -p1 -65 -di \ | nmrPipe -fn EXT -x1 1875 -xn 2165 -sw | nmrPipe -fn ZTP -verb \ | pipe2xyz -ov -out Dyzx0p6i/test%03d.ft1 -y \ echo S done sleep 5 5. Reconstruction of the indirect dimensions using the ISThms routine (which you can download on the Wagner lab homepage), ist.csh : #!/bin/csh -fxv setenv FM_PROG ~shyberts/bin set out_d = Drec0p6i mkdir -p ${out_d} # set I = $1 set I = 1 while ( $I <= 291 ) set II = ` echo $I | gawk '{printf("%03d", $1) }'` set in = test$II.ft1 set out = test$II.phf set tst = test$II.tst if ( -f ${out_d}/${tst} ) then echo $in $out else touch ${out_d}/${tst} echo -n "started $in at " date ${FM_PROG}/ist_20110808_64b -ref 0 -dim 3 -user 1 -incr 1 -xN 16 -yN 16 -zN 24 verb 1 -vlist ./nuslist -i_mult 0.98 -e_mult 0.98 -itr 200 < ./Dyzx0p6i/${in} >! ./${out_d}/${out} echo -n "ended $in at " date endif @ I += 1 end (6a. Individual Fourier transformation of indirect dimensions for phasing only (ft2phasing.com, again: works better if you do this with uncompensated data, here exemplary for F2): #!/bin/csh xyz2pipe -in Drec0p6i/test%03d.phf | ~shyberts/bin/phf2pipe_20110801_64b user 1 \ | pipe2xyz -out Drec0p6i/test%03d%03d.ft1 -ov xyz2pipe -in Drec0p6i/test%03d%03d.ft1 -z \ | nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 \ | nmrPipe -fn ZF -size 32 \ | nmrPipe -fn FT -neg -verb \ | nmrPipe -fn PS -p0 -0 -p1 0 -di \ | nmrPipe -fn REV \ | nmrPipe -fn CS -ls 50% \ #| nmrPipe -fn EXT -xn -7 -sw -verb \ | pipe2xyz -out Dft_30p6i/test%04d%03d.ft3 -x -ov xyz2pipe -in Dft_30p6i/test%04d%03d.ft3 -a \ | pipe2xyz -out Dft_3S0p6i/test%04d%03d.ft4 -x -ov sleep 5 7. Fourier transformation of all indirect dimensions (ft234.com): xyz2pipe -in Drec0p6i/test%03d.phf | ~shyberts/bin/phf2pipe_20110801_64b user 1 \ | pipe2xyz -out Drec0p6i/test%03d%03d.ft1 -ov echo phf2pipe done xyz2pipe -in Drec0p6i/test%03d%03d.ft1 -x -verb \ | nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 \ | nmrPipe -fn EM -lb 50 -c 1 \ | nmrPipe -fn ZF -size 64 \ | nmrPipe -fn FT -auto \ | nmrPipe -fn PS -p0 -0.0 -p1 0.0 -di \ | nmrPipe -fn CS -ls 50% \ | nmrPipe -fn TP -verb \ | nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 \ | nmrPipe -fn EM -lb 50 -c 1 \ #| nmrPipe -fn MULT -i -1.0 \ | nmrPipe -fn ZF -size 64 \ | nmrPipe -fn FT -auto \ | nmrPipe -fn PS -p0 -0 -p1 0.0 -di \ | nmrPipe -fn CS -ls 50% \ | nmrPipe -fn TP \ | nmrPipe -fn ZTP -verb 2\ | nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 \ | nmrPipe -fn EM -lb 80 -c 1 \ | nmrPipe -fn ZF -size 64 \ | nmrPipe -fn FT -neg -verb \ | nmrPipe -fn PS -p0 0 -p1 0 -di \ | nmrPipe -fn CS -ls 50% \ #| nmrPipe -fn REV \ | nmrPipe -fn ZTP \ | pipe2xyz -z -ov -out Dft_40p6i/fourD%04d%03d.ft4 8. Saving the nmrPipe planes in a single file (safefile.com): xyz2pipe -in Dft_40p6i/fourD%04d%03d.ft4 -z -verb > D_HNNH0p6i.ft4 \