Source code for snake.core.phantom.contrast
"""This module contains functions to compute the contrast of different MRI sequences."""
import numpy as np
from numpy import ndarray as NDArray
from .utils import PropTissueEnum
__all__ = ["_contrast_gre"]
[docs]
def _contrast_gre(
props: NDArray,
*,
TR: float,
TE: float,
FA: float,
) -> NDArray:
"""Compute the GRE contrast for each of the tissues."""
return (
props[:, PropTissueEnum.rho]
* np.sin(np.deg2rad(FA))
* np.exp(-TE / props[:, PropTissueEnum.T2s])
* (1 - np.exp(-TR / props[:, PropTissueEnum.T1]))
/ (1 - np.cos(np.deg2rad(FA)) * np.exp(-TR / props[:, PropTissueEnum.T1]))
)
# TODO Define more contrasts