;h2bc_edcteal3 ;avance-version (2005-05-20) ; ;H2BC_EDCTEAL3: Interleaved std + up-down ;Heteronuclear two-bond correlation ;Constant time experiment, ;phase sensitive using Echo/Antiecho gradient selection, ;with three-fold low-pass J-filters ;with multiplicity editing ; ;Nils T. Nyberg, Jens Ø. Duus, Ole W. Sørensson ;MRC, 2005 ; ;Pulse Program Library ;Carlsberg Research Center ; ;Copyright (c), 2005, Carlsberg Research Center ;All rights reserved #include #include #include ; Defined delays and counters define delay BigT define delay D0MAX define delay TMIN define delay T1MAX define delay DECDUR define delay LP1 define delay LP2 define delay LP3 define delay LP4 define delay StdCPD1 define delay StdCPD2 define delay UdCPD1 define delay UdCPD2 define delay TAUC1 define delay TAUC2 define delay TAUC3 define delay TAUC4 define loopcounter TD1MAX ; Default/initial settings "l1 = 4" ; no of subspectra * 2 "l3 = (td1/l1)" ; no of inc. of t1 "l31 = 0" ; row counter, first row = 0 "d0 = 3u" "d11 = 30m" "d12 = 20u" "p2 = p1*2" "p4 = p3*2" "BigT = cnst15" ; Constant T "D0MAX = d0 + (l3-1)*in0" ; max D0 "T1MAX = 2*D0MAX + p2" ; max T1-value "DELTA = 50u + p16 + d16" ; gradient duration "DELTA1= 2*d0 + p2" ; with correction "TAU = (1s/(cnst6 + cnst8))" ; Tau "TAU1 = (1s/((cnst6 + 0.07*(cnst8 - cnst6))*2))" ; Tau1 "TAU2 = (1s/(cnst6 + cnst8))" ; Tau2 = Tau "TAU3 = (1s/((cnst8 - 0.07*(cnst8 - cnst6))*2))" ; Tau3 "LP1 = TAU3 - DELTA" ; LPF "LP2 = TAU2 - DELTA - p3" ; LPF "LP3 = TAU1 - DELTA" ; LPF "LP4 = TAU2 + TAU3 - TAU1" ; LPF "TAUC1 = TAU + p2/2 + d0" "TAUC2 = TAU - p2/2 - d0 - DELTA" "TAUC3 = TAU - DELTA" "TAUC4 = TAU/2" "StdCPD1 = BigT/2 - (TAU + p3 + p2/2 + d0)" "StdCPD2 = BigT/2 - (TAU + 2*DELTA + p4 + p3 + p2 + p2/2 + 3*d0 + 2*d12)" "UdCPD1 = BigT/2 - (2*TAU + p4 + p3 + p2 + 2*d0)" "UdCPD2 = BigT/2 - (2*TAU + p3 + 2*d12)" "TMIN = BigT - 2*(UdCPD1 - D0MAX)" ; UdCPD1 is shortest "TD1MAX = l1*(1 + (UdCPD1 - d0)/in0)+1" ; max td1 with curr. T "DECDUR = aq + StdCPD1 + StdCPD2" ; longest dec. duration ; -------------------------------------------------------------------------------------------------- 1 ze ; --- The following delays are included in the --- ; --- program so that they are reported during --- ; --- the ASED-dialoge --- D0MAX ; Max D0-value T1MAX ; Max T1-value TMIN ; cnst15 must be >= this value DECDUR ; Total decoupler time dummy, 1u lo to dummy times TD1MAX ; Max td1 with current cnst15 ; -------------------------------------- d11 2 1u BLKGRAD ; LOCK HOLD off after acq d1 do:f2 3 d11 d11 4 d12 pl12:f2 if "l31 %4 >= 2" goto UD ; 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 STD, (p1 ph10):f1 ; --- CT-start ------------------------- StdCPD1 cpd2:f2 TAUC4 do:f2 TAUC4 pl2:f2 (p3 ph2):f2 d0 (p2 ph10):f1 d0 50u UNBLKGRAD p16:gp1*EA d16 (p4 ph3):f2 50u p16:gp1*EA*-1 d16 DELTA1 (p3 ph1):f2 TAU pl12:f2 StdCPD2 cpd2:f2 d12 do:f2 d12 pl2:f2 ; --- CT-end --------------------------- (p1 ph11):f1 (p3 ph4):f2 ; --- low pass J-filter ---------------- 50u p16:gp2*0.3 d16 LP1 (p3 ph5):f2 50u p16:gp2*0.7 d16 LP2 (p2 ph10):f1 (p3 ph5):f2 50u p16:gp4 d16 pl12:f2 LP3 LP4 cpd2:f2 goto BOTH ; --- low pass J-filter end ------------- UD, (p1 ph10):f1 ; --- CT-start ------------------------- UdCPD1 cpd2:f2 TAUC4 do:f2 TAUC4 pl2:f2 (p3 ph2):f2 TAUC1 (p4 ph3):f2 d0 (p2 ph10):f1 d0 TAUC2 50u UNBLKGRAD p16:gp1*EA d16 (p3 ph1):f2 50u p16:gp1*EA*-1 d16 pl12:f2 TAUC3 UdCPD2 cpd2:f2 d12 do:f2 d12 pl2:f2 ; --- CT-end --------------------------- (p1 ph11):f1 (p3 ph4):f2 ; --- low pass J-filter ---------------- 50u p16:gp3*0.3 d16 LP1 (p3 ph5):f2 50u p16:gp3*0.7 d16 LP2 (p2 ph10):f1 (p3 ph5):f2 50u p16:gp4 d16 pl12:f2 LP3 LP4 cpd2:f2 ; --- low pass J-filter end ------------- BOTH, go=2 ph31 1u BLKGRAD d1 do:f2 wr #0 if #0 zd d11 iu31 ; Inc. L31, row counter d11 igrad EA ; Inc. EA-pointer lo to 3 times l1 ; EA-loop, STD/UD d11 id0 ; increment d0 "StdCPD1 = StdCPD1 - in0" ; update dec. times "StdCPD2 = StdCPD2 - in0" "UdCPD1 = UdCPD1 - in0" "UdCPD2 = UdCPD2 - in0" lo to 4 times l3 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}*4 {1}*4 {2}*4 {3}*4 ph4 = {0}*16 {2}*16 ph5 = 0 ph6 = 1 ; --- 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 ;d11 :delay for disk I/O [30 msec] ;d12 :delay for power switching [20 usec] ;d16 :delay for homospoil/gradient recovery [200 msec] ; ;TAU :1/(J(min) + J(max)) ;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 ; ;StdCPD1 :First decoupling period for standard sequence ;StdCPD2 :Second decoupling period for standard sequence ;UdCPD1 :First decoupling period for up-down sequence ;UdCPD2 :Second decoupling period for up-down sequence ; ;cnst6 :1J(min), ~125 Hz ;cnst8 :1J(max), ~165 Hz ;cnst15 :T, ~0.018 sec ; ;l1 :No of subspectra x 2 ;l3 :EA-loop counter, td1/l1 ;l31 :Row counter, first row = 0 ; :L31 = 0,1 Std ; :L31 = 2,3 Ud ; ;nd0 :2 ;MC2 :Echo-Antiecho ;EA :Echo-Antiecho gradient program, [+1 -1] ; ;pcpd2 :Pulse length for cpd on f2 [65 usec] ;cpdprg2 :Cpd-program [garp] ; ;gpnam1 :Gradient pulse 1 file name [SINE.100] ;gpnam2 :Gradient pulse 2 file name [SINE.100] ;gpnam3 :Gradient pulse 3 file name [SINE.100] ;gpnam4 :Gradient pulse 4 file name [SINE.100] ;gpz1 :Gradient strength 1 [80%] ;gpz2 :Gradient strength 2, 0.2514*gpz1 [20.11%] ;gpz3 :Gradient strength 3, 0.5028*gpz1 [40.23%] ;gpz4 :Gradient strength 4, 0.7543*gpz1 [60.34%] ; ;ns :2, 4, 8, 16, 32, .... ;ds :128 ;Processing ;Au-program splitcomb: Splits data into two, adds and subtracts ; splitil Just splits the data ;