3D stack-of-stars MPRAGE#

Family:

MPRAGE

Dimensionality:

3D, slab-selective

Sampling:

Radial in-plane, Cartesian partitions

Readout:

One inversion per shot, followed by the radial spokes of one partition as a spoiled gradient-echo train

3D MPRAGE on a stack of stars: one inversion per partition, then its spokes.

Each shot applies one inversion and then acquires every sampled in- plane view of a single partition, so the partition encode is constant within a shot and the number of shots equals the number of sampled partitions. The inversion time is measured from the centre of the inversion pulse to the centre of the first excitation of the train, and the repetition time is the interval between successive inversions.

Prescription#

pypulseqpp.sequences.mprage_stack_of_stars3D_sequence()#

3D MPRAGE on a stack of stars: one inversion per partition, then its spokes.

Each shot is the inversion, a wait that puts the first spoke’s excitation centre at TI, one RadialStackReadout repetition per spoke of one partition, and a recovery that makes every inversion-to-inversion interval the TR. Partitions are played in order. The Nyquist set is ceil(pi / 2 * n) spokes spread evenly over half a turn, and every ry-th of them is played in a golden order (golden_order()), so a train binned in time still covers the half turn; one spoke waveform serves every repetition, turned by a rotation extension. Acquisitions carry the spoke as LIN, the partition as PAR and the place in the train as ECO; under partition undersampling the central n_acs_z partitions are acquired too, 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.256) – Isotropic in-plane field of view (m).

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

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

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

  • flip_angle_deg (float, default=9.0) – Readout excitation flip angle (degrees).

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

  • esp (float | None, default=None) – Spacing of successive spoke excitations (s). None is as short as the readout admits.

  • ti (float | None, default=0.9) – Inversion time (s), from the inversion pulse’s centre to the first spoke’s excitation. None is as short as the inversion module admits.

  • tr (float | None, default=2.3) – Inversion-to-inversion interval (s). None leaves one raster of recovery after the train.

  • 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=1) – Whole shots played without acquiring before the first.

  • 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='golden') – 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 when rz > 1.

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

  • navigator (bool, default=False) – Play three-plane spiral navigators in the recovery after each shot, as many as it holds up to NAVIGATOR_COUNT.

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, the spacing, the TI or the TR is shorter than the shot takes.

Examples

>>> from pypulseqpp import sequences
>>> seq = sequences.mprage_stack_of_stars3D_sequence(
...     n=32, n_z=4, ti=100e-3, tr=500e-3
... )
>>> seq.check_timing()[0]
True

Designed and drawn#

3D stack-of-stars MPRAGE

3D stack-of-stars MPRAGE

See also#

Other mprage sequences: mprage3D_sequence, mprage_stack_of_spirals3D_sequence.

The same sampling in another family: gre_stack_of_stars3D_sequence, se_stack_of_stars3D_sequence.

Every shipped sequence is listed in the catalogue.