Gradient, PNS and SAR checks

Gradient, PNS and SAR checks#

Checks of a complete sequence against the gradient hardware limits, the forbidden gradient bands of a gradient coil, a peripheral-nerve-stimulation model and a VOP SAR model. They are estimates, not a complete scanner or patient-safety assessment. Gradient, PNS and SAR constraints covers what each one computes and the criterion it applies.

Gradient limits#

Gradient-derived: the checks evaluate the three physical gradient axes after each block’s rotation, against the limits of system or of the sequence’s own pypulseqpp.Opts. Only the largest per-axis peak is compared with the limit; the simultaneous vector magnitude is reported but not compared.

Object

Input

Returns

Purpose

check_max_grad

Sequence, system limits (max_grad)

(is_ok, report); peaks in Hz/m

Peak gradient amplitude.

check_max_slew

Sequence, system limits (max_slew, gradient raster)

(is_ok, report); peaks in Hz/m/s

Within-block slew rate.

check_grad_continuity

Sequence, system limits (max_slew, gradient raster)

(is_ok, report); steps in Hz/m and Hz/m/s

Amplitude continuity across block boundaries and at the end.

Mechanical resonance#

Gradient-derived: the check evaluates the physical gradient axes after the block rotations and the rotation argument, sampled on the sequence’s gradient raster. The forbidden bands are an argument; only gamma is read from system.

Object

Input

Returns

Purpose

check_mech_resonance

Sequence, forbidden bands, window width (s), rotation

(is_ok, report); amplitudes in mT/m

Windowed gradient spectrum against forbidden bands.

mech_resonance_spectrum

Sequence, window index, window width (s), rotation

frequency (Hz) and (3, bins) amplitude (mT/m)

Gradient amplitude spectrum of one window.

read_forbidden_bands

Siemens .asc or GE epiesp.dat path

List of ForbiddenBand

Forbidden bands from a vendor table.

ForbiddenBand

Axis, f_min, f_max (Hz), tolerance (mT/m)

Band record

Forbidden band on one or every physical axis.

Nerve stimulation#

Gradient-derived: the check evaluates the slew of each physical gradient axis after the block rotations and the rotation argument, sampled on the sequence’s gradient raster. The nerve model is an argument; only gamma is read from system.

Object

Input

Returns

Purpose

check_pns

Sequence, SAFE or chronaxie model, rotation, trace

(is_ok, report); responses as fractions of threshold

Peripheral nerve stimulation estimate.

read_safe_model

Siemens .asc path

SAFE model, per-axis coefficients

SAFE model from a hardware description.

ChronaxieModel

Chronaxie (s), rheobase (T/m/s), alpha

Model for check_pns

Rheobase–chronaxie nerve model, all axes alike.

SAR#

RF-derived: the check evaluates the RF waveforms and RF shims, and reads no gradient, rotation or system. It takes the VOPs as a VopModel, the channel drive calibration drive_per_hz, and local_limit and global_limit in W/kg.

Object

Input

Returns

Purpose

check_sar

Sequence, VopModel, drive_per_hz, limits (W/kg)

(is_ok, report); window-averaged SAR in W/kg

Local and global SAR per window.

read_vops

.mat or .npz path

VopModel

VOPs and global SAR matrix from a file.

example_vops

Channel count

model, drive_per_hz (V/Hz), cp_shim

Synthetic VOP model, for demonstrations and tests only.

VopModel

VOPs (N, Nc, Nc), optional global matrix (Nc, Nc)

Model for check_sar, W/kg per unit drive squared

Virtual observation points.