mrpro.operators.models.CardiacFingerprinting
- class mrpro.operators.models.CardiacFingerprinting[source]
Bases:
SignalModel
[Tensor
,Tensor
,Tensor
]Cardiac MR Fingerprinting signal model.
This model simulates a cardiac MR fingerprinting sequence as described in [HAMI2017] and [HAMI2020] using the extended phase graph (
EPG
) formalism.It is a three-fold repetition of
Block 0 Block 1 Block 2 Block 3 Block 4 R-peak R-peak R-peak R-peak R-peak |----------------|----------------|----------------|----------------|---------------- [INV 30ms][ACQ] [ACQ] [T2-prep][ACQ] [T2-prep][ACQ] [T2-prep][ACQ]
Note
This model is on purpose not flexible in all design choices. Instead, consider writing a custom
SignalModel
based on this implementation if you need to simulate a different sequence.References
[HAMI2017]Hamilton, J. I. et al. (2017) MR fingerprinting for rapid quantification of myocardial T1, T2, and proton spin density. Magn. Reson. Med. 77 http://doi.wiley.com/10.1002/mrm.26216
[HAMI2020]Hamilton, J.I. et al. (2020) Simultaneous Mapping of T1 and T2 Using Cardiac Magnetic Resonance Fingerprinting in a Cohort of Healthy Subjects at 1.5T. J Magn Reson Imaging, 52: 1044-1052. https://doi.org/10.1002/jmri.27155
- __init__(acquisition_times: Tensor | Sequence[int] = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14), echo_time: float = 0.0015, repetition_time: float = 0.005, t2_prep_echo_times: tuple[float, float, float] = (0.03, 0.05, 0.08)) None [source]
Initialize the Cardiac MR Fingerprinting signal model.
- Parameters:
acquisition_times (
Tensor
|Sequence
[int
], default:(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
) – Times of the acquisistions in s. Either 15 values (the first acquisition of each block) or 705 values for all acquisitions. In both cases only the time of the first acquisition of each block will be used to calculate the delays.echo_time (
float
, default:0.0015
) – TE in srepetition_time (
float
, default:0.005
) – TR in st2_prep_echo_times (
tuple
[float
,float
,float
], default:(0.03, 0.05, 0.08)
) – Echo times of the three T2 preparation blocks in s
- __call__(*args: Unpack[Tin]) Tout [source]
Apply the forward operator.
For more information, see
forward
.
- forward(m0: Tensor, t1: Tensor, t2: Tensor) tuple[Tensor] [source]
Simulate the Cardiac MR Fingerprinting signal.
- __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)