Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Partial Fourier issue #240

Open
aTrotier opened this issue Feb 26, 2025 · 4 comments
Open

Partial Fourier issue #240

aTrotier opened this issue Feb 26, 2025 · 4 comments
Labels
bug Something isn't working

Comments

@aTrotier
Copy link
Contributor

aTrotier commented Feb 26, 2025

I am reconstructing a 3D FLAIR sequence. I have an issue with sense reconstruction.

Diving a little bit it is an issue with how the kspace is filled

raw_imaging = remove_raw_by_flags(raw,"ACQ_IS_NOISE_MEASUREMENT")
acq_imaging = AcquisitionData(raw_imaging)
kspace = kDataCart(acq_imaging)
heatmap(kspace[128,:,:,1,1,1] .|> abs .|> log)

## let's see what happens if create my own kspace
s = raw_imaging.params["encodedSize"]
raw_imaging.params["enc_lim_kspace_encoding_step_1"]
raw_imaging.params["enc_lim_kspace_encoding_step_2"]

nCh = raw_imaging.params["receiverChannels"]

kspace_2 = zeros(ComplexF32,s...)

sR = size(raw_imaging.profiles[1].data)
for (i,p) in enumerate(raw_imaging.profiles)
    ky =  Int(raw_imaging_motion.profiles[i].head.idx.kspace_encode_step_1) +1

    kz =  Int(raw_imaging_motion.profiles[i].head.idx.kspace_encode_step_2) +1

    kspace_2[:,ky,kz] = p.data[:,1]
end
heatmap(kspace_2[128,:,:] .|> abs .|> log)

I get the same results with kDataCart or doing it by hand

Image

The encoding limits gives :
Image

which corresponds to the maximum value filled along ky and kz

@aTrotier aTrotier added the bug Something isn't working label Feb 26, 2025
@aTrotier
Copy link
Contributor Author

aTrotier commented Feb 26, 2025

If I correct the ky indices (not the kz ones) : ky = Int(raw_imaging_motion.profiles[i].head.idx.kspace_encode_step_1) +1 + (s[2] - ky_lim.maximum)

I get :

Image

I don't know if It is an issue with the way the mdh are labeled in the sequence or during the conversion to ISMRMRD

If I try to use the enc_lim center does not store the right value (in blue the center and red the maximum of enc_lim along ky/kz)

Image

@aTrotier
Copy link
Contributor Author

aTrotier commented Feb 26, 2025

mapVBVD does not handle the reconstruction size and create a kspace according to enc_lim:

Image

If I take a look at the metadata you can find 2 fields that stores the center lin/partition : twix.image.centerPar and twix.image.centerLin

Image

I will cross link this issue on siemens_to_gadgetron

@aTrotier
Copy link
Contributor Author

ismrmrd/siemens_to_ismrmrd#142

During conversion the correct center is displayed in the terminal

@aTrotier
Copy link
Contributor Author

aTrotier commented Feb 28, 2025

This information is stored (for each profiles) in

julia> raw_imaging.profiles[1].head.idx.user[6] |> Int
91

julia> raw_imaging.profiles[1].head.idx.user[7] |> Int
95

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant