Conversation
|
In dc500da I changed how the amplitude of the readout gradient is modified for the symmetric EPI readout. In the previous version the EPI-object was modified. This meant that for an odd number of phase encoding steps, the readout gradient of the EPI-object was flipped at the end of I removed the rev-label here: mrseq/src/mrseq/utils/EpiReadout.py Line 633 in dc500da I think this should be fine but maybe @schuenke could double check |
| epi2d.adc, | ||
| pp.make_label(label='REV', type='SET', value=gx.amplitude < 0), | ||
| pp.make_label(label='SEG', type='SET', value=gx.amplitude < 0), | ||
| pp.make_label(label='AVG', type='SET', value=(n + 1) == 3), |
There was a problem hiding this comment.
| pp.make_label(label='AVG', type='SET', value=(n + 1) == 3), |
There was a problem hiding this comment.
I would remove this, because it leads to 1 readout having avg = 0 and two readouts with avg = 0,1 which then leads to problems for the MRpro sorting routines. They are not really averages anyway because there is T2* decay.
| epi2d.adc, | ||
| pp.make_label(label='REV', type='SET', value=gx_sign < 0), | ||
| pp.make_label(label='SEG', type='SET', value=gx_sign < 0), | ||
| pp.make_label(label='AVG', type='SET', value=(n + 1) == 3), |
There was a problem hiding this comment.
| pp.make_label(label='AVG', type='SET', value=(n + 1) == 3), |
same as for epi2d_fid
| ) | ||
|
|
||
| # Navigator kx offset: starts from -gx_pre.area (reversed pre-winder) | ||
| nav_kx_offset = -epi2d.gx_pre.area |
There was a problem hiding this comment.
| nav_kx_offset = -epi2d.gx_pre.area | |
| nav_kx_offset = epi2d.gx_pre.area |
I had to make these changes to get the correct navigator trajectory
|
|
||
| # Navigator kx offset: starts from -gx_pre.area (reversed pre-winder) | ||
| nav_kx_offset = -epi2d.gx_pre.area | ||
| nav_gx_sign = -1.0 # first navigator uses reversed gx |
There was a problem hiding this comment.
| nav_gx_sign = -1.0 # first navigator uses reversed gx |
I had to make these changes to get the correct navigator trajectory
| assert prot is not None | ||
| n_samples = epi2d.adc.num_samples | ||
| traj = np.zeros((n_samples, 2), dtype=np.float32) | ||
| if nav_gx_sign > 0: |
There was a problem hiding this comment.
| if nav_gx_sign > 0: |
| traj = np.zeros((n_samples, 2), dtype=np.float32) | ||
| if nav_gx_sign > 0: | ||
| nav_kx = nav_kx_offset + nav_kx_forward | ||
| else: |
| if nav_gx_sign > 0: | ||
| nav_kx = nav_kx_offset + nav_kx_forward | ||
| else: | ||
| nav_kx = nav_kx_offset - nav_kx_forward |
There was a problem hiding this comment.
| nav_kx = nav_kx_offset - nav_kx_forward |
| n_samples = epi2d.adc.num_samples | ||
| traj = np.zeros((n_samples, 2), dtype=np.float32) | ||
| if nav_gx_sign > 0: | ||
| nav_kx = nav_kx_offset + nav_kx_forward |
There was a problem hiding this comment.
| nav_kx = nav_kx_offset + nav_kx_forward | |
| nav_kx = nav_kx_offset + gx_sign * nav_kx_forward |
|
The above changes were necessary to get the correct trajectory for the navigators. Probably similary changes are needed for the epi2d_fid. We could add the part on reading out the navigators to the example notebook. What do you think @schuenke ? |


To do: