2D Cartesian multi-echo gradient echo

2D Cartesian multi-echo gradient echo#

Family:

Gradient echo

Dimensionality:

2D, multi-slice

Sampling:

Cartesian

Readout:

One phase-encode line read at several echo times per repetition

RF-spoiled, multi-slice multi-echo 2D Cartesian gradient echo.

Prescription#

pypulseqpp.sequences.gre_multiecho2D_sequence()#

RF-spoiled, multi-slice multi-echo 2D 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. Slices one TR cannot hold are dealt round-robin into packets, played one after another; within a packet the even slices are excited before the odd ones. Every packet starts with its own dummy repetitions, and the last slice of a packet waits out the rest of the TR. Under undersampling the calibration lines are acquired first, 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_x (float, default=0.22) – Field of view along the readout and the phase encode (m).

  • fov_y (float, default=0.22) – Field of view along the readout and the phase encode (m).

  • n_x (int, default=128) – Readout matrix size.

  • n_y (int, default=128) – Phase-encode matrix size.

  • n_slices (int, default=1) – Number of slices.

  • slice_thickness (float, default=0.005) – Slice thickness (m).

  • slice_spacing (float, default=0.0) – Gap between adjacent slices (m); zero is contiguous.

  • 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=0.25) – Repetition time between successive excitations of one slice (s). None is as short as possible, and puts every slice in one packet.

  • n_echoes (int, default=4) – Echoes per excitation.

  • readout_bandwidth_hz (float, default=250000.0) – Requested receiver bandwidth (Hz). What was achieved is the readout module’s bandwidth_hz.

  • ry (int, default=1) – Phase-encode undersampling: one line in every ry is acquired, the centre line among them.

  • partial_fourier_x (float, default=1.0) – Fraction of the echo acquired, in [0.75, 1]. Truncates the samples before the echo, which shortens the minimum TE. A bipolar train needs a full echo.

  • partial_fourier_y (float, default=1.0) – Fraction of the phase-encode extent acquired, in [0.75, 1]. Truncates the lines before the centre.

  • n_dummy (int, default=16) – Non-acquiring repetitions before the first line of each packet.

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

  • n_acs_y (int, default=24) – Fully sampled calibration lines at the centre of k-space, acquired ahead of the rest when ry > 1.

  • 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 a partial Fourier fraction is outside [0.75, 1], ry is below one, the echo spacing is shorter than the readout admits, a bipolar train is given a partial echo or an odd sample count, or the TR cannot hold one slice.

Examples

>>> from pypulseqpp import sequences
>>> seq = sequences.gre_multiecho2D_sequence(
...     n_x=32, n_y=16, n_echoes=3, tr=None
... )
>>> seq.check_timing()[0]
True
>>> len(seq.definitions["TE"]), seq.definitions["Name"]
(3, 'gre_multiecho_2d')

Designed and drawn#

2D Cartesian multi-echo gradient echo

2D Cartesian multi-echo gradient echo

See also#

Other gradient echo sequences: gre2D_sequence, gre3D_sequence, gre_multiecho3D_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.