MRITorchKbNufft#
- class mrinufft.operators.interfaces.torchkbnufft.MRITorchKbNufft(samples, shape, density=False, n_coils=1, n_batchs=1, smaps=None, eps=1e-06, squeeze_dims=True, use_gpu=False, osf=2, **kwargs)[source]#
Bases:
FourierOperatorBase
MRI Transform Operator using Torch NUFFT.
This class provides a Non-Uniform Fast Fourier Transform (NUFFT) operator for MRI data, utilizing the torchkbnufft library for performing the computations. It supports both CPU and GPU computations.
- Parameters:
samples (Tensor) – The sample locations of shape
Nsamples x N_dimensions
. It should be C-contiguous.shape (tuple) – Shape of the image space.
density (bool or Tensor, optional) –
Density compensation support. Default is False. - If a Tensor, it will be used for density. - If True, the density compensation will be automatically estimated
using the fixed point method.
If False, density compensation will not be used.
n_coils (int, optional) – Number of coils. Default is 1.
n_batchs (int, optional) – Number of batches. Default is 1.
smaps (Tensor, optional) – Sensitivity maps. Default is None.
eps (float, optional) – A small epsilon value for numerical stability. Default is 1e-6.
squeeze_dims (bool, optional) – If True, tries to remove singleton dimensions for batch and coils. Default is True.
use_gpu (bool, optional) – Whether to use the GPU. Default is False.
osf (int, optional) – Oversampling factor. Default is 2.
**kwargs (dict) – Additional keyword arguments.
Methods
__init__
Backward Operation.
check_shape
Validate the shapes of the image or k-space data against operator shapes.
compute_density
Compute the density compensation weights and set it.
compute_smaps
Compute the sensitivity maps and set it.
Compute the data consistency.
get_lipschitz_cst
Return the Lipschitz constant of the operator.
make_autograd
Make a new Operator with autodiff support.
Forward operation.
Compute the density compensation weights for a given set of kspace locations.
with_autograd
Return a Fourier operator with autograd capabilities.
with_off_resonance_correction
Return a new operator with Off Resonnance Correction.
Attributes
autograd_available
available
cpx_dtype
Return complex floating precision of the operator.
density
Density compensation of the operator.
dtype
Return floating precision of the operator.
interfaces
n_coils
Number of coils for the operator.
n_samples
Return the number of samples used by the operator.
ndim
Number of dimensions in image space of the operator.
norm_factor
Normalization factor of the operator.
samples
Return the samples used by the operator.
shape
Shape of the image space of the operator.
smaps
Sensitivity maps of the operator.
uses_density
Return True if the operator uses density compensation.
uses_sense
Return True if the operator uses sensitivity maps.
- op(data, out=None)[source]#
Forward operation.
- Parameters:
data (Tensor)
- Returns:
Tensor
- Return type:
Non-uniform Fourier transform of the input image.
- adj_op(coeffs, out=None)[source]#
Backward Operation.
- Parameters:
coeffs (Tensor)
- Return type:
Tensor
- data_consistency(data, obs_data)[source]#
Compute the data consistency.
- Parameters:
data (Tensor) – Image data
obs_data (Tensor) – Observed data
- Returns:
The data consistency error in image space.
- Return type:
Tensor
- classmethod pipe(kspace_loc, volume_shape, num_iterations=10, osf=2, normalize=True, use_gpu=False, **kwargs)[source]#
Compute the density compensation weights for a given set of kspace locations.
- Parameters:
kspace_loc (Tensor) – the kspace locations
volume_shape (tuple) – the volume shape
num_iterations (int default 10) – the number of iterations for density estimation
osf (float or int) – The oversampling factor the volume shape
normalize (bool) – Whether to normalize the density compensation. We normalize such that the energy of PSF = 1
use_gpu (bool, default False) – Whether to use the GPU