/data/23/pulseprogram

http://ne-proj.googlecode.com/ · #! · 2786 lines · 1299 code · 1487 blank · 0 comment · 0 complexity · 02214bc6f3a9c2b14b9378b85be4ec3b MD5 · raw file

  1. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/comp_DblDtiEpi.ppg"
  2. ;****************************************************************
  3. ;
  4. ; Copyright (c) 2001-2007
  5. ; Bruker BioSpin MRI GmbH
  6. ; D-76275 Ettlingen, Germany
  7. ;
  8. ; All Rights Reserved
  9. ;
  10. ; $Id: DtiEpi.ppg,v 1.8.2.4 2007/07/13 09:05:22 fhen Exp $
  11. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/MRI.include" 1
  12. ;****************************************************************
  13. ;
  14. ; $Source: /pv/CvsTree/pv/gen/src/prg/methManag/PPG/MRI.include,v $
  15. ;
  16. ; Copyright (c) 2006
  17. ; Bruker BioSpin MRI GmbH
  18. ; D-76275 Ettlingen, Germany
  19. ;
  20. ; All Rights Reserved
  21. ;
  22. ;;****************************************************************
  23. ;MRI.include
  24. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/Avance.incl" 1
  25. ;Avance2.incl
  26. ; for 1
  27. ;
  28. ;avance-version (07/01/22)
  29. ;
  30. ;$CLASS=HighRes Incl
  31. ;$COMMENT=
  32. ;$Id: Avance2.incl,v 1.14.2.6 2008/04/03 08:54:39 mah Exp $
  33. # 14 "/opt/PV5.0/exp/stan/nmr/lists/pp/MRI.include" 2
  34. define delay aqq
  35. define delay deparx
  36. define delay derxadc
  37. define delay rdepa
  38. "aqq=dw*td"
  39. "rdepa=de-depa"
  40. "deparx=depa-derx"
  41. "derxadc=derx-deadc"
  42. # 86 "/opt/PV5.0/exp/stan/nmr/lists/pp/MRI.include"
  43. # 11 "/opt/PV5.0/exp/stan/nmr/lists/pp/comp_DblDtiEpi.ppg" 2
  44. preset off
  45. ;counter of dummy scans (not acquired; DS set to 0)
  46. define loopcounter lcDs
  47. "lcDs = l1"
  48. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 1
  49. ;****************************************************************
  50. ;
  51. ; Copyright (c) 2003-2007
  52. ; Bruker BioSpin MRI GmbH
  53. ; D-76275 Ettlingen, Germany
  54. ;
  55. ; $Id: PrepModulesHead.mod,v 1.14.2.1 2007/07/02 13:05:36 mawi Exp $
  56. ;
  57. ; All Rights Reserved
  58. ;
  59. ; Declaration of pulseprogram parameters and subroutines for
  60. ; preparation modules
  61. ;
  62. ;****************************************************************
  63. ;**** Fat Suppression Module ****
  64. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/FatSupDef.mod" 1
  65. ;****************************************************************
  66. ;
  67. ; Copyright (c) 2002-2007
  68. ; Bruker BioSpin MRI GmbH
  69. ; D-76275 Ettlingen, Germany
  70. ;
  71. ; $Id: FatSupDef.mod,v 1.1.2.2 2007/07/02 14:26:25 mawi Exp $
  72. ;
  73. ; All Rights Reserved
  74. ;
  75. ; FatSupDef.mod : Declaration of Fat Suppression Subroutine
  76. ;
  77. ;****************************************************************
  78. if(PVM_FatSupOnOff)
  79. {
  80. define list<frequency> modlis6 = {$PVM_FatSupFL}
  81. define delay FsD0 = {$PVM_FsD0}
  82. define delay FsD1 = {$PVM_FsD1}
  83. define delay FsD2 = {$PVM_FsD2}
  84. define pulse FsP0 = {$PVM_FsP0}
  85. }
  86. # 18 "/opt/PV5.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  87. ;**** Flow Saturation Module ****
  88. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/FlowSatDef.mod" 1
  89. ;****************************************************************
  90. ;
  91. ; Copyright (c) 2005-2007
  92. ; Bruker BioSpin MRI GmbH
  93. ; D-76275 Ettlingen, Germany
  94. ;
  95. ; $Id: FlowSatDef.mod,v 1.1.4.2 2007/07/02 13:26:58 mawi Exp $
  96. ;
  97. ; All Rights Reserved
  98. ;
  99. ; FlowSatDef.mod: Declaration of subroutines for Flow Saturation
  100. ; call
  101. ; subr FlowSat()
  102. ; subr FlowSatInit()
  103. ; subr FlowSatInc()
  104. ;
  105. ;****************************************************************
  106. if(PVM_InFlowSatOnOff == 1)
  107. {
  108. define list<frequency> modlis4 = {$PVM_InFlowSatFL}
  109. define delay SfD0 = {$PVM_SfD0}
  110. define delay SfD1 = {$PVM_SfD1}
  111. define delay SfD2 = {$PVM_SfD2}
  112. define pulse SfP0 = {$PVM_SfP0}
  113. define loopcounter SfLp0 = {$PVM_SfLp0}
  114. }
  115. # 22 "/opt/PV5.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  116. ;**** Inversion Pulse Module ****
  117. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/InvPulseDef.mod" 1
  118. ;****************************************************************
  119. ;
  120. ; Copyright (c) 2002-2007
  121. ; Bruker BioSpin MRI GmbH
  122. ; D-76275 Ettlingen, Germany
  123. ;
  124. ; $Id: InvPulseDef.mod,v 1.1.2.2 2007/07/02 14:26:25 mawi Exp $
  125. ;
  126. ; All Rights Reserved
  127. ;
  128. ; InvPulseDef.mod : Declaration of Inversion Pulse subroutine
  129. ;
  130. ; call
  131. ; subr InvPulse()
  132. ;
  133. ;****************************************************************
  134. ;
  135. ; PVM_InvRFPulseArr :
  136. ;
  137. ; sp22 TPQQ[14].name : PVM_InvRFPulsePropertyArr[0].Filename
  138. ;
  139. ; PVM_IpP0 : PVM_InvRFPulseArr[0].PulseLength
  140. ;
  141. ; PVM_IpD2 : PVM_InvPulseDelay[0]
  142. ; PVM_IpD3 : PVM_InvPulseSpoilTime[0]
  143. ; PVM_IpD1 : CONFIG_amplifier _enable
  144. ; PVM_IpD0 : PVM_RampTime
  145. ;
  146. if(PVM_InvPulseOnOff == 1)
  147. {
  148. define list<frequency> modlis2= {$PVM_InvPulseOffsetHz}
  149. define delay IpD0 = {$PVM_IpD0}
  150. define delay IpD1 = {$PVM_IpD1}
  151. define delay IpD2 = {$PVM_IpD2}
  152. define delay IpD3 = {$PVM_IpD3}
  153. define pulse IpP0 = {$PVM_IpP0}
  154. }
  155. # 25 "/opt/PV5.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  156. ;**** Magnetisation Transfer Module ****
  157. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/MagTransDef.mod" 1
  158. ;****************************************************************
  159. ; $Source: /pv/CvsTree/pv/gen/src/prg/methManag/PPG/MagTransDef.mod,v $
  160. ;
  161. ; Copyright (c) 2005-2007
  162. ; Bruker BioSpin MRI GmbH
  163. ; D-76275 Ettlingen, Germany
  164. ;
  165. ; All Rights Reserved
  166. ;
  167. ; MagTransDef.mod: Declaration of subroutine for Magnetization
  168. ; transfer
  169. ; call
  170. ; subr MagTrans()
  171. ;
  172. ; $Id: MagTransDef.mod,v 1.1.2.3 2008/06/05 17:10:28 mawi Exp $
  173. ;****************************************************************
  174. ;**** Magnetisation Transfer Module ****
  175. if(PVM_MagTransOnOff)
  176. {
  177. define list<frequency> modlis3 = {$PVM_MagTransFL}
  178. define delay MtD0 = {$PVM_MtD0}
  179. define delay MtD1 = {$PVM_MtD1}
  180. define delay MtD2 = {$PVM_MtD2}
  181. define delay MtD3 = {$PVM_MtD3}
  182. define pulse MtP0 = {$PVM_MtP0}
  183. define loopcounter MtLp0 = {$PVM_MtLp0}
  184. }
  185. # 29 "/opt/PV5.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  186. ;**** Saturation Pulse Module ****
  187. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/SatPulseDef.mod" 1
  188. ;****************************************************************
  189. ;
  190. ; Copyright (c) 2002-2003
  191. ; Bruker BioSpin MRI GmbH
  192. ; D-76275 Ettlingen, Germany
  193. ;
  194. ; $Id: SatPulseDef.mod,v 1.1.2.2 2007/07/02 14:26:25 mawi Exp $
  195. ;
  196. ; All Rights Reserved
  197. ;
  198. ; SatPulseDef.mod : Declaration of Saturation Pulse subroutines
  199. ; call
  200. ; subr SatPulse()
  201. ;
  202. ;****************************************************************
  203. ;
  204. ; PVM_SatRFPulseArr :
  205. ;
  206. ; sp28 DPQQ[12].name : PVM_SatRFPulsePropertyArr[0].Filename
  207. ; sp29 DPQQ[13].name : PVM_SatRFPulsePropertyArr[1].Filename
  208. ; sp30 DPQQ[14].name : PVM_SatRFPulsePropertyArr[2].Filename
  209. ; sp31 DPQQ[15].name : PVM_SatRFPulsePropertyArr[3].Filename
  210. ;
  211. ; PVM_SpP0 : PVM_SatRFPulseArr[0].PulseLength
  212. ; PVM_SpP1 : PVM_SatRFPulseArr[1].PulseLength
  213. ; PVM_SpP2 : PVM_SatRFPulseArr[2].PulseLength
  214. ; PVM_SpP3 : PVM_SatRFPulseArr[3].PulseLength
  215. ;
  216. ; PVM_SpD2 : PVM_SatPulseDelay1[0]
  217. ; PVM_SpD6 : PVM_SatPulseSpoilTime[0]
  218. ; PVM_SpD10 : PVM_SatPulseDelay2[0]
  219. ; PVM_SpD3 : PVM_SatPulseSpoilTime[1]
  220. ; PVM_SpD7 : PVM_SatPulseDelay1[1]
  221. ; PVM_SpD11 : PVM_SatPulseDelay2[1]
  222. ; PVM_SpD4 : PVM_SatPulseDelay1[2]
  223. ; PVM_SpD8 : PVM_SatPulseSpoilTime[2]
  224. ; PVM_SpD12 : PVM_SatPulseDelay2[2]
  225. ; PVM_SpD5 : PVM_SatPulseDelay1[3]
  226. ; PVM_SpD9 : PVM_SatPulseSpoilTime[3]
  227. ; PVM_SpD13 : PVM_SatPulseDelay2[3]
  228. ;
  229. if(PVM_SatPulseOnOff == 1)
  230. {
  231. define list<frequency> modlis7 = {$PVM_SatPulseOffsetHz}
  232. define delay SpD0 = {$PVM_SpD0}
  233. define delay SpD1 = {$PVM_SpD1}
  234. define delay SpD2 = {$PVM_SpD2}
  235. define delay SpD3 = {$PVM_SpD3}
  236. define delay SpD4 = {$PVM_SpD4}
  237. define delay SpD5 = {$PVM_SpD5}
  238. define delay SpD6 = {$PVM_SpD6}
  239. define delay SpD7 = {$PVM_SpD7}
  240. define delay SpD8 = {$PVM_SpD8}
  241. define delay SpD9 = {$PVM_SpD9}
  242. define delay SpD10 = {$PVM_SpD10}
  243. define delay SpD11 = {$PVM_SpD11}
  244. define delay SpD12 = {$PVM_SpD12}
  245. define delay SpD13 = {$PVM_SpD13}
  246. }
  247. # 34 "/opt/PV5.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  248. ;*** Saturation Slices Module ***
  249. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/SatSliceDef.mod" 1
  250. ;****************************************************************
  251. ;
  252. ; Copyright (c) 2002-2007
  253. ; Bruker BioSpin MRI GmbH
  254. ; D-76275 Ettlingen, Germany
  255. ;
  256. ; $Id: SatSliceDef.mod,v 1.2.2.1 2007/07/02 13:01:13 mawi Exp $
  257. ;
  258. ; All Rights Reserved
  259. ;
  260. ; SatSlices.mod : Declaration of Saturation Slice subroutine
  261. ; call
  262. ; subr SatSlices()
  263. ;
  264. ;****************************************************************
  265. ;
  266. ; SaturationSlicesPulse :
  267. ;
  268. ; sp25 DPQQ[9].name : PVM_SatSlicesPulse.Filename
  269. ; PVM_SatP0 : PVM_SatSlicesPulse.Length
  270. ;
  271. ;
  272. ; PVM_SatD1 : CONFIG_amplifier_enable
  273. ; PVM_SatD0 : PVM_RampTime
  274. ; PVM_SatD2 : PVM_FovSatSpoilTime
  275. ; PVM_SatLp0 : PVM_FovSatNSlices
  276. ;
  277. ;**** Saturation Slice Module ****
  278. if(PVM_FovSatOnOff == 1)
  279. {
  280. define list<frequency> modlis5 = {$PVM_FovSatFL}
  281. define delay SatD0 = {$PVM_SatD0}
  282. define delay SatD1 = {$PVM_SatD1}
  283. define delay SatD2 = {$PVM_SatD2}
  284. define pulse SatP0 = {$PVM_SatP0}
  285. define loopcounter SatLp0 = {$PVM_SatLp0}
  286. }
  287. # 39 "/opt/PV5.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  288. ;**** Black Blood Module ****
  289. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/BlBloodDef.mod" 1
  290. ;****************************************************************
  291. ;
  292. ; Copyright (c) 2007
  293. ; Bruker BioSpin MRI GmbH
  294. ; D-76275 Ettlingen, Germany
  295. ;
  296. ; $Id: BlBloodDef.mod,v 1.1.2.2 2007/07/02 14:26:25 mawi Exp $
  297. ;
  298. ; All Rights Reserved
  299. ;
  300. ; BlBloodDef.mod : Declaration of Black blood subroutine
  301. ;
  302. ; call
  303. ; subr BlBlood(ph0) : Black blood preparation with RF phaselist
  304. ; ph0
  305. ;
  306. ;****************************************************************
  307. if(PVM_BlBloodOnOff)
  308. {
  309. define list<frequency> modlis8 = {$PVM_BlBloodFL}
  310. define delay BlbD0 = {$PVM_BlbD0}
  311. define delay BlbD1 = {$PVM_BlbD1}
  312. define delay BlbD2 = {$PVM_BlbD2}
  313. define delay BlbD3 = {$PVM_BlbD3}
  314. define pulse BlbP0 = {$PVM_BlbP0}
  315. }
  316. # 43 "/opt/PV5.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  317. ;**** Trigger Module ****
  318. define delay TrigD0 = {$PVM_TrigD0}
  319. ;**** Trigger Out Module ****
  320. define delay TrigOutD0 = {$PVM_TrigOutD0}
  321. ;**** OuterVolumeSuppression **** Solvent Suppression Module ****
  322. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/WsOvsDef.mod" 1
  323. ;****************************************************************
  324. ;
  325. ; Copyright (c) 2005-2007
  326. ; Bruker BioSpin MRI GmbH
  327. ; D-76275 Ettlingen, Germany
  328. ;
  329. ; $Id: WsOvsDef.mod,v 1.1.2.3 2008/03/19 14:25:28 sako Exp $
  330. ;
  331. ; All Rights Reserved
  332. ;
  333. ; WsOvsDef.mod: Declaration of water suppression and Outer
  334. ; volume suppression subroutines
  335. ;
  336. ; call
  337. ; subr Ovs(ph0) ; execution of OVS with ph0 phaselist
  338. ;
  339. ; subr WsOvs(ph0,ph1) : execution of OVS with ph0 and WS with ph1
  340. ; phaselist
  341. ;****************************************************************
  342. ;**** OuterVolumeSuppression ****
  343. if(PVM_OvsOnOff == 1)
  344. {
  345. define list<frequency> Ovslist={$PVM_OvsFrequencyList}
  346. define delay OvsD0 = {$PVM_OvsD0}
  347. define delay OvsD1 = {$PVM_OvsD1}
  348. define pulse OvsP0 = {$PVM_OvsP0}
  349. }
  350. ;*** WaterSuppression Module with OVS ****
  351. if (PVM_WsMode)
  352. {
  353. define list<frequency> Wslist={$PVM_WsOffsetHz}
  354. define pulse WsP0 = {$PVM_WsP0}
  355. define pulse WsP1 = {$PVM_WsP1}
  356. define pulse WsP2 = {$PVM_WsP2}
  357. define delay WsNp0
  358. "WsNp0 = WsP0"
  359. define delay WsNp1
  360. "WsNp1 = WsP1"
  361. define delay WsNp2
  362. "WsNp2 = WsP2"
  363. define list<delay> ChD1={$PVM_ChppgD1}
  364. define list<delay> ChD2={$PVM_ChppgD2}
  365. define list<delay> VpD1={$PVM_VpppgD1}
  366. define list<delay> VpD2={$PVM_VpppgD2}
  367. }
  368. # 53 "/opt/PV5.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  369. ;**** Solvent Suppression module and FOV Saturation module ******
  370. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/WsSatDef.mod" 1
  371. ;******************************************************************
  372. ;
  373. ; Copyright (c) 2002-2007
  374. ; Bruker BioSpin MRI GmbH
  375. ; D-76275 Ettlingen, Germany
  376. ;
  377. ; $Id: WsSatDef.mod,v 1.1.2.2 2007/07/02 14:26:26 mawi Exp $
  378. ;
  379. ; All Rights Reserved
  380. ;
  381. ; WsSatDef.mod - Declaration of water suppression and FOV saturation
  382. ; subroutines
  383. ; call
  384. ; subr WsSat(ph0) : execution of WS with ph0 phaselist and
  385. ; FOV saturation (as passed as argument)
  386. ;
  387. ;*******************************************************************
  388. # 57 "/opt/PV5.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  389. ;*********** selective inversion recovery **********
  390. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/SelSliceIrDef.mod" 1
  391. ;****************************************************************
  392. ;
  393. ; Copyright (c) 2007
  394. ; Bruker BioSpin MRI GmbH
  395. ; D-76275 Ettlingen, Germany
  396. ;
  397. ; $Id: SelSliceIrDef.mod,v 1.1.2.2 2007/07/02 14:26:25 mawi Exp $
  398. ;
  399. ; All Rights Reserved
  400. ;
  401. ; SelSliceIrDef.mod : declaration of slice Selective Inversion
  402. ; Recovery subroutine
  403. ; call SliceSelIr()
  404. ;
  405. ;
  406. ;****************************************************************
  407. if(PVM_SelIrOnOff)
  408. {
  409. define list<frequency> IrFL = {$PVM_SelIrFL}
  410. define delay IrD0 = {$PVM_SelIrD0}
  411. define delay IrD1 = {$PVM_SelIrD1}
  412. define delay IrD2 = {$PVM_SelIrD2}
  413. define delay IrD3 = {$PVM_SelIrD3}
  414. define delay IrD4 = {$PVM_SelIrD4}
  415. define pulse IrP0 = {$PVM_SelIrP0}
  416. define loopcounter IrL0 = {$PVM_SelIrL0}
  417. }
  418. # 61 "/opt/PV5.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  419. ;***********Tagging*****************
  420. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/TagDef.mod" 1
  421. ;****************************************************************
  422. ;
  423. ; Copyright (c) 2007
  424. ; Bruker BioSpin MRI GmbH
  425. ; D-76275 Ettlingen, Germany
  426. ;
  427. ; $Id: TagDef.mod,v 1.1.2.4 2008/06/05 17:09:32 mawi Exp $
  428. ;
  429. ; All Rights Reserved
  430. ;
  431. ; TagDef.mod : Declaration of tagging subroutine
  432. ; call
  433. ; subr Tagging()
  434. ;
  435. ;****************************************************************
  436. if(PVM_TaggingOnOff)
  437. {
  438. define list<frequency> taggfreq={$PVM_TaggingFL}
  439. define delay TaggD0 = {$PVM_TaggingD0}
  440. define delay TaggD1 = {$PVM_TaggingD1}
  441. define delay TaggD2 = {$PVM_TaggingD2}
  442. define delay TaggD3 = {$PVM_TaggingD3}
  443. define delay TaggD4 = {$PVM_TaggingD4}
  444. define delay TaggD5 = {$PVM_TaggingD5}
  445. define pulse TaggP0 = {$PVM_TaggingP0}
  446. define loopcounter TaggL0 = {$PVM_TaggingLp0}
  447. }
  448. # 65 "/opt/PV5.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  449. ;*********** Noe *******************
  450. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/NoeDef.mod" 1
  451. ;****************************************************************
  452. ;
  453. ; Copyright (c) 2007
  454. ; Bruker BioSpin MRI GmbH
  455. ; D-76275 Ettlingen, Germany
  456. ;
  457. ; $Id: NoeDef.mod,v 1.1.2.2 2007/07/02 14:26:26 mawi Exp $
  458. ;
  459. ; All Rights Reserved
  460. ;
  461. ; NoeDef.mod: Declaration of Nuclear Overhouser Enhancement
  462. ; subroutine
  463. ; call
  464. ; subr Noe()
  465. ;
  466. ;****************************************************************
  467. if(PVM_NoeOnOff == On)
  468. {
  469. define delay NoeD0 = {$PVM_NoeD0}
  470. define delay NoeD1 = {$PVM_NoeD1}
  471. }
  472. # 69 "/opt/PV5.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2
  473. define loopcounter EvolLp0 = {$PVM_EvolLp0}
  474. define list<delay> EvolD0 = {$PVM_EvolD0}
  475. # 21 "/opt/PV5.0/exp/stan/nmr/lists/pp/comp_DblDtiEpi.ppg" 2
  476. ; #include <DwiHead.mod>
  477. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/comp_DblDwiHead.mod" 1
  478. ;*************************************************************************
  479. ; Copyright (c) 2002 - 2007
  480. ; Bruker BioSpin MRI GmbH
  481. ; D-76275 Ettlingen, Germany
  482. ;
  483. ; $Id: DwiHead.mod,v 1.4.2.1 2007/07/02 13:22:13 mawi Exp $
  484. ;
  485. ; All Rights Reserved
  486. ;
  487. ; DwiHead.mod: Declaration of pulseprogram subroutines
  488. ; for Stejscal Tanner Spinecho and Stimulated echo
  489. ; preparation
  490. ;
  491. ; call
  492. ; subr DwiPrep(ph1) : diffusion prepartion with RF phaselist 1
  493. ; subr DwiLoop(Diffl): loop part of diffusion preparation, loops
  494. ; to label Diffl (as passed as argument)
  495. ;
  496. ;*************************************************************************
  497. define list<frequency> DwFl0 = {$PVM_DwFlist0}
  498. define delay DwD0 = {$PVM_DwD0}
  499. define delay DwD1 = {$PVM_DwD1}
  500. define delay DwD2 = {$PVM_DwD2}
  501. define delay DwD3 = {$PVM_DwD3}
  502. define delay DwD4 = {$PVM_DwD4}
  503. define delay DwD5 = {$PVM_DwD5}
  504. define delay DwD6 = {$PVM_DwD6}
  505. define delay DwD7 = {$PVM_DwD7}
  506. define delay DwD8 = {$PVM_DwD8}
  507. define delay DwD9 = {$PVM_DwD9}
  508. define delay DwD10 = {$PVM_DwD10}
  509. define delay DwD11 = {$PVM_DwD11}
  510. define delay DwD12 = {$PVM_DwD12}
  511. define delay DwD13 = {$PVM_DwD13}
  512. define delay DwD14 = {$PVM_DwD14}
  513. define delay DwD15 = {$PVM_DwD15}
  514. define delay DwD16 = {$PVM_DwD16}
  515. define delay DwD17 = {$PVM_DwD17}
  516. define delay DwD18 = {$PVM_DwD18}
  517. define delay DwD19 = {$PVM_DwD19}
  518. define pulse DwP0 = {$PVM_DwP0}
  519. define pulse DwP1 = {$PVM_DwP1}
  520. ; #define DwGSP1 grad{PVM_DwSpDir((PVM_TeDwSliceSpoilGrad),direct_scale)|(0)|(0)}
  521. ; #define Dwfull DiffusionPrepGrad
  522. ; #define DwGfull grad{(0)|(0)|(Dwfull,no_scale)}
  523. lgrad PVM_DwGradRead = PVM_DwNDiffExp
  524. lgrad PVM_DwGradPhase = PVM_DwNDiffExp
  525. lgrad PVM_DwGradSlice = PVM_DwNDiffExp
  526. lgrad PVM_DwGradVec = PVM_DwNDiffExp
  527. lgrad PVM_DwSpDir = PVM_DwNDiffExp
  528. define loopcounter DwExp = {$PVM_DwNDiffExp}
  529. ; spinecho stejscal tanner preparation
  530. ; =======================================
  531. ; spinecho stejscal tanner for diffusion prep.
  532. ; ===============================================
  533. ; stimulated echo stejscal tanner preparation
  534. ; ==============================================
  535. ; stimulated echo stejscal tanner for diffusion prep
  536. ; ======================================================
  537. ;
  538. ; Diffusion Preparation module
  539. ; =======================================
  540. ;
  541. ; Diffusion Preparation module for diffusion prep
  542. ; =====================================================
  543. ; Loop part of DTI module
  544. # 23 "/opt/PV5.0/exp/stan/nmr/lists/pp/comp_DblDtiEpi.ppg" 2
  545. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/epiHead.mod" 1
  546. ;****************************************************************
  547. ;
  548. ; Copyright (c) 2003
  549. ; Bruker BioSpin MRI GmbH
  550. ; D-76275 Ettlingen, Germany
  551. ;
  552. ; All Rights Reserved
  553. ; $Id: epiHead.mod,v 1.7.2.2 2007/07/12 15:08:50 fhen Exp $
  554. ; Declaration of pulseprogram parameters for epi module
  555. ;
  556. ;****************************************************************
  557. define delay EpiD0 = {$PVM_EpiD0}
  558. define delay EpiD1 = {$PVM_EpiD1}
  559. define delay EpiD2 = {$PVM_EpiD2}
  560. define delay EpiD3 = {$PVM_EpiD3}
  561. define delay EpiD4 = {$PVM_EpiD4}
  562. define delay EpiD5 = {$PVM_EpiD5}
  563. define delay EpiD7 = {$PVM_EpiD7}
  564. define delay EpiD8 = {$PVM_EpiD8}
  565. define delay EpiD9 = {$PVM_EpiD9}
  566. define delay EpiD10 = {$PVM_EpiD10}
  567. define delay EpiD11 = {$PVM_EpiD11}
  568. define delay EpiD12 = {$PVM_EpiD12}
  569. lgrad PVM_EpiInterleavingFunction<2d> = PVM_EpiNShots
  570. define delay Epi10u_de
  571. "Epi10u_de = 10u - de"
  572. define list<delay> EpiVd = {$PVM_EpiVdList}
  573. # 24 "/opt/PV5.0/exp/stan/nmr/lists/pp/comp_DblDtiEpi.ppg" 2
  574. lgrad slice = NSLICES
  575. fq1b receive \n if (CONFIG_instrument_type != Avance_I) \n { \n dccorr \n } \n if (CONFIG_preemp_type == GREAT_60) \n { \n if (CONFIG_instrument_type != Avance_III) \n { \n 500m setnmr0|34|33|32 \n } \n else \n { \n 200u setnmr0|34|33|32 \n } \n } \n if (CONFIG_preemp_type == DPP_with_SW_Blanking) \n { \n 10u ctrlgrad 0 \n 10u grad{(0)|(0)|(0) } \n 200u setnmr0|34|33|32 \n }
  576. zgrad PVM_EpiInterleavingFunction
  577. zslice
  578. DiffL, 4u
  579. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/TriggerPerPhaseStep.mod" 1
  580. ;****************************************************************
  581. ;
  582. ; Copyright (c) 1998-2003
  583. ; Bruker BioSpin MRI GmbH
  584. ; D-76275 Ettlingen, Germany
  585. ;
  586. ; All Rights Reserved
  587. ;
  588. ; TriggerPerPhaseStep.mod - Trigger Module
  589. ;
  590. ;****************************************************************
  591. ;
  592. ; PVM_TrigD0 --> PVM_EcgTriggerModuleTime = ACQ_trigger_delay
  593. ;
  594. if (PVM_TriggerMode == per_PhaseStep)
  595. {
  596. if (ACQ_trigger_enable == 1)
  597. {
  598. 10u setnmr3|6
  599. if (CONFIG_instrument_type == Avance_III)
  600. {
  601. 10u trignl1
  602. 10u trigpe3
  603. }
  604. else
  605. {
  606. 10u trigpl1
  607. }
  608. 10u setnmr3^6
  609. TrigD0
  610. }
  611. }
  612. # 38 "/opt/PV5.0/exp/stan/nmr/lists/pp/comp_DblDtiEpi.ppg" 2
  613. slice, 10u fq8b:f1
  614. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/TriggerPerSlice.mod" 1
  615. ;****************************************************************
  616. ;
  617. ; Copyright (c) 1998-2003
  618. ; Bruker BioSpin MRI GmbH
  619. ; D-76275 Ettlingen, Germany
  620. ;
  621. ; All Rights Reserved
  622. ;
  623. ; TriggerPerSlice.mod - Trigger Module
  624. ;
  625. ;****************************************************************
  626. ;
  627. ; PVM_TrigD0 --> PVM_EcgTriggerModuleTime = ACQ_trigger_delay
  628. ;
  629. if (PVM_TriggerMode == per_Slice)
  630. {
  631. if (ACQ_trigger_enable == 1)
  632. {
  633. 10u setnmr3|6
  634. if (CONFIG_instrument_type == Avance_III)
  635. {
  636. 10u trignl1
  637. 10u trigpe3
  638. }
  639. else
  640. {
  641. 10u trigpl1
  642. }
  643. 10u setnmr3^6
  644. TrigD0
  645. }
  646. }
  647. # 40 "/opt/PV5.0/exp/stan/nmr/lists/pp/comp_DblDtiEpi.ppg" 2
  648. ;EXEC_begin SatSlices line 2047 (41) SatSlices()
  649. if(PVM_FovSatOnOff == 1)
  650. {
  651. lgrad PVM_FovSatGrad = PVM_FovSatNSlices
  652. lgrad PVM_FovSatSpoiler = 1
  653. zgrad PVM_FovSatGrad
  654. zgrad PVM_FovSatSpoiler
  655. 50u modlis5.res
  656. fov9, SatD0 modlis5:f1 grad{PVM_FovSatGrad(100,,direct_scale)|(0)|(0)}
  657. SatD1 gatepulse 1
  658. SatP0:sp25
  659. SatD2 modlis5.inc grad{(0)|(0)|PVM_FovSatSpoiler(100,,no_scale)}
  660. igrad PVM_FovSatGrad
  661. lo to fov9 times SatLp0
  662. SatD0 grad{(0)|(0)|(0)}
  663. 20u
  664. }
  665. ;EXEC_end SatSlices line 2047 (41) SatSlices()
  666. ;EXEC_begin FatSup line 2048 (42) FatSup()
  667. if(PVM_FatSupOnOff)
  668. {
  669. lgrad PVM_FatSupSpoiler = 1
  670. 10u zgrad PVM_FatSupSpoiler
  671. 40u modlis6:f1
  672. 1m gatepulse 1
  673. FsP0:sp26
  674. FsD2 grad{(0)|(0)|PVM_FatSupSpoiler(100,,no_scale)}
  675. FsD0 groff
  676. 50u
  677. }
  678. ;EXEC_end FatSup line 2048 (42) FatSup()
  679. ;----------------------------------slice selection------------------
  680. d1 grad{(0)|(0)|(t0)} fq1:f1 gatepulse 1
  681. p0:sp0 ph0
  682. d4 groff
  683. ;----------------------------------slice rephase--------------------
  684. d2 grad{(0)|(0)|(t1)}
  685. d3 groff
  686. ; subr DwiPrep(ph1)
  687. ; subr DwiPrep1(ph1)
  688. ; subr DwiPrep(ph1)
  689. ;EXEC_begin DwiPrep1 line 2060 (54) DwiPrep1(phase ph2)
  690. if(PVM_DiffPrepMode == 0)
  691. {
  692. if(DiffusionPrepYesNo == Yes)
  693. {
  694. ;EXEC_begin DwSe1 line 1871 (0) DwSe1(phase ph2)
  695. DwD0 groff
  696. if(PVM_DwDirectScale == Yes)
  697. {
  698. DwD5 grad{PVM_DwGradVec(100,direct_scale)|(0)|(0)}
  699. }
  700. else
  701. {
  702. if (DiffusionPrepGradPol == Negative)
  703. {
  704. DwD5 grad{PVM_DwGradRead(-100,no_scale)|PVM_DwGradPhase(-100,no_scale)|PVM_DwGradSlice(-100,no_scale)}
  705. }
  706. if (DiffusionPrepGradPol == Positive)
  707. {
  708. DwD5 grad{PVM_DwGradRead(100,no_scale)|PVM_DwGradPhase(100,no_scale)|PVM_DwGradSlice(100,no_scale)}
  709. }
  710. }
  711. ; DwD6 groff
  712. DwD7 groff
  713. ;DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  714. if (ControlDiffSpoilerYesNo == Yes)
  715. {
  716. DwD2 grad{PVM_DwSpDir((DiffusionSpoiler1Grad),direct_scale)|(0)|(0)}
  717. }
  718. else
  719. {
  720. DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  721. }
  722. DwD3 grad{(0)|(0)|(PVM_DwSliceGrad,no_scale)} DwFl0:f1 gatepulse 1
  723. DwP0:sp23 ph2
  724. DwD4
  725. ; DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  726. if (ControlDiffSpoilerYesNo == Yes)
  727. {
  728. DwD2 grad{PVM_DwSpDir((DiffusionSpoiler1Grad),direct_scale)|(0)|(0)}
  729. }
  730. else
  731. {
  732. DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  733. }
  734. ; DwD2 grad{PVM_DwSpDir((DiffusionSpoiler1Grad),direct_scale)|(0)|(0)}
  735. ; DwD7 groff
  736. DwD6 groff
  737. if(PVM_DwDirectScale == Yes)
  738. {
  739. DwD5 grad{PVM_DwGradVec(100,direct_scale)|(0)|(0)}
  740. }
  741. else
  742. {
  743. if (DiffusionPrepGradPol == Negative)
  744. {
  745. DwD5 grad{PVM_DwGradRead(-100,no_scale)|PVM_DwGradPhase(-100,no_scale)|PVM_DwGradSlice(-100,no_scale)}
  746. }
  747. if (DiffusionPrepGradPol == Positive)
  748. {
  749. DwD5 grad{PVM_DwGradRead(100,no_scale)|PVM_DwGradPhase(100,no_scale)|PVM_DwGradSlice(100,no_scale)}
  750. }
  751. }
  752. if (DiffusionPrepYesNo == Yes)
  753. {
  754. d9 groff
  755. }
  756. ;EXEC_end DwSe1 line 1871 (0) DwSe1(phase ph2)
  757. }
  758. }
  759. if(PVM_DiffPrepMode == 1)
  760. {
  761. if(DiffusionPrepYesNo == Yes)
  762. {
  763. ;EXEC_begin DwSte1 line 1878 (0) DwSte1(phase ph2)
  764. DwD0 groff
  765. if(PVM_DwDirectScale == Yes)
  766. {
  767. DwD9 grad{PVM_DwGradVec(100,direct_scale)|(0)|(0)}
  768. }
  769. else
  770. {
  771. ; DwD9 grad{(0)|(0)|(DiffusionPrepGrad,no_scale)}
  772. DwD9 grad{(DiffusionPrepGrad*DiffusionPrepVec[0],no_scale)|(DiffusionPrepGrad*DiffusionPrepVec[1],no_scale)|(DiffusionPrepGrad*DiffusionPrepVec[2],no_scale)}
  773. }
  774. ; DwD6 groff
  775. DwD8 groff
  776. ; DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  777. if (ControlDiffSpoilerYesNo == Yes)
  778. {
  779. DwD2 grad{PVM_DwSpDir((DiffusionSpoiler1Grad),direct_scale)|(0)|(0)}
  780. }
  781. else
  782. {
  783. DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  784. }
  785. DwD3 grad{(0)|(0)|(PVM_DwSliceGrad,no_scale)} DwFl0:f1 gatepulse 1
  786. DwP0:sp23 ph2
  787. DwD7
  788. ; DwD4 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  789. if (ControlDiffSpoilerYesNo == Yes)
  790. {
  791. DwD4 grad{PVM_DwSpDir((DiffusionSpoiler1Grad),direct_scale)|(0)|(0)}
  792. }
  793. else
  794. {
  795. DwD4 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  796. }
  797. DwD5 groff
  798. DwD3 grad{(0)|(0)|(PVM_DwSliceGrad,no_scale)} gatepulse 1
  799. DwP0:sp23 ph2
  800. DwD7
  801. ; DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  802. if (ControlDiffSpoilerYesNo == Yes)
  803. {
  804. DwD2 grad{PVM_DwSpDir((DiffusionSpoiler1Grad),direct_scale)|(0)|(0)}
  805. }
  806. else
  807. {
  808. DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  809. }
  810. ; DwD8 groff
  811. DwD6 groff
  812. if(PVM_DwDirectScale == Yes)
  813. {
  814. DwD9 grad{PVM_DwGradVec(100,direct_scale)|(0)|(0)}
  815. }
  816. else
  817. {
  818. ; DwD9 grad{(0)|(0)|(DiffusionPrepGrad,no_scale)}
  819. DwD9 grad{(DiffusionPrepGrad*DiffusionPrepVec[0],no_scale)|(DiffusionPrepGrad*DiffusionPrepVec[1],no_scale)|(DiffusionPrepGrad*DiffusionPrepVec[2],no_scale)}
  820. }
  821. if (DiffusionPrepYesNo == Yes)
  822. {
  823. d9 groff
  824. }
  825. ;EXEC_end DwSte1 line 1878 (0) DwSte1(phase ph2)
  826. }
  827. }
  828. ;EXEC_end DwiPrep1 line 2060 (54) DwiPrep1(phase ph2)
  829. ;EXEC_begin DwiPrep line 2061 (55) DwiPrep(phase ph1)
  830. if(PVM_DiffPrepMode == 0)
  831. {
  832. ;EXEC_begin DwSe line 1853 (0) DwSe(phase ph1)
  833. if (DiffusionPrepYesNo == No)
  834. {
  835. DwD0 groff
  836. }
  837. if(PVM_DwDirectScale == Yes)
  838. {
  839. DwD5 grad{PVM_DwGradVec(100,direct_scale)|(0)|(0)}
  840. }
  841. else
  842. {
  843. DwD5 grad{PVM_DwGradRead(100,no_scale)|PVM_DwGradPhase(100,no_scale)|PVM_DwGradSlice(100,no_scale)}
  844. }
  845. DwD6 groff
  846. ; DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  847. if (DiffusionPrepYesNo == Yes)
  848. {
  849. if (ControlDiffSpoilerYesNo == Yes)
  850. {
  851. DwD2 grad{PVM_DwSpDir((DiffusionSpoiler2Grad),direct_scale)|(0)|(0)}
  852. }
  853. else
  854. {
  855. DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  856. }
  857. }
  858. else
  859. {
  860. DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  861. }
  862. DwD3 grad{(0)|(0)|(PVM_DwSliceGrad,no_scale)} DwFl0:f1 gatepulse 1
  863. DwP0:sp23 ph1
  864. DwD4
  865. ; DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  866. if (DiffusionPrepYesNo == Yes)
  867. {
  868. if (ControlDiffSpoilerYesNo == Yes)
  869. {
  870. DwD2 grad{PVM_DwSpDir((DiffusionSpoiler2Grad),direct_scale)|(0)|(0)}
  871. }
  872. else
  873. {
  874. DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  875. }
  876. }
  877. else
  878. {
  879. DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  880. }
  881. DwD7 groff
  882. if(PVM_DwDirectScale == Yes)
  883. {
  884. DwD5 grad{PVM_DwGradVec(100,direct_scale)|(0)|(0)}
  885. }
  886. else
  887. {
  888. DwD5 grad{PVM_DwGradRead(100,no_scale)|PVM_DwGradPhase(100,no_scale)|PVM_DwGradSlice(100,no_scale)}
  889. }
  890. DwD1 groff
  891. ;EXEC_end DwSe line 1853 (0) DwSe(phase ph1)
  892. }
  893. if(PVM_DiffPrepMode == 1)
  894. {
  895. ;EXEC_begin DwSte line 1857 (0) DwSte(phase ph1)
  896. if (DiffusionPrepYesNo == No)
  897. {
  898. DwD0 groff
  899. }
  900. if(PVM_DwDirectScale == Yes)
  901. {
  902. DwD9 grad{PVM_DwGradVec(100,direct_scale)|(0)|(0)}
  903. }
  904. else
  905. {
  906. DwD9 grad{PVM_DwGradRead(100,no_scale)|PVM_DwGradPhase(100,no_scale)|PVM_DwGradSlice(100,no_scale)}
  907. }
  908. DwD6 groff
  909. ; DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  910. if (DiffusionPrepYesNo == Yes)
  911. {
  912. if (ControlDiffSpoilerYesNo == Yes)
  913. {
  914. DwD2 grad{PVM_DwSpDir((DiffusionSpoiler2Grad),direct_scale)|(0)|(0)}
  915. }
  916. else
  917. {
  918. DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  919. }
  920. }
  921. else
  922. {
  923. DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  924. }
  925. DwD3 grad{(0)|(0)|(PVM_DwSliceGrad,no_scale)} DwFl0:f1 gatepulse 1
  926. DwP0:sp23 ph1
  927. DwD7
  928. ; DwD4 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  929. if (DiffusionPrepYesNo == Yes)
  930. {
  931. if (ControlDiffSpoilerYesNo == Yes)
  932. {
  933. DwD4 grad{PVM_DwSpDir((DiffusionSpoiler2Grad),direct_scale)|(0)|(0)}
  934. }
  935. else
  936. {
  937. DwD4 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  938. }
  939. }
  940. else
  941. {
  942. DwD4 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  943. }
  944. DwD5 groff
  945. DwD3 grad{(0)|(0)|(PVM_DwSliceGrad,no_scale)} gatepulse 1
  946. DwP0:sp23 ph1
  947. DwD7
  948. ; DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  949. if (DiffusionPrepYesNo == Yes)
  950. {
  951. if (ControlDiffSpoilerYesNo == Yes)
  952. {
  953. DwD2 grad{PVM_DwSpDir((DiffusionSpoiler2Grad),direct_scale)|(0)|(0)}
  954. }
  955. else
  956. {
  957. DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  958. }
  959. }
  960. else
  961. {
  962. DwD2 grad{PVM_DwSpDir((30),direct_scale)|(0)|(0)}
  963. }
  964. DwD8 groff
  965. if(PVM_DwDirectScale == Yes)
  966. {
  967. DwD9 grad{PVM_DwGradVec(100,direct_scale)|(0)|(0)}
  968. }
  969. else
  970. {
  971. DwD9 grad{PVM_DwGradRead(100,no_scale)|PVM_DwGradPhase(100,no_scale)|PVM_DwGradSlice(100,no_scale)}
  972. }
  973. DwD1 groff
  974. ;EXEC_end DwSte line 1857 (0) DwSte(phase ph1)
  975. }
  976. ;EXEC_end DwiPrep line 2061 (55) DwiPrep(phase ph1)
  977. if "lcDs > 0" goto acqDs
  978. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/epi.mod" 1
  979. ;****************************************************************
  980. ;
  981. ; Copyright (c) 2002-2005
  982. ; Bruker BioSpin MRI GmbH
  983. ; D-76275 Ettlingen, Germany
  984. ;
  985. ; All Rights Reserved
  986. ;
  987. ; epi.mod - an Echo-Planar Imaging module
  988. ;
  989. ;****************************************************************
  990. ;-------- version with shaped gradients:
  991. if(PVM_EpiRampMode != SystemRamp)
  992. {
  993. ;5u fqatofqb:f1
  994. rdepa \n deparx adc ph0 setrtp1|2 syrec \n derxadc ph1:r setrtp1|1 \n deadc setrtp1|0|8
  995. Epi10u_de
  996. if(PVM_EpiNShots != 1)
  997. {
  998. if(PVM_EpiEchoTimeShifting == Yes)
  999. {
  1000. EpiVd EpiVd.inc
  1001. }
  1002. }
  1003. if (PVM_EpiGradSync == Yes)
  1004. {
  1005. 1u trigpe3
  1006. }
  1007. if(PVM_EpiPrefixNavYes) ;prefix navigator
  1008. {
  1009. EpiD12 cpdngs30:f1
  1010. }
  1011. 10u gc_control
  1012. {
  1013. EpiD4 grad{EpiShape1(100,EpiShape1Size)| EpiShape3(100,EpiShape3Size) |(0)}
  1014. EpiD5 grad{EpiShape9(100,EpiShape9Size)| EpiShape11(100,EpiShape11Size)*PVM_EpiInterleavingFunction(100)|(0)}
  1015. EpiD11 grad{EpiShape8(100,EpiShape8Size)|(0) |(0)} ;plateau up
  1016. loop PVM_EpiEchoCounter
  1017. {
  1018. EpiD5 grad{EpiShape2(100,EpiShape2Size) |EpiShape4(100,EpiShape4Size) |(0)} ;ramp down
  1019. EpiD11 grad{(0)-EpiShape8(100,EpiShape8Size)|(0) |(0)} ;plateau down
  1020. EpiD5 grad{(0)-EpiShape2(100,EpiShape2Size)|EpiShape7(100,EpiShape7Size) |(0)} ;ramp up
  1021. EpiD11 grad{EpiShape8(100,EpiShape8Size) |(0) |(0)} ;plateau up
  1022. }
  1023. EpiD5 grad{EpiShape10(100,EpiShape10Size)| EpiShape11(100,EpiShape11Size)*PVM_EpiInterleavingFunction(100)|(0)}
  1024. EpiD4 grad{EpiShape5(100,EpiShape5Size)| EpiShape6(100,EpiShape6Size) |(0)}
  1025. }
  1026. EpiD1
  1027. if(PVM_EpiPrefixNavYes) ;prefix navigator: adc is already running
  1028. {
  1029. EpiD2
  1030. }
  1031. if(!PVM_EpiPrefixNavYes) ;no prefix navigator: start adc now
  1032. {
  1033. EpiD2 cpdngs30:f1
  1034. }
  1035. EpiD3
  1036. EpiD0 eoscnp
  1037. if(PVM_EpiNShots != 1)
  1038. {
  1039. if(PVM_EpiEchoTimeShifting == Yes)
  1040. {
  1041. EpiVd EpiVd.inc
  1042. }
  1043. }
  1044. } ;--------end of version
  1045. ;----------------------- version with system ramps ---------------------------
  1046. if(PVM_EpiRampMode == SystemRamp)
  1047. {
  1048. ;5u fqatofqb:f1
  1049. rdepa \n deparx adc ph0 setrtp1|2 syrec \n derxadc ph1:r setrtp1|1 \n deadc setrtp1|0|8
  1050. Epi10u_de
  1051. if(PVM_EpiNShots != 1)
  1052. {
  1053. if(PVM_EpiEchoTimeShifting == Yes)
  1054. {
  1055. EpiVd EpiVd.inc
  1056. }
  1057. }
  1058. if (PVM_EpiGradSync == Yes)
  1059. {
  1060. 1u trigpe3
  1061. }
  1062. if(PVM_EpiPrefixNavYes) ;prefix navigator
  1063. {
  1064. EpiD12 cpdngs30:f1
  1065. }
  1066. 10u gc_control
  1067. {
  1068. EpiD7 grad{PVM_EpiReadDephGrad(100)|PVM_EpiPhaseDephGrad(100)+PVM_EpiInterleavingFunction(100*PVM_EpiPhaseEncGrad)|(0)}
  1069. EpiD8 groff
  1070. EpiD9 grad{PVM_EpiReadEvenGrad(100)|(0)|(0)}
  1071. loop PVM_EpiEchoCounter
  1072. {
  1073. EpiD10 grad{(0) |PVM_EpiBlipEvenGrad(100)|(0)}
  1074. EpiD9 grad{PVM_EpiReadOddGrad(100) |(0) |(0)}
  1075. EpiD10 grad{(0) |PVM_EpiBlipOddGrad(100 )|(0)}
  1076. EpiD9 grad{PVM_EpiReadEvenGrad(100)|(0) |(0)}
  1077. }
  1078. EpiD8 groff
  1079. EpiD7 grad{PVM_EpiReadDephGrad(100)|PVM_EpiPhaseDephGrad(100)+PVM_EpiInterleavingFunction(100*PVM_EpiPhaseRewGrad)|(0)}
  1080. groff
  1081. }
  1082. EpiD1
  1083. if(PVM_EpiPrefixNavYes) ;prefix navigator: adc is already running
  1084. {
  1085. EpiD2
  1086. }
  1087. if(!PVM_EpiPrefixNavYes) ;no prefix navigator: start adc now
  1088. {
  1089. EpiD2 cpdngs30:f1
  1090. }
  1091. EpiD3
  1092. EpiD0 eoscnp
  1093. if(PVM_EpiNShots != 1)
  1094. {
  1095. if(PVM_EpiEchoTimeShifting == Yes)
  1096. {
  1097. EpiVd EpiVd.inc
  1098. }
  1099. }
  1100. }
  1101. ;-------- end of version
  1102. # 58 "/opt/PV5.0/exp/stan/nmr/lists/pp/comp_DblDtiEpi.ppg" 2
  1103. goOn, 2.5u
  1104. ;----------------------------------slice loop-----------------------
  1105. 10u islice
  1106. d0 DwFl0.inc
  1107. lo to slice times NSLICES
  1108. 1u zslice
  1109. ;----------------------------------averaging loop-------------------
  1110. d5
  1111. "lcDs = lcDs - 1"
  1112. if "lcDs >= 0" goto DiffL ;dummy scans
  1113. 1u ipp0
  1114. 1u ipp1
  1115. 1u ipp2
  1116. lo to DiffL times NA
  1117. ;----------------------------------2d loop--------------------------
  1118. 1u igrad PVM_EpiInterleavingFunction
  1119. lo to DiffL times l0
  1120. 1u zgrad PVM_EpiInterleavingFunction
  1121. ;----------------------------------diffusion loop-------------------
  1122. ;EXEC_begin DwiLoop line 2222 (79) DwiLoop(any DiffL)
  1123. if(PVM_DwFlag1 == 0)
  1124. {
  1125. if( ACQ_scan_type == Scan_Experiment)
  1126. {
  1127. 0u igrad PVM_DwSpDir
  1128. 1u igrad PVM_DwGradRead
  1129. 1u igrad PVM_DwGradPhase
  1130. 1u igrad PVM_DwGradSlice
  1131. 1u igrad PVM_DwGradVec
  1132. }
  1133. else
  1134. {
  1135. 0u zgrad PVM_DwSpDir
  1136. 1u zgrad PVM_DwGradRead
  1137. 1u zgrad PVM_DwGradPhase
  1138. 1u zgrad PVM_DwGradSlice
  1139. 1u zgrad PVM_DwGradVec
  1140. }
  1141. }
  1142. else
  1143. {
  1144. 0u igrad PVM_DwSpDir
  1145. 1u igrad PVM_DwGradRead
  1146. 1u igrad PVM_DwGradPhase
  1147. 1u igrad PVM_DwGradSlice
  1148. 1u igrad PVM_DwGradVec
  1149. }
  1150. lo to DiffL times DwExp
  1151. 0u zgrad PVM_DwSpDir
  1152. 1u zgrad PVM_DwGradRead
  1153. 1u zgrad PVM_DwGradPhase
  1154. 1u zgrad PVM_DwGradSlice
  1155. 1u zgrad PVM_DwGradVec
  1156. ;EXEC_end DwiLoop line 2222 (79) DwiLoop(any DiffL)
  1157. ;----------------------------------repetitions loop-----------------
  1158. lo to DiffL times PVM_NRepetitions
  1159. if (ACQ_scan_type != Scan_Experiment) \n{ \n goto DiffL \n}
  1160. goto bye
  1161. ; ---- empty acquisition for dummy scans
  1162. acqDs, 1u
  1163. # 1 "/opt/PV5.0/exp/stan/nmr/lists/pp/epiDum.mod" 1
  1164. ;****************************************************************
  1165. ;
  1166. ; Copyright (c) 2002-2005
  1167. ; Bruker BioSpin MRI GmbH
  1168. ; D-76275 Ettlingen, Germany
  1169. ;
  1170. ; All Rights Reserved
  1171. ;
  1172. ; epiDum.mod - a version the Echo-Planar Imaging module without phase
  1173. ; acquisition (for the dummy scans)
  1174. ;
  1175. ;****************************************************************
  1176. ;-------- version with shaped gradients:
  1177. if(PVM_EpiRampMode != SystemRamp)
  1178. {
  1179. ;5u fqatofqb:f1
  1180. ;rdepa \n deparx adc ph0 setrtp1|2 syrec \n derxadc ph1:r setrtp1|1 \n deadc setrtp1|0|8
  1181. 10u
  1182. if(PVM_EpiNShots != 1)
  1183. {
  1184. if(PVM_EpiEchoTimeShifting == Yes)
  1185. {
  1186. EpiVd ;EpiVd.inc
  1187. }
  1188. }
  1189. if (PVM_EpiGradSync == Yes)
  1190. {
  1191. 1u trigpe3
  1192. }
  1193. if(PVM_EpiPrefixNavYes) ;prefix navigator
  1194. {
  1195. EpiD12 ;cpdngs30:f1
  1196. }
  1197. 10u gc_control
  1198. {
  1199. EpiD4 grad{EpiShape1(100,EpiShape1Size)| (0) |(0)}
  1200. EpiD5 grad{EpiShape9(100,EpiShape9Size)| (0) |(0)}
  1201. EpiD11 grad{EpiShape8(100,EpiShape8Size)| (0) |(0)} ;plateau up
  1202. loop PVM_EpiEchoCounter
  1203. {
  1204. EpiD5 grad{EpiShape2(100,EpiShape2Size) |(0) |(0)} ;ramp down
  1205. EpiD11 grad{(0)-EpiShape8(100,EpiShape8Size)|(0) |(0)} ;plateau down
  1206. EpiD5 grad{(0)-EpiShape2(100,EpiShape2Size)|(0) |(0)} ;ramp up
  1207. EpiD11 grad{EpiShape8(100,EpiShape8Size) |(0) |(0)} ;plateau up
  1208. }
  1209. EpiD5 grad{EpiShape10(100,EpiShape10Size)| (0) |(0)}
  1210. EpiD4 grad{EpiShape5(100,EpiShape5Size) | (0) |(0)}
  1211. }
  1212. EpiD1
  1213. if(PVM_EpiPrefixNavYes) ;prefix navigator: adc is already running
  1214. {
  1215. EpiD2
  1216. }
  1217. if(!PVM_EpiPrefixNavYes) ;no prefix navigator: start adc now
  1218. {
  1219. EpiD2 ;cpdngs30:f1
  1220. }
  1221. EpiD3
  1222. EpiD0 ;eoscnp
  1223. if(PVM_EpiNShots != 1)
  1224. {
  1225. if(PVM_EpiEchoTimeShifting == Yes)
  1226. {
  1227. EpiVd ;EpiVd.inc
  1228. }
  1229. }
  1230. } ;--------end of version
  1231. ;----------------------- version with system ramps ---------------------------
  1232. if(PVM_EpiRampMode == SystemRamp)
  1233. {
  1234. ;5u fqatofqb:f1
  1235. ;rdepa \n deparx adc ph0 setrtp1|2 syrec \n derxadc ph1:r setrtp1|1 \n deadc setrtp1|0|8
  1236. 10u
  1237. if(PVM_EpiNShots != 1)
  1238. {
  1239. if(PVM_EpiEchoTimeShifting == Yes)
  1240. {
  1241. EpiVd ;EpiVd.inc
  1242. }
  1243. }
  1244. if (PVM_EpiGradSync == Yes)
  1245. {
  1246. 1u trigpe3
  1247. }
  1248. if(PVM_EpiPrefixNavYes) ;prefix navigator
  1249. {
  1250. EpiD12 ;cpdngs30:f1
  1251. }
  1252. 10u gc_control
  1253. {
  1254. EpiD7 grad{PVM_EpiReadDephGrad(100)|(0)|(0)}
  1255. EpiD8 groff
  1256. EpiD9 grad{PVM_EpiReadEvenGrad(100)|(0)|(0)}
  1257. loop PVM_EpiEchoCounter
  1258. {
  1259. EpiD10 grad{(0) |(0) |(0)}
  1260. EpiD9 grad{PVM_EpiReadOddGrad(100) |(0) |(0)}
  1261. EpiD10 grad{(0) |(0) |(0)}
  1262. EpiD9 grad{PVM_EpiReadEvenGrad(100) |(0) |(0)}
  1263. }
  1264. EpiD8 groff
  1265. EpiD7 grad{PVM_EpiReadDephGrad(100)| (0)|(0)}
  1266. groff
  1267. }
  1268. EpiD1
  1269. if(PVM_EpiPrefixNavYes) ;prefix navigator: adc is already running
  1270. {
  1271. EpiD2
  1272. }
  1273. if(!PVM_EpiPrefixNavYes) ;no prefix navigator: start adc now
  1274. {
  1275. EpiD2 ;cpdngs30:f1
  1276. }
  1277. EpiD3
  1278. EpiD0 ;eoscnp
  1279. if(PVM_EpiNShots != 1)
  1280. {
  1281. if(PVM_EpiEchoTimeShifting == Yes)
  1282. {
  1283. EpiVd ;EpiVd.inc
  1284. }
  1285. }
  1286. }
  1287. ;-------- end of version
  1288. # 88 "/opt/PV5.0/exp/stan/nmr/lists/pp/comp_DblDtiEpi.ppg" 2
  1289. goto goOn
  1290. bye, 1u
  1291. exit
  1292. ph0 = 0 2 0 2
  1293. ph2 = 1 3 3 1
  1294. ph1 = 1 1 1 1
  1295. ; ph0 = 0 0
  1296. ; ph2 = 0 2
  1297. ; ph1 = 0 0
  1298. ; ph0 = 0 2
  1299. ; ph1 = 1