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:
RF pulse
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