3D Cartesian multi-echo gradient echo

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_echoes echo 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 as ECO. 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, marked IMA; under wave-CAIPI it is first acquired wave-free and marked REF. 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>.seq when omitted.

  • system (pypulseqpp.Opts, default=None) – System limits, held under the application’s MAX_GRAD and MAX_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_z thick.

  • 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_z thick.

  • 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_z thick.

  • 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). None is as short as the readout admits.

  • tr (float | None, default=None) – Repetition time (s), one per excitation. None is 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_z grid; 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_z rectangle 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 marked IMA.

  • 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). None is 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:

pypulseqpp.Sequence

Raises:

ValueError – If excitation is unknown, a partial Fourier fraction is outside [0.75, 1], an undersampling factor is below one, caipi_shift is outside [0, rz), wave names 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#

3D Cartesian multi-echo gradient echo

3D Cartesian multi-echo gradient echo

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.