deepmr.radial#
- deepmr.radial(shape, nviews=None, **kwargs)[source]#
Design a radial trajectory.
The radial spokes are rotated by a pseudo golden angle with period 377 interelaves. Rotations are performed both along
view
andcontrast
dimensions. Acquisition is assumed to traverse thecontrast
dimension first and then theview
, i.e., all the contrasts are acquired before moving to the second view. If multiple echoes are specified, final contrast dimensions will have lengthncontrasts * nechoes
. Echoes are assumed to be acquired sequentially with the same radial spoke.- Parameters:
- Keyword Arguments:
variant (str) –
Type of radial trajectory. Allowed values are:
fullspoke
: starts at the edge of k-space and ends on the opposite side (default).center-out
: starts at the center of k-space and ends at the edge.
- Returns:
head – Acquisition header corresponding to the generated sampling pattern.
- Return type:
Header
Example
>>> import deepmr
We can create a Nyquist-sampled radial trajectory for an in-plane matrix of
(128, 128)
pixels by:>>> head = deepmr.radial(128)
An undersampled trajectory can be generated by specifying the
nviews
argument:>>> head = deepmr.radial(128, nviews=64)
Multiple contrasts with different sampling (e.g., for MR Fingerprinting) can be achieved by providing a tuple of ints as the
shape
argument:>>> head = deepmr.radial((128, 420)) >>> head.traj.shape torch.Size([420, 1, 128, 2])
corresponding to 420 different contrasts, each sampled with a different single radial spoke of 128 points. Similarly, multiple echoes (with fixed sampling) can be specified as:
>>> head = deepmr.radial((128, 1, 8)) >>> head.traj.shape torch.Size([8, 402, 128, 2])
corresponding to a 8-echoes fully sampled k-spaces, e.g., for QSM and T2* mapping.
Notes
The returned
head
(deepmr.Header()
) is a structure with the following fields:- shape (torch.Tensor):
This is the expected image size of shape
(nz, ny, nx)
.
- t (torch.Tensor):
This is the readout sampling time
(0, t_read)
inms
. with shape(nsamples,)
.
- traj (torch.Tensor):
This is the k-space trajectory normalized as
(-0.5 * shape, 0.5 * shape)
with shape(ncontrasts, nviews, nsamples, 2)
.
- dcf (torch.Tensor):
This is the k-space sampling density compensation factor with shape
(ncontrasts, nviews, nsamples)
.
- TE (torch.Tensor):
This is the Echo Times array. Assumes a k-space raster time of
1 us
and minimal echo spacing.