SpiralProjectionReadout#
- class pypulseqpp.sequences.SpiralProjectionReadout[source]#
Bases:
NonCartesianReadoutSpiral arms turned over a sphere.
- Parameters:
system (Opts) – System limits.
rf (RfEvent) – The pulse that opens the repetition.
gz (GradEvent, default=None) – A selection gradient played in the same block as
rf.gz_reph (GradEvent, default=None) – The rephaser that unwinds
gz, played left-aligned in the first block after the pulse. Accepted only on an axis that the loop’s rotation leaves unchanged.fov (float) – Isotropic field of view (m).
matrix (int) – In-plane matrix size.
design_interleaves (int, default=16) – Nominal pitch, not the number of arms acquired.
direction ({'outward', 'inward', 'in_out'}, default='outward') – Centre-to-edge, edge-to-centre, or edge-to-centre-to-edge traversal.
density ({'constant', 'variable', 'dual'}, default='constant') – Constant pitch, a radial power-law transition, or a logistic transition.
inner_design_interleaves (float, default=None) – Local pitch at the centre and edge. Inner defaults to design_interleaves; outer defaults to twice inner for variable density and is required for dual.
outer_design_interleaves (float, default=None) – Local pitch at the centre and edge. Inner defaults to design_interleaves; outer defaults to twice inner for variable density and is required for dual.
variable_density_power (float, default=2.0) – Positive exponent of the normalised radius for variable density.
transition_radius (float, default=0.5) – Normalised transition radius (between 0 and 1) and positive logistic steepness for dual density.
transition_speed (float, default=12.0) – Normalised transition radius (between 0 and 1) and positive logistic steepness for dual density.
oversampling (float, default=1.0) – ADC oversampling factor, at least one.
readout_bandwidth_hz (float, default=250000.0) – Requested ADC sampling rate (Hz), not bandwidth per pixel.
n_points (int, default=1024) – Geometric path samples supplied to the solver, not ADC samples.
derate (bool, default=True) – Apply the package’s system derates before solving.
fov_z (float, default=None) – Partition field of view (m). Stacks only.
matrix_z (int, default=None) – Partition count. Stacks only.
te (float, default=None) – Echo time (s) from the RF isodelay to the path’s nearest k = 0 crossing.
Noneis as short as possible.tr (float, default=None) – Repetition time (s).
Noneis as short as possible.spoiling_cycles (float, default=0.0) – Dephasing left at the end of the TR, in cycles across
voxel_size_m. Zero leaves the path rewound.voxel_size_m (float, default=None) – Length the spoiling is counted over (m); the trajectory’s resolution by default.
spoiling_axis ({'z', 'x', 'y'}, default='z') – Axis the spoiler is played on.
n_echoes (int, default=1) – Path traversals per repetition, separated by
echo_spacing, each with its ownECOlabel and joined by rewinders and prewinders.explicit (bool, default=False) – Write out one interleaf per entry of
anglesinstead of one base interleaf.angles (ArrayLike, default=None) – In-plane rotations (rad). Required when
explicitand rejected otherwise.labels (Sequence[str], default=None) – Counters emitted on the acquisition block.
trigger (TriggerEvent, default=None) – A trigger or digital output armed on the block that opens the readout.
- Attributes:
rf (RfEvent) – The pulse the module was given.
gz (GradEvent) – Its selection gradient, if one was given.
gz_reph (GradEvent) – Its rephaser, if one was given, left-aligned in whichever block follows the pulse.
gx, gy (GradEvent) – The interleaf. Lists of one entry per angle when
explicit.gx_pre, gy_pre (GradEvent) – Prewinding gradients reaching the start of the path, when it is not k = 0.
gx_rew, gy_rew (GradEvent) – Rewinding gradients returning to k = 0, when the path does not end there.
gz_pre, gz_rew (TrapEvent) – Partition encode and its rewinder. Stacks only.
gz_spoil (GradEvent) – End-of-TR spoiler, when
spoiling_cyclesis nonzero.adc (AdcEvent) – The acquisition window.
adc_labels (LabelEvent | list[LabelEvent]) – One per name in
labels; a bare event when there is one.wait_te, wait_tr (DelayEvent) – Present only when a TE or TR longer than the minimum was asked for.
wait_pre, wait_rew (DelayEvent) – Pads setting the span of the prewinder and rewinder blocks, which can outlast their gradients. Absent when that block is not played.
trajectory (NonCartesianGradient) – The designed interleaf, for its
trajectoryarray and timings.echo_spacing (float) – Time between consecutive echoes (s), zero for a single-echo readout.
Examples
>>> import pypulseqpp.sequences as design >>> import pypulseqpp as pp >>> system = pp.Opts(max_grad=40, grad_unit="mT/m", ... max_slew=150, slew_unit="T/m/s") >>> hard = design.NonSelectiveExcitation(system, 10.0, 0.5e-3) >>> readout = design.SpiralProjectionReadout( ... system, hard.rf, fov=0.22, matrix=64, ... design_interleaves=8, n_points=256, ... ) >>> [gradient.channel for gradient in (readout.gx, readout.gy)] ['x', 'y']
One arm of a spherical spiral acquisition, before the loop turns it:
Methods
Block layout of one arm, as the module built it. |
|
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. |
Attributes