pulseq_gre#

mrinufft.io.pulseq.pulseq_gre(trajectory: ndarray[tuple[int, ...], dtype[_ScalarType_co]] | tuple[ndarray[tuple[int, ...], dtype[_ScalarType_co]], ndarray[tuple[int, ...], dtype[_ScalarType_co]], ndarray[tuple[int, ...], dtype[_ScalarType_co]]], TR: float, TE: float, TE_pos: float = 0.5, FA: float | None = None, rf_pulse: SimpleNamespace | None = None, rf_spoiling_inc: float = 0.0, grad_spoil_factor: float = 2.0, acq: Acquisition | None = None, connect_method: str = 'auto')[source]#

Create a Pulseq 3D-GRE sequence for arbitrary trajectories.

Parameters:
  • trajectory (np.ndarray) – The k-space trajectory as a numpy array of shape (n_shots, n_samples, 3), where the last dimension corresponds to the x, y, and z coordinates in k-space.

  • TR (float) – The repetition time in milliseconds (ms).

  • TE (float) – The echo time in milliseconds (ms).

  • FA (float, optional, incompatible with rf_pulse) – The flip angle in degrees (°).

  • TE_pos (float, optional) – The relative (0-1) position of the echo time within each kspace_shot.

  • rf_pulse (SimpleNamespace, optional, incompatible with FA) – A custom radio-frequency pulse object. If not provided, a block pulse with the specified flip angle and a duration of 4 ms will be created. see pypulseq.make_block_pulse or pypulseq.make_arbitrary_rf for more details.

  • rf_spoiling_inc (float, optional) – The increment in the RF phase (in degree) for spoiling. Default is 0.0, which means no spoiling.

  • gre_2D (bool, optional) – If True, the sequence will be a 2D GRE sequence. Default is False, which means a 3D GRE sequence.

  • slice_overlap (float, optional) – The slice overlap proportion for 2D GRE sequences. Default is 0.0 Positive values indicates an overlap, negative values indicates a gap.

  • grad_spoil_factor (float, optional) – How much the spoiler gradient moves to the edge of k-space. Default is 2.0.

  • osf (int, optional) – The oversampling factor for the ADC. Default is 1, which means no oversampling.

  • system (pypulseq.Opts, optional) – The system options for the Pulseq sequence. Default is pp.Opts.default.

Notes

The Sequence cycle can be summarized as follows:

  1. RF pulse

  2. Delay to sync TE

3. Gradients plays: The gradients consist in a prewind to the first point of the trajectory, the trajectory itself, and a rewind to the edge of k-space. 3bis. The ADC is opened on the trajectory points (ignoring the prewind and rewinds parts) 4. Gradient spoilers 5. Delay to sync the next TR

If gre_2D is True, the sequence will be a 2D GRE sequence, and the slice thickness will be determined as \((FOV[2] / img_size[2]) * (1+slice_overlap)\)

Returns:

A Pulseq sequence object with the specified arbitrary gradient waveform.

Return type:

pp.Sequence

Example using pulseq_gre:#

Create a GRE Sequence using Pulseq

Create a GRE Sequence using Pulseq