3D fast spin echo#
- Family:
Fast spin echo
- Dimensionality:
3D, slab-selective
- Sampling:
Cartesian
- Readout:
One CPMG train per excitation, one (line, partition) view per echo
3D Cartesian fast spin echo: one CPMG train per excitation over a (ky, kz) grid.
Prescription#
- pypulseqpp.sequences.fse3D_sequence()#
3D Cartesian fast spin echo: one CPMG train per excitation over a (ky, kz) grid.
Only views inside the inscribed ky-kz ellipse are sampled.
radialdeals them by adaptive radial reordering (deal_trains()), so the centre of k-space is acquired at the TE echo;shufflingselects a variable-density Poisson-disc support and assigns it to random echo positions withmake_shuffling_order()(T2 Shuffling, Tamir et al., Magn Reson Med 2017;77:180-195), for an echo-resolved reconstruction. Every acquisition carries its line, partition and echo asLIN,PARandECO, and calibration views are markedIMA; under wave-CAIPI the calibration region is first acquired wave-free in trains of its own, markedREF.The refocusing angle is constant, or, under
optimized, the angle at the TE echo of a traindesign_trains()shapes around it. Giving the periphery of k-space its own TR or train length individually parameterizes the trains (Buonincontri et al., ISMRM 2025, abstract 566-05-007): every shot moves from the centre values to the periphery ones alongshot_parameters(), and the view order is radial. Every shot plays the longest train; past its own length a shot’s refocusing pulses have zero amplitude and nothing is acquired, and its closing delay makes its TR, so the scan stays one repeating train.- 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.16) – Field of view along the readout, the phase encode and the partition encode (m). A slab excited is
fov_zthick.fov_y (float, default=0.16) – Field of view along the readout, the phase encode and the partition encode (m). A slab excited is
fov_zthick.fov_z (float, default=0.16) – Field of view along the readout, the phase encode and the partition encode (m). A slab excited is
fov_zthick.n_x (int, default=320) – Matrix size along the readout, the phase encode and the partition encode.
n_y (int, default=240) – Matrix size along the readout, the phase encode and the partition encode.
n_z (int, default=240) – Matrix size along the readout, the phase encode and the partition encode.
te (float | None, default=0.028) – Effective echo time (s): the echo the centre of k-space is read at, rounded onto the echo grid.
Noneis the first echo. Meaningless undershuffling.tr (float, default=1.8) – Repetition time (s), one per train; at the centre of k-space when the trains are individually parameterized.
etl (int, default=45) – Echo train length; at the centre of k-space when the trains are individually parameterized.
refocusing_angle_deg (float, default=180.0) – Refocusing flip angle (degrees): of every pulse under
constant, at the TE echo underoptimized.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). Unused byshuffling.partial_fourier_x (float, default=1.0) – Fraction of the echo acquired, in
[0.75, 1].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=0) – Trains played without acquiring before the first.
excitation ({'slab', 'nonselective'}, default='slab') – Slab-selective excitation and refocusing, or hard pulses with readout-axis crushers, which shorten the echo spacing.
readout_oversampling (float, default=2.0) – Readout oversampling factor, at least one.
esp (float | None, default=None) – Echo spacing (s).
Noneis as short as the train admits.n_acs_y (int, default=24) – Extent of the fully sampled calibration region along the phase and the partition encode, when undersampled.
n_acs_z (int, default=16) – Extent of the fully sampled calibration region along the phase and the partition encode, when undersampled.
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.ordering ({'radial', 'shuffling'}, default='radial') –
'radial': adaptive radial reordering of CAIPIRINHA lattice support.'shuffling': variable-density Poisson-disc support in randomly shuffled echo order (T2 Shuffling).flip_modulation ({'constant', 'optimized'}, default='constant') – Constant refocusing angles, or trains designed with torchsim, which the
designextra installs.tr_periphery (float | None, default=None) – Repetition time (s) at the periphery of k-space.
Noneistr.etl_periphery (int | None, default=None) – Echo train length at the periphery of k-space.
Noneisetl.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.
navigator (bool, default=False) – Play three-plane spiral navigators after each train, as many as the shortest TR holds up to
NAVIGATOR_COUNT.
- Returns:
The designed sequence.
- Return type:
- Raises:
ValueError – If
excitation,orderingorflip_modulationis unknown, a partial Fourier fraction is outside[0.75, 1], a count is below one,caipi_shiftis outside[0, rz),wavenames no wave mode, individually parameterized trains are shuffled, a train ends before the TE echo, or a TR is shorter than the longest train.ImportError – If
optimizedis asked for without torchsim.
Examples
>>> from pypulseqpp import sequences >>> seq = sequences.fse3D_sequence( ... n_x=32, n_y=16, n_z=8, etl=8, te=20e-3, tr=300e-3 ... ) >>> seq.check_timing()[0] True
See also#
The same sampling in another family: gre2D_sequence, gre3D_sequence, gre_multiecho2D_sequence, gre_multiecho3D_sequence, se2D_sequence, se3D_sequence, mprage3D_sequence, bssfp2D_sequence, bssfp3D_sequence, epi2D_sequence.
Every shipped sequence is listed in the catalogue.