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
teruns 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 attr / len(pass). Every acquisition carries its line within the blade asLIN, its slice asSLCand its blade asSEG.- 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 (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.
Noneis 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).
Noneis as short as possible.tr (float or None, default=2.0) – Repetition time between successive excitations of one slice (s).
Noneis 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
NumGainCalibrationReadoutsdefinition.Noneis one per slice.
- Returns:
The designed sequence.
- Return type:
- 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#
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.