Protocol: AhXH  Sequence: ahXH.c  Apptype: solidseq1d

Description: 

A sequence to obtain an YXH correlation with H detection using 
MISS,(Multiple Intense Solvent Suppression), constant time with
X decoupling and optional Y decoupling during acquisition. 

Acknowledgement:

Sequence provided by Chad Reinstra UIUC as hXH.c.

Additional Software:

reset_ahYXH - macro to set values for ahYXH.

Parameter Groups:

CT - flag to set constant time d2 indirect acquisition. - CT='y'. If CT = 'n' 
     d2 is followed by a period on Zed to complete tconstd2. 
HS - 'hs' applies first and second shim homospoil gradients for time hst 
     during period hstconst.      
     'z' applies first and second rgradient homospoil gradients for time hst 
     during period hstconst. Saturation pulses pxyH are applied during the 
     second homospoil period.      
     'n' applies a period hstconst with no gradients. . 
     
tconstd2 - A period containing the F1 acquisition. A period along 
           zed follows d2 to complete hstconst2. 
tHecho - proton refocus time.
gzlvl1 - gradient level -32767 to + 32767.
hst hstconst - gradient on during hst in a period hstconst. 
hst2 hst2const - saturation pulses pxy2H during hst2 following the second 
                 gradient period, contained in a period hstconst2. 
ddec2 - 'y' provides optional Yseq decoupling during acquisition.  
        'n' provides no Yseq decoupling during acquisition. 

cpHX:  Module:  yes
Sequence:  tancpx.c
Description:  Implements constant, linear or tangent-ramped cross
              polarization from obs to dec.
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.

cpXH:  Module:  yes
Sequence:  ahXH.c
Description:  Implements constant, linear or tangent-ramped cross
              polarization from dec to obs.
Parameters:  Sequence Page
       shXH - 'c', constant, 'l', linear and 't', tangent shape on the
              channel designated with
                      chXH.
       chXH - the variable-amplitude channel, 'fr' from or 'to', to.
       aHxh - median amplitude of the dec channel.
       aXxh - median amplitude of the obs channel.
       bXH - tangent curvature (>0 to 1.0e5).
       dXH - +/- amplitude width of the ramp. A negative width sets a
              ramp that starts high and decreases in amplitude.
       tXH - contact time.
       ofXH - overall offset on the variable channel.
       frXH = 'obs' - channel with the initial polarization (must be
              set - not shown).   
       toXH = 'dec' - channel with the final polarization (must be set
              - not shown).
Implementation: CP xh = getcp("XH",0.0,0.0,0,1);
Underscore function: _cp_(xh,phXxh,phHxh); phXhx is the overall phase
              table for the X channel and phHhx is that for the H channel.

pxyH:  Module:  yes
Sequence:  ahXH.c
Description:  Implements presaturation with and XY phase cycle on obs. Applied 
              during second Z gradient pulses when HS='z' for a period hst. 
Parameters:  Sequence Page
       aHpxy - amplitude of dec pulses.
       pwHpxy - 180-degree flip on obs.
       qHpxy - RFDR cycles represented in the .DEC file.
       ofHpxy - overall frequency offset.
       chHpxy = 'dec' must be set (not shown).
Implementation: MPSEQ pxy = getpxy("pxyH",0,0.0,0.0,0,1);
Underscore functions: _MPSEQ functions.

pxy2H:  Module:  yes
Sequence:  ahXH.c
Description:  Implements presaturation with and XY phase cycle on obs. Applied 
              after Z gradient pulses for a period hst2. 
Parameters:  Sequence Page
       aHpxy2 - amplitude of dec pulses.
       pwHpxy2 - 180-degree flip on obs.
       qHpxy2 - RFDR cycles represented in the .DEC file.
       ofHpxy2 - overall frequency offset.
       chHpxy2 = 'dec' must be set (not shown).
Implementation: MPSEQ pxy = getpxy("pxyH",0,0.0,0.0,0,1);
Underscore functions: _MPSEQ functions.

