Protocol: AhXYX  Sequence: ahXYX.c  Apptype: solidseq1d

Description: 

A 3D sequence to provide XYX correlation with HXYX triple cross 
polarization followed by DARR mixing. The F1 period follows HX CP,
The F2 period follows XY CP and a YX CP is followed by DARR mixing
and F3 acquisition.  

Decoupling during F1,F2 and F3 uses either 2-angle SPINAL or TPPM
and a constant time option is provided. Y refocusing during F1 is 
provided by a softpulse and X refocusing during F2 is provided by 
a composite pulse. 

A constant-time decoupling period, tRF, follows acquisition to
compensate d2 and d3 decoupling. 

Acknowledgement:

Sequence provided by Chad Reinstra UIUC as hXYX.c. 

Setup:

Load an exisiting dataset or type Settancpx. Type AhXYX, select 
the desired options and determine calibrations for the desired
experiment. 

Special Parameters: 


Parameter Groups: 

cpHX:  Module:  yes
Sequence:  tancpx.c
Description:  Implements constant, linear or tangent-ramped cross
              polarization from dec to obs.
Parameters:  Sequence Page
       shHX - 'c', constant, 'l', linear and 't', tangent shape on the
              channel designated with chHX.
       chHX - the variable-amplitude channel, 'fr' from or 'to', to.
       aHhx - median amplitude of the dec channel.
       aXhx - median amplitude of the obs channel.
       bHX - +/- tangent curvature (>0 to 1.0e5).
       dHX - amplitude width of the ramp. A negative width sets a ramp
              that starts high and decreases in amplitude.
       tHX - contact time
       ofHX - overall offset on the variable channel
       frHX = 'dec' -  channel with the initial polarization (must be
              set - not shown).
       toHX = 'obs' -  channel with the final polarization (must be set
              - not shown).
Implementation:  CP hx = getcp("HX",0.0,0.0,0,1);
Underscore function: _cp_(hx,phHhx,phXhx); phHhx is the overall phase
              table for the H channel and phXhx is that for the X channel.
cpXY:  Module:  yes
Sequence: cncc4ds.c
Description:  Implements constant, linear or tangent-ramped cross
              polarization from obs to dec2.
Parameters:  Sequence Page
       shXY - 'c', constant, 'l', linear and 't', tangent shape on the
              channel designated with chXY.
       chXY - the variable-amplitude channel, 'fr' from or 'to', to.
       aXY - median amplitude of the obs channel.
       aXxy - median amplitude of the dec2 channel.
       bXY - tangent curvature (>0 to 1.0e5).
       dYX - +/- amplitude width of the ramp. A negative width sets a
              ramp that starts high and decreases in amplitude.
       tYX - contact time.
       ofYX - overall offset on the variable channel.
       frXY = 'obs' - channel with the initial polarization (must be
              set - not shown).
       toXY = 'dec2' - channel with the final polarization (must be set
             - not shown).
Implementation: CP xy = getcp("XY",0.0,0.0,0,1);
Underscore function: _cp_(xy,phXxy,phYxy); phXxy is the overall phase
              table for the X channel and phYxy is that for the Y channel.

cpYX:  Module:  yes
Sequence: dcptan.c
Description:  Implements constant, linear or tangent-ramped cross
              polarization from dec2 to obs.
Parameters:  Sequence Page
       shYX - 'c', constant, 'l', linear and 't', tangent shape on the
              channel designated with chYX.
       chYX - the variable-amplitude channel, 'fr' from or 'to', to.
       aYyx - median amplitude of the dec2 channel.
       aXyx - median amplitude of the obs channel.
       bYX - tangent curvature (>0 to 1.0e5).
       dYX - +/- amplitude width of the ramp. A negative width sets a
              ramp that starts high and decreases in amplitude.
       tYX - contact time.
       ofYX - overall offset on the variable channel.
       frYX = 'dec2' - channel with the initial polarization (must be
              set - not shown).
       toYX = 'obs' - channel with the final polarization (must be set
              - not shown).
Implementation: CP yx = getcp("YX",0.0,0.0,0,1);
Underscore function: _cp_(yx,phYyx,phXhx); phYyx is the overall phase
              table for the Y channel and phXhx is that for the X channel.

90X:  Module:  no
Sequence:  onepul.c
Description:  Provides a 90-degree pulse on obs that is used in a composite 
              refocusing pulse during F1.  
Parameters:  Channels Page
      aX90  - the amplitude of the pulse.
      pwX90 - the pulse length.

