open-discussion > FSL's eddy_openmp - "inconsistent b-values detected" error
Showing 1-1 of 1 posts
Display:
Results per page:
Feb 20, 2018  03:02 AM | simoneroo
FSL's eddy_openmp - "inconsistent b-values detected" error
Hello there,

I've spent more time than I'm willing to bluntly admit trying to get eddy_openmp to work properly, and am wondering if anybody else has dealt with (and hopefully overcome) the same issue?

I have multiband, multi-shell DWI data with reverse phase-encoded b0s and b100s, acquired from a Siemens scanner, and being analyzed on an Ubuntu machine.  I used the reverse phase encode data to run topup without issue.  I can run eddy_openmp beautifully on a single shell with 64 A-P volumes for both of my higher b-values, as well as A-P multishell data with 3 shells and a total of 137 volumes.  For some reason, if I add my P-A b0 and 6 volumes of b100 P-A data, I get this error every time:
eddy: msg-EddyUtils::get_groups: Inconsistent b-values detected
terminate called after throwing an instance of 'EDDY::EddyException'
  what():  eddy: msg=EddyUtils::get_groups: Inconsistent b-values detected
Aborted (core dumped)

When I ran "--very_verbose", I also got this error:
Attempting to separate field offset from subject movement
Running sm.SetDWIReference
Aligning shells (running PostEddyAlignShells)
Using MI to estimate between shell movement
Calculating shell means
Scan:
142 0 141139 143  137 134 140 133 130 132 65 135 138 136 131
Calculating shell means

On another iteration, the numbers listed above were different, with multiple numbers that had multi-spaces between them, and numbers ranging from 0 - 135132143142, and a different number of total fields/characters.

Here are the things I've altered, checked, and/or swapped:
 - putting my PA vols at the beginning, putting them at the end
 - putting my PA volumes at the end but without the b0
 - ensuring that my bval and bvec files have exactly one space between entries, and that they are always correct
 - condensing my acqparams file to 2 lines (I had multiple because I fed my low bvals into topup with my b0) so the only options in my index file would be "1" and "2"
 - just the PA vols by themselves (get a different error, suspect there are too few volumes though)
 - with and without the "--data_is_shelled" arg
 - with and without the "--dont_peas" arg // + combinations of these options and the options on the previous line
 - using an older version of eddy that was called "eddy_patched" (not sure if I named it or if FSL did) but seemed to multi-thread just like eddy_openmp
 - raw files vs. rescaled files
 - different subjects
 - I've played around with niter and fwhm too because I needed to speed things up
 - I've tried --dont_sep_offs_move

Here are args I've held constant:
 - mb=3
 - repol
 - ol_type=both

Finally, my data runs through dtifit without issues.

Any idea what could be going on here??!  Has anybody successfully used two phase-encode directions of the same b-value with eddy_openmp and had success?  Any and all insight is greatly appreciated.