mrpro.operators.models.EPG.EPGSequence
- class mrpro.operators.models.EPG.EPGSequence[source]
Bases:
ModuleList
,EPGBlock
Sequene of EPG blocks.
A sequence as multiple blocks, such as preparation pulses, acquisition blocks and delays.
Classic MRF with a single inversion-pulse at the beginning followed by a train of RF pulses with different flip angles as described in [MA2013] can be simulated by the following sequence:
InversionBlock
FispBlock with varying flip_angles
You can also nest
EPGSequence
, i.e., use it as a block in anotherEPGSequence
. This allows to describe complex MR acquisitions with multiple repetitions of the same blocks.
References
[MA2013]Ma, D et al.(2013) Magnetic resonance fingerprinting. Nature 495 http://dx.doi.org/10.1038/nature11971
- __init__(blocks: Sequence[EPGBlock] = ()) None [source]
Initialize an EPG Sequence.
- Parameters:
blocks (
Sequence
[EPGBlock
], default:()
) – blocks such as RF, delays, acquisitions etc.
- __call__(parameters: Parameters, states: Tensor | int = 20) tuple[Tensor, tuple[Tensor, ...]] [source]
Apply the block.
- Parameters:
parameters (
Parameters
) – Tissue parametersstates (
Tensor
|int
, default:20
) – EPG configuration states. If an integer value, the equilibrium state (0, 0, 1) will be initialized with the given number of EPG configuration states. The number should be large enough to capture the signal dynamics. More states increase the accuracy of the simulation but also the computational cost.
- forward(parameters: Parameters, states: Tensor) tuple[Tensor, tuple[Tensor, ...]] [source]
Apply the sequence of blocks to the EPG states.
- Parameters:
parameters (
Parameters
) – Tissue parametersstates (
Tensor
) – EPG configuration states.
- Returns:
EPG configuration states after the sequence of blocks and the acquired signals
- append(module: Module) ModuleList
Append a given module to the end of the list.
- Parameters:
module (nn.Module) – module to append