pygrappa.ttgrappa

Python implementation of through-time GRAPPA.

pygrappa.ttgrappa.ttgrappa(kx, ky, kspace, cx, cy, calib, kernel_size=25, kernel_radius=None, max_kernel_size=25, coil_axis=-1, time_axis=-2, lamda=0.01)[source]

Through-time GRAPPA.

Parameters:
  • ky (kx,) – k-space coordinates of kspace data, kspace. kx and ky are 1D arrays.
  • kspace (array_like) – Complex kspace data corresponding to the measurements at locations kx, ky. kspace has two dimensions: data and coil. Unsampled points should be exactly 0.
  • cy (cx,) – k-space coordinates of calibration kspace data. cx and cy are 1D arrays.
  • calib (array_like) – Complex kspace data corresponding to the measurements at locations cx, cy. calib has three dimensions: data, time, and coil.
  • kernel_size (int, optional) – Number of points to use as sources for kernel training. This many nearest neighbors to the targets will be chosen.
  • kernel_radius (float, optional) – If not None, this radius will be used instead of kernel_size. All sources within this radius of the target will be chosen. Has units same as kx, ky.
  • max_kernel_size (int, optional) – Maximum number of points in ball when using kernel_radius. If more sources are found, then randomly choose max_kernel_size of them.
  • coil_axis (int, optional) – Dimension of kspace and calib holding coil data.
  • time_axis (int, optional) – Dimension of calib holding time data.
  • lamda (float, optional) – Tikhonov regularization for the kernel calibration.
Returns:

res – The reconstructed measurements with the same size as kspace.

Return type:

array_like

Notes

Implements the through-time GRAPPA algorithm for non-Cartesian reconstruction as described in [1].

This implementation uses a kd-tree for kernel selection similar to [2]. This simplifies searches for kernel geometries and helps make this implementation trajectory agnostic.

References

[1]Seiberlich, Nicole, et al. “Improved radial GRAPPA calibration for real‐time free‐breathing cardiac imaging.” Magnetic resonance in medicine 65.2 (2011): 492-505.
[2]Luo, Tianrui, et al. “A GRAPPA algorithm for arbitrary 2D/3D non‐Cartesian sampling trajectories with rapid calibration.” Magnetic resonance in medicine 82.3 (2019): 1101-1112.