Dear Antoinette,
> I have successfully managed to use topup followed by applytopup on my diffusion-weighted images. I have 61 images acquired in one phase-encoding direction and 61 images acquired in the opposite phase encoding direction (the first 6 of each are B0). However, I am now attempting to use eddy after topup, rather than applytopup (am I correct in thinking that I will not/should not then need to use applytopup after this?) and am running into problems.
Yes, that is correct.
>
> Currently the two acquisitions are in separate datafiles, but I could of course merge them into one file with 122 images. My acqparams.txt file has two rows:
> 0 1 0 1
> 0 -1 0 1
> and this works well in applytopup, where I use the following command:
> applytopup --imain=DTI1.nii.gz,DTI2.nii.gz --datain=acqparams.txt --inindex=1,2 --topup=topup_results --out=corrected_DTI
>
> When I similarly put in both acquisitions, separated by a comma, into the --imain of eddy, using the same acqparams.txt but now using an index.txt file which has 61 *1's and 61*2's I get the following error:
> Image Exception : #22 :: ERROR: Could not open image DTI1.nii.gz,DTI2
> libc++abi.dylib: terminate called throwing an exception
> Abort trap: 6
That is correct, you need to have them in the same file.
>
> I assume then that eddy does not like me to input both acquisitions. I then tried merging the two acquisitions in time, such that I now have one file with 122 images. My acqparams.txt remains as above and my index.txt file again has 61 *1's followed by 61*2's. I also merged my two bvecs and bvals files such that each row now has 122 values. I get the following error:
> eddy: msg=AcqPara::AcqPara: Unrealistic read-out time
> libc++abi.dylib: terminate called throwing an exception
> Abort trap: 6
I know what is going on. Eddy (which is written a little later than topup) is a little more "clever" in its error checking. A "realistic" read-out time is ~50-100ms (and eddy accepts 10-200ms). I think it is a "good" error check, since it catches people when they happen to make a mistake. The problem, and I am sorry for that, is that I haven't gotten round to putting the same checks in topup yet.
So, if you happened to put 1 (1000ms) in the acqparams.txt file (which I believe I might even have recommended in the past when people haven't known their read-out times) eddy will not let you use that.
The best is to use your actual read-out time. If you don't know that, the second best at this stage is to change the last column to 0.1 (100ms) and rerun topup and after that eddy. If you absolutely haven't got time to rerun topup I _think_ it will work to change it to 0.1 AND use fslmaths to multiply the topup image output by 10.
For peace of mind I would rerun topup.
Good luck Jesper
>
>
> I also get the same error if I try to eddy correct just the first acquisition, where the index.txt file includes only 61* 1's.
>
> Does anyone know what I might be doing wrong?
>
> Many thanks,
> Antoinette
|