Dwipreproc -eddy error solution



dwipreproc: [WARNING] sampling of b=600 shell is strongly asymmetric; distortion correction may benefit from use of: -eddy_options " ... --slm=linear ... "
dwipreproc: Total readout time not provided at command-line; assuming sane default of 0.1
Command:  mrinfo dwi.mif -export_grad_mrtrix grad.b
Command:  dwi2mask dwi.mif - | maskfilter - dilate - | mrconvert - eddy_mask.nii -datatype float32 -strides -1,+2,+3
Command:  mrconvert dwi.mif -import_pe_table dwi_manual_pe_scheme.txt eddy_in.nii -strides -1,+2,+3,+4 -export_grad_fsl bvecs bvals -export_pe_eddy eddy_config.txt eddy_indices.txt
Command:  eddy_cuda --imain=eddy_in.nii --mask=eddy_mask.nii --acqp=eddy_config.txt --index=eddy_indices.txt --bvecs=bvecs --bvals=bvals --out=dwi_post_eddy
dwipreproc: [WARNING] Command failed: eddy_cuda --imain=eddy_in.nii --mask=eddy_mask.nii --acqp=eddy_config.txt --index=eddy_indices.txt --bvecs=bvecs --bvals=bvals --out=dwi_post_eddy
dwipreproc: [WARNING] CUDA version of eddy appears to have failed; trying OpenMP version
Command:  eddy_openmp --imain=eddy_in.nii --mask=eddy_mask.nii --acqp=eddy_config.txt --index=eddy_indices.txt --bvecs=bvecs --bvals=bvals --out=dwi_post_eddy
dwipreproc: [ERROR] Command failed: eddy_openmp --imain=eddy_in.nii --mask=eddy_mask.nii --acqp=eddy_config.txt --index=eddy_indices.txt --bvecs=bvecs --bvals=bvals --out=dwi_post_eddy (dwipreproc:853)
dwipreproc: Output of failed command:
            Segmentation violation, Address not mapped, Offending address = 0x28
            /lib/x86_64-linux-gnu/libc.so.6 strlen [0x7fdb7e6e0746]
            eddy_openmp ) [0x6062eb] [&X�?
            eddy_openmp ) [0x5ff163] [&X�?
            eddy_openmp ) [0x45f759] [&X�?

Hello everyone, I’m wondering about dwipreproc
That failed because of eddy_cuda actually but now I’m using a virtual machine in Windows10 (but OS using mrtrix3 is ubuntu 16.04)
Is that any solution to solve that warning?

  1. [WARNING] sampling of b=600 shell is strongly asymmetric; distortion correction may benefit from use of: -eddy_options " … --slm=linear … "

  2. [ERROR] Command failed: eddy_openmp --imain=eddy_in.nii --mask=eddy_mask.nii --acqp=eddy_config.txt --index=eddy_indices.txt --bvecs=bvecs --bvals=bvals --out=dwi_post_eddy (dwipreproc:853)

In here?


For the first issue, refer to the FSL EDDY documentation – the bit where they discuss ‘sampling on the sphere’. To cut a long story short, add -eddy_options "--slm=linear " to your dwipreproc call to silence the warning – although there’s a good chance it won’t make all that much difference.

The second issue is more problematic though. Clearly, your eddy_openmp command is crashing out with a memory access violation (most likely a bug). To debug this one, you’d need to inspect the contents of the temporary folder (you can see its location in your output, it’s probably still there, but if not, invoke with -nocleanup) to check all the inputs to that eddy_openmp command are valid and as the command would expect. If everything looks OK, try running that eddy_openmp command directly within that folder (i.e. copy/paste that line into a terminal, with the working directory set to the temporary folder). If that still crashes out with the same error, then you’d need to refer to the FSL support forum…

This recent thread may also be useful here.