3D Cartesian multi-echo gradient echo#
- Family:
Gradient echo
- Dimensionality:
3D, slab-selective
- Sampling:
Cartesian
- Readout:
One (line, partition) view read at several echo times per repetition
RF-spoiled multi-echo 3D Cartesian gradient echo.
Prescription#
- pypulseqpp.sequences.gre_multiecho3D_sequence()#
RF-spoiled multi-echo 3D Cartesian gradient echo.
One line per repetition, read at
n_echoesecho times: monopolar, with a flyback rewinder after every echo but the last, or bipolar, with even echoes read backwards. Each acquisition carries its echo index asECO. Lines are phase-encoded along y and z over a CAIPIRINHA lattice that always holds the centre of k-space, optionally cropped to an ellipse. Under undersampling the fully sampled calibration region, a rectangle or an ellipse, leads, markedIMA; under wave-CAIPI it is first acquired wave-free and markedREF. Lines are played in order, each line’s partitions one after another.- 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_x (float, default=0.22) – Field of view along the readout, the phase encode and the partition encode (m). The slab excited is
fov_zthick.fov_y (float, default=0.22) – Field of view along the readout, the phase encode and the partition encode (m). The slab excited is
fov_zthick.fov_z (float, default=0.128) – Field of view along the readout, the phase encode and the partition encode (m). The slab excited is
fov_zthick.n_x (int, default=128) – Matrix size along the readout, the phase encode and the partition encode.
n_y (int, default=128) – Matrix size along the readout, the phase encode and the partition encode.
n_z (int, default=64) – Matrix size along the readout, the phase encode and the partition encode.
flip_angle_deg (float, default=12.0) – Excitation flip angle (degrees).
te (float | None, default=None) – First echo time (s).
Noneis as short as the readout admits.tr (float | None, default=None) – Repetition time (s), one per excitation.
Noneis as short as possible.n_echoes (int, default=4) – Echoes per excitation.
readout_bandwidth_hz (float, default=250000.0) – Requested receiver bandwidth (Hz).
ry (int, default=1) – Undersampling along the phase and the partition encode.
rz (int, default=1) – Undersampling along the phase and the partition encode.
caipi_shift (int, default=0) – CAIPIRINHA shift: partitions by which the lattice is displaced per acquired line, in
[0, rz).partial_fourier_x (float, default=1.0) – Fraction of the echo acquired, in
[0.75, 1]. A bipolar train needs a full echo.partial_fourier_y (float, default=1.0) – Fraction of the phase- and partition-encode extent acquired, in
[0.75, 1].partial_fourier_z (float, default=1.0) – Fraction of the phase- and partition-encode extent acquired, in
[0.75, 1].n_dummy (int, default=64) – Non-acquiring repetitions before the first view.
excitation ({'slab', 'nonselective', 'spsp'}, default='slab') – A slab-selective SLR pulse, a hard pulse, or a slab- and water-selective spectral-spatial pulse.
readout_oversampling (float, default=2.0) – Readout oversampling factor, at least one.
n_acs_y (int, default=24) – Extent of the fully sampled calibration region along the phase and the partition encode, acquired ahead of the rest when undersampled.
n_acs_z (int, default=16) – Extent of the fully sampled calibration region along the phase and the partition encode, acquired ahead of the rest when undersampled.
elliptical_sampling (bool, default=True) – Acquire only the views inside the ellipse inscribed in the
n_y x n_zgrid; off, the whole grid. The calibration region is acquired whole either way.elliptical_acs (bool, default=False) – Make the calibration region the ellipse inscribed in the
n_acs_y x n_acs_zrectangle rather than the rectangle.wave ({'phase', 'partition', 'both'}, default='both') – Wave-CAIPI channels: a sine on y, a cosine on z, or both. With wave-encoding gradients the calibration region is acquired again first without them, marked
REF, and no wave-encoded view is markedIMA.wave_cycles (int, default=8) – Wave periods across the sampling window; zero plays no wave.
wave_amplitude (float, default=0.0) – Requested peak wave-encoding gradient amplitude (T/m); zero, the default, plays no wave. The slew rate may lower it.
echo_spacing (float | None, default=None) – Echo spacing (s).
Noneis as short as the readout admits; a longer one adds a delay after every echo but the last, following the flyback rewinder of a monopolar train.flyback (bool, default=True) – Monopolar echo train, rewound after every echo but the last so every echo is read the same way; off, a bipolar train. A bipolar train has a shorter echo spacing and reads even echoes backwards.
- Returns:
The designed sequence.
- Return type:
- Raises:
ValueError – If
excitationis unknown, a partial Fourier fraction is outside[0.75, 1], an undersampling factor is below one,caipi_shiftis outside[0, rz),wavenames no wave mode, the TE, TR or echo spacing is shorter than the readout takes, or a bipolar train is given a partial echo or an odd sample count.
Examples
>>> from pypulseqpp import sequences >>> seq = sequences.gre_multiecho3D_sequence(n_x=32, n_y=16, n_z=4, n_echoes=3) >>> seq.check_timing()[0] True >>> len(seq.definitions["TE"]), seq.definitions["Name"] (3, 'gre_multiecho_3d')
Designed and drawn#
See also#
Other gradient echo sequences: gre2D_sequence, gre3D_sequence, gre_multiecho2D_sequence, gre_radial2D_sequence, gre_stack_of_stars3D_sequence, gre_spiral2D_sequence, gre_stack_of_spirals3D_sequence, gre_propeller2D_sequence, gre_stack_of_blades3D_sequence.
The same sampling in another family: se2D_sequence, se3D_sequence, fse3D_sequence, mprage3D_sequence, bssfp2D_sequence, bssfp3D_sequence, epi2D_sequence.
Every shipped sequence is listed in the catalogue.