Note
Go to the end to download the full example code.
3D Cartesian gradient echo#
A 3D spoiled gradient-echo (SPGR) acquisition applies a low-flip-angle slab
excitation before one Cartesian (line, partition) readout per TR. Gradient
spoiling and quadratic RF/receiver phase cycling suppress coherent residual
transverse magnetisation. TR, flip angle, and TE determine the T1 and T2*
weighting. This sequence is used for high-resolution T1-weighted structural
imaging.
Fully sampled acquisition#
Every (line, partition) view inside the ellipse inscribed in the
phase-encode plane is acquired.
import pypulseqpp as pp
from pypulseqpp.sequences import gre3D_sequence
baseline = gre3D_sequence(n_x=160, n_y=160, n_z=32, te=None, tr=None, n_dummy=0)
print(f"{baseline.num_blocks} blocks, {baseline.duration()[0]:.2f} s")
print(f"TR {baseline.get_definition('TR')[0] * 1e3:.2f} ms")
15980 blocks, 26.77 s
TR 6.70 ms
Sequence diagram#

Sampling order#
Colour encodes acquisition order in the phase-encode plane. All lines of one partition are acquired before the next partition.
pp.plot.plot_kspace(baseline, color_by="order", plane="yz", show_trajectory=False)

Acceleration on both encoded axes#
ry and rz subsample the line and partition axes independently.
With ry=rz=2, the phase-encode plane outside the central calibration
region is acquired in approximately one quarter of the repetitions; the
calibration region remains fully sampled.
alternative = gre3D_sequence(
n_x=160, n_y=160, n_z=32, ry=2, rz=2, te=None, tr=None, n_dummy=0
)
blocks duration (s) acquisitions
full 15980 26.77 3995
2 x 2 5116 8.57 1279
pp.plot.plot_kspace(alternative, color_by="order", plane="yz", show_trajectory=False)

Total running time of the script: (0 minutes 23.377 seconds)