3D stack-of-spirals MPRAGE#
- Family:
MPRAGE
- Dimensionality:
3D, slab-selective
- Sampling:
Spiral in-plane, Cartesian partitions
- Readout:
One inversion per shot, followed by the spiral interleaves of one partition as a spoiled gradient-echo train
3D MPRAGE on a stack of spirals: one inversion per partition, then its interleaves.
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_spirals3D_sequence()#
3D MPRAGE on a stack of spirals: one inversion per partition, then its interleaves.
Each shot is the inversion, a wait that puts the first interleaf’s excitation centre at TI, one
SpiralStackReadoutrepetition per interleaf of one partition, and a recovery that makes every inversion-to-inversion interval the TR. Partitions are played in order.n_shotsinterleaves, spread evenly over a full turn, sample the centre of each plane at Nyquist, and everyry-th of them is played in a golden order (golden_order()), so a train binned in time still covers the full turn; one solved interleaf serves every repetition, turned by a rotation extension. Acquisitions carry the interleaf asLIN, the partition asPARand the place in the train asECO; under partition undersampling the centraln_acs_zpartitions are acquired too, markedIMA.- 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>.seqwhen omitted.system (pypulseqpp.Opts, default=None) – System limits, held under the application’s
MAX_GRADandMAX_SLEW.fov (float, default=0.256) – Isotropic in-plane field of view (m).
n (int, default=256) – In-plane matrix size.
fov_z (float, default=0.176) – Field of view along the partitions (m). The slab excited is
fov_zthick.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 start of the outward path (s).
Noneis as short as possible.esp (float | None, default=None) – Spacing of successive interleaf excitations (s).
Noneis as short as the readout admits.ti (float | None, default=0.9) – Inversion time (s), from the inversion pulse’s centre to the first interleaf’s excitation.
Noneis as short as the inversion module admits.tr (float | None, default=2.3) – Inversion-to-inversion interval (s).
Noneleaves 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 interleaf in every
ryof then_shotsis played.rz (int, default=1) – Partition undersampling: one partition in every
rzis 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 interleaves past the previous one, as
PARTITION_SHIFTSnames the fractions of a full turn.n_acs_z (int, default=16) – Fully sampled calibration partitions at the centre, acquired when
rz > 1.n_shots (int, default=16) – Interleaves that sample the centre of each plane at Nyquist.
density ({'constant', 'variable', 'dual'}, default='constant') – Constant pitch, a radial power-law transition to the periphery, or a logistic one.
periphery_undersampling (float, default=2.0) – How much sparser the periphery is sampled than the centre, at least one. Unused at constant density.
transition_speed (float, default=12.0) – Steepness of the dual-density transition.
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:
- Raises:
ValueError – If
excitation,partition_angle_shiftordensityis unknown, an undersampling factor orperiphery_undersamplingis below one,partial_fourier_zis 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_spirals3D_sequence( ... n=32, n_z=4, n_shots=4, ti=100e-3, tr=300e-3 ... ) >>> seq.check_timing()[0] True
Designed and drawn#
See also#
Other mprage sequences: mprage3D_sequence, mprage_stack_of_stars3D_sequence.
The same sampling in another family: gre_stack_of_spirals3D_sequence, se_stack_of_spirals3D_sequence.
Every shipped sequence is listed in the catalogue.