rfdrH:  Module:  yes
Sequence:  ahXH.c
Description:  Implements RFDR with a single pi pulse per rotor period
              on obs and an XY8 phase cycle.
Parameters:  Sequence Page
       aHrfdr - amplitude of dec pulses.
       pwHrfdr - 180-degree flip on dec.
       qHrfdr - RFDR cycles represented in the .DEC file.
       ofHrfdr - overall frequency offset.
       chHrfdr = 'dec' must be set (not shown).
       tHrfdrret - time period of RFDR. 
Implementation: MPSEQ rfdr = getrfd("rfdrH",0,0.0,0.0,0,1);
Underscore functions: _MPSEQ functions.

Xseq:  Module:  yes
Sequence:  ahHX.c
Description:  Chooses SPINAL or TPPM decoupling on the dec channel
              during acquisition.
Parameters:  Sequence Page - the Xspinal and Xtppm groups overlap.
             Xseq chooses the decoupling sequence TPPM or  SPINAL.
Implementation:  DSEQ dec = getdseq2("X");  The router implements
             getspinal2() or gettppm().
Underscore functions: _dseqon2(dec); implements _tppm(); or _spinal2();
             _dseqoff2(dec); implements dec2prgoff();

Xspinal:  Module:  yes
Sequence: ahXH.c
Description:  Implements SPINAL decoupling on the dec channel during
              acquisition using two angles (uses getdseq2).
Parameters:  Sequence Page
       aXspinal - amplitude of the dec channel.
       pwXspinal - approximate 180-degree flip angle on resonance.
       phXspinal - +/- small angle phase. SPINAL64 is implemented with
              phases = +/- phXspinal2, +/- (phXspinal + alpXspinal) 
              and +/- (phXspinal +/-2.0*alpXspinal).
       alpXspinal - second angle - set 0.0 for TPPM and phXspinal/2.0
                     for standard SPINAL64.
       chXspinal = 'dec' must be set (not shown).
Implementation: SPINAL dec = getspinal2("X"); or DSEQ dec = getdseq2("X");
Underscore functions: _spinal2(dec); and decprgoff(); or _dseqon2(dec);
              and _dseqoff2(dec);

Xtppm:  Module:  yes
Sequence: ahXH.c
Description:  Implements TPPM decoupling on the obs channel during
              F1 periods (uses getdseq2).
Parameters:  Sequence Page
       aXtppm - amplitude of the obs channel.
       pwXtppm - approximate 180-degree flip.
       phXtppm - +/- small angle phase. TPPM is implemented with
              phases = +/- 1.0, times phXtppm.
       chXspinal = 'dec' must be set (not shown)
Implementation: TPPM dec = gettppm("X"); or DSEQ dec = getdseq2("X");
Underscore functions: _tppm(dec); and dec2prgoff(); or _dseqon2(dec);
              and _dseqoff2(dec);

Xwaltz:  Module:  yes
Sequence: none
Description:  Implements WALTZ16 decoupling on the obs channel during
              acquisition.
Parameters:  Sequence Page
       aXwaltz - amplitude of the dec channel.
       pwXwaltz - 90-degree flip angle on resonance.       
       chXwaltz = 'dec' must be set (not shown).
Implementation: WALTZ dec = getwaltz("X"); or DSEQ dec = getdseq2("X");
Underscore functions: _waltz(dec); and decprgoff(); or _dseqon2(dec);
              and _dseqoff2(dec);

Yseq:  Module:  yes
Sequence:  ahXH.c
Description:  Chooses SPINAL or TPPM decoupling on the dec2 channel
              during acquisition (uses getdseq2).
Parameters:  Sequence Page - the Yspinal and Ytppm groups overlap.
             Yseq chooses the decoupling sequence TPPM or  SPINAL.
Implementation:  DSEQ dec2 = getdseq2("Y");  The router implements
             getspinal2() or gettppm().
Underscore functions: _dseqon2(dec2); implements _tppm(); or _spinal2();
             _dseqoff2(dec2); implements dec2prgoff();

