dcmri.vfa_linear#

dcmri.vfa_linear(signal_intensities, flip_angles_deg, tr, bounds=None, verbose=0)[source]#

Calculates R1 and S0 from variable flip angle (VFA) SPGR data.

This function uses the linearized form of the steady-state spoiled gradient-echo (SPGR) signal equation to perform a linear fit and extract R1 and S0.

The linearized equation is: S(a)/sin(a) = E1 * S(a)/tan(a) + S0*(1-E1) where E1 = exp(-TR * R1). This is a linear equation of the form y = m*x + c.

Parameters:
  • signal_intensities (list or np.ndarray) – A list or array of measured signal intensities.

  • flip_angles_deg (list or np.ndarray) – A list or array of corresponding flip angles in degrees.

  • tr (float) – The repetition time (TR) of the sequence.

  • bounds (tuple) – bounds on (R1, S0) as a tuple ([lower_R1, lower_S0], [upper_R1, upper_S0]). Default is ([0, 0], [np.inf, np.inf])

  • verbose (int) – if set to 1, warning messages are printed. Defaults to 0.

Returns:

A tuple containing the calculated (R1, S0).

Returns (0, 0) if the calculation is not physically plausible (e.g., due to noisy data leading to a slope >= 1).

Return type:

tuple