mixX:  Module:  no
Sequence:  tancp2drad.c
Description:  Implements a mixing delay in sequences where mixing occurs
              among the obs nuclei. CW decoupling is allowed on DEC.
              Typically used for DARR (RAD) mixing periods where decoupling
              at a field strength of srate/2.0 enhances obs spin diffusion.
Parameters:  Sequence Page
       tXmix - the mixing delay time. The delay may or may not be rotor
              synchronized, depending on the sequence.
       aHmix - amplitude of decoupling.

Yseq:  Module: yes (implementation 2 for SPINAL (2-angle) TPPM and WALTZ) 
Sequence:  ahX.c
Description:  Chooses SPINAL, SPINAL2, TPPM or WALTZ decoupling on 
              the dec2 channel during acquisition.
Parameters:   Sequence Page - the Yspinal, Ytppm and other groups
              overlap.  Yseq chooses the decoupling sequences TPPM
              SPINAL, SPINAL2 or WALTZ. 
Implementation:  DSEQ dec2 = getdseq("Y"); The router implements
              getspinal(), getspinal2(), gettppm() or getwaltz(), as
              selected.
Implementation2: DSEQ dec2 = getdseq2("Y"); The router implements
              getspinal2s(), gettppm() or getwaltz(), as selected.
Underscore functions:  _dseqon(dec2); runs _tppm(); _spinal(); _spinal2 
              or _waltz, as selected. dseqoff(dec2); runs dec2prgoff();
Underscore functions2:  _dseqon2(dec2); runs _tppm(); _spinal2(); or _waltz()
             _dseqoff(dec2); runs dec2prgoff();

Yspinal:  Module: yes
Sequence:  ahX.c
Description:  Implements SPINAL decoupling on the dec2 channel during
              acquisition. Implements SPINAL2 (2-ANGLE) decoupling with 
              getdseq2() or getspinal2s().
Parameters:  Sequence Page
       aYspinal - amplitude of the dec2 channel.
       pwYspinal - approximate 180-degree flip.
       phYspinal - +/- small angle phase. SPINAL64 (1) is implemented
              with phases = +/- 1.0, +/- 1.5 and +/-2.0 times
              phYspinal or (2) is implemented with phases = +/- phYspinal, 
              +/- (phYspinal + alpYspinal) and +/- (phYspinal + 2.0*alpYspinal).
       alpYspinal - second angle - set 0.0 for TPPM and phYspinal/2.0
                     for standard SPINAL64.             
       chYspinal = 'dec2' must be set (not shown).
Implementation: SPINAL dec2 = getspinal("Y"); or DSEQ dec2 = getdseq("Y");
Implementation2: SPINAL2 dec2 = getspinal2s("Y"); or DSEQ dec2 = getdseq2("Y");
Underscore functions: _spinal(dec2); and dec2prgoff(); or _dseqon(dec2);
             and _dseqoff(dec2);
Underscore functions2: _spinal2(dec2); and dec2prgoff(); or _dseqon2(dec2);
             and _dseqoff2(dec2);
        
Ytppm:  Module: yes
Sequence:  ahX.c
Description:  Implements TPPM decoupling on the dec2 channel during
              acquisition.
Parameters:  Sequence Page
       aYtppm - amplitude of the dec2 channel.
       pwYtppm - approximate 180-degree flip angle on resonance.
       phYtppm - +/- small angle phase. TPPM is implemented
              with phases = +/- 1.0 times phYtppm for alternating
              pulses.
       chYtppm = 'dec2' must be set (not shown).
Implementation: TPPM dec2 = gettppm("Y"); or DSEQ dec2 = getdseq("Y");
Implementation2: DSEQ dec2 = getdseq2("Y");
Underscore functions: _tppm(dec2); and dec2prgoff(); or _dseqon(dec2); and
              _dseqoff(dec2);
Underscore functions2: _dseqon2(dec2); and _dseqoff2(dec2);

Ywaltz:  Module:  yes
Sequence: ahX.c
Description:  Implements WALTZ16 decoupling on the dec2 channel during
              acquisition.
Parameters:  Sequence Page
       aYwaltz - amplitude of the dec2 channel.
       pwYwaltz - 90-degree flip angle on resonance.       
       chYwaltz = 'dec2' must be set (not shown).
Implementation: WALTZ dec2 = getwaltz("Y"); or DSEQ dec = getdseq("Y");
Implementation2: DSEQ dec = getdseq2("Y");
Underscore functions: _waltz(dec2); and dec2prgoff(); or _dseqon(dec2);
              and _dseqoff(dec2);
