2D PROPELLER spin echo with echo-planar blades

2D PROPELLER spin echo with echo-planar blades#

Family:

Spin echo

Dimensionality:

2D, multi-slice

Sampling:

PROPELLER blades, echo-planar within a blade

Readout:

One whole blade per excitation, read as an echo-planar train

Multi-slice 2D PROPELLER spin echo: one EPI blade per excitation.

Prescription#

pypulseqpp.sequences.se_epi_propeller2D_sequence()#

Multi-slice 2D PROPELLER spin echo: one EPI blade per excitation.

A slice-selective excitation and one refocusing pulse with crushers put the spin echo on the blade’s central line, so te runs from the excitation centre to that line with the refocusing pulse at its midpoint. The blade straddles the centre of k-space and is turned per shot by a rotation extension. Slices one TR cannot hold are dealt round-robin into passes, and each slice of a pass is played at tr / len(pass). Every acquisition carries its line within the blade as LIN, its slice as SLC and its blade as SEG.

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 (float, default=0.22) – Isotropic in-plane field of view (m).

  • n_x (int, default=128) – In-plane matrix size.

  • blade_width (int, default=16) – Phase-encode lines per blade.

  • n_blades (int or None, default=None) – Blades in the set. None is the smallest count that samples the rim of k-space at Nyquist.

  • angle_scheme ({'uniform', 'golden'}, default='uniform') – Spacing of the blade angles, spread over half a turn.

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

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

  • slice_gap (float, default=0.0) – Gap between adjacent slices (m).

  • slice_order ({'sequential','reverse','interleaved','center_out','outside_in','random'}, default='interleaved') – Order the slices of one pass are excited in, as make_traversal_order() visits them.

  • te (float or None, default=0.08) – Effective echo time, excitation centre to the blade’s central line (s). None is as short as possible.

  • tr (float or None, default=2.0) – Repetition time between successive excitations of one slice (s). None is as short as possible, and puts every slice in one pass.

  • readout_bandwidth_hz (float, default=250000.0) – Requested receiver bandwidth (Hz).

  • crusher_cycles (float, default=4.0) – Cycles of dephasing each crusher beside the refocusing pulse winds.

  • n_dummy (int, default=0) – Non-acquiring blades, at the first blade’s angle, before the first acquired blade of each pass.

  • n_gain_calibration_readouts (int or None, default=None) – Written as the NumGainCalibrationReadouts definition. None is one per slice.

Returns:

The designed sequence.

Return type:

pypulseqpp.Sequence

Raises:

ValueError – If the TE is shorter than the blade half or the excitation half admits, or the TR is shorter than one blade takes.

Examples

>>> from pypulseqpp import sequences
>>> seq = sequences.se_epi_propeller2D_sequence(
...     n_x=32, blade_width=8, n_blades=4, te=None, tr=None
... )
>>> seq.check_timing()[0]
True

Designed and drawn#

2D PROPELLER spin echo with echo-planar blades

2D PROPELLER spin echo with echo-planar blades

See also#

Other spin echo sequences: se2D_sequence, se3D_sequence, se_radial2D_sequence, se_stack_of_stars3D_sequence, se_spiral2D_sequence, se_stack_of_spirals3D_sequence, se_propeller2D_sequence, se_stack_of_blades3D_sequence.

Every shipped sequence is listed in the catalogue.