# 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" ;**************************************************************** ; ; Copyright (c) 2001-2007 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; All Rights Reserved ; ; $Id$ # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" 1 ;**************************************************************** ; ; $Source$ ; ; Copyright (c) 2006 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; All Rights Reserved ; ;;**************************************************************** ;MRI.include # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/Avance.incl" 1 ;Avance3.incl ; for AV III ; ;avance-version (13/06/17) ; ;$CLASS=HighRes Incl ;$COMMENT= # 169 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/Avance.incl" ;$Id: Avance3.incl,v 1.9.6.1 2013/06/17 15:32:55 pfre Exp $ # 14 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" 2 define delay aqq define delay deparx define delay derxadc define delay rdepa # 21 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" "aqq=dw*td" "rdepa=de-depa" "deparx=depa-derx" "derxadc=derx-deadc" ; contents of De2.incl - usage for different hardware versions to ; be checked - intermediate solution to support Jobs define delay rde1 # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" "rde1=de-de1" # 44 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" ; end of contents of De2.incl # 65 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" # 74 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" # 128 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" # 129 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" # 141 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MRI.include" # 11 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" 2 preset off # 15 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" ;counter of dummy scans (not acquired; DS set to 0) define loopcounter lcDs "lcDs = l1" # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 1 ;**************************************************************** ; ; Copyright (c) 2003-2007 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; $Id$ ; ; All Rights Reserved ; ; Declaration of pulseprogram parameters and subroutines for ; preparation modules ; ; Must be included after MRI.include! ; ;**************************************************************** ;**** Fat Suppression **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FatSupDef.mod" 1 ;**************************************************************** ; ; Copyright (c) 2018 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; $Id$ ; ; All Rights Reserved ; ; FatSupDef.mod : Declaration of Fat Suppression Subroutine ; ;**************************************************************** # 15 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FatSupDef.mod" if (PVM_FatSupPerform == Yes) { define pulse fatSupPul = {$PVM_FatSupRfLength} define list fatSupList = {$PVM_FatSupFL} define delay fatSupRamp = {$PVM_FatSupRampTime} define delay fatSupAmp = {$PVM_FatSupAmpEnable} define delay fatSupWait = {$PVM_FatSupGradWait} define delay fatSupSpoil = {$PVM_FatSupSpoilDur} ; convert from ms to s "fatSupRamp = fatSupRamp / 1000" "fatSupAmp = fatSupAmp / 1000" "fatSupWait = fatSupWait / 1000" "fatSupSpoil = fatSupSpoil / 1000" } subroutine FatSup # 20 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Flow Saturation **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FlowSatDef.mod" 1 ;**************************************************************** ; ; Copyright (c) 2018 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; $Id$ ; ; All Rights Reserved ; ; FlowSatDef.mod: Declaration of subroutines for Flow Saturation ; call ; subr FlowSat() ; subr FlowSatInit() ; subr FlowSatInc() ; ;**************************************************************** if(PVM_InFlowSatOnOff == 1) { define list modlis4 = {$PVM_InFlowSatFL} define list flowSatGrad={$PVM_InFlowSatGrad} define delay SfD0 = {$PVM_SfD0} define delay SfD1 = {$PVM_SfD1} define delay SfD2 = {$PVM_SfD2} # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FlowSatDef.mod" define pulse SfP0 = {$PVM_SfP0} define loopcounter SfLp0 = {$PVM_SfLp0} } subroutine FlowSat subroutine FlowSatInc subroutine FlowSatInit # 24 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Inversion Pulse **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/InvPulseDef.mod" 1 ;**************************************************************** ; ; Copyright (c) 2002-2007 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; $Id$ ; ; All Rights Reserved ; ; InvPulseDef.mod : Declaration of Inversion Pulse subroutine ; ; call ; subr InvPulse() ; ;**************************************************************** ; ; PVM_InvRFPulseArr : ; ; sp22 TPQQ[14].name : PVM_InvRFPulsePropertyArr[0].Filename ; ; PVM_IpP0 : PVM_InvRFPulseArr[0].PulseLength ; ; PVM_IpD2 : PVM_InvPulseDelay[0] ; PVM_IpD3 : PVM_InvPulseSpoilTime[0] ; PVM_IpD1 : CONFIG_amplifier _enable ; PVM_IpD0 : PVM_RampTime ; if(PVM_InvPulseOnOff == 1) { define list modlis2= {$PVM_InvPulseOffsetHz} define delay IpD0 = {$PVM_IpD0} define delay IpD1 = {$PVM_IpD1} define delay IpD2 = {$PVM_IpD2} define delay IpD3 = {$PVM_IpD3} define pulse IpP0 = {$PVM_IpP0} } subroutine InvPulse # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Magnetisation Transfer **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MagTransDef.mod" 1 ;**************************************************************** ; $Source$ ; ; Copyright (c) 2005-2007 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; All Rights Reserved ; ; MagTransDef.mod: Declaration of subroutine for Magnetization ; transfer ; call ; subr MagTrans() ; ; $Id$ ;**************************************************************** ;**** Magnetisation Transfer Module **** if(PVM_MagTransOnOff) { define list modlis3 = {$PVM_MagTransFL} define delay MtD0 = {$PVM_MtD0} define delay MtD1 = {$PVM_MtD1} define delay MtD2 = {$PVM_MtD2} define delay MtD3 = {$PVM_MtD3} # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/MagTransDef.mod" define pulse MtP0 = {$PVM_MtP0} define loopcounter MtLp0 = {$PVM_MtLp0} } subroutine MagTrans # 32 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Saturation Transfer **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatTransDef.mod" 1 ;**************************************************************** ; $Source$ ; ; Copyright (c) 2018 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; All Rights Reserved ; ; SatTransDef.mod: Declaration of subroutine for Saturation transfer ; call ; subr SatTrans() ; ; $Id$ ;**************************************************************** ;**** Saturation Transfer Module **** ; PVM_SatTransFL: List of offset frequencies to be measured. ; PVM_SattransNPulses: Number of pulses used in one saturation event ; PVM_SattransPowerList: List of RF amplitudes for saturation pulses. ; Two elements long: first element: 0 Watt, ; used for one reference scan. Subsequent scans ; use amplitude as specified in UI. ; StReference: If PVM_SatTransRefScan is On then list StRfPower ; has two elements (1st is zero for reference scan) ; If RefScan is Off then lsit has only one element. ; Nevertheless we increment to avoid another 'if' # 31 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatTransDef.mod" if(PVM_SatTransOnOff) { define list modlis5 = {$PVM_SatTransFL} define list StRfPower = {$PVM_SatTransPowerList} define delay StD0 = {$PVM_StD0} define delay StD1 = {$PVM_StD1} define delay StD2 = {$PVM_StD2} define delay StD3 = {$PVM_StD3} define pulse StP0 = {$PVM_StP0} define loopcounter StNPulses = {$PVM_SatTransNPulses} define loopcounter StReference "StReference = 1" } subroutine SatTransInit subroutine SatTransInc subroutine SatTrans # 36 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Saturation Pulse **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatPulseDef.mod" 1 ;**************************************************************** ; ; Copyright (c) 2002-2003 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; $Id$ ; ; All Rights Reserved ; ; SatPulseDef.mod : Declaration of Saturation Pulse subroutines ; call ; subr SatPulse() ; ;**************************************************************** ; ; PVM_SatRFPulseArr : ; ; sp28 DPQQ[12].name : PVM_SatRFPulsePropertyArr[0].Filename ; sp29 DPQQ[13].name : PVM_SatRFPulsePropertyArr[1].Filename ; sp30 DPQQ[14].name : PVM_SatRFPulsePropertyArr[2].Filename ; sp31 DPQQ[15].name : PVM_SatRFPulsePropertyArr[3].Filename ; ; PVM_SpP0 : PVM_SatRFPulseArr[0].PulseLength ; PVM_SpP1 : PVM_SatRFPulseArr[1].PulseLength ; PVM_SpP2 : PVM_SatRFPulseArr[2].PulseLength ; PVM_SpP3 : PVM_SatRFPulseArr[3].PulseLength ; ; PVM_SpD2 : PVM_SatPulseDelay1[0] ; PVM_SpD6 : PVM_SatPulseSpoilTime[0] ; PVM_SpD10 : PVM_SatPulseDelay2[0] ; PVM_SpD3 : PVM_SatPulseSpoilTime[1] ; PVM_SpD7 : PVM_SatPulseDelay1[1] ; PVM_SpD11 : PVM_SatPulseDelay2[1] ; PVM_SpD4 : PVM_SatPulseDelay1[2] ; PVM_SpD8 : PVM_SatPulseSpoilTime[2] ; PVM_SpD12 : PVM_SatPulseDelay2[2] ; PVM_SpD5 : PVM_SatPulseDelay1[3] ; PVM_SpD9 : PVM_SatPulseSpoilTime[3] ; PVM_SpD13 : PVM_SatPulseDelay2[3] ; if(PVM_SatPulseOnOff == 1) { define list modlis7 = {$PVM_SatPulseOffsetHz} define delay SpD0 = {$PVM_SpD0} define delay SpD1 = {$PVM_SpD1} define delay SpD2 = {$PVM_SpD2} define delay SpD3 = {$PVM_SpD3} define delay SpD4 = {$PVM_SpD4} define delay SpD5 = {$PVM_SpD5} define delay SpD6 = {$PVM_SpD6} define delay SpD7 = {$PVM_SpD7} define delay SpD8 = {$PVM_SpD8} define delay SpD9 = {$PVM_SpD9} define delay SpD10 = {$PVM_SpD10} define delay SpD11 = {$PVM_SpD11} define delay SpD12 = {$PVM_SpD12} define delay SpD13 = {$PVM_SpD13} define pulse SpP0 = {$PVM_SpP0} define pulse SpP1 = {$PVM_SpP1} define pulse SpP2 = {$PVM_SpP2} define pulse SpP3 = {$PVM_SpP3} # 66 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SatPulseDef.mod" } subroutine SatPulse # 40 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;*** FOV Saturation *** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod" 1 ;**************************************************************** ; ; Copyright (c) 2018 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; $Id$ ; ; All Rights Reserved ; ; FovSat.mod : Declaration of FOV Saturation subroutine ; call: subr FovSat() ; ;**************************************************************** if (PVM_FovSatOnOff == On) { define pulse fovSatPul = {$PVM_FovSatRfLength} define list fovSatList = {$PVM_FovSatFL} define delay fovSatRamp = {$PVM_FovSatRampTime} define delay fovSatAmp = {$PVM_FovSatAmpEnable} define delay fovSatWait = {$PVM_FovSatGradWait} define delay fovSatSpoil = {$PVM_FovSatSpoilDur} # 27 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod" ; convert from ms to s "fovSatRamp = fovSatRamp / 1000" "fovSatAmp = fovSatAmp / 1000" "fovSatWait = fovSatWait / 1000" "fovSatSpoil = fovSatSpoil / 1000" } subroutine FovSat # 55 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod" ; backwards compatibility subroutine SatSlices # 44 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Black Blood **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/BlBloodDef.mod" 1 ;**************************************************************** ; ; Copyright (c) 2007 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; $Id$ ; ; All Rights Reserved ; ; BlBloodDef.mod : Declaration of Black blood subroutine ; ; call ; subr BlBlood(ph0) : Black blood preparation with RF phaselist ; ph0 ; ;**************************************************************** if(PVM_BlBloodOnOff) { define list modlis8 = {$PVM_BlBloodFL} define delay BlbD0 = {$PVM_BlbD0} define delay BlbD1 = {$PVM_BlbD1} define delay BlbD2 = {$PVM_BlbD2} define delay BlbD3 = {$PVM_BlbD3} define pulse BlbP0 = {$PVM_BlbP0} } subroutine BlBlood # 48 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Trigger **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod" 1 ;**************************************************************** ; ; Copyright (c) 1998-2003 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; All Rights Reserved ; ; TriggerDef.mod - Trigger Module ; ;**************************************************************** if (PVM_TriggerModule == On) { define delay trigDur = {$PVM_TriggerDur} define delay trigDel = {$PVM_TriggerDelay} ; convert from ms to s "trigDur = trigDur / 1000" "trigDel = trigDel / 1000" } subroutine Trigger subroutine TriggerPhase subroutine TriggerSlice # 52 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Trigger Out **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerOutDef.mod" 1 ;**************************************************************** ; ; Copyright (c) 2003 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; All Rights Reserved ; $Id$ ;**************************************************************** if (PVM_TriggerOutOnOff == On) { define delay trigOutDur = {$PVM_TriggerOutDur} define delay trigOutDel = {$PVM_TriggerOutDelay} ; convert from ms to s "trigOutDur = trigOutDur / 1000" "trigOutDel = trigOutDel / 1000" } subroutine TriggerOut subroutine TriggerOutStart subroutine TriggerOutSlice subroutine TriggerOutVolume # 56 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Outer Volume Suppression **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod" 1 ;**************************************************************** ; ; Copyright (c) 2005-2007 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; $Id$ ; ; All Rights Reserved ; ; WsOvsDef.mod: Declaration of water suppression and Outer ; volume suppression subroutines ; ; call ; subr Ovs(ph0) ; execution of OVS with ph0 phaselist ; ; subr WsOvs(ph0,ph1) : execution of OVS with ph0 and WS with ph1 ; phaselist ;**************************************************************** ;**** OuterVolumeSuppression **** if(PVM_OvsOnOff == 1) { define list Ovslist={$PVM_OvsFrequencyList} define delay OvsD0 = {$PVM_OvsD0} define delay OvsD1 = {$PVM_OvsD1} define pulse OvsP0 = {$PVM_OvsP0} } subroutine Ovs # 62 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod" ;*** WaterSuppression Module with OVS **** if (PVM_WsMode) { define list Wslist={$PVM_WsOffsetHz} define pulse WsP0 = {$PVM_WsP0} define pulse WsP1 = {$PVM_WsP1} define pulse WsP2 = {$PVM_WsP2} define delay WsNp0 "WsNp0 = WsP0" define delay WsNp1 "WsNp1 = WsP1" define delay WsNp2 "WsNp2 = WsP2" define list ChD1={$PVM_ChppgD1} define list ChD2={$PVM_ChppgD2} define list VpD1={$PVM_VpppgD1} define list VpD2={$PVM_VpppgD2} # 82 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsOvsDef.mod" } subroutine WsOvsMain subroutine WsOvs subroutine Ws # 60 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Solvent Suppression module **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/WsSatDef.mod" 1 ;****************************************************************** ; ; Copyright (c) 2002-2007 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; $Id$ ; ; All Rights Reserved ; ; WsSatDef.mod - Declaration of water suppression and FOV saturation ; subroutines ; call ; subr WsSat(ph0) : execution of WS with ph0 phaselist and ; FOV saturation (as passed as argument) ; ;******************************************************************* ; Definitions for WsPpgParams are included in WsOvsDef.mod subroutine WsSatMain subroutine WsSat # 64 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Selective Inversion Recovery **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SelSliceIrDef.mod" 1 ;**************************************************************** ; ; Copyright (c) 2018 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; $Id$ ; ; All Rights Reserved ; ; SlicelSelIr.mod : declaration of slice Selective Inversion ; Recovery subroutine ; call SliceSelIr() ; ; ;**************************************************************** if(PVM_SelIrOnOff) { define list IrFL = {$PVM_SelIrFL} define delay IrD0 = {$PVM_SelIrD0} ; PVM_InterInvDelay define delay IrD1 = {$PVM_SelIrD1} ; PVM_InterInvEndDelay[0] define delay IrD2 = {$PVM_SelIrD2} ; Spoiler duration define delay IrD3 = {$PVM_SelIrD3} ; Gatepulse duration define delay IrD4 = {$PVM_SelIrD4} ; risetime # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/SelSliceIrDef.mod" define pulse IrP0 = {$PVM_SelIrP0} define loopcounter IrL0 = {$PVM_SelIrL0} define loopcounter IrL1 } subroutine SliceSelIr # 68 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Tagging **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TagDef.mod" 1 ;**************************************************************** ; ; Copyright (c) 2018 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; $Id$ ; ; All Rights Reserved ; ; TagDef.mod : Declaration of tagging subroutine ; call ; subr Tagging() ; ;**************************************************************** if(PVM_TaggingOnOff) { define list taggfreq={$PVM_TaggingFL} define delay TaggD0 = {$PVM_TaggingD0} define delay TaggD1 = {$PVM_TaggingD1} define delay TaggD2 = {$PVM_TaggingD2} define delay TaggD3 = {$PVM_TaggingD3} define delay TaggD4 = {$PVM_TaggingD4} define delay TaggD5 = {$PVM_TaggingD5} # 28 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TagDef.mod" define pulse TaggP0 = {$PVM_TaggingP0} define loopcounter TaggL0 = {$PVM_TaggingLp0} } subroutine Tagging # 72 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Noe **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/NoeDef.mod" 1 ;**************************************************************** ; ; Copyright (c) 2007 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; $Id$ ; ; All Rights Reserved ; ; NoeDef.mod: Declaration of Nuclear Overhouser Enhancement ; subroutine ; call ; subr Noe() ; ;**************************************************************** if(PVM_NoeOnOff == On) { define delay NoeD0 = {$PVM_NoeD0} define delay NoeD1 = {$PVM_NoeD1} } subroutine Noe # 76 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Evolution **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/EvolutionDef.mod" 1 ;**************************************************************** ; ; Copyright (c) 1998-2003 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; All Rights Reserved ; ; EvolutionDef.mod - Evolution Module ; ;**************************************************************** if (PVM_EvolutionOnOff == On) { define delay evolDel = {$PVM_EvolutionDelay} define list evolTime = {$PVM_EvolutionTime} } subroutine Evolution # 80 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 ;**** Drift Compensation **** # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DriftComp.mod" 1 ;========================================================== ; subroutine for drift compensation ;========================================================== if (PVM_DriftCompNavOnOff == On) { define list txfq = {$PVM_DriftCompNavTxFrq} define list rxfq = {$PVM_DriftCompNavRxFrq} define pulse DCP0 = {$PVM_DriftCompNavP0} define delay DCD0 = {$PVM_DriftCompNavD0} define delay DCD1 = {$PVM_DriftCompNavD1} define delay DCD2 = {$PVM_DriftCompNavD2} define delay DCD3 = {$PVM_DriftCompNavD3} define delay DCD4 = {$PVM_DriftCompNavD4} define delay DCD5 = {$PVM_DriftCompNavD5} define delay DCD6 "DCD6 = 10u - de" define list dcph = { 0 } } subroutine DriftComp # 84 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/PrepModulesHead.mod" 2 # 21 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" 2 # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" 1 ;************************************************************************* ; Copyright (c) 2018 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; $Id$ ; ; All Rights Reserved ; ; DwiHead.mod: Declaration of pulseprogram subroutines ; for Stejscal Tanner Spinecho and Stimulated echo ; and double spin echo preparation ; preparation ; ; call ; subr DwiPrep(ph1) : diffusion prepartion with RF phaselist 1 ; subr DwiLoop(Diffl): loop part of diffusion preparation, loops ; to label Diffl (as passed as argument) ; ;************************************************************************* # 22 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" define list DwFl0 = {$PVM_DwFlist0} define delay DwD0 = {$PVM_DwD0} define delay DwD1 = {$PVM_DwD1} define delay DwD2 = {$PVM_DwD2} define delay DwD3 = {$PVM_DwD3} define delay DwD4 = {$PVM_DwD4} define delay DwD5 = {$PVM_DwD5} define delay DwD6 = {$PVM_DwD6} define delay DwD7 = {$PVM_DwD7} define delay DwD8 = {$PVM_DwD8} define delay DwD9 = {$PVM_DwD9} define delay DwD10 = {$PVM_DwD10} define delay DwD11 = {$PVM_DwD11} define delay DwD12 = {$PVM_DwD12} define delay DwD13 = {$PVM_DwD13} define delay DwD14 = {$PVM_DwD14} define delay DwD15 = {$PVM_DwD15} define delay DwD16 = {$PVM_DwD16} define delay DwD17 = {$PVM_DwD17} define delay DwD18 = {$PVM_DwD18} define delay DwD19 = {$PVM_DwD19} define pulse DwP0 = {$PVM_DwP0} define pulse DwP1 = {$PVM_DwP1} define list DwGR1 ={$PVM_DwGradRead} define list DwGP1 ={$PVM_DwGradPhase} define list DwGS1 ={$PVM_DwGradSlice} define list DwGV1 ={$PVM_DwGradVec} define list DwSPD ={$PVM_DwSpDir} define list DwSPD1 ={$PVM_DwSpDir2} # 69 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" define loopcounter DwExp = {$PVM_DwNDiffExp} ; double spinecho preparation ; slice refocusing groups subroutine DwRefDse subroutine DwRefDse2 subroutine DwDse # 152 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" ; spinecho stejscal tanner preparation subroutine DwSe # 184 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" ; stimulated echo stejscal tanner preparation subroutine DwSte # 221 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" ; ; Diffusion Preparation module ; subroutine DwiPrep # 242 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" ; Loop part of DTI module subroutine DwiInit subroutine DwiLoop # 22 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" 2 # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiHead.mod" 1 ;**************************************************************** ; ; Copyright (c) 2003 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; All Rights Reserved ; $Id$ ; Declaration of pulseprogram parameters for epi module ; ;**************************************************************** define delay EpiD0 = {$PVM_EpiD0} define delay EpiD1 = {$PVM_EpiD1} define delay EpiD2 = {$PVM_EpiD2} define delay EpiD3 = {$PVM_EpiD3} define delay EpiD4 = {$PVM_EpiD4} define delay EpiD5 = {$PVM_EpiD5} define delay EpiD7 = {$PVM_EpiD7} define delay EpiD8 = {$PVM_EpiD8} define delay EpiD9 = {$PVM_EpiD9} define delay EpiD10 = {$PVM_EpiD10} define delay EpiD11 = {$PVM_EpiD11} define delay EpiD12 = {$PVM_EpiD12} define delay EpiD13 = {$PVM_EpiD13} # 27 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiHead.mod" define list Interleaving={$PVM_EpiInterleavingFunction} define delay Epi20u_de "Epi20u_de = 20u - de" define list EpiVd = {$PVM_EpiVdList} # 23 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" 2 # 26 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" if (ACQ_jobs_size > 1) { 3u setrtp1|1 \n 7u setrtp1^1 \n 1m swj1 \n 1m dccorr1 \n 3u setrtp1|1 \n 187u setrtp1^1 \n 1u setrtp1|1 \n 9u setrtp1^1 \n 1m swj2 \n 1m dccorr2 \n 3u setrtp1|1 \n 7u setrtp1^1 \n 1m swj1 \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 } } else { 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 } } ; GRAPPA adjustment? if(PVM_EpiAdjustMode==2) { define list ACQ_spatial_phase_2 } else { grad_zero_for_gs } # 44 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" 0u grad_matrix.res subr DwiInit ;EXEC_begin DwiInit DwiInit() # 244 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" 0u DwSPD.res if(PVM_DiffPrepMode != 0) { 0u DwSPD1.res } 0u DwGR1.res 0u DwGP1.res 0u DwGS1.res 0u DwGV1.res ;EXEC_end DwiInit # 46 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" DiffL, 4u subr TriggerPhase ;EXEC_begin TriggerPhase TriggerPhase() # 37 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod" if (PVM_TriggerMode == per_PhaseStep) { ;EXEC_begin Trigger Trigger() # 23 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod" if (PVM_TriggerModule == On) { trigDur setnmr3|6 trigDur trignl1 trigDur trigpe3 trigDur setnmr3^6 trigDel } ;EXEC_end Trigger } ;EXEC_end TriggerPhase # 49 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" subr DriftComp ;EXEC_begin DriftComp DriftComp() # 23 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DriftComp.mod" if(PVM_DriftCompYesNo == Yes) { 20u reload B0 ;close to nav acq if(PVM_DriftCompNavOnOff == On) { 10u swj2 1u setrtp1|1 \n 9u setrtp1^1 ;lasts 10u 10u rxfq(receive):f1 5u txfq:f1 DCD0 gatepulse 1 (DCP0 :sp55 dcph):f1 DCD6 ;is 10u-de (rde1 sync de1 adc2 dcph syrec) (1u 1u dcph:r):f1 (de) ;is de DCD1 cpdngs18:f1 169u ;delay for scan shift 10u eoscnp #1 DCD2 grad_ramp{PVM_DriftCompNavSpoilAmp,PVM_DriftCompNavSpoilAmp,PVM_DriftCompNavSpoilAmp} DCD3 ;delay after eoscnp #0 requires about 45u DCD4 swj1 ;requires about 65u 3u setrtp1|1 \n 7u setrtp1^1 ;lasts 10u DCD5 DCD2 grad_off } } ;EXEC_end DriftComp # 50 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" # 52 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" slice, 5u fq8(receive):f1 5u subr TriggerSlice ;EXEC_begin TriggerSlice TriggerSlice() # 45 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod" if (PVM_TriggerMode == per_Slice) { ;EXEC_begin Trigger Trigger() # 23 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/TriggerDef.mod" if (PVM_TriggerModule == On) { trigDur setnmr3|6 trigDur trignl1 trigDur trigpe3 trigDur setnmr3^6 trigDel } ;EXEC_end Trigger } ;EXEC_end TriggerSlice # 55 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" subr FovSat ;EXEC_begin FovSat FovSat() # 34 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FovSatDef.mod" if (PVM_FovSatOnOff == On) { 5u PVM_FovSatGrad.res 5u fovSatList.res fov19, fovSatRamp grad_ramp{PVM_FovSatGrad[]} 10u fovSatList:f1 fovSatAmp gatepulse 1 (fovSatPul :sp41):f1 fovSatSpoil grad_ramp{0, 0, PVM_FovSatSpoilAmp} 0u fovSatList.inc 0u PVM_FovSatGrad.inc lo to fov19 times PVM_FovSatNSlices fovSatRamp grad_off fovSatWait } ;EXEC_end FovSat # 56 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" subr FatSup ;EXEC_begin FatSup FatSup() # 32 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/FatSupDef.mod" if (PVM_FatSupPerform == Yes) { 10u fatSupList:f1 fatSupAmp gatepulse 1 (fatSupPul :sp40):f1 fatSupSpoil grad_ramp{0, 0, PVM_FatSupSpoilAmp} fatSupRamp grad_off fatSupWait } ;EXEC_end FatSup # 57 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" ;----------------------------------slice selection------------------ d1 grad_ramp{0, 0, g0} fq1:f1 d8 gatepulse 1 (p0:sp0 ph0):f1 d4 grad_off ;----------------------------------slice rephase-------------------- d2 grad_ramp{0, 0, g1} d3 grad_off subr DwiPrep ;EXEC_begin DwiPrep DwiPrep(phase ph1) # 225 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" if(PVM_DiffPrepMode == 0) { ;EXEC_begin DwSe DwSe(phase ph1) # 154 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" DwD0 grad_off if(PVM_DwDirectScale == Yes) { DwD5 grad_ramp{100*DwGV1[]} } else { DwD5 grad_ramp{100*DwGR1, 100*DwGP1, 100*DwGS1} } DwD6 grad_off DwD2 grad_ramp{100*DwSPD[]} DwD3 grad_ramp{0, 0, PVM_DwSliceGrad} DwFl0:f1 gatepulse 1 (DwP0:sp49 ph1):f1 DwD4 DwD2 grad_ramp{100*DwSPD[]} DwD7 grad_off if(PVM_DwDirectScale == Yes) { DwD5 grad_ramp{100*DwGV1[]} } else { DwD5 grad_ramp{100*DwGR1, 100*DwGP1, 100*DwGS1} } DwD1 grad_off ;EXEC_end DwSe } if(PVM_DiffPrepMode == 1) { ;EXEC_begin DwSte DwSte(phase ph1) # 186 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" DwD0 grad_off if(PVM_DwDirectScale == Yes) { DwD9 grad_ramp{100*DwGV1[]} } else { DwD9 grad_ramp{100*DwGR1, 100*DwGP1, 100*DwGS1} } DwD6 grad_off DwD2 grad_ramp{100*DwSPD[]} DwD3 grad_ramp{0, 0, PVM_DwSliceGrad} DwFl0:f1 gatepulse 1 (DwP0:sp48 ph1):f1 DwD7 DwD4 grad_ramp{100*DwSPD1[]} DwD5 grad_off DwD3 grad_ramp{0, 0, PVM_DwSliceGrad} gatepulse 1 (DwP0:sp48 ph1):f1 DwD7 DwD2 grad_ramp{100*DwSPD[]} DwD8 grad_off if(PVM_DwDirectScale == Yes) { DwD9 grad_ramp{100*DwGV1[]} } else { DwD9 grad_ramp{100*DwGR1, 100*DwGP1, 100*DwGS1} } DwD1 grad_off ;EXEC_end DwSte } if(PVM_DiffPrepMode == 2) { ;EXEC_begin DwDse DwDse(phase ph1) # 105 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" DwD0 grad_off DwFl0:f1 DwD6 if(PVM_DwDirectScale == Yes) { DwD7 grad_ramp{100*DwGV1[]} } else { DwD7 grad_ramp{100*DwGR1, 100*DwGP1, 100*DwGS1} } DwD8 grad_off ;EXEC_begin DwRefDse DwRefDse(phase ph1) # 77 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" DwD5 DwD1 grad_ramp{100*DwSPD1[]} DwD2 grad_ramp{0, 0, PVM_DwSliceGrad} gatepulse 1 (DwP0:sp49 ph1):f1 DwD3 DwD1 grad_ramp{100*DwSPD1[]} DwD4 grad_off ;EXEC_end DwRefDse DwD9 if(PVM_DwDirectScale == Yes) { DwD10 grad_ramp{-100*DwGV1[]} } else { DwD10 grad_ramp{-100*DwGR1, -100*DwGP1, -100*DwGS1} } DwD11 grad_off if(PVM_DwDirectScale == Yes) { DwD12 grad_ramp{100*DwGV1[]} } else { DwD12 grad_ramp{100*DwGR1, 100*DwGP1, 100*DwGS1} } DwD13 grad_off ;EXEC_begin DwRefDse2 DwRefDse2(phase ph1) # 88 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" DwD5 DwD1 grad_ramp{100*DwSPD[]} DwD2 grad_ramp{0, 0, PVM_DwSliceGrad} gatepulse 1 (DwP0:sp49 ph1):f1 DwD3 DwD1 grad_ramp{100*DwSPD[]} DwD4 grad_off ;EXEC_end DwRefDse2 DwD14 if(PVM_DwDirectScale == Yes) { DwD15 grad_ramp{-100*DwGV1[]} } else { DwD15 grad_ramp{-100*DwGR1, -100*DwGP1, -100*DwGS1} } DwD16 grad_off ;EXEC_end DwDse } ;EXEC_end DwiPrep # 66 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" if "lcDs > 0" goto acqDs # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epi.mod" 1 ;**************************************************************** ; ; Copyright (c) 2002-2005 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; All Rights Reserved ; ; epi.mod - an Echo-Planar Imaging module ; ;**************************************************************** # 14 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epi.mod" ;-------- version with shaped gradients: if(PVM_EpiRampMode != SystemRamp) { (rde1 sync de1 adc1 ph0 syrec) (1u 1u ph1:r):f1 (de) Epi20u_de if(PVM_EpiNShots != 1) { if(PVM_EpiEchoTimeShifting == Yes) { EpiVd EpiVd.inc } } if (PVM_EpiGradSync == Yes) { 1u trigpe3 } if(PVM_EpiPrefixNavYes) ;prefix navigator { EpiD12 cpdngs17:f1 } else { if(PVM_EpiDynCorr) { EpiD12 cpdngs17:f1 } } if(PVM_EpiDynCorr) ; dynamic ghost correction { EpiD13 grad_shape{EpiShape17() * 100, (0), (0)} EpiD5 grad_shape{EpiShape9() * 100, (0), (0)} EpiD11 grad_shape{EpiShape8() * 100, (0), (0)} ;plateau up EpiD5 grad_shape{EpiShape2() * 100, EpiShape15() * 100, (0)} ;ramp down EpiD11 grad_shape{EpiShape13() * 100, 0, 0} ;plateau down EpiD5 grad_shape{EpiShape12() * 100, EpiShape16() * 100, (0)} ;ramp up EpiD11 grad_shape{EpiShape8() * 100, (0), (0)} ;plateau up EpiD5 grad_shape{EpiShape10() * 100, (0), (0)} EpiD13 grad_shape{EpiShape17() * 100, (0) ,(0)} } # 56 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epi.mod" 10u gc_control { EpiD4 grad_shape{EpiShape1() * 100, EpiShape3() * 100 + EpiShape18() * 100 * r2d , (0)-EpiShape14() * 100 * ACQ_spatial_phase_2} EpiD5 grad_shape{EpiShape9() * 100, EpiShape11() * 100 * Interleaving,0} EpiD11 grad_shape{EpiShape8() * 100, 0, 0} ;plateau up loop PVM_EpiEchoCounter { EpiD5 grad_shape{EpiShape2() * 100, EpiShape4() * 100, 0} ;ramp down EpiD11 grad_shape{EpiShape13() * 100, 0, 0} ;plateau down EpiD5 grad_shape{EpiShape12() * 100, EpiShape7() * 100, 0} ;ramp up EpiD11 grad_shape{EpiShape8() * 100, 0, 0} ;plateau up } EpiD5 grad_shape{EpiShape10() * 100, -EpiShape11() * 100 *Interleaving, 0} EpiD4 grad_shape{EpiShape5() * 100, EpiShape6() * 100,EpiShape14() * 100 * ACQ_spatial_phase_2} } EpiD1 if(PVM_EpiPrefixNavYes) ;prefix navigator: adc is already running { EpiD2 } else ;no prefix navigator or dyn corr: start adc now { if(PVM_EpiDynCorr) { EpiD2 } else { EpiD2 cpdngs17:f1 } } EpiD3 EpiD0 eoscnp #0 if(PVM_EpiNShots != 1) { if(PVM_EpiEchoTimeShifting == Yes) { EpiVd EpiVd.inc } } } ;--------end of version ;----------------------- version with system ramps --------------------------- if(PVM_EpiRampMode == SystemRamp) { (rde1 sync de1 adc1 ph0 syrec) (1u 1u ph1:r):f1 (de) Epi20u_de if(PVM_EpiNShots != 1) { if(PVM_EpiEchoTimeShifting == Yes) { EpiVd EpiVd.inc } } if (PVM_EpiGradSync == Yes) { 1u trigpe3 } if(PVM_EpiPrefixNavYes) ;prefix navigator { EpiD12 cpdngs17:f1 } # 121 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epi.mod" 10u gc_control { EpiD7 grad_ramp{PVM_EpiReadDephGrad * 100, PVM_EpiPhaseDephGrad * 100 +Interleaving * 100 *PVM_EpiPhaseEncGrad,0} EpiD8 grad_off EpiD9 grad_ramp{PVM_EpiReadEvenGrad * 100, 0, 0} loop PVM_EpiEchoCounter { EpiD10 grad_ramp{0, PVM_EpiBlipEvenGrad *100, 0} EpiD9 grad_ramp{PVM_EpiReadOddGrad * 100, 0, 0} EpiD10 grad_ramp{0, PVM_EpiBlipOddGrad * 100, 0} EpiD9 grad_ramp{PVM_EpiReadEvenGrad * 100, 0, 0} } EpiD8 grad_off EpiD7 grad_ramp{PVM_EpiReadDephGrad * 100, PVM_EpiPhaseRephGrad * 100 + Interleaving * 100 * PVM_EpiPhaseRewGrad, 0} grad_off } EpiD1 if(PVM_EpiPrefixNavYes) ;prefix navigator: adc is already running { EpiD2 } if(!PVM_EpiPrefixNavYes) ;no prefix navigator: start adc now { EpiD2 cpdngs17:f1 } EpiD3 EpiD0 eoscnp #0 if(PVM_EpiNShots != 1) { if(PVM_EpiEchoTimeShifting == Yes) { EpiVd EpiVd.inc } } } ;-------- end of version # 69 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" 2 # 72 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" ;----------------------------------slice loop----------------------- goOn, 0u grad_matrix.inc 0u DwFl0.inc d0 lo to slice times NSLICES 0u grad_matrix.res ;----------------------------------averaging loop------------------- d5 "lcDs = lcDs - 1" if "lcDs >= 0" goto DiffL ;dummy scans lo to DiffL times NA ;----------------------------------2d loop-------------------------- 0u Interleaving.inc lo to DiffL times l0 0u Interleaving.res ;----------------------------------3d loop-------------------------- if( ACQ_dim >= 3 ) { 0u ACQ_spatial_phase_2.inc lo to DiffL times ACQ_size[2] } ;----------------------------------diffusion loop------------------- subr DwiLoop ;EXEC_begin DwiLoop DwiLoop(any DiffL) # 261 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DwiHead.mod" if(PVM_DwFlag1 == 0) { if( ACQ_scan_type == Scan_Experiment) { 0u DwSPD.inc if(PVM_DiffPrepMode != 0) { 0u DwSPD1.inc } 0u DwGR1.inc 0u DwGP1.inc 0u DwGS1.inc 0u DwGV1.inc } else { 0u } } else { 0u DwSPD.inc if(PVM_DiffPrepMode != 0) { 0u DwSPD1.inc } 0u DwGR1.inc 0u DwGP1.inc 0u DwGS1.inc 0u DwGV1.inc } lo to DiffL times DwExp 0u DwSPD.res if(PVM_DiffPrepMode !=0) { 0u DwSPD1.res } 0u DwGR1.res 0u DwGP1.res 0u DwGS1.res 0u DwGV1.res ;EXEC_end DwiLoop # 96 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" ;----------------------------------repetitions loop----------------- lo to DiffL times PVM_NRepetitions if (ACQ_scan_type != Scan_Experiment) \n{ \n goto DiffL \n} goto bye ; ---- empty acquisition for dummy scans acqDs, 0u # 1 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiDum.mod" 1 ;**************************************************************** ; ; Copyright (c) 2002-2005 ; Bruker BioSpin MRI GmbH ; D-76275 Ettlingen, Germany ; ; All Rights Reserved ; ; epiDum.mod - a version the Echo-Planar Imaging module without phase ; acquisition (for the dummy scans) ; ;**************************************************************** # 16 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiDum.mod" ;-------- version with shaped gradients: if(PVM_EpiRampMode != SystemRamp) { ;rdepa \n deparx adc ph0 syrec \n derxadc ph1:r \n deadc 20u if(PVM_EpiNShots != 1) { if(PVM_EpiEchoTimeShifting == Yes) { EpiVd ;EpiVd.inc } } if (PVM_EpiGradSync == Yes) { 1u trigpe3 } if(PVM_EpiPrefixNavYes) ;prefix navigator { EpiD12 ;cpdngs17:f1 } else { if(PVM_EpiDynCorr) { EpiD12 ;cpdngs17:f1 } } if(PVM_EpiDynCorr) ; dynamic ghost correction { EpiD13 grad_shape{EpiShape17() * 100, (0), (0)} EpiD5 grad_shape{EpiShape9() * 100, (0), (0)} EpiD11 grad_shape{EpiShape8() * 100, (0), (0)} ;plateau up EpiD5 grad_shape{EpiShape2() * 100, EpiShape15() * 100, (0)} ;ramp down EpiD11 grad_shape{EpiShape13() * 100, 0, 0} ;plateau down EpiD5 grad_shape{EpiShape12() * 100, EpiShape16() * 100, (0)} ;ramp up EpiD11 grad_shape{EpiShape8() * 100, (0), (0)} ;plateau up EpiD5 grad_shape{EpiShape10() * 100, (0), (0)} EpiD13 grad_shape{EpiShape17() * 100, (0) ,(0)} } # 58 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiDum.mod" 10u gc_control { EpiD4 grad_shape{EpiShape1() * 100, EpiShape3() * 100 + EpiShape18() * 100 * r2d , (0)-EpiShape14() * 100 * ACQ_spatial_phase_2} EpiD5 grad_shape{EpiShape9() * 100, EpiShape11() * 100 * Interleaving,0} EpiD11 grad_shape{EpiShape8() * 100, 0, 0} ;plateau up loop PVM_EpiEchoCounter { EpiD5 grad_shape{EpiShape2() * 100, EpiShape4() * 100, 0} ;ramp down EpiD11 grad_shape{EpiShape13() * 100, 0, 0} ;plateau down EpiD5 grad_shape{EpiShape12() * 100, EpiShape7() * 100, 0} ;ramp up EpiD11 grad_shape{EpiShape8() * 100, 0, 0} ;plateau up } EpiD5 grad_shape{EpiShape10() * 100, -EpiShape11() * 100 *Interleaving, 0} EpiD4 grad_shape{EpiShape5() * 100, EpiShape6() * 100,EpiShape14() * 100 * ACQ_spatial_phase_2} } EpiD1 # 77 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiDum.mod" if(PVM_EpiPrefixNavYes) ;prefix navigator: adc is already running { EpiD2 } else ;no prefix navigator or dyn corr: start adc now { if(PVM_EpiDynCorr) { EpiD2 } else { EpiD2 ;cpdngs17:f1 } } EpiD3 EpiD0 ;eoscnp if(PVM_EpiNShots != 1) { if(PVM_EpiEchoTimeShifting == Yes) { EpiVd ;EpiVd.inc } } } ;--------end of version ;----------------------- version with system ramps --------------------------- if(PVM_EpiRampMode == SystemRamp) { ;rdepa \n deparx adc ph0 syrec \n derxadc ph1:r \n deadc 20u if(PVM_EpiNShots != 1) { if(PVM_EpiEchoTimeShifting == Yes) { EpiVd ;EpiVd.inc } } if (PVM_EpiGradSync == Yes) { 1u trigpe3 } if(PVM_EpiPrefixNavYes) ;prefix navigator { EpiD12 ;cpdngs17:f1 } # 126 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/epiDum.mod" 10u gc_control { EpiD7 grad_ramp{PVM_EpiReadDephGrad * 100, 0, 0} EpiD8 grad_off EpiD9 grad_ramp{PVM_EpiReadEvenGrad * 100, 0, 0} loop PVM_EpiEchoCounter { EpiD10 grad_ramp{0, 0, 0} EpiD9 grad_ramp{PVM_EpiReadOddGrad * 100, 0, 0} EpiD10 grad_ramp{0, 0, 0} EpiD9 grad_ramp{PVM_EpiReadEvenGrad * 100, 0, 0} } EpiD8 grad_off EpiD7 grad_ramp{PVM_EpiReadDephGrad * 100, 0, 0} grad_off } EpiD1 if(PVM_EpiPrefixNavYes) ;prefix navigator: adc is already running { EpiD2 } if(!PVM_EpiPrefixNavYes) ;no prefix navigator: start adc now { EpiD2 ;cpdngs17:f1 } EpiD3 EpiD0 ;eoscnp if(PVM_EpiNShots != 1) { if(PVM_EpiEchoTimeShifting == Yes) { EpiVd ;EpiVd.inc } } } ;-------- end of version # 105 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" 2 goto goOn # 109 "/opt/PV-7.0.0/exp/stan/nmr/lists/pp/DtiEpi.ppg" bye, 0u exit ph0 = 0 2 ph1 = 1