Distortion correction with single shell data

Hi MRtrix community,

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.

Thanks!

Hi,

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

The results look really good:
Before:


After:

I hope this helps.

Best regards,

Manuel

1 Like

Thanks a lot!
I will give this a try.

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…

Thanks!

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.

Rob

2 Likes