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

Apply Coil Compression on a subset of the kdata for efficiency #229

Open
aTrotier opened this issue Feb 14, 2025 · 0 comments
Open

Apply Coil Compression on a subset of the kdata for efficiency #229

aTrotier opened this issue Feb 14, 2025 · 0 comments
Labels
enhancement New feature or request

Comments

@aTrotier
Copy link
Contributor

The current implementation is svd on the whole kdata which is especially long.

Two implementations are available in gadgetron :

  1. PCACoilGadget
  2. GenericReconEigenChannelGadget

The first one takes the 100 first profiles (keep only the central part of the readout (16 points)) did some processing and then perform the PCA. The PCA is then applied to the remaining profiles.

It is efficient for online reconstruction because the processing of all the profile is then done on the fly. But for 3D acquisition, the PCA is most of the time performed on 100 profiles acquired on the outer part of the k-space.

  1. I did not really take a look at the second implementation but it seems it is applied after buffering all the profiles and on the calibration / central part of the k-space.

I don't have a perfect answer to that problem :
Ideally, we should perform the SVD on the central part of kspace, do we have an efficient way to find the kdata correspoding to it ? (without creating the kspace with kDataCart())

Maybe we should also add an option to do it directly to the raw object which will select all the lines flags

"ACQ_IS_PARALLEL_CALIBRATION"              => 20,
"ACQ_IS_PARALLEL_CALIBRATION_AND_IMAGING"  => 21

in that case, a reconstruction from ISMRMRD files will be something like the gadgets in Gadgetron :

  1. raw = RawAcquisitionData(ISMRMRDFile("path.mrd")
  2. remove_oversampling!(raw)
  3. software_coil_compression!(raw,6)
  4. convert to acq
  5. perform reconstruction
@aTrotier aTrotier added the enhancement New feature or request label Feb 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant