/* HBCBHACAcoNH_RD1.c ************************************************************************** 1. The all pulse widths and power levels of 13C rf pulses and decoupling sequences are calculated automatically in the pulse sequence. 2. Correspondingly, parameter file is modified. 3. tau1ai, tau1bi and tau1ci are calculated automatically. 4. For deuterated sample, set TROSY='y' and dm3='nyn'. For no-deuterated sample, set dm2='nnn'. 5. Calibration compared to spectrum recorded by Nhsqc.c when TROSY='y': rfl=rfl-45 rfl2=rfl2+45 flgab 'a' to record spectrum a, otherwise to record spectrum b. dof -> 58ppm, dofcacb -> 43ppm modified by Youlin Xia on June, 2001 C. Arrowsmith lab, OCI/Dept. of Medical Biophysics, University of Toronto ************************************************************************** This pulse sequence will allow one to perform the following experiment: 3D cbcaconnh (enhanced sensitivity PFG and with minimal perturbation of water) correlating cb(i),ca(i) with n(i+1), nh(i+1). F1 H(beta(i), C_beta (i), C_alpha (i), H_alpha (i) F2 N (i+1) F3(acq) NH (i+1) Uses three channels: 1) 1H - carrier (tof) @ 4.7ppm [H2O] - carrier (projtof) @ 0 ppm for 1H frequency labelling 2) 13C - carrier (dof @ 58ppm [CA] and dofcacb @ 43ppm [CA,CB]) (Note: centre of F1 is 43ppm (dofcacb)) 3) 15N - carrier (dof2)@ 119ppm [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 [carbon] and t2 [N]. [The fids must be manipulated (add/subtract) with 'grad_sort_nd' program (or equivalent) before regular processing.] Flags fsat 'y' for presaturation of H2O fscuba 'y' to apply scuba pulse after presaturation of H2O f1180 'y' to get 180deg linear phase correction in F1, otherwise linear phase correction is 0. f2180 'y' to get 180deg linear phase correction in F2, otherwise linear phase correction is 0. flgab 'a' to record spectrum a, otherwise to record spectrum b Standard Settings: fsat='n', fscuba='n', f1180='n', f2180='n'. The flag f1180/f2180 should be set to 'y' if t1 is to be started at halfdwell time. This will give -90, 180 phasing in f1/f2. If it is set to 'n' the phasing will be 0,0 and will still give a perfect baseline. Set f1180 to n for (0,0) in C and f2180 = n for (0,0) in N Written by Thomas Szyperski based on Lewis Kay's CBCA(CONH */ #include static int phi1[1] = {0}, phi2[1] = {1}, phi16[1] = {0}, phi3[4] = {0,0,2,2}, phi4[1] = {0}, phi5[2] = {0,2}, phi6[2] = {0,2}, phi7[1] = {0}, phi8[1] = {0}, phi9[4] = {0,0,2,2}, rec[4] = {0,2,2,0}, phi11[1] = {0}, phi12[1] = {1}, phi13[1] = {1}, phi14[2] = {0,2}, phi15[2] = {1,3}; 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 */ flgab[MAXSTR], /* Flag to record spectrum a or b */ spco180a[MAXSTR], spco90b[MAXSTR], spco180b[MAXSTR], shp_sl[MAXSTR], TROSY[MAXSTR], cadecseq[MAXSTR]; int RDphase,phase, phase2, ni, ni2, icosel, /* used to get n and p type */ t1_counter, /* used for states tppi in t1 */ t2_counter; /* used for states tppi in t2 */ double tau1, /* t1 delay */ tau1ai, tau1bi, tau1ci, tau2, /* t2 delay */ taub, taua, /* ~ 1/4JCH = 1.7 ms */ tauc, /* ~ 1/4JCAC' = 3.6 ms */ taud, /* ~ 1/4JC'CA = 4.3, 4.4 ms */ taue, /* 1/4JC'N = 12.4 ms */ tauf, /* 1/4JNH = 2.25 ms */ BigTC, /* carbon constant time period */ BigTN, /* nitrogen constant time period */ pwN, /* PW90 for 15N pulse */ pwca90a, /* PW90 for 13C at dvhpwr */ pwca90b, /* PW90 for 13C at dvhpwr */ pwca180a, /* PW180 for 13C at dvhpwra */ pwco180a, pwca180b, /* PW180 for ca nucleus @ dvhpwrb */ pwco180b, pwco90b, /* PW90 for co nucleus @ dhpwrb */ tsatpwr, /* low level 1H trans.power for presat */ tpwrsl, /* power for soft pulse on water */ tpwrml, /* power level for h decoupling */ projtof, /* 1h carrier for 1h semi-ct labeling */ pwmlev, /* h 90 pulse at tpwrml */ pw_sl, /* soft pulse on water for suppression */ sfreq,lambda, compC = getval("compC"), /* adjustment for C13 amplifier compression */ 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 */ rfca90a, /* power level for 13C pulses on dec1 90 for part a of the sequence at 43 ppm */ rfca90b, /* power level for 180 13C pulses at 43 ppm */ rfca180a, /* power level for 180 13C pulses at 43 ppm */ rfco180b, /* power level for 13C pulses on dec1 - 54 ppm 90 for part b of the sequence*/ rfca180b, /* power level for 13C pulses on dec1 - 54 ppm 180 for part b of the sequence */ rfcadec, /* power level for seduce ca decoupling */ rfco180a, /* power level for pwco180a, 180 shaped C' */ pwNlvl, /* high dec2 pwr for 15N hard pulses */ sw1, /* sweep width in f1 */ sw2, /* sweep width in f2 */ dofcacb, /* dof for dipsi part, 43 ppm */ pwcadec, /* seduce ca decoupling at dpwrsed */ dressed, /* resoln for seduce decoupling = 2 */ BigT1, gt1, gt2, gt4, gt5, gt6, gt7, gt9, gt10, gzlvl1, gzlvl2, gzlvl4, gzlvl5, gzlvl6, gzlvl7, gzlvl9, gzlvl10; /* variables commented out are already defined by the system */ /* LOAD VARIABLES */ getstr("fsat",fsat); getstr("f1180",f1180); getstr("f2180",f2180); getstr("flgab",flgab); getstr("fscuba",fscuba); getstr("TROSY",TROSY); taua = getval("taua"); taub = getval("taub"); tauc = getval("tauc"); taud = getval("taud"); taue = getval("taue"); tauf = getval("tauf"); BigTC = getval("BigTC"); BigTN = getval("BigTN"); pwN = getval("pwN"); projtof = getval("projtof"); tpwr = getval("tpwr"); tsatpwr = getval("tsatpwr"); dpwr = getval("dpwr"); pwNlvl = getval("pwNlvl"); phase = (int) ( getval("phase") + 0.5); phase2 = (int) ( getval("phase2") + 0.5); sw1 = getval("sw1"); sw2 = getval("sw2"); dofcacb = getval("dofcacb"); ni = getval("ni"); ni2 = getval("ni2"); pwcadec = getval("pwcadec"); dressed = getval("dressed"); BigT1 = getval("BigT1"); gt1 = getval("gt1"); gt2 = getval("gt2"); gt4 = getval("gt4"); gt5 = getval("gt5"); gt6 = getval("gt6"); gt7 = getval("gt7"); gt9 = getval("gt9"); gt10 = getval("gt10"); gzlvl1 = getval("gzlvl1"); gzlvl2 = getval("gzlvl2"); gzlvl4 = getval("gzlvl4"); gzlvl5 = getval("gzlvl5"); gzlvl6 = getval("gzlvl6"); gzlvl7 = getval("gzlvl7"); gzlvl9 = getval("gzlvl9"); gzlvl10 = getval("gzlvl10"); /* LOAD PHASE TABLE */ settable(t1,1,phi1); settable(t16,1,phi16); settable(t2,1,phi2); settable(t3,4,phi3); settable(t4,1,phi4); settable(t5,2,phi5); settable(t6,2,phi6); settable(t7,1,phi7); settable(t8,1,phi8); settable(t9,4,phi9); settable(t10,4,rec); settable(t11,1,phi11); settable(t12,1,phi12); settable(t13,1,phi13); settable(t14,2,phi14); settable(t15,2,phi15); RDphase = (int) (getval("RDphase") + 0.5); if(RDphase==2) tsadd(t3,1,4); /* INITIALIZE VARIABLES */ /* maximum fine power for pwC pulses */ rf0 = 4095.0; sfreq = ( (int) ((sfrq +5.0) *0.1))*10.0; /* 90 degree hard pulse on CA, null at CO 118ppm away */ pwca90a = ( (int) ( (10*47.5*600.0/sfreq) + 0.5) )*0.1e-6; rfca90a = (compC*4095.0*pwC)/pwca90a; rfca90a = (int) (rfca90a + 0.5); pwca90b = ( (int) ( (10*52*600.0/sfreq) + 0.5) )*0.1e-6; rfca90b = (compC*4095.0*pwC)/pwca90b; rfca90b = (int) (rfca90b + 0.5); /* 180 degree hard pulse on CA, null at CO 118ppm away */ pwca180a = ( (int) ( (10*42.5*600.0/sfreq) + 0.5) )*0.1e-6; rfca180a = (compC*4095.0*pwC*2.0)/pwca180a; rfca180a = (int) (rfca180a + 0.5); /* 180 degree hard pulse on CA, null at CO 118ppm away */ pwca180b = ( (int) ( (10*48*600.0/sfreq) + 0.5) )*0.1e-6; rfca180b = (compC*4095.0*pwC*2.0)/pwca180b; rfca180b = (int) (rfca180b + 0.5); /* 90 degree hard pulse on CO, null at CA 118ppm away */ pwco90b = ( (int) ( (10*51.6*600.0/sfreq) + 0.5) )*0.1e-6; /* power level is rfco180b */ strcpy(spco90b,"hard_90co_HACACONH"); /* 180 degree seduce1 off-resonance pulse on CO, null at CA 118ppm away*/ pwco180a = ( (int) ( (10*200*600.0/sfreq) + 0.5) )*0.1e-6; rfco180a = (compC*4095.0*2.0*pwC*2.16)/pwco180a; /* needs 2.16 times more */ rfco180a = (int) (rfco180a + 0.5); /* power than a square pulse */ strcpy(spco180a,"seduce1_180co_HBCBHACACONH"); /* 180 degree hard pulse on CO, null at Ca 118ppm away */ pwco180b = ( (int) ( (10*103.2*600.0/sfreq) + 0.5) )*0.1e-6; rfco180b = (compC*4095.0*pwC*2.0)/pwco180b; rfco180b = (int) (rfco180b + 0.5); strcpy(spco180b,"hard_180co_HACACONH"); /* power level and pulse time for WALTZ 1H decoupling */ pwmlev = 1/(4.0 * 6000*sfrq/600) ; /* 6.0 kHz rf */ tpwrml = tpwr - 20.0*log10(pwmlev/(pw)); tpwrml = (int) (tpwrml + 0.5); /* 90 degree seduce1 on-resonance pulse on CA, null at CO 118ppm away, for cadecseq */ pwcadec = ( (int) ( (10*252*600.0/sfreq) + 0.5) )*0.1e-6; rfcadec = (compC*4095.0*pwC*2.16)/pwcadec; /* needs 2.16 times more */ rfcadec = (int) (rfcadec + 0.5); /* power than a square pulse */ strcpy(cadecseq,"seduce1_cadec_HACACONH"); /* 90 degree seduce1 pulse on H2O */ pw_sl=1.455e-3*600/sfreq; tpwrsl = tpwr - 20.0*log10(pw_sl/(pw*2.16)); /* needs 2.16 times more */ tpwrsl = (int) (tpwrsl + 0.5); /* power than a square pulse */ strcpy(shp_sl,"seduce1"); /* semi constant time increments calculation */ tau1ai=1.0/(2.0*sw1); lambda=1.0-(taua - gt2 + 4*pwC -1.0e-4)/(ni*tau1ai); if (lambda < 0) lambda=1.0; tau1ci=(1.0-lambda)*tau1ai; tau1bi=tau1ai-tau1ci; if (ix==1) printf(" tau1ai= %f tau1bi= %f tau1ci= %f lambda= %f \n", tau1ai,tau1bi,tau1ci,lambda); /* CHECK VALIDITY OF PARAMETER RANGES */ if ( TROSY[A]=='y' && dm2[D] == 'y' ) {printf("Choose either TROSY='n' or dm2='n' ! "); abort(1);} if ( TROSY[A]!='y' && dm2[D] == 'n') { printf("Choose either TROSY='y' or dm2='y' ! "); abort(1);} if ( dm3[A] == 'y' || dm3[C] == 'y' ) { printf("incorrect dec3 decoupler flags! Should be 'nyn' or 'nnn' "); abort(1);} if( 0.5*ni*1/(sw1) > BigTC - gt10 ) { printf(" ni is too big\n"); abort(1); } 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 'nnny' "); abort(1); } if( pwmlev < 20.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( tpwrsl > 25 ) { printf("tpwrsl is too high\n"); abort(1); } if( tsatpwr > 6 ) { printf("TSATPWR too large !!! "); abort(1); } if( dpwr > 47 ) { printf("don't fry the probe, DPWR too large! "); abort(1); } if( dpwr2 > 50 ) { printf("don't fry the probe, DPWR2 too large! "); abort(1); } if( pwNlvl > 62 ) { printf("don't fry the probe, pwNlvl 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( pwca90a > 200.0e-6 ) { printf("dont fry the probe, pwca90a too high ! "); abort(1); } if( pwca180a > 200.0e-6 ) { printf("dont fry the probe, pwca180a too high ! "); abort(1); } if( pwca180b > 200.0e-6 ) { printf("dont fry the probe, pwca180b too high ! "); abort(1); } if( pwco90b > 200.0e-6 ) { printf("dont fry the probe, pwco180b too high ! "); abort(1); } if( pwcadec > 500.0e-6 || pwcadec < 200.0e-6 ) { printf("pwcadec outside reasonable limits: < 500e-6 > 200e-6 \n"); abort(1); } if( compC > 1.0 ) { printf("dont fry the probe, compC too high ! "); abort(1); } if( pwC>40.0 || (pwC>30.0 && pwClvl > 57) || (pwC > 20 && pwClvl > 60) ) { printf("dont fry the probe, pwC too high ! "); abort(1); } if( gt1 > 15e-3 || gt2 > 15e-3 || gt4 >=15e-3 || gt5 > 15e-3 || gt6 >= 15e-3 || gt7 >= 15e-3 || gt9 >= 15e-3 || gt10 >= 15e-3) { printf("all gti values must be < 15e-3\n"); abort(1); } if(gt10 > 250.0e-6) { printf("gt10 must be 250e-6\n"); abort(1); } /* Phase incrementation for hypercomplex 2D data */ if (TROSY[A]=='y') {tsadd(t11, 3, 4);if (phase2 == 1) tsadd(t10,2,4);} if (phase == 2) tsadd(t16,1,4); if (phase2 == 2) { tsadd(t11,2,4); icosel = 1; } else icosel = -1; /* Set up f1180 tau1 = t1 */ tau1 = d2; if(f1180[A] == 'y') { tau1 += ( 1.0 / (2.0*sw1) ); if(tau1 < 0.2e-6) tau1 = 0.0; } 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.0; } 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(t16,2,4); tsadd(t10,2,4); } if( ix == 1) d3_init = d3 ; t2_counter = (int) ( (d3-d3_init)*sw2 + 0.5 ); if(t2_counter % 2) { tsadd(t8,2,4); tsadd(t10,2,4); } /* BEGIN ACTUAL PULSE SEQUENCE */ status(C); offset(tof,TODEV); /* initially pulse 1h at 0 ppm */ offset(dofcacb,DODEV); decpower(pwClvl); decpwrf(rf0); rlpower(pwNlvl,DO2DEV); /* Set Dec2 power for 15N hard pulses */ /* Presaturation Period */ if (fsat[A] == 'y') { offset(tof,TODEV); rlpower(tsatpwr,TODEV); /* Set transmitter power for 1H presaturation */ delay(2.0e-5); rgpulse(d1,zero,rof1,rof1); rlpower(tpwr,TODEV); /* Set transmitter power for hard 1H pulses */ delay(2.0e-5); offset(projtof,TODEV); if(fscuba[A] == '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); if (dm3[B] == 'y') lk_hold(); rlpower(tpwr,TODEV); /* Set transmitter power for hard 1H pulses */ txphase(zero); delay(1.0e-5); /* Begin Pulses */ rcvroff(); delay(20.0e-6); dec2rgpulse(pwN,zero,0.0,0.0); delay(20.0e-6); decrgpulse(pwC,zero,0.0,0.0); delay(20.0e-6); delay(0.2e-6); rgradient('z',gzlvl1); delay(gt1); rgradient('z',0.0); delay(650.0e-6); delay(0.2e-6); rgradient('z',gzlvl1); delay(gt1); rgradient('z',0.0); delay(650.0e-6); offset(projtof,TODEV); delay(10.0e-6); if(flgab[A] == 'a') rgpulse(pw,zero,0.0,0.0); /* 90 deg 1H pulse */ else rgpulse(pw,two,0.0,0.0); /* 90 deg 1H pulse */ decphase(t14); delay(0.2e-6); rgradient('z',gzlvl2); delay(gt2); rgradient('z',0.0); delay(2.0e-6); decpwrf(rf0); delay(taua - POWER_DELAY - gt2 - 2.2e-6); /* taua <= 1/4JCH */ decrgpulse(pwC,t15,0.0,0.0); decrgpulse(2*pwC,t14,0.0,0.0); decrgpulse(pwC,t15,0.0,0.0); delay(1.0e-6); rgpulse(2*pw,zero,0.0,0.0); delay(0.2e-6); rgradient('z',gzlvl2); delay(gt2); rgradient('z',0.0); delay(2.0e-6); txphase(t2); decphase(t3); delay(taua - POWER_DELAY - gt2 - 2.2e-6 +1.0e-6 + 4*pwC); rgpulse(pw,t2,0.0,0.0); offset(tof,TODEV); delay(0.2e-6); rgradient('z',gzlvl1); delay(gt1); rgradient('z',0.0); delay(1.0e-3); if(dm3[B] == 'y') /*optional 2H decoupling on */ {dec3unblank(); setstatus(DEC3ch, TRUE, 'w', FALSE, dmf3);} decrgpulse(pwC,t3,2.0e-6,0.0); delay(2.0e-6); delay(tau1); decpwrf(rfco180a); decshaped_pulse(spco180a,pwco180a,zero,4.0e-6,0.0); dec2rgpulse(2*pwN,zero,0.0,0.0); decpwrf(rfca180a); if(dm3[B] == 'y') /*optional 2H decoupling off */ {dec3blank(); setstatus(DEC3ch, FALSE, 'w', FALSE, dmf3); dec3blank();} delay(2.0e-6); rgradient('z',gzlvl10); delay(gt10); rgradient('z',0.0); delay(92.0e-6); if(dm3[B] == 'y') /*optional 2H decoupling on */ {dec3unblank(); setstatus(DEC3ch, TRUE, 'w', FALSE, dmf3);} delay(taub - gt10 - 94.0e-6 - 2*POWER_DELAY); delay(0.2e-6); rgpulse(2*pw,zero,0.0,0.0); decphase(t4); delay(BigTC - taub); decrgpulse(pwca180a,t4,0.0,0.0); if(dm3[B] == 'y') /*optional 2H decoupling off */ {dec3blank(); setstatus(DEC3ch, FALSE, 'w', FALSE, dmf3); dec3blank();} delay(2.0e-6); rgradient('z',gzlvl10); delay(gt10); rgradient('z',0.0); delay(92.0e-6); if(dm3[B] == 'y') /*optional 2H decoupling on */ {dec3unblank(); setstatus(DEC3ch, TRUE, 'w', FALSE, dmf3);} delay(BigTC - tau1 + 2*pwN + 2*pw - 2*POWER_DELAY - gt10 - 94.0e-6); delay(0.2e-6); decpwrf(rfco180a); decshaped_pulse(spco180a,pwco180a,zero,4.0e-6,0.0); /* bloch seigert */ decpwrf(rfca90a); decrgpulse(pwca90a,zero,2.0e-6,0.0); offset(dof,DODEV); txphase(one); delay(2.0e-6); /* H decoupling on */ rlpower(tpwrml,TODEV); obsprgon("waltz16",pwmlev,90.0); xmtron(); /* TURN ME OFF DONT FORGET */ /* H decoupling on */ decpwrf(rfco180b); decshaped_pulse(spco180b,pwco180b,zero,4.0e-6,0.0); /* bloch seigert */ decphase(t5); delay(tau1); dec2rgpulse(2.0*pwN, zero, 0.0, 0.0); delay(tauc - 3*POWER_DELAY - PRG_START_DELAY); decpwrf(rfca180b); decrgpulse(pwca180b,t5,0.0,0.0); decpwrf(rfco180b); decshaped_pulse(spco180b,pwco180b,zero,4.0e-6,0.0); decphase(zero); decpwrf(rfca90b); delay(tauc - tau1 +2*pwN - 2*POWER_DELAY); decrgpulse(pwca90b,t16,0.0,0.0); if(dm3[B] == 'y') /*optional 2H decoupling off */ {dec3blank(); setstatus(DEC3ch, FALSE, 'w', FALSE, dmf3); dec3blank();} /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ rgpulse(pwmlev,two,2.0e-6,0.0); delay(0.2e-6); offset(dof,DODEV); decpwrf(rfco180b); delay(0.2e-6); rgradient('z',gzlvl4); delay(gt4); rgradient('z',0.0); delay(50.0e-6); rgpulse(pwmlev,zero,2.0e-6,0.0); txphase(one); delay(2.0e-6); /* H decoupling on */ rlpower(tpwrml,TODEV); obsprgon("waltz16",pwmlev,90.0); xmtron(); /* H decoupling on */ decphase(t6); delay(2.0e-6); decshaped_pulse(spco90b,pwco90b,t6,0.0,0.0); decphase(zero); delay(taud - POWER_DELAY - 4.0e-6); decpwrf(rfca180b); decrgpulse(pwca180b,zero,4.0e-6,0.0); decpwrf(rfco180b); delay(taue - taud - POWER_DELAY + 2*pwN); decshaped_pulse(spco180b,pwco180b,zero,0.0,0.0); dec2rgpulse(2*pwN,zero,0.0,0.0); delay(taue - 2*POWER_DELAY - 4.0e-6 - 4.0e-6); decpwrf(rfca180b); decrgpulse(pwca180b,zero,4.0e-6,0.0); /* bloch seigert */ decpwrf(rfco180b); decshaped_pulse(spco90b,pwco90b,t7,4.0e-6,0.0); /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ rgpulse(pwmlev,two,2.0e-6,0.0); delay(0.2e-6); rgradient('z',gzlvl5); delay(gt5); rgradient('z',0.0); delay(50.0e-6); if (TROSY[A]!='y') {rgpulse(pwmlev,zero,2.0e-6,0.0); txphase(one); delay(2.0e-6); rlpower(tpwrml,TODEV); obsprgon("waltz16",pwmlev,90.0); xmtron();} /* N15 evolution */ dec2rgpulse(pwN,t8,2.0e-6,0.0); dec2phase(t9); decphase(zero); /* seduce on */ decpwrf(rfcadec); decprgon(cadecseq,pwcadec,dressed); decon(); /* seduce on */ delay(BigTN - tau2 + WFG_START_DELAY + WFG_STOP_DELAY + pwco180b); /* seduce off */ decoff(); decprgoff(); decpwrf(rfco180b); /* seduce off */ dec2rgpulse(2*pwN,t9,0.0,0.0); decshaped_pulse(spco180b,pwco180b,zero,0.0,0.0); dec2phase(t11); /* seduce on */ decpwrf(rfcadec); decprgon(cadecseq,pwcadec,dressed); decon(); /* seduce on */ if (TROSY[A]!='y') {delay(BigTN + tau2 - 5.5e-3 - POWER_DELAY - PRG_STOP_DELAY -300*pw -pwmlev -2.0e-6); /* H decoupling off */ xmtroff(); obsprgoff(); /* H decoupling off */ rgpulse(pwmlev,two,2.0e-6,0.0); rlpower(tpwr,TODEV); rgpulse(200*pw,zero,2.0e-6,0.0); rgpulse(100*pw,one,2.0e-6,0.0); delay(2.5e-3); /* seduce off */ decoff(); decprgoff(); decpwrf(rfco180b); /* seduce off */ delay(0.2e-6); rgradient('z',icosel*gzlvl6); delay(gt6); rgradient('z',0.0); delay(2.0e-6); txphase(zero); dec2phase(t11); delay(3.0e-3 - gt6 - 2.2e-6 - 2.0*GRADIENT_DELAY); /* pep */ sim3pulse(pw,0.0,pwN,zero,zero,t11,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.0,2*pwN,zero,zero,zero,0.0,0.0); delay(0.2e-6); rgradient('z',gzlvl7); delay(gt7); rgradient('z',0.0); delay(2.0e-6); txphase(t12); dec2phase(t13); delay(tauf - gt7 - 2.2e-6); sim3pulse(pw,0.0,pwN,t12,zero,t13,0.0,0.0); delay(0.2e-6); rgradient('z',gzlvl7); delay(gt7); rgradient('z',0.0); delay(2.0e-6); txphase(zero); dec2phase(zero); delay(tauf - gt7 - 2.2e-6); sim3pulse(2*pw,0.0,2*pwN,zero,zero,zero,0.0,0.0); delay(0.2e-6); rgradient('z',gzlvl7); delay(gt7); rgradient('z',0.0); delay(2.0e-6); txphase(zero); delay(tauf - gt7 - 2.2e-6); rgpulse(pw,zero,0.0,0.0); txphase(zero); 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*GRADIENT_DELAY); rlpower(dpwr2,DO2DEV); /* set power for 15N decoupling */ } else {delay(BigTN + tau2 - 0.5e-4 - pw_sl-gt6-9.0e-5); /* seduce off */ decoff(); decprgoff(); decpwrf(rfco180b); /* seduce off */ zgradpulse(icosel*gzlvl6, gt6); /* 2.0*GRADIENT_DELAY */ delay(9.0e-5); obspower(tpwrsl); txphase(two); shaped_pulse(shp_sl, pw_sl, two, 0.0, 0.0); obspower(tpwr); delay(0.5e-4 - 2.0*POWER_DELAY); /* ST2 */ rgpulse(pw, t11, 0.0, 0.0); zgradpulse(gzlvl7,gt7); dec2phase(zero); delay(tauf - gt7 -pwN -0.5*pw); sim3pulse(2.0*pw, 0.0, 2.0*pwN, zero, zero, zero, 0.0, 0.0); zgradpulse(gzlvl7,gt7); dec2phase(t11); delay(tauf - gt7 -1.5*pwN); sim3pulse(pw, 0.0, pwN, zero, zero, t11, 0.0, 0.0); txphase(two); dec2phase(zero); zgradpulse(gzlvl7, gt7); delay(tauf - 1.5*pwN - gt7 -pw_sl - 2.0*POWER_DELAY -5.0e-6); obspower(tpwrsl); txphase(zero); shaped_pulse(shp_sl, pw_sl, two, 0.0, 5.0e-6); obspower(tpwr); sim3pulse(2.0*pw, 0.0, 2.0*pwN, zero, zero, zero, 0.0, 0.0); obspower(tpwrsl); txphase(zero); shaped_pulse(shp_sl, pw_sl, two, 5.0e-6, 0.0); obspower(tpwr); zgradpulse(gzlvl7, gt7); delay(tauf - 1.5*pwN - gt7 -pw_sl - 2.0*POWER_DELAY -5.0e-6); dec2rgpulse(pwN, zero, 0.0, 0.0); delay(gt9+9.0e-5); rgpulse(2.0*pw,zero,0.0,0.0); zgradpulse(gzlvl9,gt9); dec2power(dpwr2); delay(9.0e-5); } /* BEGIN ACQUISITION */ status(D); if (dm3[B]=='y') lk_sample(); setreceiver(t10); }