I have a question regarding distortion correction for single shell DTI data that don’t have A-P, P-A acquisition (most of time in the clinic).
To correct for the distortion, I am attempting to use antsRegistration to align the B0 to the T2w MRI (rigidly registered to the B0 first) while constraining the deformation only in the A-P direction.
For this type of process, I suppose it should come after eddy correction. However, since eddy correction also models movements in diffusion data, should the registration-based distortion correction only considers the phase-encoding direction?
From my current results, it feels like without the constrain, the alignment is better.
To correct for the distortion, I am attempting to use antsRegistration to align the B0 to the T2w MRI (rigidly registered to the B0 first) while constraining the deformation only in the A-P direction.
For this type of process, I suppose it should come after eddy correction. However, since eddy correction also models movements in diffusion data, should the registration-based distortion correction only considers the phase-encoding direction?
I think all of this is correct, you should constrain your registration to the phase encoding direction only.
Recently I came across a dataset with the same characteristics and I did a different approach that give me better results. What I did was the following:
First, I corrected the T2w and the B0 for bias field inhomogeinities: N4BiasFieldCorrection -d 3 -i ID_T2w.nii.gz -x ID_T2w_bet_mask.nii.gz -b [100,3] -c [1000,0.0] -s 4 -o ID_T2w_bias_corrected.nii.gz -v 1 (the same for the B0), and then rigidly register the T2w to the B0.
Then I used the following command: mrhistmatch -mask_input ID_T2w2dwi_mask.nii.gz -mask_target ID_bet_mask.nii.gz nonlinear ID_T2w2dwi_skull.nii.gz ID_mean_bzero_ALL_bias_corrected.nii.gz ID_T2w2dwi_hist.nii.gz. This gives similar contrast to both images. After this I concatenated the images, putting the B0 first.
The concatenated images were used with topup: topup --imain=ID_topup_input.nii.gz --datain=topup_datain.txt --out=ID_field --fout=ADULT_field_map --config=/usr/share/fsl/5.0/etc/flirtsch/b02b0.cnf --iout=ID_topupcorrected_B0s.nii.gz the topup_datain.txt was:
0 1 0 0.020299478
0 1 0 0.0.00000001
You only need to replace 0.020299478 for your readout time
Finally, I use that field in eddy: eddy_cuda7.5 --imain=ID_dwi_den.nii.gz --mask=ID_B0_topupcorrected_bet_mask --acqp=eddy_config.txt --index=eddy_indices.txt --bvecs=ID_dwi.bvec --bvals=ID_dwi.bval --repol --topup=ID_field --out=ID-eddy --data_is_shelled --cnr_maps --residuals --very_verbose
I feel that with eddy correction, images have been moved.
Registration-based distortion correction should consider deformation in all three axis after eddy. Wondering if I can get some opinions on this thought…
I’ve been frustrated by the absence of robust solutions to this issue for some time.
I was recently made aware of this approach. While I’ve not yet had the chance to try it myself, the theory makes a hell of a lot of sense to me, so I have no reservations suggesting it in the hope of hearing community feedback.