back to relaxation

Varian Sequence for R2:

/*  N15 T2 Relaxation Experiment maximizing conformational exchange*/
/*  Erik R.P. Zuiderweg, University of Michigan, 06/20/01, all rights reserved*/
/*  Coding style: Erik R.P. Zuiderweg + Ananya Majumdar, Sloan-Kettering*/
/*
 All parameters are declared in the file erpz_include.h
    Relevant here are:
 hpwr0: 1H high power (57 -60 dB)
 cpdpwr1: 1H CPD power (40 -46 dB)
 hpwr1: 1H solvent selective power (20 dB)
 npwr0: 15N high power (57 -60 dB)
 cpdpwr2: 15N decoupling power (40 dB)

 p90h: 1H high power 90 deg pulse
 cpdp900: 1H CPD 90 deg pulse (50 us)
 pul20: 1H  high power purge pulse (1 ms)
 pul21: 1H  high power purge pulse (1 ms)
 pul22: 1H  high power purge pulse (1 ms)
 pul8: 1H solvent selective 90 pulse (1 ms)

 p90n: 15N high power 90 deg pulse

 grpwr1-5: gradient power (1000 -10000)
 grpul1-5: square gradient pulse length (1ms)
 phcor12: phase correction for watergate
 cpdres0: resolution angle for 1H CPD decoupling

 del18: recycle delay
 del16: T2/2
 del10: gradient recovery time (100 us)
 del3: 1/4JNH or shorter
 del4: 1/4JNH
 tau1: t1/2

 recorded with states-tppi - no sensitivity enhancement or trosy
 water suppression by soft-hard-soft watergate
 solvent kept saturated in sequence
 to avoid variation over the relaxation series
*/

#include <standard.h>

static double d2_init = 0.0;

static int phi1[2] = {0,2},
         phi4[4] = {0,0,2,2},
  phi5[8]={0,0,0,0,2,2,2,2},
  phi6[8]={1,1,1,1,3,3,3,3},
 phi3[1] = {1},
 psirec[4]={0,2,2,0};

pulsesequence()
{
 

/* DECLARE AND LOAD VARIABLES */
 

#include "erpz_include.h"
 

/* Load Phase Table */

  settable(t1,2,phi1);
  settable(t4,4,phi4);
  settable(t5,8,phi5);
  settable(t6,8,phi6);
  settable(t3,1,phi3);
  settable(t31,4,psirec);

    initval(loop10,v8);

  if(ix == 1) {
    printf("The T2 time is %f ms\n",del16*2000.);
  }

  /* create phase correction */

  if(phcor12 < 360) phcor12 = phcor12+360;
  initval(phcor12,v12);
 

/* CHECK VALIDITY OF PARAMETER RANGE */

    if(cpdpwr2 > 50 )
     {
        printf("cpdpwr too high");
        abort(1);
     }
 

     if(dm[B]=='y')
     {
        printf("decoupler1 illegally on");
 abort(1);
     }

         if(dm3[B]=='y')
     {
        printf("decoupler3 illegally on");
 abort(1);
     }
 
 
 

/* Phase incrementation for hypercomplex data */
   if ( phase1 == 2 )     /* Hypercomplex in t1 */
        tsadd(t3, 1, 4);
 

/* calculate modification to phases based on current t1 values
   to achieve States-TPPI acquisition */
 

   if(ix == 1)
      d2_init = d2;
      t1_counter = (int) ( (d2-d2_init)*sw1 + 0.5);

      if(t1_counter %2) {
        tsadd(t3,2,4);
        tsadd(t31,2,4);
      }

         tau1 = d2/2.;
 
 

/* BEGIN ACTUAL PULSE SEQUENCE */

/* Receiver off time */

status(A);
   rcvroff();
   delay(5e-6);
  delay(del18);
obspower(hpwr0); xmtrphase(zero) ;
dec2power(npwr0);
   delay(10.e-6);
   dec2rgpulse(p90n,zero,2.0e-6,0.);
   delay(10.e-6);
   zgradpulse(grpwr1,grdel1);
   delay(del10);

   rgpulse(p90h,t4,2.0e-6,0.);
   delay(del3);
   rgpulse(p90h*2.0,one,2.0e-6,0.);
   dec2rgpulse(p90n*2.0,zero,2.0e-6,0.);
   delay(del3-p90n*2.0);
   rgpulse(pul20,zero,2.0e-6,0.);
   rgpulse(p90h,one,2.0e-6,0.);
   delay(10.e-6);
   zgradpulse(grpwr2,grdel2);
   delay(del10);
   dec2rgpulse(p90n,t1,2.0e-6,0.);
   delay(del4);
   rgpulse(p90h*2.0,one,2.0e-6,0.);
   dec2rgpulse(p90n*2.0,zero,2.0e-6,0.);
   delay(del4+p90h*2.0);

   obspower(cpdpwr0); obsprgon("waltz16",cpdp900,cpdres0); xmtron();
   delay(10.e-6);
   delay(del16-p90n*2-15.e-6);
   xmtroff();obsprgoff(); delay(5.e-6);
   dec2rgpulse(p90n,t6,2.0e-6,0.);
   dec2rgpulse(p90n*2,t5,2.0e-6,0.);
   dec2rgpulse(p90n,t6,2.0e-6,0.);
   obsprgon("waltz16",cpdp900,cpdres0); xmtron();
   delay(del16-p90n*2-10.e-6);
   xmtroff();obsprgoff(); obspower(hpwr0);
   delay(10.e-6);

   dec2rgpulse(p90n,one,2.0e-6,0.);
   rgpulse(pul21,zero,2.0e-6,0.);
   rgpulse(pul22,one,2.0e-6,0.);
   delay(10.e-6);
   zgradpulse(grpwr3,grdel3);
   delay(del10);

   dec2rgpulse(p90n,t3,2.0e-6,0.);
   delay(del4+d2_init);
   dec2rgpulse(p90n*2.0,zero,2.0e-6,0.);
   delay(tau1);
   rgpulse(p90h*2.0,zero,2.0e-6,0.);
   delay(del4 + tau1-p90h*2.0);
   dec2rgpulse(p90n,zero,2.0e-6,0.);

   delay(10.e-6);
   zgradpulse(grpwr4,grdel4);
   delay(del10);

    rgpulse(p90h,two,2.0e-6,0.);
   delay(del3-grdel5-1.5e-5-del10-pul8);
   zgradpulse(grpwr5,grdel5);  delay(1e-5);
   delay(del10);
obspower(hpwr1); obsstepsize(1.0); xmtrphase(v12) ; txphase(two);
   delay(5.e-6);
   rgpulse(pul8,two,2.0e-6,0.);
obspower(hpwr0); xmtrphase(zero) ;
   delay(5.e-6);
   delay(p90n*2.0);
   rgpulse(p90h*2.0,zero,2.0e-6,0.);
   dec2rgpulse(p90n*2.0,zero,2.0e-6,0.);
obspower(hpwr1); obsstepsize(1.0); xmtrphase(v12) ; txphase(two);
   delay(5.e-6);
   rgpulse(pul8,two,2.0e-6,0.);
zgradpulse(grpwr5,grdel5);  delay(1e-5);
   delay(del10+rof2);
dec2power(cpdpwr2);
  delay(del3-grdel5-1.5e-5-del10-pul8);
   status(B);
   setreceiver(t31);
}