But do you think this would be an option for Philips DICOMs as well? I guess they don’t include this information. Do they?
Correct. From the data I have at hand, Philips never include this information. Conversely, GE provide the acquisition time of each slice as being identical to the time of the commencement of the acquisition. In both cases MRtrix3 will detect that there is no timing contrast between slices, and hence not write any slice timing information to the image header. Perhaps I need to be more conservative by reporting that this capability applies for Siemens data only…
I’d also encourage Philips and GE users to put pressure on their vendors to push software updates to enable this. I’m surprised the fMRI community haven’t already done that, given the availability of software for slice timing correction.
… I didn’t know that I had to call -cuda
explicitly in the dwipreproc
command (I thought it will find it automatically!)
Yes, currently it explicitly requires setting the -cuda
option. At the time that script was first implemented I expected very few users to have gone to the effort of getting CUDA working, but many may have downloaded both binaries, and hence attempting to execute the CUDA version would lead to failures.
In the 3.0_RC3
update, detection of the CUDA eddy
binary is more robust (searches for the highest CUDA version available, so you don’t have to explicitly construct an “eddy_cuda
” softlink). I also now have mechanisms for catching failed command executions and allowing the script to continue. So I wouldn’t be against modifying dwipreproc
to use the CUDA version by default if it can be found, if that would lead to less user issues / confusion. Thoughts?
This … still returns UnicodeDecodeError: ‘utf8’ codec can’t decode byte 0x9e in position 1: invalid start byte
I’m trying to duplicate your use case as a way for me to simultaneously investigate the UTF-8 encoding issue. The only insight I’ve had so far has been in certain circumstances where the CUDA version of eddy
generates a segmentation fault: the command outputs text relating to the memory areas implicated, but somewhere in that text is raw binary data that results in invalid codes if interpreted as UTF-8. Unfortunately this is not reproducible, which is always the first step in diagnosing and fixing faults.
… I’m thinking my best option may be to wait it out. Although, this may not solve the unicode issue…
Given this has cropped up a number of times now, the MRtrix3 update won’t be pushed out without some solution to the Unicode issue. Worst case scenario, terminal text output by some commands may not appear precisely as intended; but that’s a helluva lot better than users getting unhandled Python exception messages. Just trying to generate good reproducible use cases so that I can figure out the best solution. And make sure the solution works on all 3 OS’s, both versions of Python on each, and with and without the -debug
option for each