pygrappa.slicegrappa

Python implementation of the Slice-GRAPPA algorithm.

pygrappa.slicegrappa.slicegrappa(kspace, calib, kernel_size=(5, 5), prior='sim', coil_axis=-2, time_axis=-1, slice_axis=-1, lamda=0.01, split=False)[source]

(Split)-Slice-GRAPPA for SMS reconstruction.

Parameters:
  • kspace (array_like) – Time frames of sum of k-space coil measurements for multiple slices.
  • calib (array_like) – Single slice measurements for each slice present in kspace. Should be the same dimensions.
  • kernel_size (tuple, optional) – Size of the GRAPPA kernel: (kx, ky).
  • prior ({ 'sim', 'kspace' }, optional) –

    How to construct GRAPPA sources. GRAPPA weights are found by solving the least squares problem T = S W, where T are the targets (calib), S are the sources, and W are the weights. The possible options are:

    • ’sim’: simulate SMS acquisition from calibration data, i.e., sources S = sum(calib, axis=slice_axis). This presupposes that the spatial locations of the slices in the calibration data are the same as in the overlapped kspace data. This is similar to how the k-t BLAST Wiener filter is constructed (see equation 1 in [2]).
    • ’kspace’: uses the first time frame of the overlapped data as sources, i.e., S = kspace[1st time frame].

    This option is not used for Split-Slice-GRAPPA.

  • coil_axis (int, optional) – Dimension that holds the coil data.
  • time_axis (int, optional) – Dimension of kspace that holds the time data.
  • slice_axis (int, optional) – Dimension of calib that holds the slice information.
  • lamda (float, optional) – Tikhonov regularization for the kernel calibration.
  • split (bool, optional) – Uses Split-Slice-GRAPPA kernel training method.
Returns:

res – Reconstructed slices for each time frame. res will always return the data in fixed order or shape: (nx, ny, num_coils, num_time_frames, num_slices).

Return type:

array_like

Raises:

NotImplementedError – When “prior” is an invalid option.

Notes

This function implements both the Slice-GRAPPA algorithm as described in [1] and the Split-Slice-GRAPPA algorithm as first described in [3].

References

[1]Setsompop, Kawin, et al. “Blipped‐controlled aliasing in parallel imaging for simultaneous multislice echo planar imaging with reduced g‐factor penalty.” Magnetic resonance in medicine 67.5 (2012): 1210-1224.
[2]Sigfridsson, Andreas, et al. “Improving temporal fidelity in k-t BLAST MRI reconstruction.” International Conference on Medical Image Computing and Computer-Assisted Intervention. Springer, Berlin, Heidelberg, 2007.
[3]Cauley, Stephen F., et al. “Interslice leakage artifact reduction technique for simultaneous multislice acquisitions.” Magnetic resonance in medicine 72.1 (2014): 93-102.