Closed aTrotier closed 10 months ago
@aTrotier there is coil compression in the coil sensitivities code. It works on our Siemens spiral data which is 2D.
It is in CoilSensitivity.jl, in a function called geometricCC_2d
Thanks I actually missed that part... I will give it a try on large datasets !
We should put that code in a dedicated file and write a test for it. I could work on the 3d generalization afterwards.
corresponding PR #125
I change the naming to geometricCoilCompression
and extended the code to 3D. At least I hope that the code does what it is supposed to do in 3D :-) If somebody wants to test this, please go for it.
I wonder two things:
gcc
in BART? They use the eigen decomposition of the Gram matrix. I did not look at the mathematical details yetscc
and ecc
. Do we want these as well?I think the coil compression available in MRIreco is SCC (software coil compression). We use the same coil compression matrix for all the readouts. Whereas in GCC it is done for each spatial position along the readouts + a realignment step.
Thanks for pushing this forward Aurelien!
With https://github.com/MagneticResonanceImaging/MRIReco.jl/pull/131 being merged should we close this issue?
It would be good if we could get a benchmark into MRIRecoBenchmarks that compares BART and our implementation. I am not sure if timing is actually relevant/interesting here but the accuracy certainly is. It could look similar to this comparison: https://github.com/MagneticResonanceImaging/MRIRecoBenchmarks/tree/master/benchmark3
I'll create the benchmark. Do you want to perform it on the dataset used here Or just something based on the simulation ?
I don't use in routine the coil compression in bart, but if I remember it is pretty long for large 3D multi-coil datasets. I can try on one of my brain datasets with 64 coils to see the results.
For our Siemens datasets we are currently using the coil compression from Gadgetron (gadget PCACoilGadget + CoilReduction) : https://github.com/gadgetron/gadgetron/blob/master/gadgets/mri_core/PCACoilGadget.cpp
Bart also has an implementation : https://github.com/mrirecon/bart/blob/master/src/cc.c
I don't know how Coil Compression can be used for non-cartesian data.
edit : matlab implementation / tutorial -> https://people.eecs.berkeley.edu/~mlustig/software/ESPIRiT_demo/