check

Contents

check#

pulserver.ir.check()[source]#

Return the problems of a chain under a scanner’s limits, in the physical frame.

Each file of the NextSequence chain is rotated by rotation, composed after each block’s own rotation with blocks labelled NOROT exempt, as the scanner plays it. It is then checked with pypulseqpp.check_timing, gradient continuity included, and with pypulseqpp.safety.check_max_grad and check_max_slew, against the gradient limits, dead times and ringdown time of system; and with check_pns and check_mech_resonance where limits carries a nerve model or forbidden bands. The waveforms are timed by the file’s own rasters. VOPs are not checked here: see sar_ratios().

Parameters:
  • seq_path – The first file of the chain.

  • system – The scanner’s gradient limits, dead times and ringdown time.

  • rotation – (3, 3) prescription rotation from logical to physical axes, a reflection included; the identity by default.

  • limits – The nerve and resonance limits; none by default.

  • designed – The chain as pulserver.mrd.designed_chain() returns it, checked in place of reading the files, and rotated in place.

Returns:

One line per problem, naming the file when the chain has more than one; empty when every check passes.

Return type:

list of str

Raises:

ValueError – If a file of the chain cannot be read, or rotation is not orthonormal.