pulseprogram 37 KB

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