Phantom.isochromats

Phantom.isochromats#

Phantom.isochromats()[source]#

Return the phantom sampled as isochromats, for simulate().

Each ellipse is sampled at the points of a square grid, aligned with the phantom’s origin and axes, that lie inside it: each a voxel of spins isochromats of proton density intensity * spacing**2 between them, relaxing with the ellipse’s t1 and t2, so that the sum over them approximates the ellipse’s transform below the grid’s Nyquist frequency. A voxel’s isochromats lie at its centre, or over a square spacing wide in the ellipse’s plane for a "box" voxel, and precess at the quantiles of the Lorentzian line of the ellipse’s t2_prime (Bloch engine). Overlapping ellipses are separate isochromats. The positions are placed in the physical frame as the phantom is, and the receive sensitivities are the phantom’s coils’, or coil’s transmit and receive sensitivities there. The isochromats diffuse with the ellipses’ diffusion.

Parameters:
  • spacing – Grid spacing, in metres.

  • field_t – The magnet’s field, in T, at which each ellipse’s chemical shift is resolved into a frequency, with pypulseqpp’s default gamma.

  • off_resonance_hz – Frequency of every isochromat from the scanner’s centre frequency, in Hz, beside its chemical shift.

  • region – Which isochromats are kept, from their (n, 3) physical positions, in m, and (n,) frequencies, in Hz, as Slabs answers; every one without one.

  • coil – The scanner’s coil the phantom is scanned with.

  • spins – Isochromats per voxel: a square number for a "box".

  • voxel – "point" or "box": where a voxel’s isochromats lie.

  • motion – The phantom’s motion, as Isochromats takes it.

  • seed – Seed of the frequencies of each voxel’s isochromats and of their Brownian walks.

  • threads – Worker threads of the simulation; 0 for every core.

  • device – The device the ADC windows are read and the runs of repetitions carried on, as Isochromats takes it; the engine does both itself without one.

Raises:

ValueError – If an ellipse has a complex intensity, the phantom has a chemical shift and field_t is not given, it has coils of its own and coil is given, or spins do not fill a voxel.