/* pfg_hsqc_TROSY_se2 PFG-HETZY Ch 2 (usually N15) with TROSY enhancements. Copyright 1995 G. Montelione. Center for Advanced Biotechnology and Medicine, Rutgers Univ. modified PVS GVTS 05 13 99 to implement TROSY enhancements. phase = 1,2; use wft2d(1,0,1,0,0,1,0,-1) Could not modify the gradients to allow the use of same coeffients as the other experiments. Reversing the gradients to allow that results in reduced sensitivity and phase distortion. No se='y'/'n' option. Always sensitivity enhanced. modified gvts 07 02 97 to import to INOVA 600 from UNITY 500 Uses ch2 for 15N, ch3 for 13C and ch4 for 13C'. Can be modified to use shifted pulses and ch3 for 13C & 13C' (currently not implemented) TODEV is used for 1H pulses, spin lock, and water preirr. DODEV is used for X-nucleus pulses and decoupling DO2DEV is used for decoupling the third nucleus Nagayama in w1; phase = 1,2 Use wft2d(1,0,1,0,0,-1,0,1) or wft2d(1,0,0,1,0,1,1,0) The t1 timing has been optimized to avoid t1-ridges special parameters: pw: 90 deg 1H pulse, uses tpwr pwN: 90 deg N15 pulse,uses pwNlvl C90: 90 deg C13 pulse, uses C90lvl d2: incremented delay for X frequency labeling (calculated from sw1) j: effective 15N-1H coupling d5: 1/ (4 * j) (calculated internally in the pulse sequence) presat: preirradiation time (secs) satpwr: power for presaturation irrfrq: water irradiation frequency tof: frequency for the rest of the pulse sequence hst: homospoil delay time in zz-filter (only if hs='y' in status period A) dpwr: decoupling on Ch 2 during detection dpwr2: decoupling on Ch 3 during detection rof1: phase setting time rof2: amplifier unblanking alfa: receiver blanking gzlvl1: amplitude of PFG pulse gt1: unit length of PFG pulse quant1: mq selection parameters (for N15 quant1 =~ 9.91) pwN,pwNlvl used for Ch2 (N15) C90,C90lvl used for Ch3 (C13) important note make sure you array phase instead of Ppeak */ #include static int phi1[1] = { 0 }, phi2[1] = { 1 }, phi3[4] = { 0,2,0,2 }, phi4[1] = { 2 }, phi5[1] = { 3 }, phi6[4] = { 0,2,0,2 }, phi8[1] = { 0 }, rec[4] = { 1,3,1,3 }; pulsesequence() { /* declarations and assignments */ double pwN,recover,presat,irrfrq,j; double satpwr,pwNlvl; double C90lvl,C90,tauNH; double gzlvl1,gt1,zfilt2,gzlvl2,quant1,phase; char se[MAXSTR]; presat=getval("presat"); satpwr=getval("satpwr"); pwNlvl=getval("pwNlvl"); pwN=getval("pwN"); j=getval("j");irrfrq=getval("irrfrq"); gzlvl1=getval("gzlvl1"); gt1=getval("gt1");quant1=getval("quant1"); phase = getval("phase"); getstr("se",se); tauNH=getval("tauNH"); recover=getval("recover"); C90lvl=getval("C90lvl"); C90=getval("C90"); zfilt2=getval("zfilt2"); gzlvl2=getval("gzlvl2"); if ( gt1 > 0.010 ) { text_error("pulsed gradient time too long"); abort(1); } if ( dpwr > 45 ) { text_error("dpwr is greater than 45 \n"); abort(1); } if ( dpwr2 > 45 ) { text_error("dpwr2 is greater than 45 \n"); abort(1); } /* loadtable("pfghetzych2se.ph"); load phase table */ settable(t1,1,phi1); settable(t2,1,phi2); /* no pulse */ settable(t3,4,phi3); /* Gradient refoucusing 180 deg pulse during t1 */ settable(t4,1,phi4); /* Sensitivity enhanced proton inversion */ settable(t5,1,phi5); settable(t6,4,phi6); settable(t8,1,phi8); settable(t31,4,rec); /* preparation period */ getelem(t31,ct,oph); /* receiver phase */ if ( phase == 1) { getelem(t3,ct,v3); } else { getelem(t6,ct,v3); } getelem(t4,ct,v4); getelem(t5,ct,v5); if ( phase == 2 ) add(v4,two,v4); if ( phase == 2 ) add(v5,two,v5); status(A); obsoffset(tof); /*default offset is at tof */ rcvroff(); delay(d1); /* recycle time = presat + d1 */ if (presat > 0.0) { obspower(satpwr); /* set presat power */ obsoffset(irrfrq); /* adjust TODEV freq to water resonance irrfrq */ rgpulse(presat,zero,rof1,rof2); obsoffset(tof); /* adjust TODEV freq to tof */ } obspower(tpwr); /* load TODEV with tpwr */ decpower(pwNlvl); /* load DODEV with pwNlvl */ dec2power(C90lvl); /* load DO2DEV with pwClvl */ rgpulse(pw,two,rof1,rof2); /* first pulse */ delay(tauNH); simpulse(pw*2,pwN*2,zero,zero,rof1,rof2); delay(tauNH); if ( zfilt2 > 0.0 ) { rgpulse(pw,one,rof1,rof2); /* 1H y-pulse converts IxSz to -IzSz */ rgradient('z',gzlvl2); delay(zfilt2); rgradient('z',0.0); delay(recover); decrgpulse(pwN,v3,rof1,rof2); /* X(N15) nucleus x-pulse */ } else { simpulse(pw,pwN,one,v3,rof1,rof2); } /* evolution time */ if ( d2 > 2*C90) { delay(d2*0.5 - C90); dec2power(C90lvl); dec2rgpulse(2*C90,zero,rof2,rof2); delay(d2*0.5 - C90); } else { delay(d2); } /* gradients split around 180 deg pulse */ if( phase == 2 ) { rgradient('z',(-1.0 * gzlvl1)); delay(gt1 * quant1 * 0.5); rgradient('z',0.0); delay(recover); decrgpulse(2*pwN,t1,rof1,rof1); rgradient('z',gzlvl1); delay(gt1 * quant1 * 0.5); rgradient('z',0.0); delay(recover); } else { rgradient('z',( gzlvl1)); delay(gt1 * quant1 * 0.5); rgradient('z',0.0); delay(recover); decrgpulse(2*pwN,t1,rof1,rof1); rgradient('z',(-1.0 *gzlvl1)); delay(gt1 * quant1 * 0.5); rgradient('z',0.0); delay(recover); } /* Homospoil is disabled during sensitivity enhanced */ /* to avoid killing the enhancement from IySz or IxSz */ rgpulse(pw,v4,rof1,rof2); delay(tauNH); simpulse(pw*2,pwN*2,zero,zero,rof1,rof2); delay(tauNH); simpulse(pw,pwN,t2,t8,rof1,rof2); delay(tauNH); simpulse(pw*2,pwN*2,zero,zero,rof1,rof2); delay(tauNH); decrgpulse(pwN,v5,rof1,rof2); delay(gt1+recover); rgpulse(pw*2.0,zero,rof1,rof2); if (phase == 1) { rgradient('z',gzlvl1); } else { rgradient('z',(gzlvl1)); } delay(gt1); rgradient('z',0.0); delay(recover); dec2power(dpwr2);decpower(dpwr); status(B); } /* Phase cycling done using Static int structure above. */