pygrappa.grog

Python implmentation of the GROG algorithm.

pygrappa.grog.grog(kx, ky, k, N, M, Gx, Gy, precision=2, radius=0.75, Dx=None, Dy=None, coil_axis=-1, ret_image=False, ret_dicts=False, use_primefac=False, remove_os=True, inverse=False)[source]

GRAPPA operator gridding.

Parameters:
  • ky (kx,) – k-space coordinates (kx, ky) of measured data k. kx, ky should each be a 1D array. Must both be either float or double.
  • k (array_like) – Measured k-space data at points (kx, ky).
  • M (N,) – Desired resolution of Cartesian grid.
  • Gy (Gx,) – Unit GRAPPA operators.
  • precision (int, optional) – Number of decimal places to round fractional matrix powers to.
  • radius (float, optional) – Radius of ball in k-space to from Cartesian targets from which to select source points.
  • Dy (Dx,) – Dictionaries of precomputed fractional matrix powers.
  • coil_axis (int, optional) – Axis holding coil data.
  • ret_image (bool, optional) – Return image space result instead of k-space.
  • ret_dicts (bool, optional) – Return dictionaries of fractional matrix powers.
  • use_primefac (bool, optional) – Use prime factorization to speed-up fractional matrix power precomputations.
  • remove_os (bool, optional) – Remove oversampling factor.
  • inverse (bool, optional) – Do the inverse gridding operation, i.e., Cartesian points to (kx, ky).
Returns:

  • res (array_like) – Cartesian gridded k-space (or image).
  • Dx, Dy (dict, optional) – Fractional matrix power dictionary for both Gx and Gy.

Raises:
  • AssertionError – When (kx, ky) have different types.
  • AssertionError – When (kx, ky) and k do not have matching types, i.e., if (kx, ky) are float32, k must be complex64.

Notes

Implements the GROG algorithm as described in [1].

References

[1]Seiberlich, Nicole, et al. “Self‐calibrating GRAPPA operator gridding for radial and spiral trajectories.” Magnetic Resonance in Medicine: An Official Journal of the International Society for Magnetic Resonance in Medicine 59.4 (2008): 930-935.