/* hncacb_3c_pfg_sel_500.c This pulse sequence will allow one to perform the following experiment: 3D hncacb (enhanced sensitivity PFG) with selective pulses to minimize excitation of water F1 C_alpha/C_beta F2 15N F3(acq) 1H (NH) This sequence uses the standard three channel configuration 1) 1H - carrier (tof) @ 4.7 ppm [H2O] 2) 13C - carrier (dof) @ 43 ppm [CA/CB] 3) 15N - carrier (dof2)@ 119 ppm [centre of amide N] Set dm = 'nnnn', dmm = 'cccc' Set dm2 = 'nnny', dmm2 = 'cccp' [15N decoupling during acquisition] dseq2 = 'waltz16' Must set phase = 1,2 and phase2 = 1,2 for States-TPPI acquisition in t1 [Ca] and t2 [N]. [The fids must be manipulated (add/subtract) with 'grad_sort_nd' program (or equivalent) prior to regular processing.] Flags fsat 'y' for presaturation of H2O fscuba 'y' for apply scuba pulse after presaturation of H2O mess_flg 'y' for 1H purge pulse in the middle of sequence f1180 'y' for 180 deg linear phase correction in F1 otherwise 0 deg linear phase correction f2180 'y' for 180 deg linear phase correction in F2 otherwise 0 deg CT_flg 'y' for constant time of t1 (C-alpha/beta) Standard Settings fsat='n',fscuba='n',mess_flg='n',f1180='y',f2180='n',CT_flg='n' Set f1180 to y for (-90,180) in Ca/Cb and f2180 to n for (0,0) in N Set the carbon carrier on the Ca and use the waveform to pulse the C' (This is opposite to the HNCO) Written by Lewis Kay 09/12/92 Note: The Ca peaks will be up and the Cb peaks will be down (180 degrees out of phase). Thus will not expect much signal in first block. To test sequence set zeta = 400us, bigTC to small value, and c180_flg='y' Modified by Lewis Kay 11/26/92 to include pfg Modified by L.E.K 03/16/93 to minimize phase cycle Modified by L.E.K 01/18/94 to minimize water saturation; based on hncacb_3c_pfg_sel.c; The user has the option of recording either a constant time spectrum in the carbon dimension or non-constant time. The later is preferred. Modified by L.E.K Feb, 14, 94 to only include N15 180 in t1 once the tau1 delay is sufficiently long (2*tau1 > N15 180) Modified by L.E.K June 13 to increase the phase cycle and remove artifacts Modified by L.E.K, Oct. 30, 1995 to correct mistake if c180_flg=='y' for testing purposes. Checked by L.E.K, Oct. 30, 1995 to ensure at least 2us delay between power statements and pulses. REF: D. R. Muhandiram and L. E. Kay J. Magn. Reson. B 103, 203-216 (1994). L. E. Kay, P. Keifer and T. Saarinen J. Am. Chem. Soc. 114, 10663-10665 (1992). Original non-gradient, unenhanced version M. Wittekind and L. Mueller J. Magn. Reson. B 101, 201 (1993). BMRB Pulse Sequence Accession Number: 38 */ #include #define PI 3.1416 #define DELAY_BLANK 2.0e-6 static int phi1[1] = {0}, phi2[1] = {1}, phi3[2] = {0,2}, phi4[1] = {0}, phi5[1] = {0}, phi6[1] = {0}, phi7[4] = {0,0,2,2}, phi8[8] = {1,1,1,1,3,3,3,3}, phi10[16] = {1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3}, phi11[1] = {0}, rec[4] = {0,2,2,0}, phi12[1] = {0}, phi13[8] = {0,0,0,0,2,2,2,2}, phi14[1] = {0}, phi15[1] = {0}, phi16[1] = {1}, phi17[1] = {1}; static double d2_init=0.0, d3_init=0.0; pulsesequence() { /* DECLARE VARIABLES */ char fsat[MAXSTR], fscuba[MAXSTR], f1180[MAXSTR], /* Flag to start t1 @ halfdwell */ f2180[MAXSTR], /* Flag to start t2 @ halfdwell */ codecseq[MAXSTR], /* co decoupling sequence */ mess_flg[MAXSTR], shp_sl[MAXSTR], /* waveform for water selective pulse */ c180_flg[MAXSTR], CT_flg[MAXSTR]; /* flag for constant time in the carbon dim. */ int phase, phase2, ni2, icosel, t1_counter, /* used for states tppi in t1 */ t2_counter; /* used for states tppi in t2 */ double tau1, /* t1 delay */ tau2, /* t2 delay */ taua, /* ~ 1/4JNH = 2.25 ms */ del1, /* time for C'-N to refocuss set to 0.5*24.0 ms */ bigTN, /* nitrogen T period */ bigTC, /* carbon T period */ zeta, /* delay for transfer from ca to cb = 3.5 ms */ pwn, /* PW90 for 15N pulse */ pwca90, /* PW90 for ca nucleus @ dhpwr */ pwcodec, /* PW90 for co decoupling @ dpwrco */ tsatpwr, /* low level 1H trans.power for presat */ tpwrml, /* power level for 1H decoupling */ tpwrmess, /* power level for water purge */ pwmlev, /* 1H 90 pulse at tpwrml */ dhpwr, /* power level for 13C pulse -pwca90- on dec1 */ dpwrco, /* power level for co decoupling */ dhpwr2, /* high dec2 pwr for 15N hard pulses */ sw1, /* sweep width in f1 */ sw2, /* sweep width in f2 */ BigT1, tauf, /* 1/2J NH value */ dly_pg1, pw_sl, /* selective pulse on water */ tpwrsl, /* power for pw_sl */ gt1, gt2, gt3, gt4, gt5, gt6, gt7, gt8, gt9, gt11, gt12, gt13, gzlvl1, gzlvl2, gzlvl3, gzlvl4, gzlvl5, gzlvl6, gzlvl7, gzlvl8, gzlvl9, gzlvl11, gzlvl12, gzlvl13; /* variables commented out are already defined by the system */ /* LOAD VARIABLES */ getstr("fsat",fsat); getstr("f1180",f1180); getstr("f2180",f2180); getstr("fscuba",fscuba); getstr("codecseq",codecseq); getstr("mess_flg",mess_flg); getstr("shp_sl",shp_sl); getstr("CT_flg",CT_flg); getstr("c180_flg",c180_flg); taua = getval("taua"); del1 = getval("del1"); bigTN = getval("bigTN"); bigTC = getval("bigTC"); zeta = getval("zeta"); pwca90 = getval("pwca90"); pwcodec = getval("pwcodec"); pwn = getval("pwn"); pwmlev = getval("pwmlev"); tpwr = getval("tpwr"); tsatpwr = getval("tsatpwr"); tpwrml = getval("tpwrml"); tpwrmess = getval("tpwrmess"); dhpwr = getval("dhpwr"); dpwr = getval("dpwr"); dhpwr2 = getval("dhpwr2"); dpwrco = getval("dpwrco"); phase = (int) ( getval("phase") + 0.5); phase2 = (int) ( getval("phase2") + 0.5); sw1 = getval("sw1"); sw2 = getval("sw2"); ni2 = getval("ni2"); tauf = getval("tauf"); BigT1 = getval("BigT1"); dly_pg1 = getval("dly_pg1"); pw_sl = getval("pw_sl"); tpwrsl = getval("tpwrsl"); gt1 = getval("gt1"); gt2 = getval("gt2"); gt3 = getval("gt3"); gt4 = getval("gt4"); gt5 = getval("gt5"); gt6 = getval("gt6"); gt7 = getval("gt7"); gt8 = getval("gt8"); gt9 = getval("gt9"); gt11 = getval("gt11"); gt12 = getval("gt12"); gt13 = getval("gt13"); gzlvl1 = getval("gzlvl1"); gzlvl2 = getval("gzlvl2"); gzlvl3 = getval("gzlvl3"); gzlvl4 = getval("gzlvl4"); gzlvl5 = getval("gzlvl5"); gzlvl6 = getval("gzlvl6"); gzlvl7 = getval("gzlvl7"); gzlvl8 = getval("gzlvl8"); gzlvl9 = getval("gzlvl9"); gzlvl11 = getval("gzlvl11"); gzlvl12 = getval("gzlvl12"); gzlvl13 = getval("gzlvl13"); /* LOAD PHASE TABLE */ settable(t1,1,phi1); settable(t2,1,phi2); settable(t3,2,phi3); settable(t4,1,phi4); settable(t5,1,phi5); settable(t6,1,phi6); settable(t7,4, phi7); settable(t8,8, phi8); settable(t9, 4, rec); settable(t10,16,phi10); settable(t11,1,phi11); settable(t12,1,phi12); settable(t13,8,phi13); settable(t14,1,phi14); settable(t15,1,phi15); settable(t16,1,phi16); settable(t17,1,phi17); /* CHECK VALIDITY OF PARAMETER RANGES */ if( ni2*1/(sw2) > 2.0*bigTN ) { printf(" ni2 is too big\n"); abort(1); } if((dm[A] == 'y' || dm[B] == 'y' || dm[C] == 'y' || dm[D] == 'y' )) { printf("incorrect dec1 decoupler flags! "); abort(1); } if((dm2[A] == 'y' || dm2[B] == 'y' || dm2[C] == 'y' )) { printf("incorrect dec2 decoupler flags! Should be 'nnnn' "); abort(1); } if( pwmlev < 30.0e-6 ) { printf("too much power during proton mlev sequence\n"); abort(1); } if( tpwrml > 53 ) { printf("tpwrml is too high\n"); abort(1); } if( tsatpwr > 6 ) { printf("TSATPWR too large !!! "); abort(1); } if( dpwr > 46 ) { printf("don't fry the probe, DPWR too large! "); abort(1); } if( dpwr2 > 46 ) { printf("don't fry the probe, DPWR2 too large! "); abort(1); } if( dhpwr > 63 ) { printf("don't fry the probe, DHPWR too large! "); abort(1); } if( dhpwr2 > 62 ) { printf("don't fry the probe, DHPWR2 too large! "); abort(1); } if( pw > 200.0e-6 ) { printf("dont fry the probe, pw too high ! "); abort(1); } if( pwmlev > 200.0e-6 ) { printf("dont fry the probe, pwmlev too high ! "); abort(1); } if( pwn > 200.0e-6 ) { printf("dont fry the probe, pwn too high ! "); abort(1); } if( pwcodec < 290.0e-6 ) { printf("dont fry the probe, pwcodec too short ! "); abort(1); } if( pwca90 > 200.0e-6 ) { printf("dont fry the probe, pwca90 too high ! "); abort(1); } if ( dpwrco > 47 ) { printf("dont fry the probe, dpwrco too high ! "); abort(1); } if( f2180[A] != 'n' ) { printf("flags may be set wrong: f2180=n for 3d\n"); abort(1); } if( gt1 > 15e-3 || gt2 > 15e-3 || gt3 > 15e-3 || gt4 > 15e-3 || gt5 > 15e-3 || gt6 > 15e-3 || gt7 > 15e-3 || gt8 > 15e-3 || gt9 > 15e-3 || gt11 > 15e-3 || gt12 > 15e-3 || gt13 > 15e-3) { printf("gti values must be < 15e-3\n"); abort(1); } if(tpwrsl > 25) { printf("tpwrsl must be less than 25\n"); abort(1); } /* Phase incrementation for hypercomplex 2D data */ if (phase == 2) { tsadd(t10,1,4); tsadd(t11,1,4); } if (phase2 == 2) { tsadd(t15,2,4); icosel = 1; } else icosel = -1; /* Set up f1180 tau1 = t1 */ if(CT_flg[A] == 'y') { tau1 = d2; if(f1180[A] == 'y') { tau1 += ( 1.0 / (2.0*sw1) ); if(tau1 < 0.2e-6) tau1 = 2.0e-6; } tau1 = tau1/2.0; } else { tau1 = d2; if(f1180[A] == 'y') { tau1 += ( 1.0 / (2.0*sw1) - 4.0/PI*pwca90 - 2.0e-6 - PRG_START_DELAY - PRG_STOP_DELAY - 2.0*POWER_DELAY ); } else tau1 = tau1 - (4.0/PI*pwca90 + 2.0e-6 + PRG_START_DELAY + PRG_STOP_DELAY + 2.0*POWER_DELAY ); if(tau1 < 0.2e-6) tau1 = 2.0e-6; tau1 = tau1/2.0; } /* Set up f2180 tau2 = t2 */ tau2 = d3; if(f2180[A] == 'y') { tau2 += ( 1.0 / (2.0*sw2) ); if(tau2 < 0.2e-6) tau2 = 0.2e-6; } tau2 = tau2/2.0; /* Calculate modifications to phases for States-TPPI acquisition */ if( ix == 1) d2_init = d2 ; t1_counter = (int) ( (d2-d2_init)*sw1 + 0.5 ); if(t1_counter % 2) { tsadd(t11,2,4); tsadd(t9,2,4); } if( ix == 1) d3_init = d3 ; t2_counter = (int) ( (d3-d3_init)*sw2 + 0.5 ); if(t2_counter % 2) { tsadd(t12,2,4); tsadd(t9,2,4); } /* BEGIN ACTUAL PULSE SEQUENCE */ status(A); rlpower(tsatpwr,TODEV); /* Set transmitter power for 1H presaturation */ rlpower(dhpwr,DODEV); /* Set Dec1 power to high power */ rlpower(dhpwr2,DO2DEV); /* Set Dec2 power for 15N hard pulses */ /* Presaturation Period */ status(B); if (fsat[0] == 'y') { delay(2.0e-5); xmtron(); hsdelay(d1); xmtroff(); rlpower(tpwr,TODEV); /* Set transmitter power for hard 1H pulses */ delay(2.0e-5); if(fscuba[0] == 'y') { delay(2.2e-2); rgpulse(pw,zero,2.0e-6,0.0); rgpulse(2*pw,one,2.0e-6,0.0); rgpulse(pw,zero,2.0e-6,0.0); delay(2.2e-2); } } else { delay(d1); } rlpower(tpwr,TODEV); /* Set transmitter power for hard 1H pulses */ txphase(zero); dec2phase(zero); delay(1.0e-5); /* Begin Pulses */ status(C); rcvroff(); delay(20.0e-6); /* ensure that magnetization originates on H and not 13C or 15N */ decrgpulse(pwca90,zero,0.0,0.0); dec2rgpulse(pwn,zero,2.0e-6,0.0); delay(0.2e-6); rgradient('z',gzlvl1); delay(gt1); rgradient('z',0.0); delay(150.0e-6); rgpulse(pw,zero,0.0,0.0); /* 90 deg 1H pulse */ delay(0.2e-6); rgradient('z',gzlvl2); delay(gt2); rgradient('z',0.0); delay(2.0e-6); delay(taua - gt2 - 2.2e-6); /* taua <= 1/4JNH */ sim3pulse(2*pw,0.0e-6,2*pwn,zero,zero,t1,0.0,0.0); txphase(t2); dec2phase(t3); decphase(zero); delay(taua - gt2 - 200.2e-6); delay(0.2e-6); rgradient('z',gzlvl2); delay(gt2); rgradient('z',0.0); delay(200.0e-6); rgpulse(pw,t2,0.0,0.0); /* shaped pulse */ rlpower(tpwrsl,TODEV); shaped_pulse(shp_sl,pw_sl,zero,2.0e-6,0.0); delay(2.0e-6); rlpower(tpwr,TODEV); /* shaped pulse */ delay(0.2e-6); rgradient('z',gzlvl3); delay(gt3); rgradient('z',0.0); delay(200.0e-6); dec2rgpulse(pwn,t3,0.0,0.0); /* CO decoupling on */ rlpower(dpwrco,DODEV); decprgon(codecseq,pwcodec,dres); decon(); /* CO decoupling on */ delay(5.5e-3 - 2*POWER_DELAY - 2*PRG_START_DELAY - pwmlev - 2.0e-6 - 2.0e-6); rlpower(tpwrml,TODEV); rgpulse(pwmlev,one,2.0e-6,0.0); txphase(zero); delay(2.0e-6); /* H decoupling on */ obsprgon("waltz16",pwmlev,90.0); xmtron(); /* H decoupling on */ dec2phase(t4); delay(del1 - 5.5e-3 + 2*pwca90 - POWER_DELAY - PRG_STOP_DELAY); /* CO decoupling off */ decoff(); decprgoff(); rlpower(dhpwr,DODEV); /* CO decoupling off */ decphase(t5); dec2rgpulse(2*pwn,t4,2.0e-6,0.0); decrgpulse(2*pwca90,t5,0.0,0.0); dec2phase(t6); /* CO decoupling on */ rlpower(dpwrco,DODEV); decprgon(codecseq,pwcodec,dres); decon(); /* CO decoupling on */ delay(del1 - 2*POWER_DELAY - PRG_START_DELAY - PRG_STOP_DELAY); /* CO decoupling off */ decoff(); decprgoff(); rlpower(dhpwr,DODEV); /* CO decoupling off */ dec2rgpulse(pwn,t6,2.0e-6,0.0); /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ rgpulse(pwmlev,three,2.0e-6,0.0); decphase(t7); delay(0.2e-6); rgradient('z',gzlvl4); delay(gt4); rgradient('z',0.0); delay(200.0e-6); decrgpulse(pwca90,t7,0.0,0.0); delay(2.0e-6); rgradient('z',gzlvl11); delay(gt11); rgradient('z',0.0); delay(50.0e-6); rlpower(tpwrml,TODEV); rgpulse(pwmlev,one,2.0e-6,0.0); txphase(zero); delay(2.0e-6); /* H decoupling on */ obsprgon("waltz16",pwmlev,90.0); xmtron(); /* H decoupling on */ /* CO decoupling on */ rlpower(dpwrco,DODEV); decprgon(codecseq,pwcodec,dres); decon(); /* CO decoupling on */ dec2phase(zero); decphase(zero); delay(zeta - 2*PRG_START_DELAY - 2*PRG_STOP_DELAY - 3*POWER_DELAY - gt11 - 52.0e-6 - 2.0*pwmlev - 2.0e-6 - 2.0e-6 - 2.0e-6); /* CO decoupling off */ decoff(); decprgoff(); rlpower(dhpwr,DODEV); /* CO decoupling off */ /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ rgpulse(pwmlev,three,2.0e-6,0.0); decrgpulse(2*pwca90,zero,2.0e-6,0.0); delay(2.0e-6); rgradient('z',gzlvl11); delay(gt11); rgradient('z',0.0); delay(50.0e-6); rlpower(tpwrml,TODEV); rgpulse(pwmlev,one,2.0e-6,0.0); txphase(zero); delay(2.0e-6); /* H decoupling on */ obsprgon("waltz16",pwmlev,90.0); xmtron(); /* H decoupling on */ /* CO decoupling on */ rlpower(dpwrco,DODEV); decprgon(codecseq,pwcodec,dres); decon(); /* CO decoupling on */ delay(zeta - 2*PRG_START_DELAY - PRG_STOP_DELAY - 3*POWER_DELAY - gt11 - 52.0e-6 - pwmlev - 2.0e-6 - 2.0e-6); /* CO decoupling off */ decoff(); decprgoff(); rlpower(dhpwr,DODEV); /* CO decoupling off */ if(CT_flg[A] == 'y' && c180_flg[A] == 'n') { decrgpulse(pwca90,t8,2.0e-6,0.0); /* CO decoupling on */ rlpower(dpwrco,DODEV); decprgon(codecseq,pwcodec,dres); decon(); /* CO decoupling on */ delay(tau1); dec2rgpulse(2*pwn,zero,0.0,0.0); delay(bigTC - 2.0*pwn - gt12 - 100.2e-6 - 2*POWER_DELAY - 2*PRG_STOP_DELAY - PRG_START_DELAY - 2.0e-6 - pwmlev); /* CO decoupling off */ decoff(); decprgoff(); rlpower(dhpwr,DODEV); /* CO decoupling off */ /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ rgpulse(pwmlev,three,2.0e-6,0.0); delay(2.0e-7); rgradient('z',gzlvl12); delay(gt12); rgradient('z',0.0); delay(100.0e-6); decrgpulse(2*pwca90,zero,0.0,0.0); delay(2.0e-7); rgradient('z',gzlvl12); delay(gt12); rgradient('z',0.0); delay(100.0e-6); rlpower(tpwrml,TODEV); rgpulse(pwmlev,one,2.0e-6,0.0); txphase(zero); delay(2.0e-6); /* H decoupling on */ obsprgon("waltz16",pwmlev,90.0); xmtron(); /* H decoupling on */ /* CO decoupling on */ rlpower(dpwrco,DODEV); decprgon(codecseq,pwcodec,dres); decon(); /* CO decoupling on */ delay(bigTC - tau1 - 2*PRG_START_DELAY - 3*POWER_DELAY - gt12 - 100.2e-6 - PRG_STOP_DELAY - 2.0e-6 - pwmlev - 2.0e-6 - 2.0e-6); /* CO decoupling off */ decoff(); decprgoff(); rlpower(dhpwr,DODEV); /* CO decoupling off */ decrgpulse(pwca90,t10,2.0e-6,0.0); } else if(CT_flg[A] == 'n' && c180_flg[A] == 'n') { decrgpulse(pwca90,t8,2.0e-6,0.0); /* CO decoupling on */ rlpower(dpwrco,DODEV); decprgon(codecseq,pwcodec,dres); decon(); /* CO decoupling on */ if( tau1 >= pwn + 2.0e-7) { delay(tau1 - pwn); dec2rgpulse(2*pwn,zero,0.0,0.0); delay(tau1 - pwn); } else delay(2.0*tau1); /* CO decoupling off */ decoff(); decprgoff(); rlpower(dhpwr,DODEV); /* CO decoupling off */ decrgpulse(pwca90,t10,2.0e-6,0.0); if( tau1 < pwn + 2.0e-7) dec2rgpulse(2*pwn,zero,0.0,0.0); } else if(c180_flg[A] == 'y') { decrgpulse(pwca90,t8,2.0e-6,0.0); decrgpulse(2*pwca90,zero,2.0e-6,2.0e-6); decrgpulse(pwca90,t10,2.0e-6,0.0); } /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ rgpulse(pwmlev,three,2.0e-6,0.0); delay(2.0e-6); rgradient('z',gzlvl13); delay(gt13); rgradient('z',0.0); delay(50.0e-6); rlpower(tpwrml,TODEV); rgpulse(pwmlev,one,2.0e-6,0.0); txphase(zero); delay(2.0e-6); /* H decoupling on */ obsprgon("waltz16",pwmlev,90.0); xmtron(); /* H decoupling on */ /* CO decoupling on */ rlpower(dpwrco,DODEV); decprgon(codecseq,pwcodec,dres); decon(); /* CO decoupling on */ if( tau1 < pwn + 2.0e-7 && c180_flg[A] == 'n') delay(zeta - 2*PRG_START_DELAY - 2*PRG_STOP_DELAY - 3*POWER_DELAY - gt13 - 52.0e-6 - 2.0*pwmlev - 2.0e-6 - 2.0e-6 - 2.0e-6 - 2.0*pwn); else delay(zeta - 2*PRG_START_DELAY - 2*PRG_STOP_DELAY - 3*POWER_DELAY - gt13 - 52.0e-6 - 2.0*pwmlev - 2.0e-6 - 2.0e-6 - 2.0e-6); /* CO decoupling off */ decoff(); decprgoff(); rlpower(dhpwr,DODEV); /* CO decoupling off */ decrgpulse(2*pwca90,zero,2.0e-6,0.0); /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ rgpulse(pwmlev,three,2.0e-6,0.0); delay(2.0e-6); rgradient('z',gzlvl13); delay(gt13); rgradient('z',0.0); delay(50.0e-6); rlpower(tpwrml,TODEV); rgpulse(pwmlev,one,2.0e-6,0.0); txphase(zero); delay(2.0e-6); /* H decoupling on */ obsprgon("waltz16",pwmlev,90.0); xmtron(); /* H decoupling on */ /* CO decoupling on */ rlpower(dpwrco,DODEV); decprgon(codecseq,pwcodec,dres); decon(); /* CO decoupling on */ delay(zeta - 2*PRG_START_DELAY - 2*PRG_STOP_DELAY - 3*POWER_DELAY - gt13 - 52.0e-6 - 2.0*pwmlev - 2.0e-6 - 2.0e-6 - 2.0e-6); /* CO decoupling off */ decoff(); decprgoff(); rlpower(dhpwr,DODEV); /* CO decoupling off */ decrgpulse(pwca90,t11,2.0e-6,0.0); /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ rgpulse(pwmlev,three,2.0e-6,0.0); if(mess_flg[A] == 'y') { rlpower(tpwrmess,TODEV); txphase(zero); xmtron(); delay(dly_pg1); xmtroff(); txphase(one); xmtron(); delay(dly_pg1/1.62); xmtroff(); rlpower(tpwr,TODEV); } delay(0.2e-6); rgradient('z',gzlvl5); delay(gt5); rgradient('z',0.0); delay(200.0e-6); rlpower(tpwrml,TODEV); rgpulse(pwmlev,one,2.0e-6,0.0); txphase(zero); delay(2.0e-6); /* H decoupling on */ obsprgon("waltz16",pwmlev,90.0); xmtron(); /* H decoupling on */ dec2rgpulse(pwn,t12,2.0e-6,0.0); /* CO decoupling on */ rlpower(dpwrco,DODEV); decprgon(codecseq,pwcodec,dres); decon(); /* CO decoupling on */ dec2phase(t13); decphase(t14); delay(bigTN - tau2 + 2*pwca90); /* CO decoupling off */ decoff(); decprgoff(); rlpower(dhpwr,DODEV); /* CO decoupling off */ dec2rgpulse(2*pwn,t13,0.0,0.0); decrgpulse(2*pwca90,t14,0.0,0.0); /* CO decoupling on */ rlpower(dpwrco,DODEV); decprgon(codecseq,pwcodec,dres); decon(); /* CO decoupling on */ delay(bigTN + tau2 - 5.5e-3 - POWER_DELAY - PRG_STOP_DELAY - pwmlev - 2.0e-6); /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ rgpulse(pwmlev,three,2.0e-6,0.0); rlpower(tpwr,TODEV); delay(2.5e-3); /* CO decoupling off */ decoff(); decprgoff(); rlpower(dhpwr,DODEV); /* CO decoupling off */ delay(0.2e-6); rgradient('z',icosel*gzlvl6); delay(gt6); rgradient('z',0.0); delay(2.0e-6); txphase(zero); dec2phase(t15); delay(3.0e-3 - gt6 - 2.2e-6 - 2.0*GRADIENT_DELAY); sim3pulse(pw,0.0e-6,pwn,zero,zero,t15,0.0,0.0); delay(0.2e-6); rgradient('z',gzlvl7); delay(gt7); rgradient('z',0.0); delay(2.0e-6); dec2phase(zero); delay(tauf - gt7 - 2.2e-6); sim3pulse(2*pw,0.0e-6,2*pwn,zero,zero,zero,0.0,0.0); txphase(t16); dec2phase(t17); delay(tauf - gt7 - 200.2e-6); delay(0.2e-6); rgradient('z',gzlvl7); delay(gt7); rgradient('z',0.0); delay(200.0e-6); sim3pulse(pw,0.0e-6,pwn,t16,zero,t17,0.0,0.0); delay(0.2e-6); rgradient('z',gzlvl8); delay(gt8); rgradient('z',0.0); delay(2.0e-6); txphase(zero); dec2phase(zero); delay(tauf - gt8 - 2.2e-6); sim3pulse(2*pw,0.0e-6,2*pwn,zero,zero,zero,0.0,0.0); delay(tauf - gt8 - 200.2e-6); delay(0.2e-6); rgradient('z',gzlvl8); delay(gt8); rgradient('z',0.0); delay(200.0e-6); rgpulse(pw,zero,0.0,0.0); delay(BigT1); rgpulse(2*pw,zero,0.0,0.0); delay(2.0e-6); rgradient('z',gzlvl9); delay(gt9); rgradient('z',0.0); delay(2.0e-6); delay(BigT1 - gt9 - POWER_DELAY - 4.0e-6 - 2.0*GRADIENT_DELAY); rlpower(dpwr2,DO2DEV); /* set power for 15N decoupling */ /* rcvron(); */ /* Turn on receiver to warm up before acq */ /* BEGIN ACQUISITION */ status(D); setreceiver(t9); }