T1T2Preparation

Contents

T1T2Preparation#

class pypulseqpp.sequences.T1T2Preparation[source]#

Bases: T2Preparation

T2 preparation with storage on -z to initiate T1 recovery.

final_tip is fixed to 'down', and passing it raises ValueError. The acquisition loop supplies the recovery interval.

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

  • echo_time_s (float) – Preparation echo time (s), first pulse centre to last.

  • n_refocus (int, default=2) – Adiabatic refocusing pulses, spread evenly through the echo time. Must be even; see above.

  • half_passage_duration_s (float, default=0.004) – Duration of each half passage (s).

  • refocusing_duration_s (float, default=0.01024) – Duration of each refocusing pulse (s).

  • adiabaticity (int, default=8) – Sweep-rate margin over the adiabatic condition, for every pulse.

  • dwell_s (float, default=1e-05) – RF raster (s).

  • spoiling_cycles (float, default=4.0) – Cycles of dephasing the closing spoiler winds across voxel_size_m on each axis. Zero omits the spoiler block.

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

  • labels (sequence of str, default=None) – Counters set to 0 on the first pulse’s block.

Attributes:
  • rf_prep (RfEvent) – The half passage that tips down.

  • rf_ref (RfEvent) – The refocusing pulse; every repeat plays this one event.

  • rf_store (RfEvent) – The reverse half passage that stores what is left.

  • wait_first, wait_inner, wait_last (DelayEvent) – The gaps before the first refocusing pulse, between refocusing pulses, and before rf_store. Each is absent when its gap is zero, and wait_inner when there is one refocusing pulse.

  • gx_spoil, gy_spoil, gz_spoil (GradEvent) – The closing spoiler.

  • prep_labels (LabelSetEvent or list of LabelSetEvent) – One per name in labels.

  • echo_time (float) – The preparation echo time achieved on the block raster (s).

Raises:

ValueError – If final_tip is not 'up' or 'down', n_refocus is not a positive even number, a size is out of range, or the echo time is shorter than the pulses themselves.

Examples

>>> import pypulseqpp.sequences as design
>>> import pypulseqpp as pp
>>> prep = design.T1T2Preparation(pp.Opts(), 50e-3)
>>> prep.final_tip
'down'

The same module storing on -z, so the readout that follows samples an inversion recovery as well as a T2 decay:

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

(svg)#

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