/* pfg_C_hacaconh_se1.c family of HC(CO)NH straight-through triple resonance experiments Copyright 1995 Protein NMR Laboratory - Center for Advanced Biotechnology and Medicine, Rutgers University C. B. Rios, M. Tashiro, W. Feng, and G. T. Montelione 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(CCO)NH H-CO-BB H1 0 (H)C(CO)NH C-CO-BB C13 0 H(CCO)NH-TOCSY H-CO-TOCSY H1 >0 C(CCO)NH-TOCSY C-CO-TOCSY C13 >0 These pulse sequences are described in: -Montelione et al, J.Am.Chem.Soc. 1992: 114:10974 - 10975. -Lyons et al., Biochemistry 1993, 32: 7839 - 7845 -Tashiro et al. J. Biomol. NMR 1995, 6: 211-216. -Feng et al. J. Biomol. NMR 1996, 8: 98 - 104. The experiment has been implemented on a INOVA 600 spectrometer with 4 channels. If the parameter ch4='y', channel 3 is used for C-alpha frequencies and channel 4 is used for C' frequencies. Carbonyl decoupling is executed with sinx decoupling, but can also be done with SEDUCE or other band-selective decoupling scheme. Version 2. Modified for correcting phase distortions. PLANNED IMPROVEMENTS: NOTE: Dummy statements have been inserted at appropriate points in the code for A) 7.22.97 rn A) The sequence can be modified for 3 channel system by setting ch4='n' and using convolute to define frequency shifted pulses shco90 and shco180 instead, while keeping shca90 and shca180 defined as hard pulses centered on C-alpha. B) Channel 4, if present, can be used for 2H decoupling. C) Small-angle phase-shifts to compensate for Bloch-Seigert effects. ************************************************************************* DEVELOPMENT ISSUES Ported from Unity 500 to Inova 600 7.23.97 rn NOTE: the original versions of this experiment allowed for concat2=n using non-CT N15 freq labeling. We usually run this with concat2=y, giving CT-N15 freq labeling. The current version does not support concat2=n, but some incomplete code is left for this option. for nuc_t1 = 'C13', w1 dimension is C13 for nuc_t1 = 'H1', w1 dimension is H1 includes sinc C' decoupling during Tc when nloop > 0 and nuc_t1 = 'C13' Verification of sensitivity enhancement in C-CO-BB version. Checked s/y in se='y' vs se='n' gtm, ss,cbr 1.3.95 see ss.II.13 sample: [C65A,C72A]-RNaseA Peak se='n' se='y' enhancement 1. 85 9.4 22.7 2.4 2. 74 20.1 30.2 1.5 3. 98 45.8 72.6 1.6 4. 49 38.5 54.6 1.4 If nloop =0, the center of the w1 frequency axis will be set to dof2 = CA frequency. If nloop > 0, The center of w1 frequency axis will be set to dofb = center of aliphatics. You should also use zfilt = 10 to 200 usec (typically 200 usec) to suppress cosy peaks with unreliable signs. The following has not been implemented: NOTE - concat2=n can be used for non-CT 15N freq labeling but must double check all powers for concat2 = n 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,0,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) INOVA Parameters (revised for 4-channel from 3-channel Unity sequence 6.29.97 rn) Pulses and powers: pw: 90 1H pulse at tpwr on TODEV tpwr: power for 90 1H pulse on TODEV pwCA90l: power for selective 90 on DO2DEV pwCA180l: power for selective 180 on DO2DEV pwCO90l: power for selective 90 (CO) on DO3DEV pwCO180l: power for selective 180 (CO) on DO3DEV pwCA90: selective 90 pulse at pwCA90l on DO2DEV pwCA180: selective 180 pulse at pwCA180l on DO2DEV pwCO90: selective 90 pulse at pwCO90l on DO3DEV pwCO180: selective 180 pulse at pwCO180l on DO3DEV C90lvl: full power for 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 shco90: filename of selective 90 on C' on DO3DEV shca90 filename of selective 90 on CA on DO2DEV shco180: filename of selective 180 on C' on DO3DEV shca180: filename of selective 180 on CA on DO2DEV Decoupling: tpwr_t1: power level for 1H decoupling during t1 on TODEV tpwr_t2: power level for 1H decoupling during t2 on TODEV tseq_t1: filename of multipulse 1H decoupling during t1 on TODEV tseq_t2: filename of multipulse 1H decoupling during t2 on TODEV tres_t1 and tres_t2:resolution of tseq files tmf_t1: tmf degree pulse corresponding to tpwr_t1 on TODEV tmf_t2: tmf corresponding to tpwr_t2 on TODEV dpwr_t1 power level for 15N decoupling during t1 on DODEV dseq_t1: filename of multipulse 15N decoupling during t1 on DODEV dres_t1: resolution of dseq_t1 file dmf_t1: dmf degree pulse corresponding to dpwr_t1 on DODEV dpwr2_t2 power level for Ca (or BB) decoupling during t2 on DO2DEV dseq2_t2: filename of multipulse Ca (or BB) decoupling during t2 on DO2DEV dres2_t2: resolution of dseq2_t2 file dmf2_t2: dmf corresponding to dpwr2_t2 on DO2DEV dpwr3_t1 power level for CO (2H?) decoupling during t1 on DO3DEV dseq3_t1: filename of multipulse CO decoupling during t1 on DO3DEV dres3_t1: resolution of file dmf3_t1: dmf degree pulse corresponding to dpwr3_t1 on DO3DEV Delays, Offsets, Phase Selection, Experiment Selection, Misc: 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: center on H-beta freq (optimize) tof: center on HN dof: decoffset centered on NH on DODEV dof2: dec2offset C-alpha frequency (on DO2DEV) dof3: dec3offset centered on CO (2H??) frequency (on DO3DEV) dofb: dec2offset center of aliphatic (C-alpha C-beta) frequency dofc: dec2offset center of CA and C' tauCH: 1/4(J_C-H) ~1.7 ms taufocCH: ~2.3 ms (optimized for CH and CH2) tauCACO: 1/4(J_CAC') 3 to 5 ms tauNH: 1/4(J_NH) ~2.7 ms tauNCO: 1/4(J_NC') 10 - 19 ms taue: hardwired to gt1+recover Tc: N/4(J_Calpha-C') 3 to 5ms for N=1;13C CT t1-freq labeling Tc: Constant time for 13C freq labeling during t1 Tn: Constant time for 15N freq labeling during t2 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 and must be used in H-CO-TOCSY, C-CO-TOCSY alfa1: corrects lp1, usemacro calfa1 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_t1_on() */ static int decCO_t1_on (ch,dpwr1,dseq1,dmf1,dres1) double dpwr1,dmf1,dres1; char ch[MAXSTR],dseq1[MAXSTR]; { if (ch[A] == 'y') { dec3power(dpwr1); dec3prgon(dseq1,1/dmf1,dres1); dec3on(); } } /* decCO_t1_off() */ static int decCO_t1_off(ch) char ch[MAXSTR]; { if (ch[A] == 'y') { 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(); } pulsesequence() { double tauCH,tauCH1,taufocCH,taufocCH1, tauCACO,tauCACO1, tauNH,taufocNH,tauNH1,tauNH2,tauNCO,tauNCO1,tauNCO2, pwCA90,pwCA180, pwCO90,pwCO180,pwCO90l,pwCO180l, pwN,pwCA90l,pwCA180l,pwNlvl, zfilt1,zfilt2,zfilt3, H1frq,t1evol,t2evol,C90,C90lvl, dpwr_t1,dmf_t1,dres_t1, dpwr2_t2,dmf2_t2,dres2_t2, dpwr3_t1,dmf3_t1,dres3_t1, tpwr_t1,tpwr_t2,tmf_t1,tmf_t2, tres_t1,tres_t2,alfa1; int phase,phase2; double gzlvl1,gt1,quant1,recover; double slpwr,slpw,slres,nloop,dofb,dofc; double Tc,Tc_a,Tc_b; double Tn,Tna,Tnb; char shco90[MAXSTR],shco180[MAXSTR], shca90[MAXSTR],shca180[MAXSTR], sltype[MAXSTR],nuc_t1[MAXSTR]; char ch4[MAXSTR]; char se[MAXSTR],concat2[MAXSTR]; char tseq_t1[MAXSTR],tseq_t2[MAXSTR], dseq_t1[MAXSTR],dseq2_t2[MAXSTR],dseq3_t1[MAXSTR]; /* LOAD VARIABLES */ phase=getval("phase"); phase2=getval("phase2"); Tc = getval("Tc"); Tn = getval("Tn"); tauCH = getval("tauCH"); taufocCH = getval("taufocCH"); tauCACO = getval("tauCACO"); tauNH = getval("tauNH"); taufocNH = getval("taufocNH"); tauNCO = getval("tauNCO"); recover = getval("recover"); alfa1 = getval("alfa1"); zfilt1 = getval("zfilt1"); zfilt2 = getval("zfilt2"); zfilt3 = getval("zfilt3"); pwCA90 = getval("pwCA90"); pwCA180 = getval("pwCA180"); pwCA90l = getval("pwCA90l"); pwCA180l = getval("pwCA180l"); pwCO90 = getval("pwCO90"); pwCO180 = getval("pwCO180"); pwCO90l = getval("pwCO90l"); pwCO180l = getval("pwCO180l"); pwN = getval("pwN"); pwNlvl = getval("pwNlvl"); H1frq=getval("H1frq"); dofb = getval("dofb"); dofc = getval("dofc"); dpwr_t1 = getval("dpwr_t1"); dres_t1=getval("dres_t1"); dmf_t1 = getval("dmf_t1"); dpwr2_t2 = getval("dpwr2_t2"); dres2_t2=getval("dres2_t2"); dmf2_t2 = getval("dmf2_t2"); dpwr3_t1 = getval("dpwr3_t1"); dres3_t1=getval("dres3_t1"); dmf3_t1 = getval("dmf3_t1"); tpwr_t1 = getval("tpwr_t1"); tpwr_t2 = getval("tpwr_t2"); tmf_t1 = getval("tmf_t1"); tmf_t2 = getval("tmf_t2"); tres_t1 = getval("tres_t1"); tres_t2 = getval("tres_t2"); C90 = getval("C90"); C90lvl = getval("C90lvl"); getstr("dseq_t1",dseq_t1); getstr("dseq2_t2",dseq2_t2); getstr("dseq3_t1",dseq3_t1); getstr("shco90",shco90); getstr("shco180",shco180); getstr("shca90",shca90); getstr("shca180",shca180); getstr("tseq_t1",tseq_t1); getstr("tseq_t2",tseq_t2); getstr("sltype",sltype); nloop = getval("nloop"); slpwr = getval("slpwr"); slpw = getval("slpw"); slres = getval("slres"); gzlvl1=getval("gzlvl1"); gt1=getval("gt1"); phase = (int) (getval("phase")+0.5); phase2 = (int) (getval("phase2")+0.5); quant1=getval("quant1"); getstr("ch4",ch4); getstr("se",se); getstr("concat2",concat2); getstr("nuc_t1",nuc_t1); /* INITIALIZE VARIABLES */ /* SAFETY CHECKS */ if (( dpwr > 45)||(dpwr_t1 > 45)) /* 15N dec. */ { text_error("dpwr or dpwr_t1 (15N) is > than 45 \n"); abort(1); } if ( dpwr2 > 48) /* Ca */ { text_error("dpwr2 (Ca) is > than 48 \n"); abort(1); } if (dpwr2_t2 > 50) /* Ca */ { text_error("dpwr2_t2 (Ca dec) > than 50 \n"); abort(1); } if (dpwr3 > 48) /* ADDED FOR CHANNEL 4 CO --THIS NEEDS ATTENTION */ { text_error("dpwr3 (CO dec) is > than 48 \n"); } if (dpwr3_t1 > 50) /* CO */ { text_error("dpwr3_t1 (CO dec) > than 50 \n"); abort(1); } if (tauNCO < tauCACO) { text_error("tauNCO is less than tauCACO, d1 is negative \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)) /* 1H */ { text_error("tpwr_t1 or _t2 must be less than 50\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 ( (taufocCH > (2*Tc) ) && (nloop == 0) ) { text_error("taufocCH is greater than 2Tc \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("set concat2 = y \n"); abort(1); } /* PHASECYCLE */ loadtable("pfg_C_hacaconh_se1.ph"); /* States-TPPI option */ if (nuc_t1[A] == 'C') getelem(t1,ct,v1); /* C pulses before t1 */ if (nuc_t1[A] == 'H') { if ( nloop > 0 ) { getelem(t1,ct,v1); /* C pulses before t1 */ } else { if ( nloop == 0 ) { assign(zero,v1); } } } getelem(t3,ct,v4); /* receiver phase for tppi */ assign(v4,oph); 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 */ } if (nuc_t1[A] == 'C') { if ( nloop == 0 ) add(one,v1,v1); } /* BEGIN ACTUAL PULSE SEQUENCE CODE */ status(A); obsoffset(H1frq); decoffset(dof); if (nloop == 0) dec2offset(dof2); if (nloop > 0) dec2offset(dofb); if (ch4[A] == 'y') dec3offset(dof3); else { text_error("ch4=n not implemented\n"); abort(1); } hsdelay(d1); 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,2.0e-6); /* 1st pulse */ tauCH1 = tauCH - 0.5*pw - C90 - rof2; delay(tauCH1 + t1evol); dec2rgpulse(2.0*C90,one,rof2,rof2); delay(t1evol); rgpulse(2.0*pw,one,rof1,rof1); delay(tauCH1); if (nloop == 0) { getelem(t1,ct,v3); add(one,v3,v3); } else { assign(zero,v3); } 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,v3,rof2,rof2); } else { sim3pulse(pw,0.0,C90,t4,one,v3,rof2,rof2); } } if (taufocCH < Tc) { if (( nloop > 0 ) && (nuc_t1[A] == 'H')) /* if H-TOCSY, execute taufocCH with C' decoupling */ { taufocCH1 = taufocCH*0.5 - 0.5*C90 - 2.0*POWER_DELAY - 2.0*PRG_START_DELAY ; delay(taufocCH1); sim3pulse(pw*2.0,0.0,C90*2.0,one,one,one,rof2,rof2); delay(taufocCH1); } else /* for concat = 0 H or C,and concat > 0 C versions we have a Tc value */ { if (dpwr_t1 > 0) { decpower(dpwr_t1); decprgon(dseq_t1,1/dmf_t1,dres_t1); decon(); /* Turns on N15 Garp */ } if ((nloop >0 ) && (nuc_t1[A] == 'C')) { if (ch4[A] == 'y') { if (dpwr3_t1 > 0.1) decCO_t1_on(ch4,dpwr3_t1,dseq3_t1,dmf3_t1,dres3_t1); } else { text_error("ch4=n not implemented\n"); abort(1); } } taufocCH1 = taufocCH - 0.5*C90 - POWER_DELAY - PRG_START_DELAY ; delay(taufocCH1); if (tpwr_t1 > 0.0) decH1_on(tpwr_t1,tseq_t1,tmf_t1,tres_t1); Tc_a = Tc - POWER_DELAY - PRG_START_DELAY; Tc_a = Tc_a - (taufocCH1) - WFG_START_DELAY; Tc_a = Tc_a - 2.0*rof2; Tc_a = Tc_a - (1.5* pwCA180); if ((nloop >0) && (nuc_t1[A] == 'C')) { Tc_a = Tc_a - POWER_DELAY - PRG_START_DELAY - PRG_STOP_DELAY; } if (nuc_t1[A] == 'C') delay(Tc_a + t1evol - alfa1); if (nuc_t1[A] == 'H') delay(Tc_a - alfa1); dec2power(pwCA180l); if ((nloop >0) && (nuc_t1[A] == 'C')) decCO_t1_off(ch4); dec2shaped_pulse(shca180,pwCA180,one,rof2,rof2); /* Ca refocusing pulse*/ if ((nloop >0) && (nuc_t1[A] == 'C')) { if (ch4[A] == 'y') { if (dpwr3_t1 > 0.1) decCO_t1_on(ch4,dpwr3_t1,dseq3_t1,dmf3_t1,dres3_t1); } else { text_error("ch4=n not implemented\n"); abort(1); } } if (( ch4[A] == 'y') && (nloop == 0 )) { dec3power(pwCO180l); dec3shaped_pulse(shco180,pwCO180,one,rof2,rof2); } if (( ch4[A] == 'n') && (nloop == 0 )) { text_error("ch4=n not implemented\n"); abort(1); } if (nloop == 0 ) { Tc_b = Tc - (3.0*pwCA180) ; Tc_b = Tc_b - (2*WFG_STOP_DELAY) - (2*PRG_STOP_DELAY); Tc_b = Tc_b - (2*POWER_DELAY); Tc_b = Tc_b - (6.0*rof2); } else { Tc_b = Tc - (WFG_STOP_DELAY) - (3.0*PRG_STOP_DELAY) - PRG_START_DELAY; Tc_b = Tc_b - (4.0*POWER_DELAY) - (0.5*C90); Tc_b = Tc_b - (2.0*rof2) - (0.5*pwCA180); } if (nuc_t1[A] == 'C') delay(Tc_b - t1evol); if (nuc_t1[A] == 'H') delay(Tc_b); } } else /* taufocCH > Tc */ { if (( nloop >0 ) && (nuc_t1[A] == 'H')) /* if H-TOCSY, execute taufocCH with C' decoupling' */ { delay(0.5*taufocCH); sim3pulse(pw*2.0,0.0,C90*2.0,one,one,one,rof2,rof2); delay(0.5*taufocCH); } else /* for concat = 0 H or C,and concat >0 C versions we have a Tc value */ { if (dpwr_t1 > 0) { decpower(dpwr_t1); decprgon(dseq,1/dmf_t1,dres); decon(); } if ((nloop >0 ) && (nuc_t1[A] == 'C')) { if (ch4[A] == 'y') { if (dpwr3_t1 > 0.1) decCO_t1_on (ch4,dpwr3_t1,dseq3_t1,dmf3_t1,dres3_t1); } else { text_error("ch4=n not implemented\n"); abort(1); } } Tc_a = Tc - POWER_DELAY - PRG_START_DELAY; Tc_a = Tc_a - WFG_START_DELAY ; Tc_a = Tc_a - rof2; Tc_a = Tc_a - (0.5*C90) - (1.5*pwCA180); if ((nloop >0 ) && (nuc_t1[A] == 'C')) { Tc_a = Tc_a - POWER_DELAY - PRG_START_DELAY - PRG_STOP_DELAY; } if (nuc_t1[A] == 'C') Tc_a = (Tc_a - t1evol - alfa1); if (nuc_t1[A] == 'H') Tc_a = (Tc_a - alfa1); delay(Tc_a); /* includes t1evol for C version */ dec2power(pwCA180l); if ((nloop >0 ) && (nuc_t1[A] == 'C')) decCO_t1_off(ch4); if (dpwr_t1 > 0) { decoff(); decprgoff(); } sim3shaped_pulse("hard","hard",shca180,2*pw,0.0,pwCA180,one,one,one,rof2,rof2); /* Ca refocusing pulse*/ if (dpwr_t1 > 0) { decprgon(dseq,1/dmf_t1,dres); decon(); } if ((nloop == 0 ) && (nuc_t1[A] == 'C')) { if (ch4[A] == 'y') { if (dpwr3_t1 > 0.1) decCO_t1_on(ch4,dpwr3_t1,dseq3_t1,dmf3_t1,dres3_t1); } else { text_error("ch4=n not implemented\n"); abort(1); } } if (( ch4[A] == 'y') && (nloop == 0)) { dec3power(pwCO180l); dec3shaped_pulse(shco180,pwCO180,one,rof2,rof2); /* C'decoupling pulse*/ } if (( ch4[A] == 'n') && (nloop == 0)) { text_error("ch4=n not implemented\n"); abort(1); } if (nloop == 0 ) { Tc_b = Tc - (1.5*pwCA180) - (2.0*WFG_START_DELAY); Tc_b = Tc_b - (2.0*PRG_STOP_DELAY); Tc_b = Tc_b - (2.0*POWER_DELAY)-(0.5*pwCA90);; Tc_b = Tc_b - (6.0*rof2); } else { Tc_b = Tc - (WFG3_STOP_DELAY) - (3*PRG_START_DELAY) - (3.0*PRG_STOP_DELAY); Tc_b = Tc_b - (5.0*POWER_DELAY) - (0.5*C90); Tc_b = Tc_b - (2.0*rof2) - (0.5*pwCA180); } if (nuc_t1[A] == 'C') Tc_b = (Tc_b + t1evol); if (nuc_t1[A] == 'H') Tc_b = Tc_b; taufocCH1 = taufocCH - Tc_a - pwCA180 - 2.0*rof2 ; Tc_b = Tc_b - taufocCH1; delay(taufocCH1); if (tpwr_t1 > 0.0) decH1_on(tpwr_t1,tseq_t1,tmf_t1,tres_t1); delay(Tc_b); } } /* end if taufocCH > Tc */ if (( ch4[A] == 'y') && (nloop == 0)) { dec3power(pwCO180l); dec3shaped_pulse(shco180,pwCO180,one,rof2,rof2); } if (( ch4[A] == 'n') && (nloop == 0)) { text_error("ch4=n not implemented\n"); abort(1); } if (dpwr_t1 > 0) { decoff(); decprgoff(); decpower(pwNlvl); } if (tpwr_t1 > 0) { xmtroff(); obsprgoff(); obspower(tpwr); /* reset proton pulse power */ } if ((nloop >0 ) && (nuc_t1[A] == 'C')) decCO_t1_off(ch4); /* 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 C90lvl */ dec2power(slpwr); dec2phase(zero); dec2on();delay(10e-6); /* WHAT IS THIS ? */ 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); } dec2offset(dof2); dec2power(C90lvl); dec2rgpulse(C90,three,rof2,rof2); /* Cz back to x-axis */ /* end C-C spin lock */ dec3power(pwCO180l); tauCACO1 = tauCACO - (2*OFFSET_LTCH_DELAY) - (POWER_DELAY); delay(tauCACO1); if ( ch4[A] == 'y' ) { dec3shaped_pulse(shco180,pwCO180,one,rof2,rof2); dec2shaped_pulse(shca180,pwCA180,one,rof2,rof2); delay(tauCACO); } else { text_error("ch4=n not implemented\n"); abort(1); } } dec2power(pwCA90l); dec2shaped_pulse(shca90,pwCA90,zero,rof2,rof2); if ( zfilt2 > 0.0 ) /* zfilter creates HzNz */ { rgradient('z',gzlvl1); delay(zfilt2); rgradient('z',0.0); delay(recover); } if ( ch4[A] == 'y' ) { dec3power(pwCO90l); dec3shaped_pulse(shco90,pwCO90,t5,rof2,rof2); } else { text_error("ch4=n not implemented\n"); abort(1); } dec2power(pwCA180l); tauCACO1 = tauCACO - 2.0*pwCA180 - 3.0*rof2 ; delay(tauCACO1); dec2shaped_pulse(shca180,pwCA180,one,rof2,rof2); tauNCO1 = tauNCO - tauCACO; tauNCO1 = tauNCO1 - 0.5*pwCA180 - pwN - 2*rof2; delay(tauNCO1); if ( ch4[A] == 'y' ) { dec3power(pwCO180l); sim4pulse(0.0,2*pwN,0.0,pwCO180,one,one,one,one,rof2,rof2); } else { text_error("ch4=n not implemented\n"); abort(1); } dec2power(pwCA90l); obsoffset(tof); tauNCO2 = tauNCO - pwN*1.5 - 2.0*rof2 ; delay(tauNCO2); if ( ch4[A] == 'y' ) { dec3power(pwCO90l); sim4pulse(0.0,pwN,0.0,pwCO90,one,t2,one,zero,rof1,rof2); } else { text_error("ch4=n not implemented\n"); abort(1); } if ( concat2[A] == 'y' ) /* concatenation during nitrogen evolution */ { rcvroff(); /* but no decplr ouput */ if ( tpwr_t2 > 1e-6 ) decH1_on(tpwr_t2,tseq_t2,tmf_t2,tres_t2); if ( dpwr2_t2 > 1e-6 ) { dec2power(dpwr2_t2); dec2prgon(dseq2_t2,1/dmf2_t2,dres2_t2); /* turn on wfg programming. */ dec2on(); } t2evol = d3/2.0; Tna = Tn - t2evol - (2.0*POWER_DELAY) - (2.0*PRG_START_DELAY); Tna = Tna - rof2 - rof1 - pwN - 0.5*pwCO90; delay(Tna); if ( dpwr2_t2 > 1e-6 ) { dec2off(); dec2prgoff(); } if ( ch4[A] == 'y' ) { dec3power(pwCO180l); sim4pulse(0.0,2*pwN,0.0,pwCO180,one,one,one,one,rof1,rof2); } else { text_error("ch4=n not implemented\n"); abort(1); } dec2power(dpwr2_t2); if ( dpwr2_t2 > 1e-6 ) { if ( ch4[A] == 'y' ) { dec2prgon(dseq2_t2,1/dmf2_t2,dres2_t2); /* turn on wfg programming.*/ dec2on(); } else { text_error("ch4=n not implemented\n"); abort(1); } } /* Corrected to account for the AP overhead delay for setting the offset to Ca/CO before the reverse 15N inept. The GRADIENT_DELAY statements for the rgradient have also been included. */ Tnb = Tn + t2evol - taufocNH; Tnb = Tnb - (POWER_DELAY) - (PRG_STOP_DELAY) - rof2 - rof2; Tnb = Tnb - 0.5*pwN ; delay(Tnb); /* turn proton decoupling off */ if ( tpwr_t2 > 1e-6 ) { xmtroff(); obsprgoff(); } obspower(tpwr); tauNH1 = (taufocNH) - (gt1*quant1) - recover - 0.5*pwN - POWER_DELAY - WFG_START_DELAY; delay(tauNH1); rgradient('z',gzlvl1); delay(gt1*quant1); rgradient('z',0.0); delay(recover); if ( dpwr2_t2 > 1e-6 ) { dec2off(); dec2prgoff(); } dec2offset(dofc); } else /* for concat2 ='n', non-ct N15 evol with C,H decoupling */ /* not currently implemented */ { /* need to insert C' -> N refocusing period */ 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(dseq2,1/dmf2,dres2); /* 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); obspower(tpwr); 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_t2 > 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_t2 > 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); } /* pfg_C_hacaconh_se1.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 C' t8 = 1 cycles with phase2 */