SpatialSelectiveRefocusing#
- class pypulseqpp.sequences.SpatialSelectiveRefocusing[source]#
Bases:
RfModuleSLR refocusing with matched crushers joined to the selection plateau.
Uses the spin-echo SLR profile. The default RF phase is pi/2 radians for a zero-phase excitation (CPMG). The selection plateau is centred on the centre the pulse records, its magnitude peak, and extends past the pulse until that centre lies on the block raster.
- Parameters:
system (pypulseqpp.Opts) – System limits.
thickness_m (float) – Slice thickness (m).
flip_angle_deg (float, default=180.0) – Nominal flip angle (degrees).
duration_s (float, default=0.003) – Pulse duration (s).
spoiling_cycles (float, default=4.0) – Cycles of dephasing each crusher winds across
voxel_size_m. Zero leaves the bare selection lobe.voxel_size_m (float, default=0.001) – Length the dephasing is counted over (m).
time_bw_product (float, default=4.0) – Time-bandwidth product.
axis ({'z', 'x', 'y'}, default='z') – Selection axis; the crushers share it.
phase_offset_rad (float, default=np.pi / 2) – RF phase. The CPMG quarter turn by default.
use (str, default='refocusing') – What the pulse is for; the trajectory core negates accumulated k at a refocusing pulse.
passband_ripple (float, default=0.01) – Ripple allowed in each band of the slice profile.
stopband_ripple (float, default=0.01) – Ripple allowed in each band of the slice profile.
- Attributes:
rf_ref (RfEvent) – The refocusing pulse, delayed onto the plateau between the crushers so that its recorded centre is the plateau’s midpoint.
gz (GradEvent) – Crusher, selection plateau and crusher, as one gradient.
selection_amplitude (float) – Plateau amplitude of the selection lobe (Hz/m), which a slice offset is converted against;
gz.amplitudeis the crushers’ peak.
- Raises:
ValueError – If a thickness, duration or voxel size is not positive,
axisis not a gradient channel, orspoiling_cyclesis negative.
Examples
>>> import pypulseqpp.sequences as design >>> import pypulseqpp as pp >>> refocusing = design.SpatialSelectiveRefocusing(pp.Opts(), 5e-3) >>> len(refocusing.blocks), refocusing.gz.type (1, 'grad')
The envelope and the refocusing efficiency across the slice, which is the response an
"se"design is solved against:
Methods
Build the module's block layout; implemented by the subclass. |
|
Publish events from the caller's locals and register keyword aliases. |
|
Publish named events without requiring prior block registration. |
|
Simulate this module's pulse across off-resonance. |
Attributes