pulseprogram 40 KB

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