/* pfg_CBCANH_se1 (H)CBCANH straight-through triple resonance experiment using C-C COSY transfer Copyright 1995 Protein NMR Laboratory - Center for Advanced Biotechnology and Medicine, Rutgers University Working version on INOVA 600 ( se3.c') has been renamed as se1.c and has been tested on INOVA 500. Gave good spectra. GVTS 07 22 98 C. B. Rios and G. T. Montelione magnetization begins with HB protons of residue i, transfered by HCC COSY to the CA of residue i, then to N(i) to HN(i) Based on: -Grzesiek & Bax, JMR 1992, 99: 201 - 207 modified for PFG Modified GVTS 06 30 97 to import to INOVA 600 from UNITY 500 ver:se25 The pulse sequence has been modified for 4 channels with ch3 (DO2DEV) and ch4 (DO3DEV) for 13C and ch2 for 15N. 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. Carbonyl decoupling is executed with sinx decoupling, but can also be done with seduce or other band-selective decoupling scheme. ************************************************************************* Problems: -may not be adjusted for lp1=0, lp2=0 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 may not support concat2=n, and some tests should be made if you need to use this option Verification of sensitivity enhancement in C-CO-COSY version. Checked s/y in se='y' vs se='n' gtm, ss,cbr 1.5.95 see ss.II.19 sample: [C65A,C72A]-RNaseA Peak se='n' se='y' enhancement 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) pwC90lvl: power for selective 54usec 90 on DO2DEV/DO3DEV pwC180lvl: power for selective 63usec 180 on DO2DEV/DO3DEV sim90lvl: full power for simultaneous 90 on DO2DEV/DO3DEV simpwC90: 90 degree pulse at sim90lvl shco90: filename of selective 90 on C' shca90 filename of selective 90 on CA shco180: filename of selective 180 on C' shca180: filename of selective 180 on CA tseq: filename of multipulse 1H decoupling during t1 and t2 tres: resolution of tseq file 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 dpwr3_t1: power for sel C' decoupling (46) dseq3_t1: seq for sel C' decoupling (sinc) dmf3_t1: dmf for dpwr_t2 (800) dres3_t1: res for dseq_t1 (1.0) dpwr2_t2: power for sel Ca decoupling (46) dseq2_t2: seq for sel Ca decoupling (sinc) dmf2_t2: dmf for dpwr_t2 (800) dres2_t2: res for dseq_t2 (1.0) dpwr2: power for simul Ca and C' decoupling (40) dmf2: dmf for dpwr dseq2: waveform for simul Ca and C' decoupling (garp) dres2: resol for dseq dpwr_t1: power for N deccoupling in t1 (38) dmf_t1: dmf for dpwr_t2 (4096) dpwr: power for N deccoupling in t3 (38) dmf: dmf for dpwr (4096) dseq: seq for N decoupling in t1 and t3 (garp1) dres: res for dseq2 (1.0) gzlvl1: amplitude of PFG pulse gt1: unit length of PFG pulse quant1: MQ selection parameters for N15 quant1 = 9.9 to 10.2 recover PFG recovery delay phase: phase=1,2 for States-TPPI phase=3 for TPPI. phase2: phase2=1,2 selects n- and p-type 15N coherence pathways zfilt1 z-filter delay zz-filter (usually 0 - 10 microsec) zfilt2 z-filter delay zz-filter (usually 0) H1frq (Ha + Hb)/2 = 2.5 ppm tof HN (or set to H2O if you have water echos) dofa not used dofb dec offset (CA + CB) / 2 dofc dec offset (CA + CO) / 2 dof not used tauCH: 1/4(J_C-H) ~1.7 ms taufocCH: ~2.2 ms (optimized for CH,CH2,and CH3) tauNH: 1/4(J_N-H) ~2.7 ms tauCAN: 1/4(J_Ca-N) ~4 ms (see plots) (or ~11 ms to invert CB and Gly CA) Tc: Constant time for 13C freq labeling during t1 N/4(J_Calpha-N) ~4 ms (see plots) Tn Constant time for 15N freq labeling during t2 N/4(J_N-C') 11 - 14 ms 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. (must make some checks before using) nimax: use macro 'nimax' ni2max: use macro 'ni2max' 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 channel for C' pulses ch4 = 'n' for using SLP for C' pulses */ #include #include pulsesequence() { double tauCH,taufocCH, tauNH,taufocNH,tauNH1,tauNH2,tauNH3,tauCAN, pwCA90,pwCA180,pwCO90,pwCO180, pwN,pwCA90l,pwCA180l,pwCO90l,pwCO180l,pwNlvl, zfilt1,zfilt2,zfilt3, H1frq,t1evol,t2evol,t2evolA,C90,C90lvl, tpwr_t1,tpwr_t2,tmf_t1,tmf_t2,tres_t1,tres_t2, dpwr3_t1,dmf3_t1,dres3_t1,phase,phase2; double dmf3_t2,dpwr3_t2,dres3_t2,dres_t1,dpwr_t1,dmf_t1; double gzlvl1,gt1,quant1,recover; double dofb,dofc; double Tc,Tc_a,Tc_b; double Tn,Tn1,Tn2; char shco90[MAXSTR],shco180[MAXSTR], shca90[MAXSTR],shca180[MAXSTR], dseq3_t1[MAXSTR],dseq_t1[MAXSTR], dseq3_t2[MAXSTR],tseq_t1[MAXSTR],tseq_t2[MAXSTR]; char ch4[MAXSTR]; char se[MAXSTR]; char concat2[MAXSTR]; /* LOAD VARIABLES */ dmf_t1 = getval("dmf_t1"); dpwr_t1 = getval("dpwr_t1"); Tc = getval("Tc"); Tn = getval("Tn"); tauCH = getval("tauCH"); taufocCH = getval("taufocCH"); tauNH = getval("tauNH"); taufocNH = getval("taufocNH"); tauCAN = getval("tauCAN"); recover = getval("recover"); 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"); dpwr3_t1 = getval("dpwr3_t1"); dmf3_t1 = getval("dmf3_t1"); dres3_t1 = getval("dres3_t1"); dres_t1 = getval("dres_t1"); dpwr3_t2 = getval("dpwr3_t2"); dmf3_t2 = getval("dmf3_t2"); dres3_t2 = getval("dres3_t2"); 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"); phase = getval("phase"); phase2 = getval("phase2"); getstr("shco90",shco90); getstr("shco180",shco180); getstr("shca90",shca90); getstr("shca180",shca180); getstr("tseq_t1",tseq_t1); getstr("tseq_t2",tseq_t2); getstr("dseq3_t1",dseq3_t1); getstr("dseq_t1",dseq_t1); getstr("dseq3_t2",dseq3_t2); gzlvl1=getval("gzlvl1"); gt1=getval("gt1"); quant1=getval("quant1"); getstr("ch4",ch4); getstr("se",se); /* getstr("concat2",concat2); */ concat2[A] = 'y'; /* INITIALIZE VARIABLES */ /* SAFETY CHECKS */ if (( dpwr > 45)||( dpwr2 > 45)||( dpwr3_t2 > 46)||(dpwr_t1 > 45)) { text_error("dpwr or dpwr2 or dpwr3_t2 or dpwr_t1 is > than 45 \n"); abort(1); } if (concat2[A] == 'n') { text_error("set concat2 = y please - until retested \n"); abort(1); } if (dseq3_t1[A] == 's') /* for sinc decoupling */ { if (dpwr3_t1 > 52) { text_error("dpwr3_t1 is > than 52 \n"); abort(1); } } else { if (dpwr3_t1 > 45) { text_error("dpwr3_t1 is > than 45 \n"); abort(1); } } if ((tpwr_t1 > 38) || (tpwr_t2 > 38)) { text_error("tpwr_t1 or _t2 must be less than 37\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 ( Tc < taufocCH ) { text_error("Tc is smaller than taufocCH\n"); abort(1); } /* PHASECYCLE */ loadtable("pfg_C_cbcanh_se1.ph"); /* BEGIN ACTUAL PULSE SEQUENCE CODE */ status(A); obsoffset(H1frq); dec2offset(dofb);/* dofa = dofb center of ca and cb */ decoffset(dof); dec3offset(dof3); hsdelay(d1); obspower(tpwr); dec2power(C90lvl); decpower(pwNlvl); rcvroff(); /* States-TPPI option */ getelem(t1,ct,v1); getelem(t3,ct,v4); 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 */ } /* sensitivity enhancement phase calculation */ getelem(t8,ct,v8); if(phase2 == 1 && se[A] == 'y' ) { add(v8,two,v8); } rgpulse(pw,zero,rof1,rof1); delay(tauCH); /* Made change to include States-TPPI cycling on all carbon pulses before t1. see JMR A 101, 246-249 (1994). */ 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,rof1); rgradient('z',gzlvl1); delay(zfilt1); rgradient('z',0.0); delay(recover); dec2rgpulse(C90,v1,rof2,rof2); } else { sim3pulse(pw,0.0,C90,t4,one,v1,rof2,rof2); } t1evol=d2/2.0; if (dpwr_t1 > 0) { decpower(dpwr_t1); /* N15 decoupling during C13 evolution */ decprgon(dseq_t1,1/dmf_t1,dres_t1); /* turn on wfg programming. */ decon(); /* power level at dpwr_t1 */ } if (dpwr3_t1 > 0) { if ( ch4[A] == 'y' ) { dec3power(dpwr3_t1); /* C' decoupling during C13 evolution */ dec3prgon(dseq3_t1,1/dmf3_t1,dres3_t1);/* turn on wfg programming. */ dec3on(); } } delay(taufocCH); if (tpwr_t1 > 0) { obspower(tpwr_t1); /* proton decoupling during C13 evolution */ obsprgon(tseq_t1,1/tmf_t1,tres_t1); /*turn on TODEV wfg*/ xmtron(); /* power level at tpwr_t2 */ } Tc_a = Tc - 2*POWER_DELAY - 2*PRG_START_DELAY; Tc_a = Tc_a - (taufocCH) - WFG_START_DELAY; Tc_a = Tc_a - (2* rof2) - PRG_STOP_DELAY - (C90/2.0) - (pwCA180/2.0); delay(Tc_a + t1evol); dec2power(pwCA180l); dec2shaped_pulse(shca180,pwCA180,one,rof2,rof2); /* Ca refocusing pulse*/ Tc_b = Tc - (WFG_START_DELAY) - (WFG_STOP_DELAY); Tc_b = Tc_b - (2*POWER_DELAY) - (2*rof2); Tc_b = Tc_b - PRG_STOP_DELAY - PRG_START_DELAY - (pwCA180/2.0); Tc_b = Tc_b - (pwCA90/2.0); delay(Tc_b - t1evol); dec2power(pwCA90l); dec2shaped_pulse(shca90,pwCA90,t3,rof2,rof2); /* C-C cosy pulse*/ /* same phase as receiver in order to cancel CxCy after C-C cosy transfer */ if (dpwr_t1 > 0) { decoff(); decprgoff(); decpower(pwNlvl); /* reset 15N power level */ } dec2offset(dof2); delay(tauCAN); dec2power(pwCA180l); sim3pulse(0.0,pwN*2.0,pwCA180,one,one,one,rof2,rof2); delay(tauCAN); obsoffset(tof); obspower(tpwr_t2); dec2power(pwCA90l); sim3shaped_pulse("hard","hard",shca90,0.0,pwN,pwCA90,one,t2,t5,rof2,rof2); /* decrgpulse(pwN,t2,rof2,rof2); dec2rgpulse(pwCA90,t5,rof2,rof2); */ if ( dpwr3_t1 > 0.1) { dec3prgoff(); dec3off(); } if ( concat2[A] == 'y' ) { t2evol = d3/2.0; /* third 15N axis */ if ( dpwr3_t2 > 0.1 ) { if ( ch4[A] == 'y' ) { dec3power(dpwr3_t2); dec3prgon(dseq3_t2,1/dmf3_t2,dres3_t2); /* turn on wfg programming. */ dec3on(); } } Tn1 = Tn - t2evol - (2*rof2) - (0.5 * pwN) - (2.0*POWER_DELAY) - (PRG_START_DELAY) - (PRG_STOP_DELAY); delay(Tn1); dec2power(pwCA180l); sim3pulse(0.0,2.0*pwN,pwCA180,one,one,one,rof2,rof2); Tn2 = Tn + t2evol - (2*tauNH) - (2.0*POWER_DELAY) - (PRG_START_DELAY) - (PRG_STOP_DELAY) - (2*rof2) - (0.5*pwN); delay(Tn2); xmtroff(); /* turn off proton decouping */ obsprgoff(); if ( se[A] == 'y' ) { tauNH1 = (taufocNH) - (gt1*quant1) - recover; delay(tauNH1); } } else /* i.e. concat2 = n */ { dec2power(pwCA180l); delay(tauCAN); sim3shaped_pulse("hard","hard",shca180,0.0,pwN*2.0,pwCA180,one,one,one,rof1,rof2); /* if ( ch4[A] == 'y' ) sp1off(); */ xmtroff(); /* turn off proton decouping */ obsprgoff(); dec2offset(dofc); dec2power(dpwr2); obspower(tpwr_t2); delay(tauCAN); t2evol = d3; /* third 15N axis */ t2evolA = t2evol - (2.0*PRG_START_DELAY) - (2.0*PRG_STOP_DELAY); if (t2evolA > 2.0e-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(); /* replacing rfon(TODEV); */ dec2on(); delay(t2evolA); dec2off(); xmtroff(); /* replacing rfoff(TODEV); */ dec2prgoff(); obsprgoff(); } else { delay(t2evol); } } if ( se[A] == 'y' ) /* sensitivity enhanced sequence */ { if ( concat2[A] == 'y' ) { /* gradient */ rgradient('z',gzlvl1); delay(gt1*quant1); rgradient('z',0.0); delay(recover); } else { tauNH1=tauNH-(0.5*gt1*quant1)-recover; delay(tauNH1); /* gradient */ rgradient('z',(-1.0*gzlvl1)); delay(0.5*gt1*quant1); rgradient('z',0.0); delay(recover); simpulse(2*pw,2*pwN,one,one,rof2,rof2); delay(recover); rgradient('z',gzlvl1); delay(0.5*gt1*quant1); rgradient('z',0.0); tauNH3 = tauNH - (0.5*gt1*quant1) - recover; delay(tauNH3); } if ( dpwr3_t2 > 0.1 ) { dec3off(); dec3prgoff(); } obspower(tpwr); simpulse(pw,pwN,zero,zero,rof2,rof2); dec2offset(dofc); dec2power(dpwr2); dec2prgon(dseq2,1/dmf2,dres2); dec2on(); delay(tauNH); simpulse(2*pw,2*pwN,one,one,rof2,rof2); delay(tauNH); 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,rof2); delay(gt1+recover); rgpulse(pw*2.0,zero,rof1,rof2); if (phase2 == 1) { rgradient('z',gzlvl1); } else { rgradient('z',(-1.0*gzlvl1)); } delay(gt1); rgradient('z',0.0); delay(recover); } else { /* se ='n' */ obspower(tpwr); tauNH1=(2.0*tauNH)-(gt1*quant1)-recover; delay(tauNH1); /* gradient */ rgradient('z',gzlvl1); delay(gt1*quant1); rgradient('z',0.0); delay(recover); if ( dpwr3_t2 > 0.1 ) { dec3off(); dec3prgoff(); } dec2offset(dofc); dec2power(dpwr2); dec2prgon(dseq2,1/dmf2,dres2); dec2on(); if ( zfilt2 > 0.0 ) /* zfilter creates HzNz */ { decrgpulse(pwN,zero,rof2,rof2); rgradient('z',gzlvl1); delay(zfilt2); rgradient('z',0.0); delay(recover); rgpulse(pw,zero,rof1,rof1); } else { simpulse(pw,pwN,zero,zero,rof2,rof2); } obspower(tpwr); tauNH1= tauNH - 2.0*POWER_DELAY; delay(tauNH1); simpulse(2*pw,2*pwN,one,one,rof2,rof2); tauNH2 = tauNH - pwN -rof1-rof2- PRG_STOP_DELAY - POWER_DELAY; tauNH2=tauNH2-gt1-recover; delay(tauNH2); if (phase2 == 1) { rgradient('z',gzlvl1); } else { rgradient('z',(-1*gzlvl1)); } delay(gt1); rgradient('z',0.0); delay(recover); dec2off(); dec2prgoff(); decrgpulse(pwN,zero,rof2,rof2); } dec2off(); dec2prgoff(); decpower(dpwr); status(B); } /* pfgcacosy.ph phase table for triple resonance experiment t1 = 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 15N 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' carbonyl t8 = 1 */