These scripts simulate a blood proton experiencing adiabatic inversion as in pseudo-continuous arterial spin labeling. The simulations are based on Maccotta et al., 1999 and Dai et al., 2008.
- The main simulation script is sim_inversion.m which is a function that takes a gradient shape, RF shape, and a structure of simulation parameters as input. The simulation works by performing finite rotations of the magnetization vector M around the effective magnetic field in the rotating reference frame where the rotational frequency is
$\omega_{RF}$ . This script is a functionalized version of pcasl_simulation.m -
sim_inversion_call.m creates RF and gradient waveforms and initializes simulation parameters to pass to sim_inversion() which is called for multiple spin velocities. These waveforms are created with the help of some Pulseq functions although, they could be created using other methods as well. For each velocity, the
$M_z$ trajectory is plotted as a function of time. You can see that slower spins generally experience less inversion. This script also computes labeling efficiency. Assuming laminar blood flow, the labeling efficiency within a vessel is computed based on the velocity-weighted average of efficiencies of individual spins having different velocities:
where$$\alpha_{vessel} = \frac{2}{v_{max}^2} \int_0^{v_{max}} v*\alpha(v)dv$$ $$v_{max}$$ is the maximum velocity within the vessel,$$v$$ is the velocity of a spin, and$$\alpha(v)$$ is the labeling efficiency of spin with velocity$$v$$ and is defined as
where$$\alpha(v) = \frac{M_{con} - M_{{lab}_ {corr}}}{2*M_{con}}$$ $$M_{con}$$ is the longitudinal magnetization of the control acquisition, aned$$M_{{lab}_ {corr}}$$ is the$T_1$ -corrected longitudinal magnetization of the label acquisition:
where$$M_{{lab}_ {corr}} = \frac{M_{lab} - M_0}{exp(-t/T_1)} + M_0$$ $$t$$ is the transit time or the time at the end of the simulation, and$$T_1$$ is the longitudinal relaxation time of blood. - maccotta_simulation.m is the CASL simulation.
