2D echo-planar imaging#
- Family:
Echo-planar imaging
- Dimensionality:
2D, multi-slice
- Sampling:
Cartesian
- Readout:
One blipped echo train per excitation
Multi-slice 2D gradient-echo EPI: single-shot or segmented, optionally multiband.
Prescription#
- pypulseqpp.sequences.epi2D_sequence()#
Multi-slice 2D gradient-echo EPI: single-shot or segmented, optionally multiband.
Every shot reads
NAVIGATOR_LINEScentre lines without blips (NAV) before its train, and every line carriesREVfor its read polarity. The trains are ramp-sampled with the blips on the read ramps. Segmented shots interleave on the phase-encode lattice, each delayed by a fraction of the echo spacing so the echo time grows smoothly across k-space;teis the echo time of the centre line.Slices (under
multiband, slice groups) are excited once per shot in packets, even ones first. With one frame, slices one TR cannot hold are dealt round-robin into packets; a time series must fit every slice in one. A multiband shot excitesmultibandslices at once and a blipped-CAIPI train encodes the band inPAR.Two prescans are linked ahead of the imaging (
prescans()): thecalibration, a single-band gradient echo per slice over the centraln_acs_ylines (REF), when undersampled or multiband; 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 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=70.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 slice.
Noneis as short as possible, and puts every slice in one packet.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) – Phase-encode undersampling: one line in every
ryis read, the centre line among them.partial_fourier_y (float, default=1.0) – Fraction of the phase-encode extent read, in
[0.5, 1]. Truncates the lines before the centre, which shortens the minimum TE.n_shots (int, default=1) – Interleaved shots each volume’s phase encode is split into.
multiband (int, default=1) – Slices excited at once. It must divide
n_slices.fat_saturation (bool, default=False) – Saturate fat before every shot.
n_dummy (int, default=2) – Non-acquiring volumes before a time series; with one frame, non-acquiring shots per slice before each packet.
readout_oversampling (float, default=1.0) – Readout oversampling factor, at least one.
n_acs_y (int, default=24) – Phase-encode lines of the gradient-echo calibration.
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
partial_fourier_yis outside[0.5, 1], a count is below one,multibanddoes not dividen_slices, the shots cannot share the lines, the TE is shorter than the train admits, or the TR cannot hold one slice, or every slice whenn_framesis above one.
Examples
>>> from pypulseqpp import sequences >>> seq = sequences.epi2D_sequence(n_x=32, n_y=16, n_dummy=0) >>> seq.check_timing()[0] True >>> seq.definitions["EPIFactor"], seq.definitions["Name"] ([16.0], 'epi_2d')
Designed and drawn#
See also#
Other echo-planar imaging sequences: epi3D_sequence.
The same sampling in another family: gre2D_sequence, gre3D_sequence, gre_multiecho2D_sequence, gre_multiecho3D_sequence, se2D_sequence, se3D_sequence, fse3D_sequence, mprage3D_sequence, bssfp2D_sequence, bssfp3D_sequence.
Every shipped sequence is listed in the catalogue.