IhMtPreparation

Contents

IhMtPreparation#

class pypulseqpp.sequences.IhMtPreparation[source]#

Bases: OffResonanceSaturation

Simultaneous dual-offset saturation for ihMT measurements.

Each band receives 1/sqrt(2) of the matched single-offset amplitude. Compare against positive- and negative-offset MtPreparation acquisitions at matched deposited power.

Parameters:
  • system (Opts) – System limits.

  • flip_angle_deg (float, default=500.0) – Flip angle (degrees) of the single-offset arm this one is matched against. Each band gets 1 / sqrt(2) of it.

  • freq_offset_hz (float, default=1500.0) – Distance of each band from water (Hz), positive. Both signs are built.

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

  • time_bw_product (float, default=4.0) – Time-bandwidth product of each band.

  • n_pulses (int, default=1) – Pulses in the train.

  • spoiling_cycles (float, default=4.0) – Dephasing of the final spoiler, in cycles across voxel_size_m. Zero omits the spoiler, as required for a pulse used for its phase effect rather than for saturation.

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

  • labels (Sequence[str], default=None) – Counters emitted on the first pulse’s block.

Attributes:
  • rf_prep (RfEvent) – The dual-band pulse.

  • gx_spoil, gy_spoil, gz_spoil (GradEvent) – The closing spoiler, when there is one.

  • prep_labels (LabelEvent | list[LabelEvent]) – One per name in labels.

  • band_offsets_hz (NDArray[np.float64]) – Where the two bands actually landed (Hz), for a spectral check.

Raises:

ValueError – If freq_offset_hz is not positive or a duration is not positive. If n_pulses is below one, or a spoiling argument is out of range.

Examples

>>> import pypulseqpp.sequences as design
>>> import pypulseqpp as pp
>>> ihmt = design.IhMtPreparation(pp.Opts())
>>> ihmt.band_offsets_hz.tolist()
[-1500.0, 1500.0]

Both sidebands at once, with the same total RF power as one band played alone:

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

(svg)#

../_images/pypulseqpp-sequences-IhMtPreparation-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.