mrpro.operators.models.TransientSteadyStateWithPreparation

class mrpro.operators.models.TransientSteadyStateWithPreparation(sampling_time: float | Tensor, repetition_time: float | Tensor, m0_scaling_preparation: float | Tensor = 1.0, delay_after_preparation: float | Tensor = 0.0)[source]

Bases: SignalModel[Tensor, Tensor, Tensor]

Signal model for transient steady state.

This signal model describes the behavior of the longitudinal magnetization during continuous acquisition after a preparation pulse. The effect of the preparation pulse is modeled by a scaling factor applied to the equilibrium magnetization. A delay after the preparation pulse can be defined. During this time T1 relaxation to M0 occurs. Data acquisition starts after this delay. Perfect spoiling is assumed and hence T2 effects are not considered in the model. In addition this model assumes \(TR << T1\) and \(TR << T1^*\) (see definition below) [DEI1992] [LOO1970].

Let’s assume we want to describe a continuous acquisition after an inversion pulse, then we have three parts: [Part A: 180° inversion pulse][Part B: spoiler gradient][Part C: Continuous data acquisition]

  • Part A: The 180° pulse leads to an inversion of the equilibrium magnetization (\(M_0\)) to \(-M_0\). This can be described by setting the scaling factor m0_scaling_preparation to -1.

  • Part B: Commonly after an inversion pulse a strong spoiler gradient is played out to compensate for non-perfect inversion. During this time the magnetization \(M_z(t)\) follows the signal model: \(M_z(t) = M_0 + (s * M_0 - M_0)e^{(-t / T1)}\) where \(s\) is m0_scaling_preparation.

  • Part C: After the spoiler gradient the data acquisition starts and the magnetization \(M_z(t)\) can be described by the signal model: \(M_z(t) = M_0^* + (M_{init} - M_0^*)e^{(-t / T1^*)}\) where the initial magnetization is \(M_{init} = M_0 + (s*M_0 - M_0)e^{(-\Delta t / T1)}\) where \(s\) is m0_scaling_preparation and \(\Delta t\) is delay_after_preparation. The effective longitudinal relaxation time is \(T1^* = 1/(1/T1 - ln(cos(\alpha)/TR)\) where \(TR\) is repetition_time and \(\alpha\) is flip_angle. The steady-state magnetization is \(M_0^* = M_0 T1^* / T1\).

References

[DEI1992]

Deichmann R, Haase A (1992) Quantification of T1 values by SNAPSHOT-FLASH NMR imaging. J. Magn. Reson. 612 http://doi.org/10.1016/0022-2364(92)90347-A

[LOO1970]

Look D, Locker R (1970) Time Saving in Measurement of NMR and EPR Relaxation Times. Rev. Sci. Instrum 41 https://doi.org/10.1063/1.1684482

__init__(sampling_time: float | Tensor, repetition_time: float | Tensor, m0_scaling_preparation: float | Tensor = 1.0, delay_after_preparation: float | Tensor = 0.0)[source]

Initialize transient steady state signal model.

repetition_time, m0_scaling_preparation and delay_after_preparation can vary for each voxel and will be broadcasted starting from the front (i.e. from the other dimension).

Parameters:
  • sampling_time – Time points when model is evaluated. A sampling_time of 0 describes the first acquired data point after the inversion pulse and spoiler gradients. To take the T1 relaxation during the delay between inversion pulse and start of data acquisition into account, set the delay_after_preparation > 0. with shape (time, …)

  • repetition_time – repetition time

  • m0_scaling_preparation – Scaling of the equilibrium magnetization due to the preparation pulse before the data acquisition.

  • delay_after_preparation – Time between preparation pulse and start of data acquisition. During this time, standard longitudinal relaxation occurs.

forward(m0: Tensor, t1: Tensor, flip_angle: Tensor) tuple[Tensor][source]

Apply transient steady state signal model.

Parameters:
  • m0 – equilibrium signal / proton density with shape (… other, coils, z, y, x)

  • t1 – longitudinal relaxation time T1 with shape (… other, coils, z, y, x)

  • flip_angle – flip angle of data acquisition in rad with shape (… other, coils, z, y, x)

Return type:

signal with shape (time … other, coils, z, y, x)