Underscore functions2: _dseqon2(dec2); and _dseqoff2(dec2);

Hseq:  Module: yes (implementation 2 for SPINAL (2-angle) and TPPM)
Sequence:  tancpx.c and ahX.c
Description:  Chooses SPINAL, SPINAL2, TPPM or WALTZ decoupling on 
              the dec channel during acquisition.
Parameters:   Sequence Page - The Hspinal, Htppm and other groups
              overlap.  Hseq chooses the decoupling sequences TPPM
              SPINAL, SPINAL2 or WALTZ. 
Implementation:  DSEQ dec = getdseq("H"); The router implements
              getspinal(), getspinal2(), gettppm() or getwaltz(), as
              selected.
Implementation2: DSEQ dec = getdseq2("H"); The router implements
              getspinal2s(), gettppm() or getwaltz(), as selected.
Underscore functions:  _dseqon(dec); runs _tppm(); _spinal(); _spinal2 
              or _waltz, as selected. dseqoff(dec); runs decprgoff(dec);
Underscore functions2:  _dseqon2(dec); runs _tppm(); _spinal2() or _waltz();
             _dseqoff2(dec); runs decprgoff();

Hseq:  Module: yes (implementation 2 for SPINAL (2-angle) and TPPM)
Sequence:  tancpx.c and ahX.c
Description:  Chooses SPINAL, SPINAL2, TPPM or WALTZ decoupling on 
              the dec channel during acquisition.
Parameters:   Sequence Page - The Hspinal, Htppm and other groups
              overlap.  Hseq chooses the decoupling sequences TPPM
              SPINAL, SPINAL2 or WALTZ. 
Implementation:  DSEQ dec = getdseq("H"); The router implements
              getspinal(), getspinal2(), gettppm() or getwaltz(), as
              selected.
Implementation2: DSEQ dec = getdseq2("H"); The router implements
              getspinal2s(), gettppm() or getwaltz(), as selected.
Underscore functions:  _dseqon(dec); runs _tppm(); _spinal(); _spinal2 
              or _waltz, as selected. dseqoff(dec); runs decprgoff(dec);
Underscore functions2:  _dseqon2(dec); runs _tppm(); _spinal2() or _waltz();
             _dseqoff2(dec); runs decprgoff();

Hspinal:  Module: yes
Sequence:  tancpx.c and ahX.c
Description:  Implements (2-angle) SPINAL2 decoupling on the dec channel 
              with the dseq2 module.
Parameters:  Sequence Page
       aHspinal - amplitude of the dec channel.
       pwHspinal - approximate 180-degree flip.
       phHspinal - +/- small angle phase. SPINAL64 (1) is implemented
              with phases = +/- 1.0, +/- 1.5 and +/-2.0 times
              phHspinal or (2) is implemented with phases = +/- phHspinal, 
              +/- (phHspinal + alpHspinal) and +/- (phHspinal + 2.0*alpHspinal).
       alpHspinal - second angle - set 0.0 for TPPM and phHspinal/2.0
                     for standard SPINAL64.             
       chHspinal = 'dec' must be set (not shown).
Implementation: SPINAL dec = getspinal("H"); or DSEQ dec = getdseq("H");
Implementation2: SPINAL2 dec = getspinal2s("H"); or DSEQ dec = getdseq2("H");
Underscore functions: _spinal(dec); and decprgoff(); or _dseqon(dec);
             and _dseqoff(dec);
Underscore functions2: _spinal2(dec); and decprgoff(); or _dseqon2(dec);
             and _dseqoff2(dec);
        
Htppm:  Module: yes
Sequence:  tancpx.c and ahX.c
Description:  Implements TPPM decoupling on the dec channel with the 
              dseq2 module.  
Parameters:  Sequence Page
       aHtppm - amplitude of the dec channel.
       pwHtppm - approximate 180-degree flip angle on resonance.
       phHtppm - +/- small angle phase. TPPM is implemented
              with phases = +/- 1.0 times phHtppm for alternating
              pulses.
       chHtppm = 'dec' must be set (not shown).
Implementation: TPPM dec = gettppm("H"); or DSEQ dec = getdseq("H");
Implementation2: DSEQ dec = getdseq2("H");
Underscore functions: _tppm(dec); and decprgoff(); or _dseqon(dec); and
              _dseqoff(dec);
Underscore functions2: _dseqon2(dec); and _dseqoff2(dec);
