Slice-to-vol motion correction with CPU eddy

Hi MRTrix community,

I am using dwifslpreproc to preprocess some neonatal DWI scans and I don’t have access to GPUs so am running eddy_openmp. On the FSL mailing list it says that the FSL6.0.5 version of eddy_openmp (changed to eddy_cpu in the latest versions) should support slice-to-volume motion correction. I have FSL6.0.7 installed but trying to run eddy from dwifslpreproc with any of the slice-to-volume options eg

dwifslpreproc "${fname_concat}" "${fname_eddy}" -pe_dir AP -rpe_all -force \
	-fslgrad "${fname_bvec}" "${fname_bval}" \
	-eddy_slspec "${fname_slspec}" \
	-eddyqc_all "${dirname_eddyqc}" \
	-nocleanup \
	-scratch "${dirname_scratch}" \
	-continue "${dirname_scratch}" eddy_in.nii \
	-eddy_options " --residuals --cnr_maps --repol --slm=linear --mporder=5 --s2v_niter=3"

gives the error:

EddyInputError: Slice-to-vol is not yet implemented for the CPU version.
Terminating program

Has anyone tried to run the slice-to-vol correction with the CPU version? Is it unbearably slow? And is there any plans to incorporate it into dwifslpreproc?

Thanks!

Diliana

Hi Diliana!

That error comes from eddy itself: slice-to-volume correction is only implemented for the CUDA version. As far as I know, you literally can’t run it with the CPU version… I have no idea whether there is any plan to implement that any time soon, but for now, you need to use the GPU version if you need to perform slice-to-volume correction.

Cheers!
Donald.

Hi Donald,

The latest version of FSL has eddy_cpu which does run slice-to-vol registration, it was introduced in 6.0.5 Document. I tried it but gave up on it because it took too long and I have a lot of data to process. Just thought I’d let you know!

1 Like

Well, I stand corrected! Good to know. Maybe we do need to update dwifslpreproc to reflect that, then…