NonSelectiveRefocusing

NonSelectiveRefocusing#

class pypulseqpp.sequences.NonSelectiveRefocusing[source]#

Bases: RfModule

Rectangular refocusing pulse between two identical crushers.

The default phase is pi/2 radians for CPMG with a zero-phase excitation. Set spoiling_cycles=0 to omit the crushers.

Parameters:
  • system (pypulseqpp.Opts) – System limits.

  • flip_angle_deg (float, default=180.0) – Nominal flip angle (degrees).

  • duration_s (float, default=0.001) – Pulse duration (s).

  • spoiling_cycles (float, default=4.0) – Cycles of dephasing each crusher winds across voxel_size_m. Zero omits the crushers, for an echo train that crushes elsewhere.

  • voxel_size_m (float, default=0.001) – Length the dephasing is counted over (m).

  • axis ({'z', 'x', 'y'}, default='z') – Crusher axis.

  • 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, so this is not cosmetic.

Attributes:
  • rf_ref (RfEvent) – The refocusing pulse.

  • gz_spoil (GradEvent) – The crusher, published once because both sides play the same event.

Raises:

ValueError – If spoiling_cycles is negative, voxel_size_m is not positive, or axis is not a gradient channel.

Examples

>>> import pypulseqpp.sequences as design
>>> import pypulseqpp as pp
>>> refocusing = design.NonSelectiveRefocusing(pp.Opts())
>>> len(refocusing.blocks), refocusing.blocks[0] == refocusing.blocks[2]
(3, True)
>>> len(design.NonSelectiveRefocusing(pp.Opts(), spoiling_cycles=0.0).blocks)
1

The pulse and both crushers, integrated as one window:

../_images/pypulseqpp-sequences-NonSelectiveRefocusing-1_00.svg

(svg)#

../_images/pypulseqpp-sequences-NonSelectiveRefocusing-1_01.svg

(svg)#

Methods

init_module

Build the module's block layout; implemented by the subclass.

publish

Publish events from the caller's locals and register keyword aliases.

register

Publish named events without requiring prior block registration.

sim_rf

Simulate this module's pulse across off-resonance.

Attributes

blocks

Return block tuples in play order, retaining the original event objects.

duration

Duration of the module in seconds.

seq

Sequence holding the module's construction-time block layout.