make_excitation

make_excitation#

pypulseqpp.sequences.make_excitation()[source]#

Build the excitation kind names, from one prescription of a slab.

A volumetric sequence is prescribed with a slab and then excites it one of three ways, and which one it is does not change anything else about the sequence. This is that choice.

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

  • kind ({'nonselective', 'slab', 'spsp'}) – A hard pulse, a slab-selective SLR pulse, or a slab- and water-selective spectral-spatial pulse, as EXCITATIONS names them.

  • flip_angle_deg (float) – Flip angle (degrees).

  • thickness_m (float) – Slab thickness (m). A hard pulse excites everything and ignores it.

  • duration_s (float, default=0.003) – Duration of the selective pulse (s).

  • time_bw_product (float, default=4.0) – Time-bandwidth product of the SLR design.

  • hard_duration_s (float, default=0.0005) – Duration of the hard pulse (s), rounded up to an even number of block rasters so that its centre lands on the raster, which a spin echo needs in order to place its refocusing pulse midway.

  • fat_shift_ppm (float, default=-3.4) – Methylene shift from water (ppm), converted against system.gamma and system.B0 into the spectral band the 'spsp' pulse rejects.

Returns:

The excitation module, which publishes its pulse as rf and, when it selects, a gz and a gz_reph beside it.

Return type:

RfModule

Raises:

ValueError – If kind is not one of EXCITATIONS.

Examples

>>> import pypulseqpp as pp
>>> system = pp.Opts(max_grad=40.0, grad_unit="mT/m")
>>> slab = pp.sequences.make_excitation(system, "slab", 12.0, 0.128)
>>> slab.gz is not None
True
>>> pp.sequences.make_excitation(system, "nonselective", 12.0, 0.128).rf.use
'excitation'