deepmr.bloch.ssfpmrf#
- deepmr.bloch.ssfpmrf(flip, TR, T1, T2, sliceprof=False, DE=False, diff=None, device='cpu', TI=None, **kwargs)[source]#
Simulate an inversion-prepared SSFP sequence with variable flip angles.
- Parameters:
flip (float | np.ndarray | torch.Tensor) – Flip angle in
[deg]
of shape(npulses,)
or(npulses, nmodes)
.TR (float) – Repetition time in [ms].
T1 (float | np.ndarray | torch.Tensor) – Longitudinal relaxation time for main pool in
[ms]
.T2 (float | np.ndarray | torch.Tensor) – Transverse relaxation time for main pool in
[ms]
.sliceprof (float | np.ndarray | torch.Tensor) – Excitation slice profile (i.e., flip angle scaling across slice). If
False
, pulse are non selective. IfTrue
, pulses are selective but ideal profile is assumed. If array, flip angle scaling along slice is simulated. Defaults toFalse
.DE (bool, optional) – If True, simulation is repeated two times to mimick Driven Equilibrium acquisition. Defaults to
False
.diff (str | tuple[str], optional) – String or tuple of strings, saying which arguments to get the signal derivative with respect to. Defaults to
None
(no differentation).device (str) – Computational device (e.g.,
cpu
orcuda:n
, withn=0,1,2...
). Defaults tocpu
.TI (float) – Inversion time in
[ms]
. Defaults toNone
(no preparation).nstates (int, optional) – Maximum number of EPG states to be retained during simulation. High numbers improve accuracy but decrease performance. Defaults to
10
.max_chunk_size (int, optional) – Maximum number of atoms to be simulated in parallel. High numbers increase speed and memory footprint. Defaults to
natoms
.verbose (bool, optional) – If
True
, prints execution time for signal (and gradient) calculations. Defaults toFalse
.TE (float, optional) – Echo time in
[ms]
. Defaults to0.0
.B1sqrdTau (float, optional) – Pulse energies in
[uT**2 * ms]
whenflip = 1.0 [deg]
.global_inversion (bool, optional) – Assume nonselective (
True
) or selective (False
) inversion. Defaults toTrue
.inv_B1sqrdTau (float, optional) – Inversion pulse energy in
[uT**2 * ms]
whenflip = 1.0 [deg]
.grad_tau (float, optional) – Gradient lobe duration in
[ms]
.grad_amplitude (float, optional) – Gradient amplitude along unbalanced direction in
[mT / m]
. If total_dephasing is not provided, this is used to compute diffusion and flow effects.grad_dephasing (float, optional) – Total gradient-induced dephasing across a voxel (in grad direction). If gradient_amplitude is not provided, this is used to compute diffusion and flow effects.
voxelsize (str | list | tuple | np.ndarray | torch.Tensor, optional) – Voxel size (
dx
,dy
,dz
) in[mm]
. If scalar, assume isotropic voxel. Defaults toNone
.grad_orient (str | list | tuple | np.ndarray | torch.Tensor, optional) – Gradient orientation (
"x"
,"y"
,"z"
orversor
). Defaults to"z"
.slice_orient (str | list | tuple | np.ndarray | torch.Tensor, optional) – Slice orientation (
"x"
,"y"
,"z"
orversor
). Ignored if pulses are non-selective. Defaults to"z"
.B1 (float | np.ndarray | torch.Tensor , optional) – Flip angle scaling factor (
1.0 := nominal flip angle
). Defaults toNone
.B0 (float | np.ndarray | torch.Tensor , optional) – Bulk off-resonance in [Hz]. Defaults to
None
B1Tx2 (float | np.ndarray | torch.Tensor) – Flip angle scaling factor for secondary RF mode (
1.0 := nominal flip angle
). Defaults toNone
.B1phase (float | np.ndarray | torch.Tensor) – B1 relative phase in
[deg]
. (0.0 := nominal rf phase
). Defaults toNone
.T2star (float | np.ndarray | torch.Tensor) – Effective relaxation time for main pool in
[ms]
. Defaults toNone
.D (float | np.ndarray | torch.Tensor) – Apparent diffusion coefficient in
[um**2 / ms]
. Defaults toNone
.v (float | np.ndarray | torch.Tensor) – Spin velocity
[cm / s]
. Defaults toNone
.chemshift (float | np.ndarray | torch.Tensor) – Chemical shift for main pool in
[Hz]
. Defaults toNone
.T1bm (float | np.ndarray | torch.Tensor) – Longitudinal relaxation time for secondary pool in
[ms]
. Defaults toNone
.T2bm (float | np.ndarray | torch.Tensor) – Transverse relaxation time for main secondary in
[ms]
. Defaults toNone
.kbm (float | np.ndarray | torch.Tensor) – Nondirectional exchange between main and secondary pool in
[Hz]
. Defaults toNone
.weight_bm (float | np.ndarray | torch.Tensor) – Relative secondary pool fraction. Defaults to
None
.chemshift_bm (float | np.ndarray | torch.Tensor) – Chemical shift for secondary pool in
[Hz]
. Defaults toNone
.kmt (float | np.ndarray | torch.Tensor) – Nondirectional exchange between free and bound pool in
[Hz]
. If secondary pool is defined, exchange is between secondary and bound pools (i.e., myelin water and macromolecular), otherwise exchange is between main and bound pools. Defaults toNone
.weight_mt (float | np.ndarray | torch.Tensor) – Relative bound pool fraction. Defaults to
None
.