3D zero echo time#
- Family:
Zero echo time
- Dimensionality:
3D, non-selective
- Sampling:
Radial half-spokes on a sphere
- Readout:
A hard pulse transmitted with the readout gradient already at amplitude, one half-spoke per view
3D zero echo time: hard pulses on a readout gradient held on across each shell.
Prescription#
- pypulseqpp.sequences.zte3D_sequence()#
3D zero echo time: hard pulses on a readout gradient held on across each shell.
One shell of views, written out as one continuous waveform that ramps up once at its first view and down once after its last, is replayed per shot turned about z by a rotation extension. The Nyquist set is
ceil(pi * n ** 2)spokes over the sphere, dealt inton_shotsshells; everyr-th shell is played, in order, which is angular undersampling. The dead-time gap after each pulse leavesMissingSamplesat the centre of k-space unacquired. Dummy shells precede the first shot, played as it is without the ADC. Acquisitions carry the view asLINand the shot 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 field of view (m).
n (int, default=128) – Isotropic matrix size; a spoke reads it from the centre out.
flip_angle_deg (float, default=3.0) – Excitation flip angle (degrees); small, because the pulse plays on the readout gradient.
tr (float | None, default=None) – Pulse centre to pulse centre (s), one per view.
Noneis as short as the widest turn between views allows; a longer one is spent slewing more gently rather than waiting.readout_bandwidth_hz (float, default=250000.0) – Requested receiver bandwidth (Hz). It sets the gradient amplitude too, the spoke being traversed at one sample per
delta_k.r (int, default=1) – Angular undersampling: one shell in every
rof the set is played.n_shots (int | None, default=None) – Shells the sphere is dealt into, each the same one turned about
z.Nonebalances the spacing within a shell against the spacing between them.scheme ({'spiral', 'meridian'}, default='spiral') – Shape of the shell, as
SCHEMESnames them.n_dummy (int, default=2) – Whole shells played without acquiring before the first shot.
readout_oversampling (float, default=2.0) – Radial oversampling: a finer
delta_kalong the same spoke.n_gain_calibration_readouts (int, default=1) – Written as the
NumGainCalibrationReadoutsdefinition, for the reconstruction to scale the gap at the centre against.
- Returns:
The designed sequence.
- Return type:
- Raises:
ValueError – If
schemeis unknown,ris below one, or the hard pulse is longer than the dead-time gap can hold.
Examples
>>> from pypulseqpp import sequences >>> seq = sequences.zte3D_sequence(n=32, n_shots=2, n_dummy=0) >>> seq.check_timing()[0] True
Designed and drawn#
See also#
Every shipped sequence is listed in the catalogue.