/* nl_gHn_coca_NH.c modified from ghncn.c 3D gradient sensitivity-enhanced HN(C)N t1 evolution is not limited by kappa Correlates N(i) with N(i-1), NH(i-1). Uses constant time evolution for the 15N shifts. Standard features include square pulses on Cab with first null at 13CO; one lobe sinc pulses on 13CO with first null at Ca; shaka6 composite 180 pulse to simultaneously refocus CO and invert Ca; one lobe sinc pulse to put H2O back along z (the sinc one-lobe is significantly more selective than gaussian, square, or seduce 90 pulses); optional 2H decoupling when CaCb magnetization is transverse for 4 channel spectrometers. No longer working: Magic-angle option for coherence transfer gradients; TROSY option for N15/H1 evolution/detection. CHOICE OF DECOUPLING AND 2D MODES Set dm = 'nnn', dmm = 'ccc' Set dm2 = 'nny', dmm2 = 'ccg' (or 'ccw', or 'ccp') for 15N decoupling. Set dm3 = 'nnn' for no 2H decoupling, or 'nyn' and dmm3 = 'cwc' for 2H decoupling. Must set phase = 1,2 and phase2 = 1,2 for States-TPPI acquisition in t1 [15N] and t2 [15N]. The flag f1180/f2180 should be set to 'y' if t1/t2 is to be started at halfdwell time. This will give 90, -180 phasing in f1/f2. If it is set to 'n' the phasing should be 0,0 and will still give a perfect baseline. Thus, set f1180='n' for (0,0) in 13C and f2180='n' for (0,0) in 15N. f1180='y' is ignored if ni=0, and f2180='y' is ignored if ni2=0. Sequence contributed by S.C.Panchal, N.S.Bhavesh and R.V.Hosur, Tata Institute, Mumbai, India (March 2002). See J.Biomol.NMR, 20, 135-147(2001). Modified by Jim Sun, Aug 2005. Add semi-CT for N and N' evolution periods. The waltz16 field strength is enterable (waltzB1). Typical values would be ~6-8ppm, (3500-5000 Hz at 600 MHz). DETAILED INSTRUCTIONS FOR USE OF ghncn 1. Obtain a printout of the Philosopy behind the BioPack development, and General Instructions using the macro: "printon man('BioPack') printoff". These Detailed Instructions for ghncn may be printed using: "printon man('ghncn') printoff". 2. Apply the setup macro "ghncn". This loads the relevant parameter set and also sets ni=ni2=0 and phase=phase2=1 ready for a 1D spectral check. At the middle of the t1 period, the 180 degree pulses on CO and 15N are swapped to a 180 degree pulse on Ca, for the first increment of t1, to refocus Ca chemical-shift evolution ensuring a zero first-order phase correction in F1. This is also the case for the 1D spectral check, or for 2D/15N spectra, when ni=0. 3. Centre H1 frequency on H2O (4.7ppm), C13 frequency on 56ppm, and N15 frequency on the amide region (120 ppm). The C13 frequency is shifted to the CO region during the sequence, but phase coherence is not required after each shift. CO is assumed 118 + 56 ppm. 4. H2O preservation is achieved according to Kay et al, except that a sinc one-lobe selective pulse is used to put H2O back along z. This is much more selective than a hard, Seduce1, or gaussian pulse. 5. tauC (4.5 ms) and timeTN (12.5 ms) were determined for alphalytic protease and are listed in dg2 for possible readjustment by the user. 6. TROSY: seemed to have problem in ghncn.c, leave out for now. Set TROSY='y' and dm2='nnn' for a TROSY spectrum of the bottom right peak of the 2D coupled NH quartet (high-field H1, low-field N15). The TROSY spectrum gives 50% S/N compared to the decoupled spectrum for a small peptide. To select any of the other three peaks of the 2D coupled quartet, in a clockwise direction from bottom right, change t4/t10 from x/y to x/-y to -x/-y to -x/y. NOTE, the phases of the SE train are almost the same as those determined for the gNhsqc sequence. For these sequences H2O flipback is achieved with two sinc one-lobe pulses, an additional one just before the SE train, similar to gNhsqc. */ #include static int /* T is for TROSY='y', phx etc also enable TROSY phase changes */ phx[1]={0}, phy[1]={1}, phi3[4] = {2,2,0,0}, phi5[4] = {0,2,2,0}, phi6[4] = {0,2,2,0}, phi9[8] = {0,0,0,0,2,2,2,2}, rec[4] = {0,0,2,2}, recT[4] = {3,1,1,3}; static double d2_init=0.0, d3_init=0.0; pulsesequence() { /* DECLARE AND LOAD VARIABLES */ char f1180[MAXSTR], /* Flag to start t1 @ halfdwell */ f2180[MAXSTR], /* Flag to start t2 @ halfdwell */ mag_flg[MAXSTR], /* magic-angle coherence transfer gradients */ TROSY[MAXSTR], /* do TROSY on N15 and H1 */ shapeCsel[MAXSTR]; /* shape for Ca or Ca+ pulse */ int icosel, /* used to get n and p type */ t1_counter=getval("t1_counter"), /* used for states tppi in t1 */ t2_counter=getval("t2_counter"), /* used for states tppi in t2 */ nli=getval("nli"), nli2 = getval("nli2"); double tau1, /* t1 delay */ t1a_init, tau1H, tau1NH, t1a, t1b, t1c, tau2, /* t2 delay */ t2a_init, tau2CN, tau2NCA, timeNCA = 15.6e-3, /* optimal NCA refocue time */ t2a, t2b, t2c, t2d, timeCN = getval("timeCN"), /* time for CN transfer */ tauC = getval("tauC"), /* delay for CO to Ca evolution */ /* timeTN1 = getval("timeTN1"), initial time for N' evolution */ /* timeTN2 = getval("timeTN2"), initial time for N evolution */ timeTN1 = 12.5e-3, /* initial time for N' evolution */ timeTN2 = 13.7e-3, /* initial time for N evolution */ kappa = 5.5e-3, lambda = 2.3e-3, pwClvl = getval("pwClvl"), /* coarse power for C13 pulse */ pwC = getval("pwC"), /* C13 90 degree pulse length at pwClvl */ rf0, /* maximum fine power when using pwC pulses */ /* 90 degree pulse at Ca (56ppm), first off-resonance null at CO (174ppm) */ pwC1, /* 90 degree pulse length on C13 at rf1 */ rf1, /* fine power for 4.7 kHz rf for 600MHz magnet */ /* 180 degree pulse at Ca (56ppm), first off-resonance null at CO(174ppm) */ pwC2, /* 180 degree pulse length at rf2 */ rf2, /* fine power for 10.5 kHz rf for 600MHz magnet */ /* the following pulse lengths for SLP pulses are automatically calculated */ /* by the macro "proteincal". SLP pulse shapes, "offC6" etc are called */ /* directly from your shapelib. */ /* pwC3 = getval("pwC3"), 180 degree pulse at Ca(56ppm) null at CO(174ppm) */ pwC6 = getval("pwC6"), /* 90 degree selective sinc pulse on CO(174ppm) */ pwC8 = getval("pwC8"), /* 180 degree selective sinc pulse on CO(174ppm) */ pwC9 = getval("pwC9"), /* 180 degree selective sinc pulse on CO(174ppm) */ phshift9, /* phase shift induced on Ca by pwC9 ("offC9") pulse */ pwZ, /* the largest of pwC9 and 2.0*pwN */ pwZ1, /* the larger of pwC9a and 2.0*pwN for 1D experiments */ /* rf3, fine power for the pwC3 ("offC3") pulse */ rf6, /* fine power for the pwC6 ("offC6") pulse */ rf8, /* fine power for the pwC8 ("offC8") pulse */ rf9, /* fine power for the pwC9 ("offC9") pulse */ pwCsel = getval("pwCsel"), /* 180 degree selective Q3 pulse on Ca or Ca+ */ rfCsel, /* fine power for the Ca/Ca+ ("ZeBra") pulse */ dofCO, /* channel 2 offset for most CO pulses */ dofCsel = getval("dofCsel"), /* C13 offset for 180 pulse midst NCA transfer */ compH = getval("compH"), /* adjustment for C13 amplifier compression */ compC = getval("compC"), /* adjustment for C13 amplifier compression */ pwHs = getval("pwHs"), /* H1 90 degree pulse length at tpwrs */ tpwrs, /* power for the pwHs ("H2Osinc") pulse */ pwHd, /* H1 90 degree pulse length at tpwrd */ tpwrd, /* rf for WALTZ decoupling */ waltzB1 = getval("waltzB1"), /* waltz16 field strength (in Hz) */ pwNlvl = getval("pwNlvl"), /* power for N15 pulses */ pwN = getval("pwN"), /* N15 90 degree pulse length at pwNlvl */ sw1 = getval("sw1"), sw2 = getval("sw2"), gt1 = getval("gt1"), /* coherence pathway gradients */ gzcal = getval("gzcal"), /* g/cm to DAC conversion factor */ gzlvl1 = getval("gzlvl1"), gzlvl2 = getval("gzlvl2"), /* other gradients */ /* gt0 = getval("gt0"), */ gt3 = getval("gt3"), gt4 = getval("gt4"), gt5 = getval("gt5"), gt7 = getval("gt7"), gt9 = getval("gt9"), gzlvl0 = getval("gzlvl0"), gzlvl3 = getval("gzlvl3"), gzlvl4 = getval("gzlvl4"), gzlvl5 = getval("gzlvl5"), gzlvl6 = getval("gzlvl6"), gzlvl7 = getval("gzlvl7"), gzlvl9 = getval("gzlvl9"); getstr("f1180",f1180); getstr("f2180",f2180); getstr("mag_flg",mag_flg); getstr("TROSY",TROSY); getstr("shapeCsel",shapeCsel); /* LOAD PHASE TABLE */ settable(t1,1,phx); settable(t3,4,phi3); settable(t4,1,phx); settable(t5,4,phi5); settable(t6,4,phi6); if (TROSY[A]=='y') {settable(t8,1,phy); settable(t9,1,phx); settable(t10,1,phy); settable(t11,1,phx); settable(t12,4,recT);} else {settable(t8,1,phx); settable(t9,8,phi9); settable(t10,1,phx); settable(t11,1,phy); settable(t12,4,rec);} /* INITIALIZE VARIABLES */ if( dpwrf < 4095 ) { printf("reset dpwrf=4095 and recalibrate C13 90 degree pulse"); abort(1); } /* offset during CO pulses, except for t1 evolution period */ dofCO = dof + 118.0*dfrq; /* maximum fine power for pwC pulses */ rf0 = 4095.0; /* 90 degree pulse on Ca, null at CO 118ppm away */ pwC1 = sqrt(15.0)/(4.0*118.0*dfrq); rf1 = (compC*4095.0*pwC)/pwC1; rf1 = (int) (rf1 + 0.5); /* 180 degree pulse on Ca, null at CO 118ppm away */ pwC2 = sqrt(3.0)/(2.0*118.0*dfrq); rf2 = (compC*4095.0*pwC*2.0)/pwC2; rf2 = (int) (rf2 + 0.5); if( rf2 > 4095.0 ) { printf("increase pwClvl so that C13 90 < 24us*(600/sfrq)"); abort(1);} /* 180 degree pulse on Ca, null at CO 118ppm away */ /* rf3 = (compC*4095.0*pwC*2.0)/pwC3; rf3 = (int) (rf3 + 0.5); */ /* 90 degree one-lobe sinc pulse on CO, null at Ca 118ppm away */ rf6 = (compC*4095.0*pwC*1.69)/pwC6; /* needs 1.69 times more */ rf6 = (int) (rf6 + 0.5); /* power than a square pulse */ /* 180 degree one-lobe sinc pulse on CO, null at Ca 118ppm away */ rf8 = (compC*4095.0*pwC*2.0*1.65)/pwC8; /* needs 1.65 times more */ rf8 = (int) (rf8 + 0.5); /* power than a square pulse */ /* 180 degree one-lobe sinc pulse on CO, null at Ca 118ppm away */ rf9 = (compC*4095.0*pwC*2.0*1.65)/pwC8; /* needs 1.65 times more */ rf9 = (int) (rf9 + 0.5); /* power than a square pulse */ /* the pwC9 pulse at the middle of t1 */ if ((nli2 > 0.0) && (nli == 1.0)) nli = 0.0; if (pwC8 > 2.0*pwN) pwZ = pwC8; else pwZ = 2.0*pwN; if ((pwC9==0.0) && (pwC8>2.0*pwN)) pwZ1=pwC8-2.0*pwN; else pwZ1=0.0; if ( nli > 1 ) pwC9 = pwC8; if ( pwC9 > 0 ) phshift9 = 140.0; else phshift9 = 0.0; /* 180 degree Q3 pulse on Ca */ rfCsel = (compC*4095.0*pwC*2.0*7.00)/pwCsel; /* needs 1.65 times more */ rfCsel = (int) (rfCsel + 0.5); /* power than a square pulse */ /* selective H20 one-lobe sinc pulse */ tpwrs = tpwr - 20.0*log10(pwHs/(compH*pw*1.69)); /* needs 1.69 times more */ tpwrs = (int) (tpwrs); /* power than a square pulse */ /* power level and pulse time for WALTZ 1H decoupling */ pwHd = 1/(4.0 * waltzB1) ; tpwrd = tpwr - 20.0*log10(pwHd/(compH*pw)); tpwrd = (int) (tpwrd + 0.5); /* CHECK VALIDITY OF PARAMETER RANGES */ if ( tauC < (gt7+1.0e-4+0.5*10.933*pwC)) gt7=(tauC-1.0e-4-0.5*10.933*pwC); if ((nli2>0) && (0.5*nli2*1/(sw2) < timeNCA - pwC8 - pwC2/2.0 - WFG_START_DELAY)) { printf(" nli2 is too small. Make nli2 equal to %d or more.\n", ((int)((timeNCA - pwC8 - pwC2/2.0 - WFG3_START_DELAY)*2.0*sw2+1.0))); abort(1);} if ((nli>0) && (0.5*nli*1/(sw1) < kappa/2.0 + pwN)) { printf(" nli is too small. Make nli equal to %d or more.\n", ((int)((kappa/2.0 + pwN)*2.0*sw1+1.0))); abort(1);} if ( dm[A] == 'y' || dm[B] == 'y' || dm[C] == 'y' ) { printf("incorrect dec1 decoupler flags! Should be 'nnn' "); abort(1);} if ( dm2[A] == 'y' || dm2[B] == 'y' ) { printf("incorrect dec2 decoupler flags! Should be 'nny' "); abort(1);} if ( dm3[A] == 'y' || dm3[C] == 'y' ) { printf("incorrect dec3 decoupler flags! Should be 'nyn' or 'nnn' "); abort(1);} if ( dpwr2 > 50 ) { printf("dpwr2 too large! recheck value "); abort(1);} if ( pw > 20.0e-6 ) { printf(" pw too long ! recheck value "); abort(1);} if ( pwN > 100.0e-6 ) { printf(" pwN too long! recheck value "); abort(1);} if ( TROSY[A]=='y') { text_error("TROSY is not implemented ! "); abort(1);} /* if ( TROSY[A]=='y' && dm2[C] == 'y') { text_error("Choose either TROSY='n' or dm2='n' ! "); abort(1);} */ if ( mag_flg[A]=='y') { text_error("Magic-angle gradients not implemented ! "); abort(1);} if ( f1180[A]=='y') { text_error("f1180 not implemented ! "); abort(1);} if ( f2180[A]=='y') { text_error("f2180 not implemented ! "); abort(1);} /* PHASES AND INCREMENTED TIMES */ /* Phase incrementation for hypercomplex 2D data, States-Haberkorn element */ if (phase1 == 2) tsadd(t1,1,4); if (TROSY[A]=='y') { if (phase2 == 2) icosel = +1; else {tsadd(t4,2,4); tsadd(t10,2,4); icosel = -1;} } else { if (phase2 == 2) {tsadd(t10,2,4); icosel = +1;} else icosel = -1; } /* Set up f1180 */ if( ix == 1) d2_init = d2; tau1 = d2_init + (t1_counter) / sw1; if((f1180[A] == 'y') && (nli > 1.0)) { tau1 += ( 1.0 / (2.0*sw1) ); if(tau1 < 0.2e-6) tau1 = 0.0; } tau1 = tau1/2.0; /* Set up f2180 */ if( ix == 1) d3_init = d3; tau2 = d3_init + (t2_counter) / sw2; if((f2180[A] == 'y') && (nli2 > 1.0)) { tau2 += ( 1.0 / (2.0*sw2) ); if(tau2 < 0.2e-6) tau2 = 0.0; } tau2 = tau2/2.0; /* Calculate modifications to phases for States-TPPI acquisition */ if(t1_counter % 2) { /*tsadd(t1,2,4);*/ tsadd(t12,2,4); } /* 1/2 spectrum-wdith shifted States-TPPI (States) */ if(t2_counter % 2) { tsadd(t8,2,4); tsadd(t12,2,4); } /* Set up semi-CT delays */ t1a_init = lambda + pwN; if (nli > 0) { tau1H = (t1a_init) / nli * t1_counter;} else { tau1H = 0.0;} if ((nli > 0) && (kappa/2.0 > lambda)) { tau1NH = (kappa/2.0 - lambda) / nli * t1_counter;} else { tau1NH = 0.0;} t1a = t1a_init - tau1H; t1b = tau1 - tau1H - tau1NH; t1c = t1a_init + tau1 + tau1NH - 2.0*pwN; t2a_init = timeTN2 - pwC8 - pwC2/2.0; if (nli2 > 0) { tau2CN = (t2a_init - WFG_START_DELAY) / nli2 * t2_counter;} else { tau2CN = 0.0; } if ((nli2 > 0) && (timeNCA > timeTN2)) { tau2NCA = (timeNCA - timeTN2) / nli2 * t2_counter;} else { tau2NCA = 0.0;} t2a = t2a_init - tau2CN; t2b = tau2 - tau2CN - tau2NCA; t2c = tau2CN + tau2NCA; t2d = t2a_init + tau2 - tau2CN; /* BEGIN PULSE SEQUENCE */ status(A); delay(d1); if (dm3[B] == 'y') lk_hold(); rcvroff(); obspower(tpwr); decpower(pwClvl); dec2power(pwNlvl); decpwrf(rf0); obsoffset(tof); decoffset(dofCO); txphase(zero); delay(1.0e-5); dec2rgpulse(pwN, zero, 0.0, 0.0); /*destroy N15 and C13 magnetization*/ decrgpulse(pwC, zero, 0.0, 0.0); zgradpulse(-gzlvl0, 0.5e-3); delay(1.0e-4); dec2rgpulse(pwN, one, 0.0, 0.0); decrgpulse(pwC, zero, 0.0, 0.0); zgradpulse(-0.7*gzlvl0, 0.5e-3); delay(5.0e-4); rgpulse(pw, one, 0.0, 0.0); /* 1H pulse excitation */ dec2phase(zero); /* zgradpulse(gzlvl0, gt0); */ delay(t1c); dec2rgpulse(2.0*pwN, one, 0.0, 0.0); delay(t1b); rgpulse(2.0*pw, zero, 0.0, 0.0); delay(t1a); txphase(t1); /* zgradpulse(gzlvl0, gt0); */ rgpulse(pw, t1, 0.0, 0.0); obspower(tpwrs); if (TROSY[A]=='n') {txphase(zero); shaped_pulse("H2Osinc",pwHs,zero,5.0e-4,0.0); obspower(tpwrd); dec2phase(t3); zgradpulse(gzlvl3, gt3); txphase(one); delay(2.0e-4); dec2rgpulse(pwN, t3, 0.0, 0.0); } /* modification starts from here */ decpwrf(rf8); decphase(zero); dec2phase(zero); txphase(one); delay(kappa); rgpulse(pwHd,one,0.0,0.0); txphase(zero); delay(2.0e-6); obsprgon("waltz16",pwHd,90.0); xmtron(); delay(timeTN1 - kappa - PRG_START_DELAY - pwHd - 2.0e-6 - WFG3_START_DELAY); sim3shaped_pulse("","offC8","", 0.0,pwC8,2.0*pwN, zero,zero,zero, 0.0,0.0); decpwrf(rf6); delay(timeTN1); /* t1 modification ends here */ if (TROSY[A]=='n') {xmtroff(); obsprgoff(); rgpulse(pwHd,three,2.0e-6,0.0);} dec2rgpulse(pwN, t5, 0.0, 0.0); zgradpulse(-gzlvl3, gt3); delay(2.0e-4); decshaped_pulse("offC6", pwC6, t6, 0.0, 0.0); zgradpulse(-gzlvl7, gt7); decpwrf(rf0); decphase(zero); delay(tauC - gt7 - 0.5*10.933*pwC); decrgpulse(pwC*158.0/90.0, zero, 0.0, 0.0); decrgpulse(pwC*171.2/90.0, two, 0.0, 0.0); decrgpulse(pwC*342.8/90.0, zero, 0.0, 0.0); /* Shaka 6 composite */ decrgpulse(pwC*145.5/90.0, two, 0.0, 0.0); decrgpulse(pwC*81.2/90.0, zero, 0.0, 0.0); decrgpulse(pwC*85.3/90.0, two, 0.0, 0.0); zgradpulse(-gzlvl7, gt7); decpwrf(rf6); decphase(one); txphase(one); delay(tauC - gt7 - 0.5*10.933*pwC - WFG_START_DELAY); /* WFG_START_DELAY */ decshaped_pulse("offC6", pwC6, one, 0.0, 0.0); decoffset(dof); zgradpulse(-gzlvl9, gt9); decpwrf(rf1); decphase(zero); delay(2.0e-4); if(dm3[B] == 'y') /*optional 2H decoupling on */ {dec3unblank(); dec3rgpulse(1/dmf3, one, 0.0, 0.0); dec3unblank(); setstatus(DEC3ch, TRUE, 'w', FALSE, dmf3);} rgpulse(pwHd,one,0.0,0.0); txphase(zero); delay(2.0e-6); obsprgon("waltz16", pwHd, 90.0); xmtron(); /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */ /* C-alpha and 15N transfer starts from here */ decrgpulse(pwC1,zero, 0.0, 0.0); /* delay(2.0e-6); zgradpulse(gzlvl3,gt3); */ decpwrf(rf9); decphase(zero); delay(tauC - pwC9); decshaped_pulse("offC9", pwC9, zero, 0.0, 0.0); decoffset(dofCsel); decpwrf(rfCsel); decphase(zero); if (pwCsel > 2.0* pwN) { delay(timeCN - tauC - 0.5*pwCsel - WFG3_START_DELAY);} else { delay(timeCN - tauC - pwN - WFG3_START_DELAY);} sim3shaped_pulse("",shapeCsel,"",0.0,pwCsel,2.0*pwN, zero, zero, zero, 0.0,0.0); decoffset(dof); decpwrf(rf1); decphase(one); if (pwCsel > 2.0*pwN) { delay(timeCN - 0.5*pwCsel);} else { delay(timeCN - pwN);} decrgpulse(pwC1,one,0.0,0.0); decpwrf(rf1); decphase(t5); /* c-alpha and N15 transfer ends here */ xmtroff(); obsprgoff(); rgpulse(pwHd,three,2.0e-6,0.0); /* xxxxxxxxxxxxxxxxxx OPTIONS FOR N15 EVOLUTION xxxxxxxxxxxxxxxxxxxxx */ dec2phase(t8); zgradpulse(gzlvl4, gt4); txphase(one); dcplrphase(zero); delay(2.0e-4); if (TROSY[A]=='n') {rgpulse(pwHd,one,0.0,0.0); txphase(zero); delay(2.0e-6); obsprgon("waltz16", pwHd, 90.0); xmtron();} dec2rgpulse(pwN, t8, 0.0, 0.0); /* N15 semi-CT evolution */ if (TROSY[A]=='n') { decphase(zero); dec2phase(t9); decpwrf(rf9); delay(t2a - WFG_START_DELAY); decshaped_pulse("offC9", pwC9, zero, 0.0, 0.0); delay(pwC2); dec2rgpulse(2.0*pwN, t9, 0.0, 0.0); decpwrf(rf2); delay(t2b); decrgpulse(pwC2, zero, 0.0, 0.0); decpwrf(rf9); delay(t2c); decshaped_pulse("offC9", pwC9, zero, 0.0, 0.0); dec2phase(t10); delay(t2d - kappa - PRG_STOP_DELAY - pwHd - 2.0e-6 - WFG_START_DELAY); xmtroff(); obsprgoff(); /* PRG_STOP_DELAY */ rgpulse(pwHd,three,2.0e-6,0.0); txphase(t4); delay(kappa - gt1 - 2.0*GRADIENT_DELAY - 1.0e-4); if (mag_flg[A]=='y') magradpulse(icosel*gzcal*gzlvl1, gt1); else zgradpulse(icosel*gzlvl1, gt1); /* 2.0*GRADIENT_DELAY */ obspower(tpwr); /* POWER_DELAY */ delay(1.0e-4 - POWER_DELAY); } /* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */ if (TROSY[A]=='y') rgpulse(pw, t4, 0.0, 0.0); else sim3pulse(pw, 0.0, pwN, t4, zero, t10, 0.0, 0.0); txphase(zero); dec2phase(zero); zgradpulse(gzlvl5, gt5); if (TROSY[A]=='y') delay(lambda - 0.65*(pw + pwN) - gt5); else delay(lambda - 1.3*pwN - gt5); sim3pulse(2.0*pw, 0.0, 2.0*pwN, zero, zero, zero, 0.0, 0.0); zgradpulse(gzlvl5, gt5); txphase(one); dec2phase(t11); delay(lambda - 1.3*pwN - gt5); sim3pulse(pw, 0.0, pwN, one, zero, t11, 0.0, 0.0); txphase(zero); dec2phase(zero); zgradpulse(gzlvl6, gt5); delay(lambda - 1.3*pwN - gt5); sim3pulse(2.0*pw, 0.0, 2.0*pwN, zero, zero, zero, 0.0, 0.0); dec2phase(t10); zgradpulse(gzlvl6, gt5); if (TROSY[A]=='y') delay(lambda - 1.6*pwN - gt5); else delay(lambda - 0.65*pwN - gt5); if (TROSY[A]=='y') dec2rgpulse(pwN, t10, 0.0, 0.0); else rgpulse(pw, zero, 0.0, 0.0); delay((gt1/10.0) + 1.0e-4 - 0.5*pw + 2.0*GRADIENT_DELAY + POWER_DELAY); rgpulse(2.0*pw, zero, 0.0, rof1); dec2power(dpwr2); /* POWER_DELAY */ if (mag_flg[A] == 'y') magradpulse(gzcal*gzlvl2, gt1/10.0); else zgradpulse(gzlvl2, gt1/10.0); /* 2.0*GRADIENT_DELAY */ rcvron(); statusdelay(C,1.0e-4 - rof1); if (dm3[B]=='y') lk_sample(); setreceiver(t12); }