Yspinal:  Module:  yes
Sequence: ahXH.c
Description:  Implements SPINAL decoupling on the obs channel during
              acquisition using two angles (uses getdseq2).
Parameters:  Sequence Page
       aYspinal - amplitude of the dec channel.
       pwYspinal - approximate 180-degree flip angle on resonance.
       phYspinal - +/- small angle phase. SPINAL64 is implemented with
              phases = +/- phYspinal2, +/- (phYspinal + alpYspinal) 
              and +/- (phYspinal2 +/-2.0*alpYspinal).
       alpYspinal - second angle - set 0.0 for TPPM and phYspinal2/2.0
                     for standard SPINAL64.
       chYspinal = 'dec2' must be set (not shown).
Implementation: SPINAL dec2 = getspinal2("Y"); or DSEQ dec = getdseq("Y");
Underscore functions: _spinal2(dec2); and decprgoff(); or _dseqon2(dec2);
              and _dseqoff2(dec2);

Ytppm:  Module:  yes
Sequence:  ahXH.c
Description:  Implements TPPM decoupling on the obs channel during
              F1 periods (uses getdseq2).
Parameters:  Sequence Page
       aYtppm - amplitude of the obs channel.
       pwYtppm - approximate 180-degree flip.
       phYtppm - +/- small angle phase. TPPM is implemented with
              phases = +/- 1.0, times phYtppm.
       chYtppm = 'dec2' must be set (not shown)
Implementation: TPPM dec2 = gettppm("Y"); or DSEQ dec2 = getdseq2("Y");
Underscore functions: _tppm(dec2); and dec2prgoff(); or _dseqon2(dec2);
              and _dseqoff2(dec2);

Ywaltz:  Module:  yes
Sequence: none
Description:  Implements WALTZ16 decoupling on the obs channel during
              acquisition (uses getdseq2).
Parameters:  Sequence Page
       aYwaltz - amplitude of the dec channel.
       pwYwaltz - 90-degree flip angle on resonance.       
       chYwaltz = 'dec2' must be set (not shown).
Implementation: WALTZ dec2 = getwaltz("Y"); or DSEQ dec2 = getdseq2("Y");
Underscore functions: _waltz(dec2); and decprgoff(); or _dseqon2(dec2);
              and _dseqoff2(dec2);
              
Hseq:  Module:  yes 
Sequence:  tancpx.c      
Description:  Chooses SPINAL or TPPM decoupling on the obs channel
              during indirect acquisition.  
Parameters:  Sequence Page - Hspinal and Htppm groups overlap. 
       Hseq - chooses the decoupling sequence, TPPM or SPINAL. 
Implementation:  DSEQ obs = getdseq("H");  The router implements 
              getspinal() or gettppm(). 
Underscore functions: _dseqon(obs); runs _tppm(); or _spinal();
              _dseqoff(obs); runs decprgoff();  

Hspinal:  Module:  yes
Sequence: tancpx.c
Description:  Implements SPINAL decoupling on the dec channel during
              acquisition using two angles (uses getdseq2).
Parameters:  Sequence Page
       aHspinal - amplitude of the dec channel.
       pwHspinal - approximate 180-degree flip angle on resonance.
       phHspinal - +/- small angle phase. SPINAL64 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 = 'obs' must be set (not shown).
Implementation: SPINAL obs = getspinal2("H"); or DSEQ obs = getdseq2("H");
Underscore functions: _spinal2(obs); and decprgoff(); or _dseqon2(obs);
              and _dseqoff2(obs);

Htppm:  Module:  yes 
Sequence:  tancpx.c      
Description:  Implements TPPM decoupling on the dec channel during 
              acquisition (uses getdseq2).  
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 = 'obs' must be set (not shown).
Implementation: TPPM obs = gettppm("H"); or DSEQ obs = getdseq2("H");
Underscore functions: _tppmon(obs); and decprgoff(); or _dseqon2(obs);
              and _dseqoff2(obs);

