3D echo-planar imaging#
- Family:
Echo-planar imaging
- Dimensionality:
3D, slab-selective
- Sampling:
Cartesian, skipped-CAIPI when undersampled
- Readout:
One blipped echo train per (shot, shell)
3D gradient-echo EPI: one train per (shot, shell), skipped-CAIPI sampled.
Prescription#
- pypulseqpp.sequences.epi3D_sequence()#
3D gradient-echo EPI: one train per
(shot, shell), skipped-CAIPI sampled.The views sampled form a CAIPIRINHA lattice holding the centre of k-space: line
yis read when(y - n_y // 2) % ry == 0, at the partitionszwith(z - n_z // 2 - d * j) % rz == 0,jbeing the line’s lattice index anddthe shiftcaipi_shift()picks. A shell isrzconsecutive partitions, and each of its lines holds one lattice partition. Shotsof a shell reads everyn_shots-th lattice line from thes-th, blipping to that line’s partition (skipped-CAIPI, Stirnberg and Stöcker, Magn Reson Med 2021, doi:10.1002/mrm.28486); one shot per shell is blipped-CAIPI. A volume is every shot of every shell, shots outer and shells centre-out inner.Every shot reads
NAVIGATOR_LINEScentre lines without blips (NAV) before its train, every line carriesREVfor its read polarity, and shots are delayed by successive fractions of the echo spacing so the echo time grows smoothly across the lines;teis the echo time of the centre line. Acquisitions carryLIN,PAR,SEG(the shot) andREP.Two prescans are linked ahead of the imaging (
prescans()): thecalibration, when undersampled, a Cartesian gradient echo over the centraln_acs_y x n_acs_zrectangle (REF); and thereference, one volume with the phase encode reversed (SET = 1), for distortion correction.- 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.22) – Field of view along the readout, the phase encode and the partition encode (m). The slab excited is
fov_zthick.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_zthick.fov_z (float, default=0.096) – Field of view along the readout, the phase encode and the partition encode (m). The slab excited is
fov_zthick.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=32) – Matrix size along the readout, the phase encode and the partition encode.
flip_angle_deg (float, default=20.0) – Excitation flip angle (degrees).
te (float | None, default=None) – Echo time of the centre line (s).
Noneis as short as the navigator and the train admit.tr (float | None, default=None) – Volume repetition time (s): every shot of every shell.
Noneis as short as possible.n_frames (int, default=1) – Volumes in the time series, each carrying its
REPcounter.readout_bandwidth_hz (float, default=500000.0) – Requested receiver bandwidth (Hz).
ry (int, default=1) – Undersampling along the phase and the partition encode;
rzis also the shell height.rz (int, default=1) – Undersampling along the phase and the partition encode;
rzis also the shell height.partial_fourier_y (float, default=1.0) – Fraction of the phase- and partition-encode extent read, in
[0.5, 1]. Truncates the lines and the shells before the centre.partial_fourier_z (float, default=1.0) – Fraction of the phase- and partition-encode extent read, in
[0.5, 1]. Truncates the lines and the shells before the centre.n_shots (int, default=1) – Interleaved shots each shell’s lines are split into.
n_dummy (int, default=2) – Non-acquiring volumes before a time series; with one frame, non-acquiring shots.
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=1.0) – Readout oversampling factor, at least one.
n_acs_y (int, default=24) – Extent of the gradient-echo calibration rectangle along the phase and the partition encode.
n_acs_z (int, default=16) – Extent of the gradient-echo calibration rectangle along the phase and the partition encode.
volume_output (bool, default=False) – Play a digital output on
OUTPUT_CHANNELat the first excitation of every volume, dummy volumes included.
- Returns:
The designed sequence.
- Return type:
- Raises:
ValueError – If
excitationis unknown, a partial Fourier fraction is outside[0.5, 1], a count is below one, the shots cannot share the lines or the partitions hold no shell, or the TE or TR is shorter than the shots take.
Examples
>>> from pypulseqpp import sequences >>> seq = sequences.epi3D_sequence(n_x=32, n_y=16, n_z=4, n_dummy=0) >>> seq.check_timing()[0] True >>> seq.definitions["Matrix"], seq.definitions["Name"] ([32.0, 16.0, 4.0], 'epi_3d')
Designed and drawn#
See also#
Other echo-planar imaging sequences: epi2D_sequence.
Every shipped sequence is listed in the catalogue.