/* pfg_H_hacanh_se1.c triple resonance experiment for H-CC-N-HN straight-through. Copyright 1995 Protein NMR Laboratory - Center for Advanced Biotechnology and Medicine, Rutgers Univ. cbr, mt, wf, gtm This pulse sequence executes four different triple resonance experiments depending on the settings of the parameters nuc_t1 and nloop: experiment CABM name nuc_t1 nloop H(C)NH H-CA-BB H 0 (H)CNH C-CA-BB C 0 H(C)NH-TOCSY H-CA-TOCSY H >0 C(C)NH-TOCSY C-CA-TOCSY C >0 Non-pfg versions of these pulse sequences are described in: -Lyons et al. J.Magn.Reson. 1993, 101B, 206. -Lyons et al., Biochemistry 1993, 32: 7839 - 7845 Modified for use on a 4-channel Inova 600 spectrometer 7.17.97 rn. This can be modified for 3 channel system using frequency shifted pulses instead, using convolute to define shco90 and shco180 while keeping shca90 and shca180 defined as hard pulses. (not yet implemented 7.17.97 rn) Carbonyl decoupling is executed with sinx decoupling, but can also be done with seduce or other band-selective decoupling scheme. ***************************************************************************** DEVELOPMENT ISSUES: not tested for nloop>0, nuc_t1 = 'H' or 'C' 1H-CA-TOCSY tested for nloop=0, nuc_t1 = 'H' H-CA-BB and 'C' C-CA-BB -modified for taufocCH > Tc; added alfa1 for adjusting lp1 3.11.96 gtm, wf -removed simCN pulse from earlier Unity 500 version, replaced with sim3pulse 7.17.97 rn Verification of sensitivity enhancement 1H-CA-BB version Checked s/n in se='y' vs se='n' gtm, ss 12.31.95 se ss.II.9 sample: [C65A,C72A - RNaseA] Peak se='n' se='y' enhancement 1. 335 11.7 16.2 1.4 2. 293 14.4 17.4 1.2 3. 388 21.5 22.3 1.0 4. 193 21.9 31.7 1.4 for se=y, water echos may be observed at low temperatures. these can be suppressed by setting tof=H2O if nloop=0, the center of f1 frequency axis will automatically be set to dof2 = CA frequency if nloop>0, you must use zfilt3 = 10 to 200 usec (typically 75 usec) to suppress cosy transfer peaks in TOCSY which otherwise have unpredictable signs. NOTE - concat2=n can be used for non-CT 15N freq labeling but must revise code to handle this since the evolved sequence no longer does this correctly. (still true 7.17.97 rn) PROCESSING: 2D Spectra - for phase = 1,2 states-tppi in t1. Transform with: wft2d('ni',1,0,0,0,0,0,1,0) in t1 - phase2 = 1,2 nagayama in t2 wft2d('ni2',1,0,1,0,0,-1,0,1) or ('ni2',1,0,0,1,0,1,1,0) in t2 - for phase = 3 tppi in t1. Transform with: wft2d('ni',1,0,1,0,0,0,1,0) in t1 3D Planes - for H-H Planes: wft2d('ni',1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0) OTHER PARAMETERS: pwCA90l: power for selective 65usec 90 on DO2DEV pwCA180l: power for selective 58usec 180 on DO2DEV pwCA90: 90 pulse at power pwCA90l on DO2DEV pwCA180: 180 pulse at power pwCA180l on DO2DEV C90lvl: full power for simultaneous 90 on DO2DEV C90: 90 degree pulse at C90lvl on DO2DEV pwNlvl: power for N on DODEV pwN: 90 degree pulse for N at pwNlvl on DODEV shca90 filename of selective 90 on CA on DO2DEV shca180: filename of selective 180 on CA on DO2DEV tseq_t1: filename of multipulse 1H decoupling during t1 tseq_t2: filename of multipulse 1H decoupling during t2 tres_t1 and tres_t2: resolution of tseq files tpwr_t1: power level for 1H decoupling during t1 tpwr_t2: power level for 1H decoupling during t2 tmf_t1: tmf degree pulse corresponding to tpwr_t1 tmf_t2: tmf corresponding to tpwr_t2 dpwr_t1: power level for N decoupling during t1 dseq_t1: filename of multipulse N decoupling during t1 dres_t1: resolution of dseq_t1 file dmf_t1: dmf corresponding to dpwr_t1 dpwr2: decoupling power for Ca C' decoupling (on DO2DEV) dseq2: filename of multipulse Ca C' decoupling (on DO2DEV) dres2: resolution of dpwr2 file dmf2: dmf2 corresponding to dpwr2 dpwr3_t1: power level for CO decoupling during t1 (on DO3DEV) dseq3_t1: filename of multipulse CO decoupling during t1 (on DO3DEV) dres3_t1: resolution of dseq3_t1 file dmf3_t1: dmf corresponding to dpwr3_t1 dpwr3_t2: power level for CO decoupling during t2 (on DO3DEV) dseq3_t2: filename of multipulse CO decoupling during t2 (on DO3DEV) dres3_t2: resolution of dseq3_t2 file dmf3_t2: dmf corresponding to dpwr3_t2 gzlvl1: amplitude of PFG pulse gt1: unit length of PFG pulse quant1: MQ selection parameters for N15 quant1 = 9.9 to 10.1 phase: phase=1,2 for States-TPPI phase=3 for TPPI. phase2: phase2=1,2 selects n- and p-type 15N coherence pathways recover PFG recovery delay zfilt1 z-filter delay zz-filter (usually 0) zfilt2 z-filter delay zz-filter (usually 0) zfilt3 z-filter delay before and after 13C spin lock advisable to use 500 microsec for best phasing H1frq offset for proton pulses - should optimize dof dec offset for N dof2 dec2offset centered on CA dof3 dec3offset centered on C' dofb dec offset center of C aliphatic frequency dofc dec offset (CA + CO) / 2 tauCH: 1/4(J_C-H) ~1.7 ms taufocCH: ~2.3 ms (optimized for CH and CH2) tauCAN: 1/4(J_Ca-N) 3 -4 ms or ca. 14 ms (only for nloop>0; i.e.TOCSY) tauNH: 1/4(J_N-H) ~2.7 ms taue: hardwired to gt1+recover Tc: Constant time for 13C freq labeling during t1 N/4(J_Ca-N) depends strongly on relaxation properties (only for nloop=0; ie BB expts) Tn Constant time for 15N freq labeling during t2 about 1/4(J_Ca-N) depends strongly on relaxation properties (only for concat2=y) nloop flag to implement ct freq labeling code in t1 nloop=0 gives ct 13C freq labeling and enhanced S/N by concatonating coherence evolution periods use in H-CO-BB, C-CO-BB nloop>0 gives non-ct 13C freq labeling must use in H-CO-TOCSY, C-CO-TOCSY alfa1 corrects lp1, use macro calfa1 and then set lp1 = 0 se se = 'y' for sensitivity enhanced se = 'n' without sensitivity enhancement This may be desirable if you have water echoes. ch4 ch4 = 'y' for using 4th synthesizer for C' pulses ch4 = 'n' for using SLP for C' pulses NOT IMPLEMENTED: concat2 flag to implement ct freq labeling code in t2 concat2='y' gives ct 15N freq labeling and enhanced S/N by concatonating coherence evolution periods. use this as default concat2='n' gives non-ct 15N freq labeling. */ #include /* decCO_on() */ static int decCO_on (ch4,dpwr3_t,dseq3_t,dmf3_t,dres3_t) double dpwr3_t,dmf3_t,dres3_t; char ch4[MAXSTR],dseq3_t[MAXSTR]; { if (ch4[A] == 'y') { dec3power(dpwr3_t); dec3prgon(dseq3_t,1/dmf3_t,dres3_t); dec3on(); } } /* decCO_off() */ static int decCO_off(ch4) char ch4[MAXSTR]; { dec3prgoff(); dec3off(); } /* decH1_on() */ static int decH1_on (tpwr1,tseq1,tmf1,tres1) double tpwr1,tmf1,tres1; char tseq1[MAXSTR]; { obspower(tpwr1); obsprgon(tseq1,1/tmf1,tres1); xmtron(); } /* decH1_off() */ static int decH1_off() { obsprgoff(); xmtroff(); } pulsesequence() { double tauCH,taufocCH,taufocCH1, tauCAN, tauNH,tauNH1,tauNH2,alfa1, pwN,pwCA90,pwCA180, pwCA90l,pwCA180l,pwNlvl, zfilt1,zfilt2,zfilt3, H1frq,t1evol,t2evol,C90,C90lvl; double dpwr_t1,dmf_t1,dres_t1; double dpwr3_t1,dmf3_t1,dres3_t1; double dpwr3_t2,dmf3_t2,dres3_t2; double tpwr_t1,tmf_t1,tres_t1; double tpwr_t2,tmf_t2,tres_t2; double gzlvl1,gt1,quant1,recover; double slpwr,slpw,slres,nloop,dofb,dofc; double Tc,Tc_a,Tc_b; double DEC_H1_START_DELAY, DEC_H1_STOP_DELAY; double DEC_CO_START_DELAY, DEC_CO_STOP_DELAY; double phase,phase2,Tn,Tn_a,Tn_b; char shca90[MAXSTR],shca180[MAXSTR], tseq_t2[MAXSTR],tseq_t1[MAXSTR], dseq_t1[MAXSTR],dseq3_t1[MAXSTR], dseq3_t2[MAXSTR],sltype[MAXSTR]; char ch4[MAXSTR]; char se[MAXSTR],concat2[MAXSTR]; char nuc_t1[MAXSTR]; /* LOAD VARIABLES */ phase=(int)(getval("phase")+0.5); phase2=(int)(getval("phase2")+0.5); alfa1 = getval("alfa1"); Tc = getval("Tc"); Tn = getval("Tn"); tauCH = getval("tauCH"); taufocCH = getval("taufocCH"); tauCAN = getval("tauCAN"); tauNH = getval("tauNH"); recover = getval("recover"); zfilt1 = getval("zfilt1"); zfilt2 = getval("zfilt2"); zfilt3 = getval("zfilt3"); pwCA90 = getval("pwCA90"); pwCA180 = getval("pwCA180"); pwCA90l = getval("pwCA90l"); pwCA180l = getval("pwCA180l"); pwN = getval("pwN"); pwNlvl = getval("pwNlvl"); H1frq=getval("H1frq"); dofb = getval("dofb"); dofc = getval("dofc"); dpwr_t1 = getval("dpwr_t1"); dmf_t1 = getval("dmf_t1"); dres_t1 = getval("dres_t1"); dpwr3_t1 = getval("dpwr3_t1"); dmf3_t1 = getval("dmf3_t1"); dres3_t1 = getval("dres3_t1"); dpwr3_t2 = getval("dpwr3_t2"); dmf3_t2 = getval("dmf3_t2"); dres3_t2 = getval("dres3_t2"); tpwr_t1 = getval("tpwr_t1"); tmf_t1 = getval("tmf_t1"); tres_t1 = getval("tres_t1"); tpwr_t2 = getval("tpwr_t2"); tmf_t2 = getval("tmf_t2"); tres_t2 = getval("tres_t2"); C90 = getval("C90"); C90lvl = getval("C90lvl"); getstr("shca90",shca90); getstr("shca180",shca180); getstr("tseq_t2",tseq_t2); getstr("tseq_t1",tseq_t1); getstr("dseq_t1",dseq_t1); getstr("dseq3_t1",dseq3_t1); getstr("dseq3_t2",dseq3_t2); getstr("sltype",sltype); nloop = getval("nloop"); slpwr = getval("slpwr"); slpw = getval("slpw"); slres = getval("slres"); gzlvl1=getval("gzlvl1"); gt1=getval("gt1"); quant1=getval("quant1"); getstr("ch4",ch4); getstr("se",se); getstr("concat2",concat2); getstr("nuc_t1",nuc_t1); /* INITIALIZE VARIABLES */ DEC_CO_START_DELAY = POWER_DELAY + PRG_START_DELAY; DEC_CO_STOP_DELAY = PRG_STOP_DELAY; DEC_H1_START_DELAY = POWER_DELAY + PRG_START_DELAY; DEC_H1_STOP_DELAY = PRG_STOP_DELAY; /* SAFETY CHECKS */ if (( dpwr3_t2 > 50)||(dpwr3_t1 > 50)) { text_error("dpwr3_t2 or dpwr3_t1 is > than 50 \n"); abort(1); } if ( dpwr2 > 50) { text_error("dpwr2 is > than 50 \n"); abort(1); } if (( dpwr > 45) || (dpwr_t1 > 45)) { text_error("dpwr dpwr_t1 is > than 45 \n"); abort(1); } if (( d2 > 1.0)||( d3 > 1.0) ) { text_error("d2 or d3 > than 1.0 \n"); abort(1); } if ((nloop > 15) || (slpwr > 55)) { text_error ("too much C_C spin lock power"); abort(1); } if ((tpwr_t1 > 50) || (tpwr_t2 > 40)) { text_error("tpwr_t1 or _t2 must be less than 41\n"); abort(1); } if (recover > 0.003 ) { text_error("recover may be too long\n"); abort(1); } if (zfilt1 > 0.005 || zfilt2 > 0.005 || zfilt3 > 0.005 ) { text_error("zfilt1 or zfilt2 are too long\n"); abort(1); } if ( (2*Tc) < taufocCH || (2*Tc) == taufocCH ) { text_error("2*Tc is smaller than taufocCH\n"); abort(1); } if ( (nuc_t1[A] != 'C') && ( nuc_t1[A] != 'H')) { text_error("Set nuc_t1 to C13 or H1. \n"); abort(1); } if (concat2[A] == 'n') { text_error("concat2 must be 'y' in this version. \n"); abort(1); } /* PHASECYCLE */ loadtable("pfg_H_hacanh_se1.ph"); /* States-TPPI option */ if (nuc_t1[A] == 'C') getelem(t1,ct,v1); /* C pulses before t1 */ if (nuc_t1[A] == 'H') assign(zero,v1); getelem(t3,ct,oph); /* receiver phase */ if ( (phase == 1) || (phase == 2) ) { initval(2.0*(double)((int)(d2*getval("sw1")+0.5)%2),v14); add(v1,v14,v1); add(oph,v14,oph); } if ( phase == 2) { decr(v1); } if ( phase == 3 ) { /* TPPI IN CO DIMENSION (T1 EVOLUTION) */ initval((double)((int)(d2*(getval("sw1"))+0.5)),v2); add(v1,v2,v1); /* tppi on t1 */ } /* BEGIN ACTUAL PULSE SEQUENCE CODE */ status(A); decoffset(dof); dec3offset(dof3); if (nloop == 0) dec2offset(dof2); if (nloop > 0) dec2offset(dofb); hsdelay(d1); obsoffset(H1frq); obspower(tpwr); dec2power(C90lvl); decpower(pwNlvl); rcvroff(); /* sensitivity enhancement phase calculation */ getelem(t8,ct,v8); if(phase2 == 2 && se[A] == 'y' ) { add(v8,two,v8); } t1evol = d2/2.0; if (nuc_t1[A] == 'C') { rgpulse(pw,zero,rof1,2.0e-6); /* 1st pulse */ delay(tauCH); sim3pulse(2*pw,0.0,C90*2,one,one,v1,rof2,rof2); delay(tauCH); if ( zfilt1 > 0.0 ) /* zfilter creates HzCz */ { rgpulse(pw,t4,rof1,rof2); rgradient('z',gzlvl1); delay(zfilt1); rgradient('z',0.0); delay(recover); dec2rgpulse(C90,v1,rof1,rof2); } else { sim3pulse(pw,0.0,C90,t4,one,v1,rof1,rof2); } } if (nuc_t1[A] == 'H') { rgpulse(pw,v1,rof1,rof1); /* 1st pulse */ delay(tauCH + t1evol); dec2rgpulse(2.0*C90,one,rof2,rof2); delay(t1evol); rgpulse(2.0*pw,one,rof1,rof1); delay(tauCH); if ( zfilt1 > 0.0 ) /* zfilter creates HzCz */ { rgpulse(pw,t4,rof1,rof1); rgradient('z',gzlvl1); delay(zfilt1); rgradient('z',0.0); delay(recover); dec2rgpulse(C90,t1,rof2,rof2); } else { sim3pulse(pw,0.0,C90,t4,one,t1,rof2,rof2); } } if (taufocCH < Tc) { if ( (nuc_t1[A] == 'H') && (nloop > 0) ) { delay(0.5 * (taufocCH)); sim3pulse(pw*2.0,0.0,C90*2.0,one,one,one,rof2,rof2); delay(0.5 * (taufocCH)); } else /* for nuc_t1 = C versions and/or concat = y we have a Tc period */ { if ((nloop>0) && (dpwr_t1 > 0)) { decpower(dpwr_t1); decprgon(dseq_t1,1/dmf_t1,dres_t1); decon(); /* power level at dpwr_t1 */ } if (dpwr3_t1 > 0) decCO_on (ch4,dpwr3_t1,dseq3_t1,dmf3_t1,dres3_t1); delay(taufocCH); if (tpwr_t1 > 0) decH1_on (tpwr_t1,tseq_t1,tmf_t1,tres_t1); Tc_a = Tc - (0.5*C90) - (2*rof2) - POWER_DELAY; Tc_a = Tc_a - (taufocCH); Tc_a = Tc_a - DEC_CO_START_DELAY - DEC_CO_STOP_DELAY; Tc_a = Tc_a - DEC_H1_START_DELAY - DEC_H1_STOP_DELAY; if (nloop>0) { Tc_a = Tc_a - POWER_DELAY - PRG_START_DELAY; } if ( nuc_t1[A] == 'C' ) delay(Tc_a + t1evol); if ( nuc_t1[A] == 'H' ) delay(Tc_a); if (dpwr3_t1 > 0) decCO_off(ch4); if (tpwr_t1 > 0) decH1_off(); dec2power(pwCA180l); if (nloop == 0) { sim3shaped_pulse("hard","hard",shca180,0.0,2*pwN,pwCA180,one,one,one,rof2,rof2); /* Ca refocusing pulse*/ } else { dec2shaped_pulse(shca180,pwCA180,one,rof2,rof2); } if (dpwr3_t1 > 0) decCO_on (ch4,dpwr3_t1,dseq3_t1,dmf3_t1,dres3_t1); if (tpwr_t1 > 0) decH1_on (tpwr_t1,tseq_t1,tmf_t1,tres_t1); Tc_b = Tc - (2.0*rof2) - (3.0*POWER_DELAY); Tc_b = Tc_b - DEC_CO_START_DELAY - DEC_CO_STOP_DELAY; Tc_b = Tc_b - DEC_H1_START_DELAY - DEC_H1_STOP_DELAY; if (nloop == 0) { Tc_b = Tc_b - (0.5*pwCA180); } else { Tc_b = Tc_b - (0.5*C90) - PRG_STOP_DELAY; } if ( nuc_t1[A] == 'C' ) delay(Tc_b - t1evol); if ( nuc_t1[A] == 'H' ) delay(Tc_b); if (dpwr3_t1 > 0) decCO_off(ch4); if (tpwr_t1 > 0) decH1_off(); obspower(tpwr); /* reset proton pulse power */ if ((nloop >0) && (dpwr_t1 > 0)) { decoff(); decprgoff(); decpower(pwNlvl); /* reset 15N power level */ } } } else /* if ((taufocCH > Tc) || (taufocCH = Tc)) */ { if ( (nuc_t1[A] == 'H') && (nloop >0) ) { delay(0.5 * (taufocCH)); sim3pulse(pw*2.0,0.0,C90*2.0,one,one,one,rof2,rof2); delay(0.5 * (taufocCH)); } else /* for nuc_t1 = C versions and/or nloop=0 we have a Tc period */ { if ((nloop>0) && (dpwr_t1 > 0)) { decpower(dpwr_t1); decprgon(dseq_t1,1/dmf_t1,dres_t1); decon(); /* power level at dpwr_t1 */ } if (dpwr3_t1 > 0) decCO_on (ch4,dpwr3_t1,dseq3_t1,dmf3_t1,dres3_t1); Tc_a = Tc - (0.5*C90) - (2*rof2) - POWER_DELAY; Tc_a = Tc_a - DEC_CO_START_DELAY - DEC_CO_STOP_DELAY; if (nloop >0) { Tc_a = Tc_a - POWER_DELAY - PRG_START_DELAY; } if ( nuc_t1[A] == 'C' ) Tc_a = (Tc_a - t1evol - alfa1); if ( nuc_t1[A] == 'H' ) Tc_a = Tc_a; delay(Tc_a); if (dpwr3_t1 > 0) decCO_off(ch4); dec2power(pwCA180l); if (nloop == 0) { sim3shaped_pulse("hard","hard",shca180,2*pw,2*pwN,pwCA180,one,one,one,rof2,rof2); /* Ca refocusing pulse*/ } else /* for tocsy with nloop>0 , don't put 180 on N */ { sim3shaped_pulse("hard","hard",shca180,2*pw,0.0,pwCA180,one,one,one,rof2,rof2); /* Ca refocusing pulse*/ } if (dpwr3_t1 > 0) decCO_on (ch4,dpwr3_t1,dseq3_t1,dmf3_t1,dres3_t1); Tc_b = Tc - (2.0*rof2) - (3.0*POWER_DELAY); Tc_b = Tc_b - DEC_CO_START_DELAY - DEC_CO_STOP_DELAY; Tc_b = Tc_b - DEC_H1_START_DELAY - DEC_H1_STOP_DELAY; if (nloop == 0) { Tc_b = Tc_b - (0.5*pwCA180); } else { Tc_b = Tc_b - (0.5*C90) - PRG_STOP_DELAY; } taufocCH1 = taufocCH - Tc_a; if ( nuc_t1[A] == 'C' ) Tc_b = (Tc_b + t1evol); if ( nuc_t1[A] == 'H' ) Tc_b = (Tc_b); Tc_b = Tc_b - taufocCH1; delay(taufocCH1); if (tpwr_t1 > 0) decH1_on (tpwr_t1,tseq_t1,tmf_t1,tres_t1); delay(Tc_b); if (dpwr3_t1 > 0) decCO_off(ch4); if (tpwr_t1 > 0) decH1_off(); obspower(tpwr); /* reset proton pulse power */ if ((nloop>0) && (dpwr_t1 > 0)) { decoff(); decprgoff(); decpower(pwNlvl); /* reset 15N power level */ } } } /* C-C Spin Lock Using z-filter */ if (nloop>0) { dec2power(C90lvl); dec2rgpulse(C90,one,rof2,rof2); /* puts C13 mag on Z-axis */ if ( zfilt3 > 0.0 ) { rgradient('z',gzlvl1); delay(zfilt3); rgradient('z',0.0); delay(recover); } if (nloop > 0.5) { /* the DO2DEV power is set to slpwr for spinlock */ dec2power(slpwr); dec2phase(zero); dec2on();delay(10e-6); dec2spinlock(sltype,slpw,slres,zero,(int)(nloop+0.5)); dec2off(); dec2phase(zero); txphase(zero); } if ( zfilt3 > 0.0 ) { rgradient('z',gzlvl1); delay(zfilt3); rgradient('z',0.0); delay(recover); } dec2power(C90lvl); dec2offset(dof2); dec2rgpulse(C90,three,rof2,rof2); /* Cz back to x-axis */ /* end C-C spin lock */ if (dpwr3_t1 > 0) decCO_on (ch4,dpwr3_t1,dseq3_t1,dmf3_t1,dres3_t1); delay(tauCAN); if (dpwr3_t1 > 0) decCO_off(ch4); dec2power(pwCA180l); sim3shaped_pulse("hard","hard",shca180,0.0,2*pwN,pwCA180,one,one,one,rof2,rof2); if (dpwr3_t1 > 0) decCO_on (ch4,dpwr3_t1,dseq3_t1,dmf3_t1,dres3_t1); delay(tauCAN); if (dpwr3_t1 > 0) decCO_off(ch4); } obsoffset(tof); dec2power(pwCA90l); sim3shaped_pulse("hard","hard",shca90,0.0,pwN,pwCA90,one,t2,t5,rof2,rof2); if (dpwr3_t2 > 0) decCO_on (ch4,dpwr3_t2,dseq3_t2,dmf3_t2,dres3_t2); if ( concat2[A] == 'y' ) /* concatenation during nitrogen evolution */ { if (tpwr_t2 > 1e-6) decH1_on (tpwr_t2,tseq_t2,tmf_t2,tres_t2); t2evol = d3/2.0; Tn_a = Tn -t2evol - (POWER_DELAY) - (pwCA90 * 0.5) - (1.0 * WFG_STOP_DELAY) - (2*rof2) - pwN; Tn_a = Tn_a - DEC_CO_START_DELAY - DEC_CO_STOP_DELAY; Tn_a = Tn_a - DEC_H1_START_DELAY; delay(Tn_a); if (dpwr3_t2 > 0) decCO_off(ch4); dec2power(pwCA180l); /* substituted sim3pulse for generated simCN(pwCA180,pwN*2.0,rof2,rof2); rn 7.17.97 */ sim3pulse(0.0,pwN*2.0,pwCA180,one,one,one,rof2,rof2); if (dpwr3_t2 > 0) decCO_on (ch4,dpwr3_t2,dseq3_t2,dmf3_t2,dres3_t2); Tn_b = Tn - (1.5*pwN) - (2.0*rof2) - (POWER_DELAY); Tn_b = Tn_b - (2.0*DEC_CO_START_DELAY) - (DEC_CO_STOP_DELAY); Tn_b = Tn_b - (DEC_H1_STOP_DELAY); Tn_b = Tn_b - (2.0*tauNH) + t2evol; delay(Tn_b); /* turn proton decoupling off */ if ( tpwr_t2 > 1e-6 ) { xmtroff(); obsprgoff(); } obspower(tpwr); tauNH1 = (tauNH*2.0) - (gt1*quant1) - recover ; delay(tauNH1); rgradient('z',gzlvl1); delay(gt1*quant1); rgradient('z',0.0); delay(recover); if (dpwr3_t2 > 0) decCO_off(ch4); } else /* for concat2 = n, non-ct N15 evol with C,H decoupling */ { dec2offset(dofc); dec2power(dpwr2); obspower(tpwr_t2); t2evol = d3; /* third 15N axis */ if (t2evol > (2*PRG_START_DELAY + 2*PRG_STOP_DELAY +5e-6)) { obsprgon(tseq_t2,1/tmf_t2,tres_t2); /*turn on TODEV wfg*/ /* dec2prgon(dseq,1/dmf_t2,dres); changed to following rn 7-17-97 turn on wfg programming. */ dec2prgon(dseq,1/dmf,dres); /* turn on wfg programming. */ rcvroff(); /* but no decplr ouput */ xmtron(); dec2on(); delay(t2evol); dec2off(); xmtroff(); dec2prgoff(); obsprgoff(); } else { delay(t2evol); } /* gradients during 2*tauNH for concat2 = n */ tauNH1=tauNH-((gt1*quant1)/2.0)-recover; delay(tauNH1); /* first gradient */ rgradient('z',(-1.0*gzlvl1)); delay((gt1*quant1)/2.0); rgradient('z',0.0); delay(recover); rlpower(tpwr,TODEV); simpulse(2*pw,2*pwN,one,one,rof1,rof2); tauNH1 = tauNH1-POWER_DELAY; /* second gradient */ rgradient('z',gzlvl1); delay((gt1*quant1)/2.0); rgradient('z',0.0); delay(recover); delay(tauNH1); } /* begin reverse N-H INEPT for se=y */ if ( se[A] == 'y' ) /* sensitivity enhanced sequence */ { simpulse(pw,pwN,zero,zero,rof2,rof2); dec2offset(dofc); if ( dpwr2 > 1e-6 ) /* turn on garp C',Ca decoupling */ { dec2power(dpwr2); dec2prgon(dseq2,1/dmf2,dres2); dec2on(); } delay(tauNH); simpulse(2*pw,2*pwN,one,one,rof2,rof2); delay(tauNH); if ( dpwr2 > 1e-6 ) /* turn off garp C',Ca decoupling */ { dec2off(); dec2prgoff(); } simpulse(pw,pwN,one,v8,rof2,rof2);/* pulse to produce enhancement */ delay(tauNH); simpulse(2*pw,2*pwN,one,one,rof2,rof2); delay(tauNH); rgpulse(pw,zero,rof1,rof1); delay(gt1+recover); rgpulse(pw*2.0,zero,rof1,rof1); if ( concat2[A] == 'y' ) { if (phase2 == 1) { rgradient('z',(-1.0*gzlvl1)); } else { rgradient('z',gzlvl1); } } else { if (phase2 == 1) { rgradient('z',gzlvl1); } else { rgradient('z',(-1.0*gzlvl1)); } } delay(gt1); rgradient('z',0.0); delay(recover); } else /* reverse INEPT for se = n */ { simpulse(pw,pwN,zero,zero,rof2,rof2); delay(tauNH); simpulse(2*pw,2*pwN,one,one,rof2,rof2); tauNH2 = tauNH - gt1 - recover; delay(tauNH2); if (phase2 == 1) { rgradient('z',(-1.0*gzlvl1)); } else { rgradient('z',gzlvl1); } delay(gt1); rgradient('z',0.0); delay(recover); /* decrgpulse(pwN,zero,rof2,rof2); */ } dec2offset(dofc);dec2power(dpwr2);decpower(dpwr); status(B); } /* pfgcatocsy.ph phase table for triple resonance experiment t1 = 0 2 0 2 H-C13 INEPT for H-13C t2 = 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 Sel for 13C in 13C-15N INEPT t3 = 0 2 2 0 2 0 0 2 2 0 0 2 0 2 2 0 Receiver t4 = 1 1 1 1 3 3 3 3 Sel for 1H in H-C13 INEPT t5 = 0 0 2 2 phase cycle on Calpha t8 = 1 cycles with phase2 */