deepmr.bloch.bssfpmrf

Contents

deepmr.bloch.bssfpmrf#

deepmr.bloch.bssfpmrf(flip, TR, T1, T2, sliceprof=False, DE=False, diff=None, device='cpu', TI=None, **kwargs)[source]#

Simulate an inversion-prepared bSSFP 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. If True, pulses are selective but ideal profile is assumed. If array, flip angle scaling along slice is simulated. Defaults to False.

  • 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 or cuda:n, with n=0,1,2...). Defaults to cpu.

  • TI (float) – Inversion time in [ms]. Defaults to None (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 to False.

  • TE (float, optional) – Echo time in [ms]. Defaults to 0.0.

  • B1sqrdTau (float, optional) – Pulse energies in [uT**2 * ms] when flip = 1.0 [deg].

  • global_inversion (bool, optional) – Assume nonselective (True) or selective (False) inversion. Defaults to True.

  • inv_B1sqrdTau (float, optional) – Inversion pulse energy in [uT**2 * ms] when flip = 1.0 [deg].

  • B1 (float | np.ndarray | torch.Tensor , optional) – Flip angle scaling factor (1.0 := nominal flip angle). Defaults to None.

  • 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 to None.

  • B1phase (float | np.ndarray | torch.Tensor) – B1 relative phase in [deg]. (0.0 := nominal rf phase). Defaults to None.

  • chemshift (float | np.ndarray | torch.Tensor) – Chemical shift for main pool in [Hz]. Defaults to None.

  • T1bm (float | np.ndarray | torch.Tensor) – Longitudinal relaxation time for secondary pool in [ms]. Defaults to None.

  • T2bm (float | np.ndarray | torch.Tensor) – Transverse relaxation time for main secondary in [ms]. Defaults to None.

  • kbm (float | np.ndarray | torch.Tensor) – Nondirectional exchange between main and secondary pool in [Hz]. Defaults to None.

  • 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 to None.

  • 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 to None.

  • weight_mt (float | np.ndarray | torch.Tensor) – Relative bound pool fraction. Defaults to None.