/* tocsy_zfilt6.c: tocsy with rance z-filter */ /* pre-dipsi clean z-filtered dipsi */ /* G.T. Montelione October 3, 1991 */ /* modified to use trim pulse before z-filter and then to phase cycle this pulse. modified to use trim pulse before t1 modified to use dipsi3 pretocsy if preloop > 1 modified to use ss < 0 for ss before each t1 modified to allow hs pulse before preirradiation modified to provide trim pulse after presat to kill H2O modified to prevent long trim pulses 2/10/92 modified to use waveform generator for preirrad */ /* TODEV is used for preirradiation, pulses, and spin lock */ /* DODEV is inactive */ /* tppi, set sw1 = 2 * sw2 dw1 = dw2 / 2 */ /* special parameters: pw: 90 deg pulse for hard-pulse, uses tpwr p1: 90 deg pulse for spin-lock, uses slpwr tauz: length of z-filter tau delay (1/(4*mix)) nloop: number of spin-lock cycles preloop: number of spin-lock cycles in pre-tocsy trim0: trim pulse after presat to kill H2O trim1: trim pulse before t1 to suppress H2O trim2: trim pulse after t1 to suppress H2O mix: spin lock time wfgsl: flag for using waveform spin lock slshape: spin lock shape when using wfgenerator slres: spin lock waveform resolution slpwr: spin-lock power satpwr: preirradiation power tpwr: hard-pulse power presat: preirradiation time (secs) hst: homospoil time between pulses rof1: phase setting time rof2: amplifier unblanking alfa: receiver blanking */ #include /* TOCSY pulse sequence */ pulsesequence() { /* declarations and assignments */ double slpwr,nloop,preloop,satpwr,trim1,trim2; double tauz,slres,ss,trim0; char wfgsl[MAXSTR],slshape[MAXSTR],shape[MAXSTR]; nloop=getval("nloop"); preloop = getval("preloop"); satpwr = getval("satpwr"); slpwr = getval("slpwr"); trim0 = getval("trim0"); trim1 = getval("trim1"); trim2 = getval("trim2"); tauz = getval("tauz"); slres = getval("slres"); ss = getval("ss"); getstr("wfgsl",wfgsl); getstr("slshape",slshape); getstr("shape",shape); initval(slpwr,v12); initval(satpwr,v8); initval(tpwr,v9); initval(nloop,v11); loadtable("tocsy_zfilt6.ph"); /* load phase table */ /* DETERMINE STEADY-STATE MODE */ if (ss < 0) { ss = (-1) * ss; } else { if ((ss > 0) && (ix == 1)) { ss = ss; } else { ss = 0; } } initval(ss, ssctr); initval(ss, ssval); /* preparation period */ getelem(t3,ct,v2); /* this calcs spin lock phase */ if ( trim0 > 0.005) { text_error("trim0 is greater than 5 ms \n"); abort(1); } if ( trim1 > 0.005) { text_error("trim1 is greater than 5 ms \n"); abort(1); } if ( trim2 > 0.005) { text_error("trim2 is greater than 5 ms \n"); abort(1); } status(A); hsdelay(d1/3); /* provides 3 hs pulses when */ hsdelay(d1/3); /* hs = 'ynnn' */ hsdelay(d1/3); rcvroff(); power(v9,TODEV);delay(5e-6); /* load TODEV with tpwr for pulses*/ getelem(t1,ct,v3); add(v3,one,v3); rgpulse(trim0,v3,2.0e-6,2.0e-6); /*trim pulse-90deg off of presat */ power(v8,TODEV);delay(10e-6); /* load TODEV with satpwr */ status(B); shaped_pulse(shape,getval("presat"),t1,5e-6,0.0); /* evolution period */ power(v9,TODEV);delay(5e-6); /* load TODEV with tpwr for pulses*/ getelem(t2,ct,v1); /* calcs tppi phase increment */ initval(d2*getval("sw1"),v6); add(v1,v6,v1); add(one,v1,v7); status(C); rgpulse(pw,v1,rof1,0.0); rgpulse(trim1,v7,3.0e-6,0.0); /* trim pulse to suppress H2O */ if (preloop > 1.0) { rcvroff(); power(v12,TODEV);delay(4.0e-6); /* sets spin-lock power */ spinlock(slshape,p1,slres,v7,(int) (preloop+0.5)); power(v9,TODEV);delay(4.0e-6); /* sets hard pulse power */ rgpulse(trim1,v7,3.0e-6,0.0); /* trim pulse to suppress H2O */ rcvron(); } delay(d2); /* t1 evolution time */ rcvroff(); rgpulse(trim2,t7,3.0e-6,0.0); /* trim pulse to suppress H2O */ rgpulse(pw,t4,3.0e-6,0.0); /* 1st pulse of z-filter */ rcvron(); status(D);delay(10.0e-6); /* delay is for rcvron stmnt */ hsdelay(tauz); /* tauz delay */ /* mlev-17 spin lock */ if (nloop > 1.0) { rcvroff(); power(v12,TODEV);delay(6.0e-6); /* sets spin-lock power */ if (wfgsl[A] == 'y') { spinlock(slshape,p1,slres,v2,(int) (nloop+0.5)); } } power(v9,TODEV);delay(6.0e-6); /* sets hard pulse power */ setreceiver(t6); /* detection phase t3 */ hsdelay(tauz); rgpulse(pw,t5,3.0e-6,0.0); } /* tocsy_zfilt3 phase table phase cycle = 16 steps * 4 t1 = (1)8 (3)8 (3)8 (1)8 presat t2 = (0)4 (2)4 (1)4 (3)4 (2)4 (0)4 (3)4 (1)4 axial peak suppress (wrt t6) and quad imag suppr (wrt t4) t3 = 0 spin lock t4 = (0)8 (1)8 (2)8 (3)8 quad imag suppr t5 = 0 1 2 3 z-filt t6 = 0 1 2 3 2 3 0 1 receiv t7 = (1)8 (2)8 (3)8 (0)8 trim pulse */