;hathmbc ;avance-version (2005-12-05) ; ;Edited HATHMBC (4 gradient version) ;Echo/Antiecho gradient selection ;with third order low-pass J-filter to suppress one-bond correlations ;pulseprogram based on edhmbc by Nils T. Nyberg & Ole W. Sørensen ; ;Andrew J. Benie and Ole W. Sørensen ;HAT HMBC: A hybrid of H2BC and HMBC overcoming shortcomings of both ;J Magn. Reson. 2006 In Press ; ;Pulse Program Library ;Carlsberg Research Center ; ;Copyright (c), 2006, Carlsberg Research Center ;All rights reserved #include #include #include #define MYGRAD(x,y,z) 50u y \n p16:x \n d16 z ; gH=26.752196, gC=6.72828 ; EA = gH+gC : gH-gC (approx.: 5:3) define list EA1 = {1.0000 0.5981} define list EA2 = {0.5981 1.0000 } ; Defined delays and counters define delay PREP define delay LP1 define delay LP2 define delay LP3 define delay BIGD define delay BIGD2 ; Default/initial settings #ifndef SUB "l31 = 0" ; row counter, first row = 0 #endif "d0 = 3u" "d11 = 30m" "d12 = 20u" "p2 = p1*2" "p4 = p3*2" "DELTA = 50u + p16 + d16" ; gradient duration "TAU1 = (1s/((cnst6 + 0.07*(cnst8 - cnst6))*2))" ; Tau1 "TAU2 = (1s/(cnst6 + cnst8))" ; Tau2 "TAU3 = (1s/((cnst8 - 0.07*(cnst8 - cnst6))*2))" ; Tau3 "TAU4 = (1/(4*cnst9)) - DELTA" "LP1 = TAU1 - DELTA" ; LPF "LP2 = TAU2 - DELTA - p3" ; LPF "LP3 = TAU3 - DELTA - p3" ; LPF "PREP = d6 - 2*DELTA" ; Preparation time "BIGD = p2 + d0*2" "BIGD2 = p2 + p4 + d0*2" 1 ze 2 d1 BLKGRAD if "l31 %2 == 0" { ; ------------ STD -------------- d11 pl2:f2 (p1 ph10):f1 LP1 MYGRAD(gp1,UNBLKGRAD, ) ; +7 (p3 ph4):f2 MYGRAD(gp1*-0.5714, , ) ; -4 LP2 (p3 ph5):f2 MYGRAD(gp1*-0.2857, , ) ; -2 LP3 (p3 ph6):f2 MYGRAD(gp1*-0.1429, , ) ; -1 PREP BIGD2 MYGRAD(gp5*EA1*-1, , ) ; E = -5, A = -3 (p3 ph2):f2 MYGRAD(gp5*0.7990, , ) ; +4G, gH/(gH+gC) TAU4 d0 (p2 ph10):f1 d0 (p4 ph3):f2 TAU4 BIGD MYGRAD(gp5*-0.7990, , ) ; -4G (p3 ph1):f2 MYGRAD(gp5*EA1, , ) ; E = +5, A = +3 } else { ; ------------ UD -------------- d11 pl2:f2 (p1 ph10):f1 LP1 MYGRAD(gp1,UNBLKGRAD, ) ; +7 (p3 ph4):f2 MYGRAD(gp1*-0.5714, , ) ; -4 LP2 (p3 ph5):f2 MYGRAD(gp1*-0.2857, , ) ; -2 LP3 (p3 ph6):f2 MYGRAD(gp1*-0.1429, , ) ; -1 PREP MYGRAD(gp5*EA2*-1, , ) ; E = -3, A = -5 (p3 ph2):f2 MYGRAD(gp5*0.7990, , ) ; +4G, gH/(gH+gC) TAU4 BIGD (p4 ph3):f2 d0 (p2 ph10):f1 d0 TAU4 MYGRAD(gp5*-0.7990, , ) ; -4G (p3 ph1):f2 MYGRAD(gp5*EA2, , ) ; E = +3, A = +5 BIGD2 } BOTH, go=2 ph31 ; NS-loop d1 BLKGRAD mc #0 to 2 ; Write data #ifndef SUB F1I(iu31, 2) #endif F1EA(igrad EA1 & igrad EA2, id0) d11 do:f2 BLKGRAD exit ; --- H phases ------------------------ ph10 = 0 ph11 = 1 ; --- X phases ------------------------ ph1 = 0 2 2 0 ph2 = 0 0 2 2 2 2 0 0 ph3 = 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 ph4 = 0 ph5 = 0 ph6 = 0 ; --- Receiver phases ----------------- ph31 = 0 2 ;pl1 :f1 power level for pulse (default) ;pl2 :f2 power level for pulse (default) ;pl12 :f2 power level for CPD/BB decoupling ;p1 :f1 90 degree high power pulse ;p2 :f1 180 degree high power pulse ;p3 :f2 90 degree high power pulse ;p4 :f2 180 degree high power pulse ;p16 :gradient pulse ; ;d0 :increment delay (3usec) ;d1 :relaxation delay: 1-5*T1 ;d6 :delay for evolution of long range couplings ;d11 :delay for disk I/O [ 30 msec] ;d12 :delay for power switching [ 20 usec] ;d16 :delay for homospoil/gradient recovery [200 usec] ; ;TAU1 :1/2(J(min)+0.07(J(max)-J(min)) ;TAU2 :1/(J(min) + J(max)) ;TAU3 :1/2(J(max)-0.07(J(max)-J(min)) ;DELTA :Gradient duration, p16 + d16 + 50u ; ;cnst6 :1Jxh(min), ~125 Hz ;cnst8 :1Jxh(max), ~165 Hz ;cnst9 :1Jxh used for editing, ~140Hz ; ;nd0 :2 ;MC2 :Echo-Antiecho ;EA1 :Echo-Antiecho gradient program, [+5 +3] ;EA2 :Echo-Antiecho gradient program, [+3 +5] ; ;pcpd2 :Pulse length for cpd on f2 [65 usec] ;cpdprg2 :Cpd-program [garp] ; ;gpnam1 :Gradient pulse 1 file name [SINE.100] ;gpnam5 :Gradient pulse 5 file name [SINE.100] ;gpz1 :Gradient strength 1, +7 [+14%] ;gpz5 :Gradient strength 5 [+80%] ; ; ;ns :2, 4, 6, 8, 10, ... ;ds :32 ; ;Processing: ; F2 : SSB = 2, WDW = SINE ; F1 : SSB = 0, WDW = SINE, PHC0 = 90, PH_mod = pk ; Au-pgm : splitcomb 2 startexpno 1 ; FT : xfb; xf2m; abs2; abs1; ;preprocessor-flags-start ;SUB : Do either Standard (l31 = 0) or Up-down (l31 = 1) experiment ; option -DSUB ;preprocessor-flags-end