mrpro.operators.models.WASABI
- class mrpro.operators.models.WASABI[source]
Bases:
SignalModel
[Tensor
,Tensor
,Tensor
,Tensor
]WASABI signal model.
- __init__(offsets: Tensor | Sequence[float] | float, rf_duration: float | Tensor = 0.005, b1_nominal: float | Tensor = 3.70e-6, gamma: float = GYROMAGNETIC_RATIO_PROTON) None [source]
Initialize WASABI signal model for mapping of B0 and B1 [SCHU2016].
This model uses a slight modification from the original published model. The parameter
a
corresponds tod/c
in the original model.- Parameters:
offsets (
Tensor
|Sequence
[float
] |float
) – frequency offsets [Hz] with shape(offsets, ...)
rf_duration (
float
|Tensor
, default:0.005
) – RF pulse duration [s]b1_nominal (
float
|Tensor
, default:3.70e-6
) – nominal B1 amplitude [T]gamma (
float
, default:GYROMAGNETIC_RATIO_PROTON
) – gyromagnetic ratio [Hz/T]
References
[SCHU2016]Schuenke P, Zaiss M (2016) Simultaneous mapping of water shift and B1(WASABI)—Application to field-Inhomogeneity correction of CEST MRI data. MRM 77(2). https://doi.org/10.1002/mrm.26133
- __call__(*args: Unpack[Tin]) Tout [source]
Apply the forward operator.
For more information, see
forward
.
- forward(b0_shift: Tensor, relative_b1: Tensor, c: Tensor, a: Tensor) tuple[Tensor] [source]
Apply the WASABI (Water Shift and B1) signal model.
- Parameters:
b0_shift (
Tensor
) – B0 field in homogeneity or off-resonance shift in Hz. Shape, for example
*other, coils, z, y, x
orsamples
.relative_b1 (
Tensor
) – Relative B1 amplitude scaling factor (actual B1 / nominal B1). Shape, for example
*other, coils, z, y, x
orsamples
.c (
Tensor
) – Signal amplitude parameter (related to M0). Shape, for example
*other, coils, z, y, x
orsamples
.a (
Tensor
) – Signal modulation scaling parameter, corresponds tod/c
in the original model. Shape, for example
*other, coils, z, y, x
orsamples
.
- Returns:
Signal calculated for each frequency offset. Shape
offsets ...
. For exampleoffsets, *other, coils, z, y, x
, oroffsets, samples
whereoffsets
is the number of frequency offsets.
- __add__(other: Operator[Unpack[Tin], Tout]) Operator[Unpack[Tin], Tout] [source]
- __add__(other: Tensor) 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], 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)