Only do distortion correction

Forums Forums BrainSuite Diffusion Pipeline (BDP) Only do distortion correction

Viewing 7 reply threads
  • Author
    • #1877

      Dear Brainsuite experts,

      I am currently using your toolbox for distortion correction (described in Bhushan et al. 2015) on a multishell diffusion dataset.

      However, I am not interested in calculating the DTI model, as I will be using CSD tractography. Is it possible to tell the bdp command to only apply distortion correction? It would save me a lot of computational time and memory.

      Thanks in advance,


    • #1878

      Thank you for using BrainSuite.

      The short answer is no.
      If a diffusion modeling flag is not indicated then BDP will calculate tensors by default.

    • #2017

      Dear BrainSuite members,

      We are dealing with b0 distortion correction in diffusion and bold EPI images. Unfortunately we neither have the FIELDMAP acquisition nor the EPI with opposite phase encoding direction (anterior-posterior, posterior-anterior). In this context, we would like to use the toolbox for distortion correction (described in Bhushan et al. 2015) in order to correct the B0 in EPI images. However we would like to know two questions about the toolbox:

      1- Is there any incompatibility if I use the EPI corrected images (output of the BDP) in other softwares?

      2- Is possible to use the toolbox in bold EPI images? We are conducting a fMRI study and I would like to know if it is possible to correct this artifact in Bold EPI images with this toolbox.

      Thanks in advance.

      Best regards,

    • #2018

      Hey Miguel,

      1. Generally you should be fine to port it into other softwares. However, we can’t claim complete knowledge or responsibility over what is being done by other tools outside of BrainSuite so you will have to use your best judgement to figure out the right steps to take for your study.

      2. It may be possible to use our registration-based distortion correction on BOLD images as the method is based on the physics of EPI distortion. However, applying this method on BOLD images has not been properly tested or examined by BrainSuite so we can’t make any guarantees on the performance. It’s absolutely worth giving it a try. The full description of the methods can be found here: Bhushan, Chitresh, et al. “Co-registration and distortion correction of diffusion and anatomical images based on inverse contrast normalization.” Neuroimage 115 (2015): 269-280.
      You can find the source code for BDP here:
      or you can try to hack the command line tool by inputting dummy bvec and bval files, just making sure you have the right number of values to match the number of volumes in your BOLD images. Also at least one of the bvalues should equal to 0 since it the b=0 image is used as the reference image for the registration template.

      If you give it a try, please let me know how it goes by replying on this thread. Very interested!

      Good luck!

    • #2019

      Dear sychoi,

      Thank your for your reply, I tried to run the script using as input the T1 (skullstripped and bias field corrected) and a 4D image with the 246 bold volumes following (I think) your recommendations. As you said, for the bvals and bvecs files I created:

      bvals file: matrix with 3 rows and 246 columns
      bvecs file: matrix with 1 row and 246 columns

      When I ran the script everything worked fine but stopped with the following error:

      rmnlab1:bdp neucoga$ bash /Applications/BrainSuite19a/bdp/sujetos/T1_image.bfc.nii.gz –tensor –nii /Applications/BrainSuite19a/bdp/sujetos/fmri.nii.gz -g /Applications/BrainSuite19a/bdp/sujetos/bvecs -b /Applications/BrainSuite19a/bdp/sujetos/bvals

      BDP Version: 19a (build #0074), released 2019-02-14

      Setting up dataset and inputs
      Reading input flags…

      Checking input files…

      BDP could not find any .mask.nii.gz file. BDP will use input bfc file itself as
      brain mask for registration and statistics. All voxels with intensity>0 in bfc
      will be treated as voxels in brain. You can specify a custom brain mask by using
      flag –t1-mask <maskfile_name>. The custom mask must overlay correctly with
      input BFC image in BrainSuite.

      Processing data with fileprefix:

      Co-registration and Distortion Correction
      Reading the input parameters for co-registration…
      Total physical memory found: 64.00GB

      Checking orientation information…Done
      Extracting 0-diffusion (b=0) image from input DWIs…

      DWI mask is not defined in input flags. BDP will try to estimate a (pseudo) mask
      from 0-diffusion (b=0) image. Automatic mask estimation may not be accurate in
      some sitations and can affect overall quality of co-registration. In case
      co-registration is not accurate, you can define a DWI mask by using flag
      –dwi-mask <mask_filename>. The mask can be generated and hand edited in
      BrainSuite interface. This mask would be used only for registration purposes
      (and not for statistics computation).
      Saved (pseudo) masks: /Applications/BrainSuite19a/bdp/sujetos/T1_image.dwi.RAS.mask.nii.gz

      Starting Registration based distortion Correction…
      Loading data…

      Starting rigid registration of input images…
      Reading input data…
      Setting/generating masks…
      Matching centroids (approx. align)…Warning: Matrix is singular to working precision.
      > In register_files_affine (line 304)
      In EPI_correct_files_registration_INVERSION (line 109)
      In coregister_diffusion_mprage_pipeline (line 219)
      In BrainSuite_Diffusion_pipeline (line 26)
      Warning: Matrix is singular to working precision.
      > In register_files_affine (line 305)
      In EPI_correct_files_registration_INVERSION (line 109)
      In coregister_diffusion_mprage_pipeline (line 219)
      In BrainSuite_Diffusion_pipeline (line 26)

      Matching resolution of the images…Error using eig
      Input to EIG must not contain NaN or Inf.

      Error in get_original_grid_data (line 44)

      Error in register_files_affine (line 313)

      Error in EPI_correct_files_registration_INVERSION (line 109)

      Error in coregister_diffusion_mprage_pipeline (line 219)

      Error in BrainSuite_Diffusion_pipeline (line 26)


      What could be the error? I have installed the Matlab 2015b runtime…

      Thanks for your help.

      Best regards,

    • #2021

      Dear sychoi,

      I have successfully run the distortion correction on the BOLD images. The error was that the bvals and bvecs matrices (bvals: 3×246 and bvecs: 1×246) had to have only a zero in the first column and different values to 0 in the rest. However, at this moment I have two important questions:

      1- Will it have any effect on the image if there are values other than zero in the rest of the columns? I used the value 1000. I think that this will not be a problem because b=0 will be used as the reference image. That’s right?

      2. I would like to do the fMRI analysis in SPM12. In which preprocessing step should I include the EPI distortion correction with brainsuite? Maybe after realignment for motion correction? Pleas any insight about this would be very appreciated. This would be my pipeline

      – Slice timing
      – Realign: Estimate and Reslice
      – Coregister: Estimate
      – Segment
      – Dartel: create templates
      – Dartel: Normalise to MNI structural scans.
      – Dartel: Normalise to MNI functional scans.

    • #2032

      Dear Brain Suit experts

      I’m a beginner in DWI data preprocessing. I am interested in performing Registration-based distortion correction. I managed to perform this step correctly but would like to know if the Bvecs for the resulting image are altered, if so, how could I know the new values associated with the nifti output.

      Thanks in advance.

      best regards

    • #2878

      Dear experts,

      It is my first time using BrainSuite. I would like to use the Registration-based distortion correction in my neonatal data (T1w + dMRI). I believe I would have to input everything manually (especially the masks, as the standard methods don’t work with this data). Could you provide me some advice about how to launc the script and the correct flags to use? Thanks in advance.

      Best regards,


Viewing 7 reply threads
  • You must be logged in to reply to this topic.