Dear Experts,
I encountered an error during the eddy current correction while preprocessing diffusion data in FSL. The error message is as follows:
EDDY::ECScanManager::GetGlobal2DWIIndexMapping: Global index not dwi
EDDY::ECScanClasses.cpp::: unsigned int EDDY::ECScanManager::GetGlobal2DWIIndexMapping(unsigned int) const: Exception thrown
EDDY::ECScanClasses.h::: void EDDY::ECScanManager::ApplyDWILocationReference(): Exception thrown
EDDY::ECScanClasses.cpp::: void EDDY::ECScanManager::SeparateFieldOffsetFromMovement(EDDY::ScanType, EDDY::OffsetModelType): Exception thrown
EDDY::eddy.cpp::: EDDY::ReplacementManager* EDDY::Register(const EDDY::EddyCommandLineOptions&, EDDY::ScanType, unsigned int, const std::vector<float, std::allocator<float> >&, EDDY::SecondLevelECModelType, bool, EDDY::ECScanManager&, EDDY::ReplacementManager*, NEWMAT::Matrix&, NEWMAT::Matrix&): Exception thrown
EDDY::: Eddy failed with message EDDY::eddy.cpp::: EDDY::ReplacementManager* EDDY::DoVolumeToVolumeRegistration(const EDDY::EddyCommandLineOptions&, EDDY::ECScanManager&): Exception thrown
I collected low b-value diffusion data, with b-values including 0, 20, 40, 60, 80, 100, 150, 200, 400, 600, and 1000. The b value is scanned in ascending order from low to high. Except for b0, there are 16 directions corresponding to the other b-values. After acquiring this dataset, I first performed Topup, and then conducted eddy current correction, during which the aforementioned error occurred.
Subsequently, I tried various combinations of these b-values, such as removing some of the b-values below 100, and found that the eddy current correction could be successful, but only certain combinations of b-values below 100 and those above 100 worked, while others did not. It seems that there might be an issue with b80 and b100, but I carefully checked the data and did not find any problems. I also attempted to collect data with different b-value schemes, but encountered similar issues with certain combinations of b-values during the eddy current correction.
I am puzzled for several days and can’t find a solution. I would like to know the cause of this issue and how to resolve it. I would greatly appreciate your help!
Below is the command I used for the eddy current correction:
eddy --imain=ivim_noddi_merge --mask=IVIM_add_NODDI_hifi_nodif_bet_mask \
--index=index.txt --acqp=acqparams.txt \
--bvecs=ivim_noddi_merge.bvec --bvals=ivim_noddi_merge.bval \
--topup=topup_IVIM_add_NODDI_nodif_PA_AP_b0 --out=IVIM_add_NODDI_after_eddy
In this command, ivim_noddi_merge
is the diffusion data I collected. The index.txt
file contains all 1, with the number of 1 equal to the number of volumes in my diffusion data, and the parameters in acqparams.txt
were calculated based on the echo train length and echo spacing of my scan.
Thanks
Yuyan