Coil Sensitivity Maps#

class atommic.collections.common.parts.coil_sensitivity_maps.MaximumEigenvaluePowerMethod(forward_operator: Callable, norm_func: Optional[Callable] = None, max_iter: int = 30)[source]#

Bases: ABC

A class for solving the maximum eigenvalue problem using the Power Method.

The Power Method is an iterative algorithm that can be used to find the largest eigenvalue of a matrix. The algorithm is initialized with a random vector and iteratively updates the vector by multiplying it with the matrix and normalizing it. The algorithm converges to the eigenvector corresponding to the largest eigenvalue. The largest eigenvalue is then estimated by taking the dot product of the eigenvector with the matrix.

__init__(forward_operator: Callable, norm_func: Optional[Callable] = None, max_iter: int = 30)[source]#

Inits MaximumEigenvaluePowerMethod.

Parameters
  • forward_operator (Callable) – The forward operator for the problem.

  • norm_func (Callable, optional) – An optional function for normalizing the eigenvector. Default is None.

  • max_iter (int, optional) – Maximum number of iterations to run the algorithm. Default is 30.

done() bool[source]#

Check if the algorithm has converged.

fit(*args, **kwargs) None[source]#

Fit the algorithm.

Parameters
  • *args (tuple) – Tuple of arguments for _fit method.

  • **kwargs (dict) – Keyword arguments for _fit method.

update() None[source]#

Update the algorithm’s parameters and increment the iteration count.

class atommic.collections.common.parts.coil_sensitivity_maps.EspiritCalibration(*args: Any, **kwargs: Any)[source]#

Bases: ABC, Module

Estimates sensitivity maps estimated with the ESPIRIT calibration method as described in 1.

We adapted code for ESPIRIT method adapted from 2.

References

1

Uecker M, Lai P, Murphy MJ, Virtue P, Elad M, Pauly JM, Vasanawala SS, Lustig M. ESPIRiT–an eigenvalue approach to autocalibrating parallel MRI: where SENSE meets GRAPPA. Magn Reson Med. 2014 Mar;71(3):990-1001. doi: 10.1002/mrm.24751. PMID: 23649942; PMCID: PMC4142121.

2

mikgroup/sigpy

__init__(threshold: float = 0.05, kernel_size: int = 6, crop: float = 0.95, max_iter: int = 100, fft_centered: bool = False, fft_normalization: str = 'backward', spatial_dims: Sequence[int] = (-2, -1))[source]#

Inits EstimateSensitivityMap.

Parameters
  • threshold (float, optional) – Threshold for the calibration matrix. Default: 0.05.

  • kernel_size (int, optional) – Kernel size for the calibration matrix. Default: 6.

  • crop (float, optional) – Output eigenvalue cropping threshold. Default: 0.95.

  • max_iter (int, optional) – Power method iterations. Default: 30.

  • fft_centered (bool, optional) – Whether to center the FFT. Default is False.

  • fft_normalization (str, optional) – Normalization to apply to the FFT. Default is "backward".

  • spatial_dims (Sequence[int], optional) – Spatial dimensions of the input. Default is (-2, -1).

calculate_sensitivity_map(acs_mask: torch.Tensor, kspace: torch.Tensor) torch.Tensor[source]#

Calculates sensitivity map given as input the acs_mask and the k-space.

Parameters
Returns

sensitivity_map – Coil sensitivity maps.

Return type

torch.Tensor

forward(acs_mask: torch.Tensor, kspace: torch.Tensor) torch.Tensor[source]#

Forward pass of EspiritCalibration.

Parameters
Returns

sensitivity_map – Coil sensitivity maps.

Return type

torch.Tensor