validate

Contents

validate#

pulserver.validate.validate()[source]#

Check that a sequence plays as it was written.

Reads the gradients the sequence asks for, and compares them against a second rendering: a recording of a machine playing it, where one is given or can be made, and otherwise the waveforms its own cache holds.

The two answer different questions, and Comparison.reference says which was answered. A recording establishes that the machine plays the sequence. The cache establishes only that the conversion kept it – a conversion and a playout that are wrong in the same way agree.

Parameters:
  • seq_path – The sequence file.

  • vendor – Which machine played came from, one of VENDORS. None compares against the cache and ignores played.

  • played – A recording to compare against. Absent, and with a vendor named, one is asked for from that vendor’s tooling if it is installed here.

  • dead_time_us – What a recording’s times run ahead of the sequence’s by, on every channel: a machine starts a unit before it plays anything of it.

  • rf_wait_us – What the transmit channels run ahead by on top of that. A machine drives transmit and gradients on separate timelines and records each as it drove it, so the two meet only once both constants are stated.

  • tolerance_mt_per_m – The largest gradient difference that still counts as agreement. Taken from the slew rate and the gradient raster when a system is given, which is what the hardware can legitimately be away by; 0.05 otherwise.

  • rf_tolerance_percent – The largest transmit difference, as a percentage of the peak.

  • cache_ext – Extension of the cache read when comparing against it.

  • system – pypulseqpp.Opts the cache is converted under, when one has to be.

Return type:

Comparison

Raises: