Conversation
mcencini
left a comment
There was a problem hiding this comment.
Thanks a lot :D as a general comment, I was thinking to MPRAGEModel as a memory-efficient model to calculate the approximate contrast at TI without having to store the signal intensity for all the k-space lines (but accounting for the effect of multiple RF pulses when getting the steady-state). If we want to store these signals, we have MPnRAGEModel.
| states = epg.longitudinal_relaxation(states, E1inv, rE1inv) | ||
| states = epg.spoil(states) | ||
|
|
||
| signal = [] |
There was a problem hiding this comment.
If we want to store magnetization for each spgr shot (e.g., to study signal modulation in k-space or for contrast-resolved reconstruction), it is better to use torchsim.models.MPnRAGEModel.
src/torchsim/models/mprage.py
Outdated
| states = epg.rf_pulse(states, RF) | ||
|
|
||
| # Evolve | ||
| states = epg.longitudinal_relaxation(states, E1, rE1) |
There was a problem hiding this comment.
Without multiple repetitions, everything that happens after ADC should be irrelevant.
|
|
||
| # Record signal | ||
| return M0 * 1j * epg.get_signal(states) | ||
| return torch.stack(signal) |
There was a problem hiding this comment.
Maybe move return M0 * 1j * torch.stack(signal) here?
|
Testing against Bloch simulation would greatly improve everything! I am moving this to Discussion #5 |
I think the codes need some tests also against bloch simulation ground truth, do we have any?