mrpro.operators.models.SaturationRecovery
- class mrpro.operators.models.SaturationRecovery[source]
Bases:
SignalModel
[Tensor
,Tensor
]Signal model for saturation recovery.
- __init__(saturation_time: float | Tensor | Sequence[float]) None [source]
Initialize saturation recovery signal model for T1 mapping.
- __call__(m0: Tensor, t1: Tensor) tuple[Tensor] [source]
Apply the saturation recovery signal model.
Calculates the signal based on the formula: \(S(t_{sat}) = M_0 (1 - e^{-t_{sat} / T_1})\), where
t_{sat}
are the saturation times.- Parameters:
- Returns:
Signal calculated for each saturation time. Shape
(times ...)
, for example(times, *other, coils, z, y, x)
, or(times, samples)
wheretimes
is the number of saturation times.
- forward(m0: Tensor, t1: Tensor) tuple[Tensor] [source]
Apply forward of SaturationRecovery.
Note
Prefer calling the instance of the SaturationRecovery as
operator(x)
over directly calling this method. See this PyTorch discussion.
- __add__(other: Operator[Unpack[Tin], Tout]) Operator[Unpack[Tin], Tout] [source]
- __add__(other: Tensor | complex) Operator[Unpack[Tin], tuple[Unpack[Tin]]]
Operator addition.
Returns
lambda x: self(x) + other(x)
if other is a operator,lambda x: self(x) + other*x
if other is a tensor
- __matmul__(other: Operator[Unpack[Tin2], tuple[Unpack[Tin]]] | Operator[Unpack[Tin2], tuple[Tensor, ...]]) Operator[Unpack[Tin2], Tout] [source]
Operator composition.
Returns
lambda x: self(other(x))
- __mul__(other: Tensor | complex) Operator[Unpack[Tin], Tout] [source]
Operator multiplication with tensor.
Returns
lambda x: self(x*other)