Protocol: AhYXX  Sequence: ahYXX.c  Apptype: solidseq1d

Description: 

A multifunctional 3D sequence to provide YXX correlation with HYX
double cross polarization, followed by XX mixing, using DARR, C7 
or SPC5. The C7 amd SPC7 can be executed optionally with or 
without a double quantum filter. The F1 period follows HY CP, 
the F2 period follows YX CP and F3 acquisition follows the XX 
mixing. Decoupling during F1,F2 and F3 uses either 2-angle SPINAL or TPPM
and a constant time option is provided. X refocusing during F1 is 
provided by a composite pulse and Y refocusing during F2 is provided
by the choice of a composite pulse or a softpulse.

Acknowledgement:

Sequence provided by Chad Reinstra UIUC as hYXX.c. 

Setup:

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

DecouplingH: Hseq='tppm' or 'spinal'.
F2 Refocusing: softpul='n' for composite and softpul='y'for shaped. 
Constant Time: Set tRF and t3max
Mixing: mMix = 'rad','c7','spc5'
Double Quantum Mixing (C7 and SPC5) 'n' is regular and 'y' 
is double quantum. 

Parameter Groups: 

cpHY:  Module:  yes
Sequence:  dcptan.c
Description:  Implements constant, linear or tangent-ramped cross
              polarization from dec to dec2.
Parameters:  Sequence Page
       shHY - 'c', constant, 'l', linear and 't', tangent shape on the
              channel designated with
                      chHY.
       chHY - the variable-amplitude channel, 'fr' from or 'to', to.
       aHhy - median amplitude of the dec channel.
       aXhy - median amplitude of the dec2 channel.
       bHY - tangent curvature (>0 to 1.0e5).
       dHY - +/- amplitude width of the ramp. A negative width sets a
              ramp that starts high and decreases in amplitude.
       tHY - contact time.
       ofHY - overall offset on the variable channel.
       frHY = 'dec' - channel with the initial polarization (must be
              set - not shown).   
       toHY = 'dec2' - channel with the final polarization (must be set
              - not shown).
Implementation: CP hy = getcp("HY",0.0,0.0,0,1);
Underscore function: _cp_(hy,phHhx,phYhy); phHhx is the overall phase
              table for the H channel and phYhy 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.

90Y:  Module:  no
Sequence:  onepul.c
Description:  Provides a 90-degree pulse on dec2 that is used in a composite 
              refocusing pulse during F2.  
Parameters:  Channels Page
      aY90  - the amplitude of the pulse.
      pwY90 - the pulse length.

shp1X:  Module: yes (also shp2H and shp3Y)
Sequence:  ahX.c
Description:  Implements a named shaped pulse in wavelib with 
              pBox to be sed on the obs channel for refocussing
              during F1.
Parameters:  Sequence Page
       chXshp1 - must be 'obs'. 
       wvXshp1 - pBox pulse waveshape from wavelib.
       aXshp1 - amplitude of pBox pulse.
       dbXshp1 - attenuator setting for pBox pulse.
       tXshp1 - predelay for pBox pulse.
       pwXshp1 - width of pBox pulse.
       phXshp1 - starting small angle phase adjust.
       stXshp1 - shape parameter - see pBox documentation
       tECHO - total refocusing delay. 
Implementation:  PBOXPULSE shp1 = getpboxpulse("shp1X",0);
                 PBOXPULSE shp2 = getpboxpulse("shp2H",0);
                 PBOXPULSE shp3 = getpboxpulse("shp3Y",0);
Underscore function: _pboxpulse(shp1,phXshp1);
              _pboxsimpulse(shp1,shp2,phXshp1,phHshp2);
              _pboxsim3pulse(shp1,shp2,shp3,phXshp1,phHshp2,phYshp3);
Notes:  phXshp1 (and 2 or 3) is the overall phase table for the shape.
        _pboxsim(3)pulse uses multiple shapes where the arguments are 
        obs, dec, dec2 in order.  Label the shapes with the correct 
        channel identifier X, H, Y using getpboxpulse depending on the 
        channel for which it is used. _pboxsim(3)pulse cannot accept 
        shapes on dec (identifier Z). 

c7X: Module:  yes
Sequence:  c7inad2d.c
Description:  Implements the Post C7 recoupling sequence on the obs
              channel during XX mixing. 
Parameters:  Sequence Page
       aXc7 - amplitude of obs pulses.
       pwXc7 - 360-degree flip on obs.
       qXc7 - C7 cycles represented in the .DEC file.
       ofXc7 - overall frequency offset.
       chXc7 = 'obs' must be set (not shown).
Implementation: MPSEQ c7 = getpostc7("c7X",0,0.0,0.0,0,1);
Underscore functions: _MPSEQ functions.

spc5X:  Module:  yes
Sequence:  inad2dspc5.c
Description:  Implements the SPC5 recoupling sequence on the obs
              channel.
Parameters:  Sequence Page
       aXspc5 - amplitude of obs pulses.
       pwXspc5 - 360-degree flip on obs.
       qXspc5 - SPC5 cycles represented in the .DEC file.
       ofXspc5 - overall frequency offset.
       chXspc5 = 'obs' must be set (not shown).
Implementation: MPSEQ spc5 = getspc5("spc5X",0,0.0,0.0,0,1);
Underscore functions: _MPSEQ functions.

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.

Note:  This sequence uses getdseq2() instead of getdseq(). The getdseq2() router
       calls 2-angle spinal by default when Hseq = 'spinal'. Calls to 1-angle
       SPINAL should use getdseq(). Calls to TPPM and WALTZ are similar to 
       those of getdseq(). 

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 SPINAL decoupling on the dec channel during
              acquisition. Implements SPINAL2 (2-angle) decoupling with 
              getdseq2() or getspinal2s().
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 during
              acquisition.
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);
