3D stack-of-stars gradient echo

3D stack-of-stars gradient echo#

Family:

Gradient echo

Dimensionality:

3D, slab-selective

Sampling:

Radial in-plane, Cartesian partitions

Readout:

One spoke at one partition per repetition, RF-spoiled

RF-spoiled 3D stack of stars: radial spokes in-plane, Cartesian partitions along z.

Prescription#

pypulseqpp.sequences.gre_stack_of_stars3D_sequence()#

RF-spoiled 3D stack of stars: radial spokes in-plane, Cartesian partitions along z.

One spoke waveform serves every shot: its angle is a rotation extension and its partition an amplitude on the encode pair. The Nyquist set is ceil(pi / 2 * n) spokes spread evenly over half a turn; every ry-th of them is played, in order, each at every acquired partition before the next. Acquisitions carry the spoke as LIN and the partition as PAR.

Under partition undersampling the central n_acs_z partitions are acquired in full at every tilt, ahead of the rest, and marked IMA.

Parameters:
  • plot (bool, default=False) – Draw the finished sequence in SeqEyes.

  • test_report (bool, default=False) – Print a report on the finished sequence.

  • write_seq (bool, default=False) – Write the sequence to a .seq file.

  • seq_filename (str, default=None) – Where to write it; <NAME>.seq when omitted.

  • system (pypulseqpp.Opts, default=None) – System limits, held under the application’s MAX_GRAD and MAX_SLEW.

  • fov (float, default=0.22) – Isotropic in-plane field of view (m).

  • n (int, default=128) – In-plane matrix size; a spoke reads it edge to edge.

  • fov_z (float, default=0.128) – Field of view along the partitions (m). The slab excited is fov_z thick.

  • n_z (int, default=64) – Number of partitions.

  • flip_angle_deg (float, default=12.0) – Excitation flip angle (degrees).

  • te (float | None, default=None) – Echo time to the spoke’s centre crossing (s). None is as short as possible.

  • tr (float | None, default=None) – Repetition time (s), one per excitation. None is as short as possible.

  • readout_bandwidth_hz (float, default=250000.0) – Requested receiver bandwidth (Hz).

  • ry (int, default=1) – Angular undersampling: one spoke in every ry of the Nyquist set is played.

  • rz (int, default=1) – Partition undersampling: one partition in every rz is acquired, the centre one among them.

  • partial_fourier_z (float, default=1.0) – Fraction of the partition extent acquired, in [0.75, 1].

  • n_dummy (int, default=32) – Non-acquiring repetitions, at the first spoke’s angle and the centre partition, before the scan.

  • excitation ({'slab', 'nonselective', 'spsp'}, default='slab') – A slab-selective SLR pulse, a hard pulse, or a slab- and water-selective spectral-spatial pulse.

  • partition_angle_shift ({'none', 'golden', 'tiny_golden'}, default='none') – How far each partition turns the spokes past the previous one, as PARTITION_SHIFTS names the fractions of a half turn.

  • n_acs_z (int, default=16) – Fully sampled calibration partitions at the centre, acquired at every tilt ahead of the rest when rz > 1.

  • readout_oversampling (float, default=2.0) – Readout oversampling factor, at least one.

Returns:

The designed sequence.

Return type:

pypulseqpp.Sequence

Raises:

ValueError – If excitation or partition_angle_shift is unknown, an undersampling factor is below one, partial_fourier_z is outside [0.75, 1], or the TE or TR is shorter than the readout takes.

Examples

>>> from pypulseqpp import sequences
>>> seq = sequences.gre_stack_of_stars3D_sequence(n=32, n_z=4)
>>> seq.check_timing()[0]
True

Designed and drawn#

3D stack-of-stars gradient echo

3D stack-of-stars gradient echo

See also#

Other gradient echo sequences: gre2D_sequence, gre3D_sequence, gre_multiecho2D_sequence, gre_multiecho3D_sequence, gre_radial2D_sequence, gre_spiral2D_sequence, gre_stack_of_spirals3D_sequence, gre_propeller2D_sequence, gre_stack_of_blades3D_sequence.

The same sampling in another family: se_stack_of_stars3D_sequence, mprage_stack_of_stars3D_sequence.

Every shipped sequence is listed in the catalogue.