Showing 1-75 of 78 topics
Display:
Results per page:

1   2   Next >
  • Jan 29, 2024  12:01 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
    Movement parameters extraction

    Dear DTIPrep developers, 


     Thank you for this extremely useful tool. I would like to extract motion parameters from the Eddy currents and motion artifact detection step. In the QCReport.txt file, there is a list of parameters for every gradient, with 12 parameters for each gradient. I assume they are derived from the affine transformation matrix, but I cannot figure out the correct order of these parameters and which one is which.


    I guess that the first, the the 5th and the 9th are the scaling factor (x,y,z) as they are close to one, but I might be wrong. 


    Thus, are the others, x,y and z for rotation, translation, and...?


    Could you please clarify this simple question?


    ie:



    • Parameters: [0.9940250406542067, 0.005037731155539504, -0.0044764617213477525, -0.003336387327671193, 0.9906213568620513, -0.001621771668964308, 0.002073337608179639, 0.0009743273562393963, 0.9919877206204243, -0.1478211258441959, -0.023645834340927947, 0.06009304791091765]


     


    Thanks in advance


     


    Dani Bergé


    Hospital del Mar Research Institute


    Barcelona, Spain

    • Jan 29, 2024  03:01 PM | Martin Styner
      RE: Movement parameters extraction

      The parameters are the ones for an ITK affine transform : https://itk.org/Doxygen/html/classitk_1_...


      Best


      Martin


      Originally posted by Daniel Berge:



      Dear DTIPrep developers, 


       Thank you for this extremely useful tool. I would like to extract motion parameters from the Eddy currents and motion artifact detection step. In the QCReport.txt file, there is a list of parameters for every gradient, with 12 parameters for each gradient. I assume they are derived from the affine transformation matrix, but I cannot figure out the correct order of these parameters and which one is which.


      I guess that the first, the the 5th and the 9th are the scaling factor (x,y,z) as they are close to one, but I might be wrong. 


      Thus, are the others, x,y and z for rotation, translation, and...?


      Could you please clarify this simple question?


      ie:



      • Parameters: [0.9940250406542067, 0.005037731155539504, -0.0044764617213477525, -0.003336387327671193, 0.9906213568620513, -0.001621771668964308, 0.002073337608179639, 0.0009743273562393963, 0.9919877206204243, -0.1478211258441959, -0.023645834340927947, 0.06009304791091765]


       


      Thanks in advance


       


      Dani Bergé


      Hospital del Mar Research Institute


      Barcelona, Spain



       

  • Jan 29, 2024  02:01 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
    Interlace Correlation values not saving in QCReport.txt

    Dear DTIPrep developers, 


      I have noticed that, as compared to previous versions, even when specifying Report type "2", the interlace correlation values are not saved in the txt file anymore when I run DTIPrep from my script.


     Surprisingly, if I run exactly the same protocol from de DTIPrep gui, the generated Report file does contain these correlation values.


     


    Any keys about what I might be doing wrong would be much appreciated.


     


    Thanks in advance.


     


    Dani Bergé


    Hospital del Mar Research Institute


    Barcelona, Spain

    • Jan 29, 2024  03:01 PM | Martin Styner
      RE: Interlace Correlation values not saving in QCReport.txt

      Hi Dani


      This is likely a bug (there are some differences between the UI and non-UI run of protocols). An alternative is to capture also the terminal output (e.g. via redirection into a file), as the interlace correlation values should be reported on the terminal output in a non-UI run.


      Also, you could consider moving to the new/next-gen version called dmriprep (which is part of dtiplayground): https://github.com/NIRALUser/DTIPlaygrou...


      That version stores the correlation values of the interlace check in the computations/checks.yml output (the UI and non-UI runs are identical in dmriprep as the UI calls the non-UI run)


      Best


      Martin


      Originally posted by Daniel Berge:



      Dear DTIPrep developers, 


        I have noticed that, as compared to previous versions, even when specifying Report type "2", the interlace correlation values are not saved in the txt file anymore when I run DTIPrep from my script.


       Surprisingly, if I run exactly the same protocol from de DTIPrep gui, the generated Report file does contain these correlation values.


      Any keys about what I might be doing wrong would be much appreciated.


      Thanks in advance.


      Dani Bergé


      Hospital del Mar Research Institute


      Barcelona, Spain



       

  • Jun 26, 2023  09:06 PM | Jon Haitz Legarreta Gorroño
    Missing library when trying to launch DTIPrep 1.2.11 on Ubuntu 22.04

    Hi,


    I am trying to use DTIPrep on an Ubuntu 22.04 machine.


    I downloaded the DTIPrep-1.2.11.tar.gz file corresponding to the DTIPrep1.2.11_linux64 release from: 
    https://www.nitrc.org/frs/?group_id=283

    After decompressing the file to a folder on my choice, when calling the DTIPrep executable in the bin folder, the process exits without launching the software with the following error:
    $ ./DTIPrep
    ./DTIPrep: error while loading shared libraries: libQtXml.so.4: cannot open shared object file: No such file or directory


    The library is not found in the lib folder. Am I missing some step? If not, can the library be bundled with the compressed file and the issue be fixed, please?

    Thanks for your work

    • Jun 27, 2023  03:06 PM | Sang Kyoon Park - Department of Psychiatry at UNC Chapel Hill
      RE: Missing library when trying to launch DTIPrep 1.2.11 on Ubuntu 22.04

       


      The library issue can be resolved by installing the library, pls contact with your system administrator. 


      If it's your own machine under your control, that error came from QT XML library. You can try after installing the library, DTIPrep doesn't automatically build or install QT libraries.


      You can refer to below site for your reference.


      https://ubuntuhandbook.org/index.php/2020/07/install-qt4-ubuntu-20-04/


      Thanks


       


      SK


       

      • Jun 28, 2023  02:06 PM | Jon Haitz Legarreta Gorroño
        RE: Missing library when trying to launch DTIPrep 1.2.11 on Ubuntu 22.04

        Hi,

        > https://ubuntuhandbook.org/index.php/202...

        Had tried following the instructions this morning to no avail; have just retried, probably more carefully, and fixed the problem. For the records, after adding the package archive for Ubuntu 22.04, it sufficed to install qt4-default.


        Thanks for the support SK.

  • Mar 13, 2023  07:03 PM | David Stephenson
    Using QC xml interlace and gradient angle/translation values in determining protocol thresholds
    Hello Martin,

    We are currently exploring DTIPrep for QA/QC of our research diffusion data, and had a question about the interpretation of the gradient specific angle and translation values (x/y/z) within the DTIPrep xml QC output.

    For our data, we noticed we were getting a number of excludes ('Too many gradient excludes' using the default 20%) where the same comparison in FSL using eddy_quad showed a relatively clean image.

    In looking at the xml QC output file using the DTIPrep GUI, we noticed within the Gradient_check FAIL section, the dropdown list of angle/translation xyz would be color coded green and red. I assume that green means that it passed the rotation/translation tolerance in the protocol file, and red means that it was above this tolerance threshold.

    However, when we plotted these values within angle/translation metrics (across subjects), we expected that all or most of the gradient FAIL individuals would be on the outlier tails of the distribution, but these plots indicate that, even for those where it indicates the angle/translation was beyond tolerance threshold, that the angle/translation x/y/z values are within the distribution of those individuals who passed all tolerance thresholds and had all global pass flags (i.e. More than #6, Too many bad gradients=FALSE). Plots are attached for our 12ch data gradientwise checks.

    We were going to use this information to determine what we could change/relax the gradient rotation/translation tolerances too, but given that there is not a clear relationship between gradient rotation/translation tolerance failure and outlier status relative to other subjects, how do you suggest we use our study sample to derive these thresholds?

    Let us know if you have any additional questions or require us to clarify anything.

    Thank you,

    David Stephenson

    • Mar 13, 2023  08:03 PM | Martin Styner
      RE: Using QC xml interlace and gradient angle/translation values in determining protocol thresholds
      Hi David

      The Gradient_check is run after the motion correction and looks at residual motion still present (and this is done via an alternative registration/motion correction method applied to the motion corrected data). Not fully sure, but it looks like you are looking at the recovered motion from the motion correction step?

      But, in any case, we recommend to disable the gradient_check step, as it is not robust enough, in particular for high b-value DWI volumes (which we have in most of our sequences). So, I would simply skip that step of DTIPrep (while keeping the slice and interlace checks). 

      In the next-gen DTIPrep (called dmriprep, which is part of dtiplayground https://dtiplayground.readthedocs.io/en/... , it is still under beta release, and combines the processing of DTIPrep and FSL and more), the gradient check is no longer available for the same reason.

      Best
      Martin

      Originally posted by David Stephenson:
      Hello Martin,

      We are currently exploring DTIPrep for QA/QC of our research diffusion data, and had a question about the interpretation of the gradient specific angle and translation values (x/y/z) within the DTIPrep xml QC output.

      For our data, we noticed we were getting a number of excludes ('Too many gradient excludes' using the default 20%) where the same comparison in FSL using eddy_quad showed a relatively clean image.

      In looking at the xml QC output file using the DTIPrep GUI, we noticed within the Gradient_check FAIL section, the dropdown list of angle/translation xyz would be color coded green and red. I assume that green means that it passed the rotation/translation tolerance in the protocol file, and red means that it was above this tolerance threshold.

      However, when we plotted these values within angle/translation metrics (across subjects), we expected that all or most of the gradient FAIL individuals would be on the outlier tails of the distribution, but these plots indicate that, even for those where it indicates the angle/translation was beyond tolerance threshold, that the angle/translation x/y/z values are within the distribution of those individuals who passed all tolerance thresholds and had all global pass flags (i.e. More than #6, Too many bad gradients=FALSE). Plots are attached for our 12ch data gradientwise checks.

      We were going to use this information to determine what we could change/relax the gradient rotation/translation tolerances too, but given that there is not a clear relationship between gradient rotation/translation tolerance failure and outlier status relative to other subjects, how do you suggest we use our study sample to derive these thresholds?

      Let us know if you have any additional questions or require us to clarify anything.

      Thank you,

      David Stephenson

      • Mar 22, 2023  07:03 PM | David Stephenson
        RE: Using QC xml interlace and gradient angle/translation values in determining protocol thresholds
        Noted. Thank you Martin. 



        Originally posted by Martin Styner:
        Hi David

        The Gradient_check is run after the motion correction and looks at residual motion still present (and this is done via an alternative registration/motion correction method applied to the motion corrected data). Not fully sure, but it looks like you are looking at the recovered motion from the motion correction step?

        But, in any case, we recommend to disable the gradient_check step, as it is not robust enough, in particular for high b-value DWI volumes (which we have in most of our sequences). So, I would simply skip that step of DTIPrep (while keeping the slice and interlace checks). 

        In the next-gen DTIPrep (called dmriprep, which is part of dtiplayground https://dtiplayground.readthedocs.io/en/... , it is still under beta release, and combines the processing of DTIPrep and FSL and more), the gradient check is no longer available for the same reason.

        Best
        Martin

        Originally posted by David Stephenson:
        Hello Martin,

        We are currently exploring DTIPrep for QA/QC of our research diffusion data, and had a question about the interpretation of the gradient specific angle and translation values (x/y/z) within the DTIPrep xml QC output.

        For our data, we noticed we were getting a number of excludes ('Too many gradient excludes' using the default 20%) where the same comparison in FSL using eddy_quad showed a relatively clean image.

        In looking at the xml QC output file using the DTIPrep GUI, we noticed within the Gradient_check FAIL section, the dropdown list of angle/translation xyz would be color coded green and red. I assume that green means that it passed the rotation/translation tolerance in the protocol file, and red means that it was above this tolerance threshold.

        However, when we plotted these values within angle/translation metrics (across subjects), we expected that all or most of the gradient FAIL individuals would be on the outlier tails of the distribution, but these plots indicate that, even for those where it indicates the angle/translation was beyond tolerance threshold, that the angle/translation x/y/z values are within the distribution of those individuals who passed all tolerance thresholds and had all global pass flags (i.e. More than #6, Too many bad gradients=FALSE). Plots are attached for our 12ch data gradientwise checks.

        We were going to use this information to determine what we could change/relax the gradient rotation/translation tolerances too, but given that there is not a clear relationship between gradient rotation/translation tolerance failure and outlier status relative to other subjects, how do you suggest we use our study sample to derive these thresholds?

        Let us know if you have any additional questions or require us to clarify anything.

        Thank you,

        David Stephenson

  • Dec 7, 2022  09:12 AM | vivien chew
    DTIPrep Installation in Ubuntu
    Hello, I have followed usual steps of git cloning the repo:

    However, when running the 'make' command, I was faced with this issue:

    [ 8%] Built target zlib
    [ 8%] Performing configure step for ''VTK''
    -- Group StandAlone modules: vtkChartsCore;vtkCommonComputationalGeometry;vtkCommonCore;vtkCommonDataModel;vtkCommonExecutionModel;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkDomainsChemistry;vtkFiltersAMR;vtkFiltersCore;vtkFiltersExtraction;vtkFiltersFlowPaths;vtkFiltersGeneral;vtkFiltersGeneric;vtkFiltersGeometry;vtkFiltersHybrid;vtkFiltersHyperTree;vtkFiltersImaging;vtkFiltersModeling;vtkFiltersParallel;vtkFiltersParallelImaging;vtkFiltersPoints;vtkFiltersProgrammable;vtkFiltersSMP;vtkFiltersSelection;vtkFiltersSources;vtkFiltersStatistics;vtkFiltersTexture;vtkFiltersVerdict;vtkIOAMR;vtkIOCore;vtkIOEnSight;vtkIOExodus;vtkIOGeometry;vtkIOImage;vtkIOImport;vtkIOInfovis;vtkIOLSDyna;vtkIOLegacy;vtkIOMINC;vtkIOMovie;vtkIONetCDF;vtkIOPLY;vtkIOParallel;vtkIOParallelXML;vtkIOSQL;vtkIOTecplotTable;vtkIOVideo;vtkIOXML;vtkIOXMLParser;vtkImagingColor;vtkImagingCore;vtkImagingFourier;vtkImagingGeneral;vtkImagingHybrid;vtkImagingMath;vtkImagingMorphological;vtkImagingSources;vtkImagingStatistics;vtkImagingStencil;vtkInfovisCore;vtkInfovisLayout;vtkParallelCore
    -- Group Imaging modules: vtkFiltersImaging;vtkImagingColor;vtkImagingFourier;vtkImagingGeneral;vtkImagingHybrid;vtkImagingMath;vtkImagingMorphological;vtkImagingSources;vtkImagingStatistics;vtkImagingStencil;vtkInteractionImage;vtkRenderingImage
    -- Group MPI modules: vtkFiltersParallelDIY2;vtkFiltersParallelGeometry;vtkFiltersParallelMPI;vtkIOMPIImage;vtkIOMPIParallel;vtkIOParallelNetCDF;vtkParallelMPI;vtkdiy2
    -- Group Qt modules: vtkGUISupportQt;vtkGUISupportQtOpenGL;vtkGUISupportQtSQL;vtkRenderingQt;vtkViewsQt
    -- Group Rendering modules: vtkGeovisCore;vtkIOExport;vtkInteractionImage;vtkInteractionStyle;vtkInteractionWidgets;vtkRenderingAnnotation;vtkRenderingContext2D;vtkRenderingCore;vtkRenderingFreeType;vtkRenderingImage;vtkRenderingLIC;vtkRenderingLOD;vtkRenderingLabel;vtkRenderingVolume;vtkViewsContext2D;vtkViewsCore;vtkViewsInfovis
    -- Group Tk modules: vtkRenderingTk
    -- Group Views modules: vtkViewsContext2D;vtkViewsGeovis
    -- Group Web modules: vtkWebCore;vtkWebPython;vtkWebGLExporter
    -- Backend OpenGL2 modules: vtkDomainsChemistryOpenGL2;vtkIOExportOpenGL2;vtkImagingOpenGL2;vtkRenderingContextOpenGL2;vtkRenderingGL2PSOpenGL2;vtkRenderingLICOpenGL2;vtkRenderingOculus;vtkRenderingOpenGL2;vtkRenderingOpenVR;vtkRenderingVolumeOpenGL2
    -- Backend OpenGL modules: vtkIOExportOpenGL;vtkRenderingContextOpenGL;vtkRenderingGL2PS;vtkRenderingLIC;vtkRenderingOpenGL;vtkRenderingVolumeOpenGL
    -- Enabling modules for OpenGL.
    -- Enabled 112 modules:
    .
    .
    .
    -- Building tiff version 4.0.6
    -- libtiff library version 5.2.4
    -- CMAKE_HOST_SYSTEM_PROCESSOR set to x86_64
    -- HOST_FILLORDER set to FILLORDER_LSB2MSB
    -- HOST_BIG_ENDIAN set to 0
    -- HAVE_IEEEFP set to 1
    CMake Error at Rendering/OpenGL/CMakeLists.txt:319 (message):
    X11_Xt_LIB could not be found. Required for VTK X lib.
    -- Configuring incomplete, errors occurred!
    See also "/home/vivien/DTIPrep-build/VTK-build/CMakeFiles/CMakeOutput.log".
    See also "/home/vivien/DTIPrep-build/VTK-build/CMakeFiles/CMakeError.log".
    make[2]: *** [CMakeFiles/VTK.dir/build.make:108: VTK-prefix/src/VTK-stamp/VTK-configure] Error 1
    make[1]: *** [CMakeFiles/Makefile2:1042: CMakeFiles/VTK.dir/all] Error 2
    make: *** [Makefile:95: all] Error 2

    May I know how to proceed with this to launch the GUI?

    • Dec 7, 2022  12:12 PM | Martin Styner
      RE: DTIPrep Installation in Ubuntu
      This error is from the compilation process, pretty early, during the compilation of VTK (a visualization library needed by DTIPrep during compilation).
      Not sure why, but a basic X library is missing on your system.

      Did you try the linux download version first?

      Best
      Martin

      Originally posted by vivien chew:
      Hello, I have followed usual steps of git cloning the repo:

      However, when running the 'make' command, I was faced with this issue:

      [ 8%] Built target zlib
      [ 8%] Performing configure step for ''VTK''
      -- Group StandAlone modules: vtkChartsCore;vtkCommonComputationalGeometry;vtkCommonCore;vtkCommonDataModel;vtkCommonExecutionModel;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkDomainsChemistry;vtkFiltersAMR;vtkFiltersCore;vtkFiltersExtraction;vtkFiltersFlowPaths;vtkFiltersGeneral;vtkFiltersGeneric;vtkFiltersGeometry;vtkFiltersHybrid;vtkFiltersHyperTree;vtkFiltersImaging;vtkFiltersModeling;vtkFiltersParallel;vtkFiltersParallelImaging;vtkFiltersPoints;vtkFiltersProgrammable;vtkFiltersSMP;vtkFiltersSelection;vtkFiltersSources;vtkFiltersStatistics;vtkFiltersTexture;vtkFiltersVerdict;vtkIOAMR;vtkIOCore;vtkIOEnSight;vtkIOExodus;vtkIOGeometry;vtkIOImage;vtkIOImport;vtkIOInfovis;vtkIOLSDyna;vtkIOLegacy;vtkIOMINC;vtkIOMovie;vtkIONetCDF;vtkIOPLY;vtkIOParallel;vtkIOParallelXML;vtkIOSQL;vtkIOTecplotTable;vtkIOVideo;vtkIOXML;vtkIOXMLParser;vtkImagingColor;vtkImagingCore;vtkImagingFourier;vtkImagingGeneral;vtkImagingHybrid;vtkImagingMath;vtkImagingMorphological;vtkImagingSources;vtkImagingStatistics;vtkImagingStencil;vtkInfovisCore;vtkInfovisLayout;vtkParallelCore
      -- Group Imaging modules: vtkFiltersImaging;vtkImagingColor;vtkImagingFourier;vtkImagingGeneral;vtkImagingHybrid;vtkImagingMath;vtkImagingMorphological;vtkImagingSources;vtkImagingStatistics;vtkImagingStencil;vtkInteractionImage;vtkRenderingImage
      -- Group MPI modules: vtkFiltersParallelDIY2;vtkFiltersParallelGeometry;vtkFiltersParallelMPI;vtkIOMPIImage;vtkIOMPIParallel;vtkIOParallelNetCDF;vtkParallelMPI;vtkdiy2
      -- Group Qt modules: vtkGUISupportQt;vtkGUISupportQtOpenGL;vtkGUISupportQtSQL;vtkRenderingQt;vtkViewsQt
      -- Group Rendering modules: vtkGeovisCore;vtkIOExport;vtkInteractionImage;vtkInteractionStyle;vtkInteractionWidgets;vtkRenderingAnnotation;vtkRenderingContext2D;vtkRenderingCore;vtkRenderingFreeType;vtkRenderingImage;vtkRenderingLIC;vtkRenderingLOD;vtkRenderingLabel;vtkRenderingVolume;vtkViewsContext2D;vtkViewsCore;vtkViewsInfovis
      -- Group Tk modules: vtkRenderingTk
      -- Group Views modules: vtkViewsContext2D;vtkViewsGeovis
      -- Group Web modules: vtkWebCore;vtkWebPython;vtkWebGLExporter
      -- Backend OpenGL2 modules: vtkDomainsChemistryOpenGL2;vtkIOExportOpenGL2;vtkImagingOpenGL2;vtkRenderingContextOpenGL2;vtkRenderingGL2PSOpenGL2;vtkRenderingLICOpenGL2;vtkRenderingOculus;vtkRenderingOpenGL2;vtkRenderingOpenVR;vtkRenderingVolumeOpenGL2
      -- Backend OpenGL modules: vtkIOExportOpenGL;vtkRenderingContextOpenGL;vtkRenderingGL2PS;vtkRenderingLIC;vtkRenderingOpenGL;vtkRenderingVolumeOpenGL
      -- Enabling modules for OpenGL.
      -- Enabled 112 modules:
      .
      .
      .
      -- Building tiff version 4.0.6
      -- libtiff library version 5.2.4
      -- CMAKE_HOST_SYSTEM_PROCESSOR set to x86_64
      -- HOST_FILLORDER set to FILLORDER_LSB2MSB
      -- HOST_BIG_ENDIAN set to 0
      -- HAVE_IEEEFP set to 1
      CMake Error at Rendering/OpenGL/CMakeLists.txt:319 (message):
      X11_Xt_LIB could not be found. Required for VTK X lib.
      -- Configuring incomplete, errors occurred!
      See also "/home/vivien/DTIPrep-build/VTK-build/CMakeFiles/CMakeOutput.log".
      See also "/home/vivien/DTIPrep-build/VTK-build/CMakeFiles/CMakeError.log".
      make[2]: *** [CMakeFiles/VTK.dir/build.make:108: VTK-prefix/src/VTK-stamp/VTK-configure] Error 1
      make[1]: *** [CMakeFiles/Makefile2:1042: CMakeFiles/VTK.dir/all] Error 2
      make: *** [Makefile:95: all] Error 2

      May I know how to proceed with this to launch the GUI?

      Jan 5, 2023  05:01 AM | Michael Green
      RE: DTIPrep Installation in Ubuntu
      Hi there,

      I've also got an issue with an Ubuntu installation.
      It's giving me this error:

      ERROR: Cannot install dtiplayground==0.4.5, dtiplayground==0.5.0 and dtiplayground==0.5.2 because these package versions have conflicting dependencies.

      The conflict is caused by:
      dtiplayground 0.5.2 depends on antspyx==0.3.2
      dtiplayground 0.5.0 depends on antspyx==0.3.2
      dtiplayground 0.4.5 depends on antspyx==0.3.2
      To fix this you could try to:
      1. loosen the range of package versions you've specified
      2. remove package versions to allow pip attempt to solve the dependency conflict

      Any help would be fantastic, thanks. Michael

  • Nov 9, 2022  10:11 AM | batel
    Subject-Specific Changes in dti
    Hi everyone,

    Is there a way to detect Subject-Specific Changes with dtiprep?

    Thanks,
    Batel

    • Nov 9, 2022  04:11 PM | Martin Styner
      RE: Subject-Specific Changes in dti
      Originally posted by batel:
      Hi everyone,

      Is there a way to detect Subject-Specific Changes with dtiprep?

      Thanks,
      Batel
      Hi Batel
      Not sure I fully understand your question, dtiprep is purely doing preprocessing of diffusion MRI data. It does not provide an analysis, so it will not provide information on changes vs other datasets. In addition to preprocessing the data, it provides motion and data quality information for each scan.

      Martin

  • Nov 6, 2022  11:11 AM | batel
    B-matrix rotation
    Hi everyone,

    I am trying to do some comparisons between DTIprep and FSL. Does some one know if the bvec are already rotated after eddy current correction at dtiprep and at fsl?

    Thanks alot,
    Batel

    • Nov 6, 2022  12:11 PM | Martin Styner
      RE: B-matrix rotation
      Originally posted by batel:
      Hi everyone,

      I am trying to do some comparisons between DTIprep and FSL. Does some one know if the bvec are already rotated after eddy current correction at dtiprep and at fsl?

      Thanks alot,
      Batel
      Yes, bvecs are always rotated after motion/eddy current correction (as in FSL)
      Martin

  • Aug 16, 2022  12:08 PM | Mollie Neason
    SliceWiseCheck error
    Hello,

    When running DTIPrep the Image and Diffusion Check run ok, but when it comes to SliceWiseCheck DTIPrep shuts down and I recieve the error "Segmentation fault (core dumped)" in the command line.

    Any insight into this would be very helpful. Unsure if it is a fault on my end with the DTIPrep installation or with my scans.

    Many thanks,
    Mollie

    • Aug 17, 2022  01:08 PM | Martin Styner
      RE: SliceWiseCheck error
      Hi Mollie

      Not sure, as Seg faults do not provide a lot information. As the image and diffusion check ran ok, it looks like that the header of your diffusion image is as expected, but possibly the data might not be? Does this happen with all images that you run? Maybe try some test datasets, such as the one here: https://www.na-mic.org/w/img_auth.php/e/...

      Best
      Martin

      Originally posted by Mollie Neason:
      Hello,

      When running DTIPrep the Image and Diffusion Check run ok, but when it comes to SliceWiseCheck DTIPrep shuts down and I recieve the error "Segmentation fault (core dumped)" in the command line.

      Any insight into this would be very helpful. Unsure if it is a fault on my end with the DTIPrep installation or with my scans.

      Many thanks,
      Mollie

  • Jun 21, 2022  03:06 PM | Emma Golden
    Installing DTIPrep
    Hello,

    Can someone tell me how to install DTIPrep? I'm using an HP and downloaded one of the linux versions. I got the .tar file but I don't understand how to launch the application. Any advice is appreciated. Thank you!

    - Emma

    • Jun 21, 2022  06:06 PM | Martin Styner
      RE: Installing DTIPrep
      Hi Emma
      Use the 1.2.11 download in the download section. Unpack the repository (gtar -xzf in the terminal), and then in the bin folder you find the DTIPrep executable that you should be able to run.

      You may need to add the lib folder to your LD_LIBRARY_PATH variable

      Martin

      • Jul 19, 2022  03:07 PM | Emma Golden
        RE: Installing DTIPrep
        Hello,

        When I try to run the following line in my command window, I get an error: start C:\Users\ch228083\Desktop\DTIPrep-1.2.11\bin\DTIPrep
        The error says "This file does not have an app associated with it for performing this action. Please install an app or, if one is already installed, create an association in the Default Apps Settings page."

        I'm not sure how to resolve this issue.

        Emma

        • Jul 20, 2022  06:07 PM | Martin Styner
          RE: Installing DTIPrep
          Originally posted by Emma Golden:
          Hello,

          When I try to run the following line in my command window, I get an error: start C:\Users\ch228083\Desktop\DTIPrep-1.2.11\bin\DTIPrep
          The error says "This file does not have an app associated with it for performing this action. Please install an app or, if one is already installed, create an association in the Default Apps Settings page."

          I'm not sure how to resolve this issue.

          Emma

          Hi Emma
          Are you trying to run DTIPrep in Windows (which would not work, as we do not have a compilation for any Windows system)?
          Martin

  • May 26, 2022  03:05 AM | Raúl Gonzalez - Adolfo Ibañez University
    tutorial DTIprep on docker
    Hello, someone have a tutorial of DTIprep with docker or other tutorial for automatic analysis
    Best regards
    Raul

    • May 27, 2022  01:05 PM | Martin Styner
      RE: tutorial DTIprep on docker
      There is no docker (or plan to create docker, as we are working on the next-gen DTiprep called dmriprep, which will be available in dockerized form).

      There is a tutorial in the document section

      There is also a more general diffusion QC video tutorial available on my lab's document page (lesson 3 of the diffusion tutorials):
      https://www.med.unc.edu/psych/research/n...

      Martin


      Originally posted by Raúl González-Gómez:
      Hello, someone have a tutorial of DTIprep with docker or other tutorial for automatic analysis
      Best regards
      Raul

  • Apr 19, 2022  07:04 PM | Alicia Hilderley
    Issues with poor quality scans
    I have noticed that DTIprep is less sensitive for poor quality scans (e.g., >30% bad volumes). Volumes that have visible artifacts are not flagged as bad during slice-wise checking. I am using default parameters. Should I adjust any parameters?

    Thank you,
    Alicia

    • Apr 20, 2022  05:04 PM | Martin Styner
      RE: Issues with poor quality scans
      Originally posted by Alicia Hilderley:
      I have noticed that DTIprep is less sensitive for poor quality scans (e.g., >30% bad volumes). Volumes that have visible artifacts are not flagged as bad during slice-wise checking. I am using default parameters. Should I adjust any parameters?

      Thank you,
      Alicia

      The thresholds are based on the variance in the data (e.g. the variance on inter-slice correlation) and thus adjusts to the image quality settings. But, you can adjust the thresholds in the protocol. Increasing thresholds will lead to more generous QC and reducing them will lead to more strict QC.

      I would start with the slice-checking threshold and reduce that one such that you get the desired results for your data.

      If your artifacts are more motion related and you see a slice-by-slice offset when viewing the data in a slice orthogonal to the acquisition plane, then you could also adjust the interlace thresholds


      Best
      Martin

  • Apr 4, 2022  02:04 PM | Emma Golden
    DTIPrep Extension
    Hi all,

    I'm trying to install the most recent version of DTIPrep in 3DSlicer but it doesn't show up when I search for it in Slicer extensions. It also doesn't appear under any of the modules. How do I install DTIPrep as an extension? For reference, I'm using a Mac running macOS Monterey.

    Thank you!

    • Apr 5, 2022  03:04 PM | Martin Styner
      RE: DTIPrep Extension
      Originally posted by Emma Golden:
      Hi all,

      I'm trying to install the most recent version of DTIPrep in 3DSlicer but it doesn't show up when I search for it in Slicer extensions. It also doesn't appear under any of the modules. How do I install DTIPrep as an extension? For reference, I'm using a Mac running macOS Monterey.

      Thank you!

      Hi Emily,
      DTIPrep is not disseminated via 3D Slicer extensions anymore (it was too much of a hassle to keep updating DTIprep to be compatible with newer Slicer releases). You might be able to still download it as an extension for earlier Slicer versions, but it likely is easier to just download it from here, though the Mac/Darwin version is a bit aged. In general, we recommend the linux version, downloaded from NITRC.
      Best
      Martin

  • Jan 4, 2018  11:01 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
    brain masking, skull striping
    Dear DTIPrep experts,
      I am trying to run brainmasking from the DTIPrep Pipeline modifying the defaults. It turns that braimaksing does not seem to strip skull. Using the "Slicer" flag it seems to run ok according to QCReport, but image QCed still has skull. Using any of the FSL options ends up with image math failure in the QCReport.
      Any solution? I've checked the protocol paths and everything seems to be where it should be . Usually I leave the "Brainmask_MaskedImage" field empty but I also have added a subject-specific mask in this field and it does the same.

    Thanks in advance.

    • Jan 5, 2018  04:01 PM | Martin Styner
      RE: brain masking, skull striping
      The Slicer brain masking is not the best (which is likely why there's still skull in the image,I assume that something was removed?). For the FSL option, our tool ImageMath is used. Unfortunately there are other tools that have also an ImageMath binary (e.g. ANTs or Rview), so you need to make sure that the path to DTIPrep's ImageMath folder has to be before the paths of the other tools.

      I usually use bet with IDWI

      Martin

      • Jan 18, 2018  10:01 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
        RE: brain masking, skull striping
        Hi,
          After troubleshooting some issues with the paths of the tools, it turns that brainmask does not work because he cannot find subj_IDWI.nrrd. I noticed that when I check "compute the DTI" (usually I uncheck this last step), a subj_IDWI.nrrd file is generated. Does it make sense?

         Also, when trying to do visual inspection, it only saves the changes to a subj_QCed_VC.nrrd file if the DTI tensor had previously been computed. Does that make sense also or it is just something related to my computer?

        Thanks

        Dec 11, 2019  04:12 PM | gpicci - The Pennsylvania State University
        RE: brain masking, skull striping
        Hi Martin,

        I am also having a similar issue. The rest of DTIprep runs smoothly, but I keep getting brains that are not properly skull stripped. I am getting the following error message: 


        Brain Mask

        Brain Mask FSL
        /Path/To/ImageMath
        ImageMath cannot be started. 

        Any ideas what issue this may be? Also, you mention that the ImageMath folder has to be before the paths of other tools - what do you mean by this? Does ImageMath need to be a directory above other tools?

        Thank you for your help!
        Giorgia
        Originally posted by Martin Styner:
        The Slicer brain masking is not the best (which is likely why there's still skull in the image,I assume that something was removed?). For the FSL option, our tool ImageMath is used. Unfortunately there are other tools that have also an ImageMath binary (e.g. ANTs or Rview), so you need to make sure that the path to DTIPrep's ImageMath folder has to be before the paths of the other tools.

        I usually use bet with IDWI

        Martin

        • Mar 4, 2022  03:03 AM | Yingying Wang - University of Nebraska-Lincoln
          RE: brain masking, skull striping
          same issue with brain masking. 

          FSL_bet path

          shall I set it to my fsl folder: /usr/local/fsl or bet2 folder: /usr/local/fsl/bin/bet2

          Any comments?

          • Mar 4, 2022  04:03 AM | Martin Styner
            RE: brain masking, skull striping
            Originally posted by Yingying Wang:
            same issue with brain masking. 

            FSL_bet path

            shall I set it to my fsl folder: /usr/local/fsl or bet2 folder: /usr/local/fsl/bin/bet2

            Any comments?
            to the bet2 binary and thus the second of your options

  • Nov 30, 2021  05:11 PM | Michelle Han
    DTIPrep CLI setup
    Hi, 

    I've been trying to set up the CLI for DTIPrep on OSX to write some DWI processing pipelines using DTIPrep. I've cloned into the GitHub repository and have built it (had to use "make -i" for errors in downloading ExternalData but otherwise, no errors). I see other binaries in DTIPrep-build/DTIPrepTools-install/bin but the DTIPrep itself is an app. And the DTIPrep.app contents in the bin folder, executing DTIPrep brings up the GUI. 

    Have I missed a step in the installation or am I not looking in the right place? I've included the error I was running into during installation in case that might be relevant to how the package was ultimately installed. 

    Thanks so much! 
    Michelle


    --------------
    CMake Error at /work/DTIPrep-build/BRAINSTools/CMake/ExternalData.cmake:1012 (message):
    Object MD5=94839def0264128ad7f42119a08bc66f not found at:

    file:////work/DTIPrep-build/BRAINSTools/... ("Couldn't read a file:// file")
    http://slicer.kitware.com/midas3/api/res... ("HTTP response code said error")
    http://midas3.kitware.com/midas/api/rest... ("HTTP response code said error")
    http://www.itk.org/files/ExternalData/MD... ("HTTP response code said error")
    file:////work/DTIPrep-build/BRAINSTools/... ("Couldn't read a file:// file")
    http://slicer.kitware.com/midas3/api/res... ("HTTP response code said error")
    http://midas3.kitware.com/midas/api/rest... ("HTTP response code said error")
    http://www.itk.org/files/ExternalData/MD... ("HTTP response code said error")
    Call Stack (most recent call first):
    /work/DTIPrep-build/BRAINSTools/CMake/ExternalData.cmake:1034 (_ExternalData_download_object)

    • Nov 30, 2021  06:11 PM | Martin Styner
      RE: DTIPrep CLI setup
      MacOS X generates App packages, not simple binaries. But, a binary executable is still generated as part of the package, which is located in DTIPrep.app/Contents/MacOS and is called DTIPrep. You should be able to call that DTIPrep with the usual CLI, i.e. DTIPrep.app/Contents/MacOS/DTIPrep -p myProtocol.xml -c -f myOutputFolder -w myInputDWI.nrrd

      Best
      Martin
      Originally posted by Michelle Han:
      Hi, 

      I've been trying to set up the CLI for DTIPrep on OSX to write some DWI processing pipelines using DTIPrep. I've cloned into the GitHub repository and have built it (had to use "make -i" for errors in downloading ExternalData but otherwise, no errors). I see other binaries in DTIPrep-build/DTIPrepTools-install/bin but the DTIPrep itself is an app. And the DTIPrep.app contents in the bin folder, executing DTIPrep brings up the GUI. 

      Have I missed a step in the installation or am I not looking in the right place? I've included the error I was running into during installation in case that might be relevant to how the package was ultimately installed. 

      Thanks so much! 
      Michelle


      --------------
      CMake Error at /work/DTIPrep-build/BRAINSTools/CMake/ExternalData.cmake:1012 (message):
      Object MD5=94839def0264128ad7f42119a08bc66f not found at:

      file:////work/DTIPrep-build/BRAINSTools/... ("Couldn't read a file:// file")
      http://slicer.kitware.com/midas3/api/res... ("HTTP response code said error")
      http://midas3.kitware.com/midas/api/rest... ("HTTP response code said error")
      http://www.itk.org/files/ExternalData/MD... ("HTTP response code said error")
      file:////work/DTIPrep-build/BRAINSTools/... ("Couldn't read a file:// file")
      http://slicer.kitware.com/midas3/api/res... ("HTTP response code said error")
      http://midas3.kitware.com/midas/api/rest... ("HTTP response code said error")
      http://www.itk.org/files/ExternalData/MD... ("HTTP response code said error")
      Call Stack (most recent call first):
      /work/DTIPrep-build/BRAINSTools/CMake/ExternalData.cmake:1034 (_ExternalData_download_object)

      • Nov 30, 2021  07:11 PM | Michelle Han
        RE: DTIPrep CLI setup
        Hi Martin, 

        Thanks so much for the very quick response! I appreciate it. It looks like when I was trying to use that particular binary it was triggering the GUI to pop up because I wasn't giving it any parameters (I was expecting it to give me the "help" text if given no parameters). I've just tried it with some arbitrary parameters and it looks like that's what I was missing!

        Thanks again for the help,
        Michelle

        Originally posted by Martin Styner:
        MacOS X generates App packages, not simple binaries. But, a binary executable is still generated as part of the package, which is located in DTIPrep.app/Contents/MacOS and is called DTIPrep. You should be able to call that DTIPrep with the usual CLI, i.e. DTIPrep.app/Contents/MacOS/DTIPrep -p myProtocol.xml -c -f myOutputFolder -w myInputDWI.nrrd

        Best
        Martin
        Originally posted by Michelle Han:
        Hi, 

        I've been trying to set up the CLI for DTIPrep on OSX to write some DWI processing pipelines using DTIPrep. I've cloned into the GitHub repository and have built it (had to use "make -i" for errors in downloading ExternalData but otherwise, no errors). I see other binaries in DTIPrep-build/DTIPrepTools-install/bin but the DTIPrep itself is an app. And the DTIPrep.app contents in the bin folder, executing DTIPrep brings up the GUI. 

        Have I missed a step in the installation or am I not looking in the right place? I've included the error I was running into during installation in case that might be relevant to how the package was ultimately installed. 

        Thanks so much! 
        Michelle


        --------------
        CMake Error at /work/DTIPrep-build/BRAINSTools/CMake/ExternalData.cmake:1012 (message):
        Object MD5=94839def0264128ad7f42119a08bc66f not found at:

        file:////work/DTIPrep-build/BRAINSTools/... ("Couldn't read a file:// file")
        http://slicer.kitware.com/midas3/api/res... ("HTTP response code said error")
        http://midas3.kitware.com/midas/api/rest... ("HTTP response code said error")
        http://www.itk.org/files/ExternalData/MD... ("HTTP response code said error")
        file:////work/DTIPrep-build/BRAINSTools/... ("Couldn't read a file:// file")
        http://slicer.kitware.com/midas3/api/res... ("HTTP response code said error")
        http://midas3.kitware.com/midas/api/rest... ("HTTP response code said error")
        http://www.itk.org/files/ExternalData/MD... ("HTTP response code said error")
        Call Stack (most recent call first):
        /work/DTIPrep-build/BRAINSTools/CMake/ExternalData.cmake:1034 (_ExternalData_download_object)

  • Jul 2, 2020  06:07 PM | Steven Meisler - Harvard University / MIT
    Posterior to Anterior Flip
    For some reason, my DWI output from DTIPrep is flipped posterior-to-anterior (see attached image). I have confirmed that none of the raw data, including T1, have this same flip. My code is below and uses AFNI, DTIPrep (1.2.9), and DWIConvert from Slicer (4.6.2)
    ------------------
    #flip X vector because Siemens...
    1dDW_Grad_o_Mat \
    -in_grad_rows bvec \
    -out_grad_cols bvec_transpose_flip_x.txt \
    -keep_b0s

    #convert DWI image data from NIFTI to NRRD
    DWIConvert \
    --inputVolume dwi_raw.nii.gz \
    --inputBVectors bvec_transpose_flip_x.txt \
    --inputBValues bval_transpose.txt \
    --conversionMode FSLToNrrd \
    -o dwi.nrrd

    #Run default QC check
    DTIPrep \
    -c \
    -d \
    -p default_protocol.xml \
    -w dwi.nrrd \
    --numberOfThreads 4

    #Convert corrected DWI image data from NRRD to NIFTI
    DWIConvert \
    --inputVolume dwi_QCed.nrrd \
    --outputVolume dwi_QCed.nii \
    --outputBVectors dwi_QCed.bvec \
    --outputBValues  dwi_QCed.bval \
    --conversionMode NrrdToFSL \
    --allowLossyConversion
    gzip dwi_Qced.nii -f
    -------------------
    Do you know what might be causing this problem? I did not have this same issue in DTIPrep 1.2.4 as far as I remember.

    Thanks,
    Steven
    Attachment: PAflip.png

    • Jul 2, 2020  07:07 PM | Steven Meisler - Harvard University / MIT
      RE: Posterior to Anterior Flip
      In the meantime, incase anyone else has this problem, here is a workaround that uses FSL. [url=https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/Orientation%20Explained]It isn't the most elegant solution[/url]:

      fslorient -deleteorient dwi_QCed.nii.gz
      fslswapdim dwi_QCed.nii.gz -x y z dwi_reorient.nii.gz #WHETHER X Y AND Z ARE POSITIVE OR NEGATIVE DEPENDS ON THE ORIENTATION OF YOUR BRAIN
      fslorient -setqformcode 1 dwi_reorient.nii.gz

      Jul 2, 2020  09:07 PM | Martin Styner
      RE: Posterior to Anterior Flip
      Hi Steven

      This may be an imperfect conversion to/from NIFTI. 
      Best way to check is to use 3D Slicer and load the NRRD file after DWIConvert, as well as after DTIPrep. If they are both flipped then it's the conversion (or a data issue prior to conversion to NRRD). If neither is flipped, then it may be the conversion back to NIFTI (or a header interpretation issue after the conversion within FSL).

      There can be issues of coordinate spaces in NIFTI when processing data with FSL. The processing in FSL can change the coordinate space information, sometimes only partially, in the NIFTI header even when no registration is performed. This is not a problem when you stay within FSL, but can be an issue if you use the NIFTI files in other tools.

      Quick question: how did you do the conversion from DICOM? The way we do it in the lab (and we alternate between NIFTI and NRRD quite a bit and usually it's an issue on NIFTI/FSL's side) is that we start with converting DICOM to NRRD using DWIConvert. Then run DTIPrep and finally convert to NIFTI for processing in FSL. DWIConvert is also used by the 3D Slicer groups for surgical planning (so I do trust its DICOM conversion quite a bit).

      Martin

      • Jul 2, 2020  11:07 PM | Steven Meisler - Harvard University / MIT
        RE: Posterior to Anterior Flip
        Hi Martin,

        Thanks for the quick reply. Turns out the problem was in DWIConvert, albeit I do not know where. Our lab typically will do DCM --Dcm2Nii--> Nifti --DWIConvert---> NRRD --DWIConvert--> Nifti, since not everyone uses DTIPrep (yet....) and most people are using FSL or similar apps. I do not know why it is only happening with this particular dataset, as far as I know.

        • Jul 3, 2020  02:07 PM | Martin Styner
          RE: Posterior to Anterior Flip
          We use dcm2nii for our fMRI data (dcm2nii is a very nice tool), but have made the experience that DWIConvert provides better conversion from DICOM (rarely needs manual correction), particular for Siemens data. We commonly use the Bmatrix option of DWIConvert that computes the actually applied b-val and b-vec rather than those recorded in the DICOM tags (which commonly are the prescribed values and not the actually applied ones, though in truth the difference is minimal).

          If your folks prefer NITFI then they could also use DWIConvert --conversionMode DicomToFSL

          Martin

          • Jul 3, 2020  04:07 PM | Steven Meisler - Harvard University / MIT
            RE: Posterior to Anterior Flip
            Do you know what version of Slicer the DWIConvert on the Downloads page is from? I think Slicer 4.10 introduced a new DWIConvert that fixes this issue, looking at the Slicer forum. I unfortunately am having trouble installing new full builds on my HPC.

            • Jul 3, 2020  04:07 PM | Martin Styner
              RE: Posterior to Anterior Flip
              Originally posted by Steven Meisler:
              Do you know what version of Slicer the DWIConvert on the Downloads page is from? I think Slicer 4.10 introduced a new DWIConvert that fixes this issue, looking at the Slicer forum. I unfortunately am having trouble installing new full builds on my HPC.

              I quickly checked with the version installed on my Mac Slicer 4.10.2. If I run:
              /Applications/Slicer4.10.2.app/Contents/lib/Slicer-4.10/cli-modules/DWIConvert --version

              then I get:
              /Applications/Slicer4.10.2.app/Contents/lib/Slicer-4.10/cli-modules/DWIConvert version: 4.8.0

              Thus the one that I recently uploaded (version 4.6, compiled independently from Slicer) is a bit older than the one in Slicer 4.10. 

              Quick question on your cluster computation issues: Is it an installation issue or are rather how to call DWIConvert from the command line/in a script?

              On the UNC HPC, this works for me (Slicer installed in our lab disk space that is shared with the compute nodes):

              /proj/NIRAL/tools/Slicer-4.10.2-linux-amd64/Slicer --launch DWIConvert --version

              /proj/NIRAL/tools/Slicer-4.10.2-linux-amd64/bin/../lib/Slicer-4.10/cli-modules/./DWIConvert version: 4.8.0

              Best
              Martin

              • Jul 3, 2020  04:07 PM | Steven Meisler - Harvard University / MIT
                RE: Posterior to Anterior Flip
                Just tried out DWIConvert 5.2 from Slicer 4.11, it fixed the problem!

                • Jul 3, 2020  04:07 PM | Martin Styner
                  RE: Posterior to Anterior Flip
                  Originally posted by Steven Meisler:
                  Just tried out DWIConvert 5.2 from Slicer 4.11, it fixed the problem!
                  Perfect!

                  • Jul 3, 2020  06:07 PM | Steven Meisler - Harvard University / MIT
                    RE: Posterior to Anterior Flip
                    If you could somehow upload a standalone version of the DWIConvert from Slicer 4.10 or above that would be appreciated. Since slicer looks for shared library files I have to do some tinkering for Slicer to go to my Slicer installation instead of the central Slicer installation; it has not been consistently working. Maybe I can get admin to update the central install too.

                    • Jul 3, 2020  10:07 PM | Martin Styner
                      RE: Posterior to Anterior Flip
                      Originally posted by Steven Meisler:
                      If you could somehow upload a standalone version of the DWIConvert from Slicer 4.10 or above that would be appreciated. Since slicer looks for shared library files I have to do some tinkering for Slicer to go to my Slicer installation instead of the central Slicer installation; it has not been consistently working. Maybe I can get admin to update the central install too.
                      I just uploaded a near standalone version of DWIConvert 5.3.0 (it has one non-standard dynamic library association, libtbb, which is in the same zip file) to the Download section. Hope this works for you.

                      Best
                      Martin

      Nov 8, 2021  06:11 PM | Beth Kruse
      RE: Posterior to Anterior Flip
      Hi Martin, 

      We are having the same issue discussed above (both the flipping of images and shared library issues when running Slicer). The available standalone version (DWIConvert 5.3.0) is asking for a very old version of the Unicode library (libicuuc version 50) that we do not have on our servers. Would it be possible to have a standalone download for the DWIConvert from Slicer 4.11 or 4.13?

      Thanks for your help!

      Beth

      • Nov 9, 2021  02:11 PM | Martin Styner
        RE: Posterior to Anterior Flip
        Hi Beth

        I just uploaded a static compilation of DWIConvert 5.3.0 (current version, freshly compiled from the BRAINTools repository). This is still compiled on CentOS/RH 6 (that's the system we have in the lab), but no longer needs libicuuc. Hope this helps.

        Go to the download section for this version. 

        Hope this helps
        Martin
        Originally posted by Beth Kruse:
        Hi Martin, 

        We are having the same issue discussed above (both the flipping of images and shared library issues when running Slicer). The available standalone version (DWIConvert 5.3.0) is asking for a very old version of the Unicode library (libicuuc version 50) that we do not have on our servers. Would it be possible to have a standalone download for the DWIConvert from Slicer 4.11 or 4.13?

        Thanks for your help!

        Beth

  • Oct 23, 2021  06:10 AM | neda mohammadi
    Installation Error_QT4 issue
    Dear Experts,
    Hi,

    I'm traying to install DTI-Prep on Ubuntu 20.04 alongside other software such as MRTrix, but because of QT4 issue, I  haven't installed it yet.
    I followed these commands:

    1. git clone https://github.com/NIRALUser/DTIPrep.git
    2. mkdir DTIPrep-build; cd DTIPrep-build
    3. cmake ../DTIPrep
    4. make

    But in step 3 I get error about QT4 and annoconda that has QT5 ......

    would you please let me know how can I have DTI-Prep on Ubuntu 20.04 and/or alongside MRTrix if it is possible?

    Thanks
    Neda

    • Nov 9, 2021  02:11 PM | Martin Styner
      RE: Installation Error_QT4 issue
      Yeah, unfortunately DTIPrep needs Qt4 (which is a bit outdated). DTIPrep will soon be replaced with an updated new framework called dmriprep which will combine the functionality of DTIPrep with eddy/topup in FSL 6 and that tool will no longer need Qt4.

      For your immediate problem, you will need to compile DTIPrep with Qt4, i.e. you need to install a Qt4 package on your machine (you can multiple Qt versions installed)

      Martin
      Originally posted by neda mohammadi:
      Dear Experts,
      Hi,

      I'm traying to install DTI-Prep on Ubuntu 20.04 alongside other software such as MRTrix, but because of QT4 issue, I  haven't installed it yet.
      I followed these commands:

      1. git clone https://github.com/NIRALUser/DTIPrep.git
      2. mkdir DTIPrep-build; cd DTIPrep-build
      3. cmake ../DTIPrep
      4. make

      But in step 3 I get error about QT4 and annoconda that has QT5 ......

      would you please let me know how can I have DTI-Prep on Ubuntu 20.04 and/or alongside MRTrix if it is possible?

      Thanks
      Neda

      • Nov 11, 2021  06:11 AM | neda mohammadi
        RE: Installation Error_QT4 issue
        Thanks Martin,Yes I install QT4, and so...But now in step 4 I get this error:



        [ 25%] Generating /home/nbml/Downloads/DTIprep/BRAINSTools-build/ExternalData/ALLPVCRBLWM.nii.gz
        -- Fetching "file:////home/nbml/Downloads/DTIprep/BRAINSTools/.ExternalData/MD5/c089e662803c74fec3750c0a40ef8209"
        -- Fetching "http://slicer.kitware.com/midas3/api/rest?method=midas.bitstream.download&checksum=c089e662803c74fec3750c0a40ef8209"
        -- Fetching "http://midas3.kitware.com/midas/api/rest?method=midas.bitstream.download&checksum=c089e662803c74fec3750c0a40ef8209&algorithm=MD5"
        -- [download 100% complete]
        -- Fetching "http://www.itk.org/files/ExternalData/MD5/c089e662803c74fec3750c0a40ef8209"
        -- [download 100% complete]
        -- Fetching "file:////home/nbml/Downloads/DTIprep/BRAINSTools/ReferenceAtlas/.ExternalData/MD5/c089e662803c74fec3750c0a40ef8209"
        -- Fetching "http://slicer.kitware.com/midas3/api/rest?method=midas.bitstream.download&checksum=c089e662803c74fec3750c0a40ef8209"
        -- Fetching "http://midas3.kitware.com/midas/api/rest?method=midas.bitstream.download&checksum=c089e662803c74fec3750c0a40ef8209&algorithm=MD5"
        -- [download 100% complete]
        -- Fetching "http://www.itk.org/files/ExternalData/MD5/c089e662803c74fec3750c0a40ef8209"
        -- [download 100% complete]
        CMake Error at /home/nbml/Downloads/DTIprep/BRAINSTools/CMake/ExternalData.cmake:1012 (message):
        Object MD5=c089e662803c74fec3750c0a40ef8209 not found at:


        file:////home/nbml/Downloads/DTIprep/BRAINSTools/.ExternalData/MD5/c089e662803c74fec3750c0a40ef8209 ("Couldn't read a file:// file")
        http://slicer.kitware.com/midas3/api/res... ("HTTP response code said error")
        http://midas3.kitware.com/midas/api/rest... ("HTTP response code said error")
        http://www.itk.org/files/ExternalData/MD... ("HTTP response code said error")
        file:////home/nbml/Downloads/DTIprep/BRA... ("Couldn't read a file:// file")
        http://slicer.kitware.com/midas3/api/res... ("HTTP response code said error")
        http://midas3.kitware.com/midas/api/rest... ("HTTP response code said error")
        http://www.itk.org/files/ExternalData/MD... ("HTTP response code said error")
        Call Stack (most recent call first):
        /home/nbml/Downloads/DTIprep/BRAINSTools/CMake/ExternalData.cmake:1034 (_ExternalData_download_object)
        ReferenceAtlas/CMakeFiles/ReferenceAtlasFetchData.dir/build.make:171: recipe for target 'ExternalData/ALLPVCRBLWM.nii.gz.md5-stamp' failed
        make[5]: *** [ExternalData/ALLPVCRBLWM.nii.gz.md5-stamp] Error 1
        CMakeFiles/Makefile2:650: recipe for target 'ReferenceAtlas/CMakeFiles/ReferenceAtlasFetchData.dir/all' failed
        make[4]: *** [ReferenceAtlas/CMakeFiles/ReferenceAtlasFetchData.dir/all] Error 2
        Makefile:138: recipe for target 'all' failed
        make[3]: *** [all] Error 2
        CMakeFiles/BRAINSTools.dir/build.make:118: recipe for target 'BRAINSTools-prefix/src/BRAINSTools-stamp/BRAINSTools-build' failed
        make[2]: *** [BRAINSTools-prefix/src/BRAINSTools-stamp/BRAINSTools-build] Error 2
        CMakeFiles/Makefile2:1270: recipe for target 'CMakeFiles/BRAINSTools.dir/all' failed
        make[1]: *** [CMakeFiles/BRAINSTools.dir/all] Error 2
        Makefile:94: recipe for target 'all' failed
        make: *** [all] Error 2

        It seems that all links have changed, and  I have no idea to fix this problem.

        Would you please help me in this issue?

        Neda

  • Jan 19, 2021  08:01 PM | Steven Meisler - Harvard University / MIT
    Suggestions for HCP Data
    Hi,

    Do you have any suggestions for using DTIPrep on HCP datasets? A typical diffusion dataset for a subject includes multiple pairs of AP-PA full sequences, along with sbrefs and fieldmap acquisition. The HCP processing pipeline usually includes averaging the AP-PA pairs together while denoising, and I imagine this would be thrown off if one removes slices with DTIPrep beforehand. Happy to provide more info as needed. Any guidance on this?

    Thanks,
    Steven

    • Jan 19, 2021  08:01 PM | Martin Styner
      RE: Suggestions for HCP Data
      Hi Steven

      Good question. Most of our new studies have HCP-like sequences and thus DTIPrep is insufficient for the full preprocessing pipeline (as it does not provide any susceptibility correction). So, a new version of DTIPrep is needed, one that interfaces with FSL (or other toolboxes) to achieve the susceptibility correction.

      And I am really not a fan of the old-FSL-style processing by averaging AP-PA sequences. The "new" style processing rather corrects susceptibility artifacts in the individual AP & PA volumes, but does not average them. This allows, for example, that you can reject a bad volume in AP, but include the corresponding good volume in PA. This also allows the processing of incompletely acquired data (where the subject had to leave the scanner early).

      Furthermore, the new FSL versions (6.0.1+) have powerful correction methods included in eddy (FSL's eddy current and motion correction tool), particularly to incorporate the computed susceptibility-undistortion field into the eddy current/motion correction, as well as interpolate bad data. But, I think it would be bad practice use a volume that has significant artifacts throughout the image for the purpose of interpolation (i.e. it's better to just reject that whole bad image). 

      So, our most up-to-date (script-based) processing starts with a conservative DTIPrep, which removes the really bad volumes and does not do a motion/eddy current correction. The data is then converted to NIFTI, for use with FSL 6.0.3 for a topup-eddy based correction of susceptibility/motion/eddy/remaining-bad-data-interpolation.  

      Happy to share my scripts, if interestd.

      Best
      Martin

      • Jan 19, 2021  09:01 PM | Steven Meisler - Harvard University / MIT
        RE: Suggestions for HCP Data
        Hi Martin,

        Thanks for the quick reply! I also use a conservative DTIPrep implementation, only running slice-wise and interlace checks with pretty strict thresholds to throw out bad volumes. If you are willing to share your scripts I'd like to take a look at them. Ideally, I would like to use the QCed files as inputs to QSIPrep. To this end, since I do not want to concatenate AP-PA together for computational efficiency, I would probably need to have the AP-PA sequences have the same amount of data, so I would be interested in applying interpolation technique. In your opinion, would interpolation be better served after Eddy/Topup has been run?

        Best,
        Steven

        May 19, 2021  10:05 AM | Gustavo Sudre
        RE: Suggestions for HCP Data
        Martin,

        Just jumping in the discussion here! Could you make those scripts available? I'm working with data from a couple different studies that have similar sequences, so it would be great to take a look at those scripts and how they prepare the data for eddy!

        Thanks a bunch,

        Gustavo

        • Nov 9, 2021  02:11 PM | Martin Styner
          RE: Suggestions for HCP Data
          Sorry this took a bit, as i had not checked the forum in a while.

          attached is the script (tcsh) that I ran to combine DTIPrep & topup & eddy (FSL 6.0.3) in one of our studies
          Best
          Martin

          Originally posted by Gustavo Sudre:
          Martin,

          Just jumping in the discussion here! Could you make those scripts available? I'm working with data from a couple different studies that have similar sequences, so it would be great to take a look at those scripts and how they prepare the data for eddy!

          Thanks a bunch,

          Gustavo

        Oct 23, 2021  11:10 AM | neda mohammadi
        RE: Suggestions for HCP Data
        Hi Dear Martin,

        Sorry, I have a question about installation DTI-Prep on Ubuntu 20.04 alongside MRtrix software, would you please help me? I posted a question in this forum...

        Thanks in advance
        Neda

  • May 30, 2021  07:05 AM | Mao Henry
    DTIPrep BaselineAverage doesn't work.
    My data has 1 b0 volume at first index, and 9 b0 volumes at last nine index. In protocol file I set BASELINE_bAverage to Yes. But it seems that it doesn't work at all. Anyone can help?

    • Nov 9, 2021  02:11 PM | Martin Styner
      RE: DTIPrep BaselineAverage doesn't work.
      DTIPrep only detect b0 volumes that have a b-value of exactly 0 (i.e. b=1 or b=0.1 will not be detected as baselines). this might be the problem here.

      Martin
      Originally posted by Mao Henry:
      My data has 1 b0 volume at first index, and 9 b0 volumes at last nine index. In protocol file I set BASELINE_bAverage to Yes. But it seems that it doesn't work at all. Anyone can help?

  • Apr 2, 2021  07:04 PM | Sofia Cardenas - UNIVERSITY OF SOUTHERN CALIFORNIA
    DTIPrep Module for Slicer
    Hello all, 

    I am new to DTIPrep and am hoping to install the extension into 3DSlicer for my mac. I am not able to find the most up-to-date version of the DTIPrep extension (the most recent I am finding on slicer.kitware is from 2015). Any and all leads would be appreciated. 

    FYI: my operating system is macOSCatalina. 

    Thank you!

    • Apr 26, 2021  03:04 PM | Martin Styner
      RE: DTIPrep Module for Slicer
      Updating the Slicer extension is not trivial and thus it always takes us quite a bit to update them when new versions of 3D slicer are released. 

      You could either use the version that is in the download section here (which is the 2017 version, so I am not 100% sure it works with Catalina) or download an older version of Slicer that has a working extension.

      as a note, we are working on a significantly changed new version that will also provide susceptibility correction (via FSL) .

      Martin

  • Apr 1, 2021  01:04 PM | ritagv
    DWMRI gradient mismatch
    Dear DTIPrep experts,

    I am running DTIPrep on multi-shell diffusion data.

    I am having very strange values in the diffusion bcheck step for every gradient:

    DWMRI_gradient_0001 mismatch!
    DWI: [ -0x1.84ca3b8c8efc9p-5 0x1.0b17b1aa502d8p-1 0x1.b422f64036d8ep-1 ]
    protocol: [ -0x1.f1688d1f2f156p-5 0x1.97a41e01e39a7p-2 0x1.d4a6eb2ee00d5p-1 ]
    Colinearity angle (degrees): 0x1.001bffb706bdcp+3 > 0x1p+0

    Do you have some advice on things we should check? Or do you think it is safe to ignore these warnings based on the answer to a previous topic titled "DTIPrep on multi-shell data + DWMRI gradient mismatch error".

    I am sending you the QCReport file attached.

    Thanks in advance for your help!

    • Apr 26, 2021  03:04 PM | Martin Styner
      RE: DWMRI gradient mismatch
      The gradient mismatch is quite sensitive. In general, the bcheck step helps in identifying whether the wrong protocol was used during the acquisition (e.g. the wrong b-table), but it's perfectly fine for individual gradients to mismatch with the protocol.

      Martin

  • Mar 17, 2021  10:03 AM | ritagv
    ImageMath crashes
    Dear experts,

    I am a new user of DTIPrep and I am having some problems when I set the BRAINMASK_bCheck option to Yes in the protocol.

    In the QC Report it is written: 

    Brain Mask FSL
    /home/rita/Desktop/DTIPrep-1.2.11/bin/ImageMath crashes.

    I checked all the paths and if the files are executable. Everything looks fine to me.

    Also, I am having some errors during dtiprocess and dtiestim (picture attached). Only _Baseline, _DTI and _IDWI files are created.


    Thanks in advance!
    Rita
    Attachment: ParseError.jpeg

    • Mar 17, 2021  02:03 PM | Martin Styner
      RE: ImageMath crashes
      ImageMath: This might be an issue due to ANTS having also a tool/executable called ImageMath (and of course, the two tools are not compatible, even though they do similar tasks). If you have the ANTS ImageMath in your PATH, then that could be the source of your issue. Solution would be to either remove ANTS from your PATH when running DTIPrep or ensure that the DTIPrep path is mentioned before the ANTS path.

      dtiestim seems to have worked, though not dtiprocess. Best turn off writing the frobenius norm image in the DTIPrep protocol (probably a version issue on dtiprocess).

      Martin
      Originally posted by ritagv:
      Dear experts,

      I am a new user of DTIPrep and I am having some problems when I set the BRAINMASK_bCheck option to Yes in the protocol.

      In the QC Report it is written: 

      Brain Mask FSL
      /home/rita/Desktop/DTIPrep-1.2.11/bin/ImageMath crashes.

      I checked all the paths and if the files are executable. Everything looks fine to me.

      Also, I am having some errors during dtiprocess and dtiestim (picture attached). Only _Baseline, _DTI and _IDWI files are created.


      Thanks in advance!
      Rita

  • Aug 12, 2020  01:08 PM | Maria Economou - KU Leuven
    DTIPrep on multi-shell data + DWMRI gradient mismatch error
    Hi all,

    I have a large dataset (n>100) on which I want to apply DTIPrep for faster QC. Multi-shell diffusion data were acquired with the following scheme: b-values of 0,700,1000 and 2000 s/mm2 at 7,20,32 and 60 directions respectively. I used DWIConvert and the FSLtoNrrd flag to convert my data into the right format for DTIPrep. The protocol includes 2mm translation and 0.5 degrees rotation thresholds.

    1) I was wondering if anyone has experience using DTIPrep on multi-shell data? I noticed that during at the diffusion bcheck step, the bvalue is set at 2000 - does this mean that DTIprep assumes all gradients were acquired with a single bvalue? And to what extend is this an issue?

    2) I applied DTIPrep on a subset of subjects and after looking at some of the reports I noticed this error during the bvalue check step:
    "DWMRI_gradient_0000 mismatch!". This error is present in most of the gradients (regardless of bvalue) in almost all subjects. To what extend is this problematic for further outlier detection steps?

    What I also noticed was that in some subjects DTIPrep systematically only evaluated included gradients up to a certain number (59 in our dataset) without going through the entire dataset (119 gradients). Has anyone experienced this issue before or any other possible explanations?


    Many thanks in advance for the feedback and don't hesitate to ask me for more information!

    Best,
    Maria

    • Aug 14, 2020  06:08 PM | Steven Meisler - Harvard University / MIT
      RE: DTIPrep on multi-shell data + DWMRI gradient mismatch error
      Hi Maria,

      1) What version of DTIPrep and DWIConvert are you using? Older versions tend to not preserve all the b-values. I use https://github.com/pnlbwh/conversion/tree/master/conversion to do my FSLtoNRRD conversions.

      To my knowledge, the diffusion bcheck step is not too problematic. I usually disable it.

      2) You may want to make sure your bval and bvec files are okay (DTIPrep may expect them in row or column format, and make sure they have the same number of elements). I have not come across that error yet.

      3) Does that 59 index correspond to where your bval changes from 1000 to 2000 by any chance? Since image intensity changes with b-value, DTIPrep may be interpreting those high b-val scans as interlace-wise outliers. If so, you can change the protocol to make the interlace-wise check thresholds for gradients much more conservative, or disable the check altogether.

      Does this makes sense?

      Best,
      Steven

      • Aug 16, 2020  09:08 PM | Martin Styner
        RE: DTIPrep on multi-shell data + DWMRI gradient mismatch error
        Hi Maria 

        1. Multishell: yes DTIPrep can deal with multishell, just make sure the data correctly converted to NRRD. See also: https://www.na-mic.org/wiki/NAMIC_Wiki:DTI:Nrrd_format

        we apply DTIprep to multi-shell all the time (it's most common way to apply it). While it adjust threshold to be more forgiving for higher shells (due to the lower SNR), it's still the case that higher shell data is more likely (erroneously) removed. Thus, inspect your initial data after DTIprep and see whether you want to relax the threshold to be less strict.

        2. best disable the diffusion check, just as Steven suggested

        Best
        Martin

      Sep 30, 2020  09:09 AM | Maria Economou - KU Leuven
      RE: DTIPrep on multi-shell data + DWMRI gradient mismatch error
      Dear Steven and Martin,

      Thank you both for the suggestions! I disabled the diffusion bcheck and it seems that the issue with stopping after a certain gradient is solved. It was indeed the part where the b2000 shell was starting. 

      Many thanks again,
      Maria

  • Jul 22, 2020  08:07 PM | Steven Meisler - Harvard University / MIT
    Changing default protocol before QC without GUI
    Hi,

    I am trying to run DTIPrep (1.2.10) in sbatch background jobs. For each subject, I use the -c and -d arguments to forego the need of any GUI, but I also now see that for my protocol, I should disable the eddy/motion correction and enable the dominant directional artifact check. Is there a way to have DTIPrep generate the default protocol without running QC, allowing me to edit it in command line, and then have QC run? I realize that I could make my own xml file for a study, but parameters such as IMAGE_directions vary between subjects.

    I should note that I tried a line in the wiki which suggested to use only the -w -d and -p arguments to generate a protocol without running a check, but upon running, the GUI opened and nothing else happened.

    Thanks,
    Steven

    • Jul 27, 2020  09:07 PM | Martin Styner
      RE: Changing default protocol before QC without GUI
      Originally posted by Steven Meisler:
      Hi,

      I am trying to run DTIPrep (1.2.10) in sbatch background jobs. For each subject, I use the -c and -d arguments to forego the need of any GUI, but I also now see that for my protocol, I should disable the eddy/motion correction and enable the dominant directional artifact check. Is there a way to have DTIPrep generate the default protocol without running QC, allowing me to edit it in command line, and then have QC run? I realize that I could make my own xml file for a study, but parameters such as IMAGE_directions vary between subjects.

      I should note that I tried a line in the wiki which suggested to use only the -w -d and -p arguments to generate a protocol without running a check, but upon running, the GUI opened and nothing else happened.

      Thanks,
      Steven

      • Jul 29, 2020  10:07 PM | Steven Meisler - Harvard University / MIT
        RE: Changing default protocol before QC without GUI
        Hi Martin,

        I see that you made a reply but I don't see any text (besides my original question quoted). Was there supposed to be something there?

        Thanks,
        Steven

      Jul 29, 2020  10:07 PM | Martin Styner
      RE: Changing default protocol before QC without GUI
      Trying again, my first reply did not post correctly. This time I will try to be more concise (maybe my reply was too long):

      1) -d should be used for generating & writing out a default protocol. It should NOT be used to run DTIPrep with a default protocol. DTIPrep investigate   is the data to come up with thresholds for the default protocol and thus those thresholds are scan specific.
      2) you should use the same protocol to run DTIPrep across a whole study. -d will run slightly different protocol (scan specific protocols), so do not use "-d" in that fashion
      3) best use -d to generate a protocol, manually edit it (using DTIPrep's GUI) (e.g. to disable certain stages) and then save it for later use
      4) then use -p to run it on the command line

      Best
      Martin
      Originally posted by Steven Meisler:
      Hi,

      I am trying to run DTIPrep (1.2.10) in sbatch background jobs. For each subject, I use the -c and -d arguments to forego the need of any GUI, but I also now see that for my protocol, I should disable the eddy/motion correction and enable the dominant directional artifact check. Is there a way to have DTIPrep generate the default protocol without running QC, allowing me to edit it in command line, and then have QC run? I realize that I could make my own xml file for a study, but parameters such as IMAGE_directions vary between subjects.

      I should note that I tried a line in the wiki which suggested to use only the -w -d and -p arguments to generate a protocol without running a check, but upon running, the GUI opened and nothing else happened.

      Thanks,
      Steven

      • Jul 30, 2020  10:07 PM | Steven Meisler - Harvard University / MIT
        RE: Changing default protocol before QC without GUI
        If thresholds are determined upon running DTIPrep and not generating the protocol, does that mean if I have several studies I want to do QC for, that I can use a single protocol.xml file? I would turn off the image and diffusion bchecks since that would likely fail if I use a study that has different acquisition parameters than the .nrrd I use to generate the original .xml.

        My main goal is to only run baseline averaging, and the automated gradient removal steps (slicewise, interlace, gradient, dominant direction).

        *Edit*
        I have since tried to use a protocol from one study on another, and it didn't look like relevant thresholds (like interlace correlation threshold) were updated.

        I cannot seem to create a default protocol without loading a subject first, so to me it seems like it would cause all thresholds for the study to be set for that subject it I were to only use the one protocol.

        Is there either 1) a method of loading all subjects to DTIPrep and then generating a protocol so the thresholds are appropriate for the whole cohort, or 2) a way to have DTIPrep calculate these thresholds upon execution as opposed to reading from the protocol? Or am I thinking about this the wrong way?

        Thanks,
        Steven

        • Jul 31, 2020  01:07 PM | Martin Styner
          RE: Changing default protocol before QC without GUI
          Sorry for not being clear:
          - the thresholds are specified in the protocol. Using the same protocol means that you apply the same thresholds (which is necessary within a study)
          - using "-d" generates a protocol. The thresholds in that protocol are based on the dataset provided when you run "-d" (or when you use the "default protocol" button in the GUI). 
          - You don't want to have thresholds computed for every dataset within a single study, but rather use consistent thresholds (i.e. same protocol file)
          - the default protocols generate thresholds based on our DWI knowledge back before 2010. My 2020 knowledge tells me that those thresholds are a bit aggressive (particularly for the infant studies that we run) and thus we manually change them to be more permissive.
          - There is no need to generate a default protocol, if you have already a protocol. Just load/use that protocol you have.

          Re reusing protocol files:
          - we do that all the time, if the studies are on a similar level of  SNR (similar acquisitions, similar age range) & motion artifact (similar scanning setting, study population is not expected to impact motion tremendously). 

          Additional tips:
          - we rarely run the gradient checking step these days(which checks for residual motion that was not corrected in the motion/eddy current correction) as it does not work well on higher shells (and often removes low SNR data in b>2000 shells)
          - dominant direction checks needs training data to compute thresholds, and thus is a lot of work on your part. Only needed if you suspect there is an issue with your data (this would be visually evident if you look at the color-FA images). It was a big issue 2005-2010 years, but I rarely see datasets with this issue these days (I think scanner manufacturers solved the problem).

          I hope this made things a bit clearer and I did not further sow confusion.

          Martin
          Originally posted by Steven Meisler:
          If thresholds are determined upon running DTIPrep and not generating the protocol, does that mean if I have several studies I want to do QC for, that I can use a single protocol.xml file? I would turn off the image and diffusion bchecks since that would likely fail if I use a study that has different acquisition parameters than the .nrrd I use to generate the original .xml.

          My main goal is to only run baseline averaging, and the automated gradient removal steps (slicewise, interlace, gradient, dominant direction).

          *Edit*
          I have since tried to use a protocol from one study on another, and it didn't look like relevant thresholds (like interlace correlation threshold) were updated.

          I cannot seem to create a default protocol without loading a subject first, so to me it seems like it would cause all thresholds for the study to be set for that subject it I were to only use the one protocol.

          Is there either 1) a method of loading all subjects to DTIPrep and then generating a protocol so the thresholds are appropriate for the whole cohort, or 2) a way to have DTIPrep calculate these thresholds upon execution as opposed to reading from the protocol? Or am I thinking about this the wrong way?

          Thanks,
          Steven

          • Aug 3, 2020  08:08 PM | Steven Meisler - Harvard University / MIT
            RE: Changing default protocol before QC without GUI
            Got it, makes sense and thanks for the tips! I have been looking at papers that cite DTIPrep, and unfortunately I am having trouble finding any that report what thresholds they used. When your group designs a protocol for the study, do you have any rules of thumb for setting these limits (particularly the interlace correlation thresholds)?

  • Jun 9, 2020  07:06 PM | Steven Meisler - Harvard University / MIT
    DTIPrep is not recognizing B0 Images
    Hello DTIPrep team,

    I am working with DWI data that have multiple b-vals (0, 1000, 1500, 3000). However, for whatever reason (I did not collect the data), each entry in the bval text file is slightly off from the standard number. For example, at some of the entries where 3000 should be, 3010 is there instead. This was also true for the baseline scans, where there were 5s instead of 0s. As one may expect, when I ran these data under DTIPrep (1.2.4, Linux, also tested 1.2.9) with the default protocol, I received an error: FAIL:Single b-value DWI without a b0/baseline. I presume this is because there were 5s in place of 0s in the bvals. In addition, I also receive the following error: DWI data error. Not all the gradient directions have same repetition. GradientNumber= XX 1 != 7. Something else peculiar with the output, however, is that every QCed b-value for any slice that survived correction was 3010, regardless of the slice's original bvalue. 

    I made a script to change every 5 to a 0 in the bvals, but even then, I see that DTIPrep still chooses to ignore these b0 images, and the problems listed above persist. Hopefully these problems are related. Please let me know if you would need any additional information to help diagnose the problem.

    Thanks,
    Steven

    • Jun 11, 2020  08:06 PM | Martin Styner
      RE: DTIPrep is not recognizing B0 Images
      Originally posted by Steven Meisler:
      Hello DTIPrep team,

      I am working with DWI data that have multiple b-vals (0, 1000, 1500, 3000). However, for whatever reason (I did not collect the data), each entry in the bval text file is slightly off from the standard number. For example, at some of the entries where 3000 should be, 3010 is there instead. This was also true for the baseline scans, where there were 5s instead of 0s. As one may expect, when I ran these data under DTIPrep (1.2.4, Linux, also tested 1.2.9) with the default protocol, I received an error: FAIL:Single b-value DWI without a b0/baseline. I presume this is because there were 5s in place of 0s in the bvals. In addition, I also receive the following error: DWI data error. Not all the gradient directions have same repetition. GradientNumber= XX 1 != 7. Something else peculiar with the output, however, is that every QCed b-value for any slice that survived correction was 3010, regardless of the slice's original bvalue. 

      I made a script to change every 5 to a 0 in the bvals, but even then, I see that DTIPrep still chooses to ignore these b0 images, and the problems listed above persist. Hopefully these problems are related. Please let me know if you would need any additional information to help diagnose the problem.

      Thanks,
      Steven
      Hi Steven

      yes, we are aware that DTIPrep does not recognize low b-values as baselines. The plan is for the next version to have a threshold parameter to identify baseline. At the moment, manually setting/hacking these to 0 is the best workaround.

      The other error, you should be able to safely disregard.

      Wrt the output QC data: how did you assess the b-value from the output file (as only the max b-value is explicitly stored in NRRD, the other b-values are computed as a ratio to the max b-value via the 2-norm of the gradient direction)? Did it look very different in the input DWI file?

      Best
      Martin

      • Jun 15, 2020  03:06 PM | Steven Meisler - Harvard University / MIT
        RE: DTIPrep is not recognizing B0 Images
        Hi Martin,

        Thank you for your response. I assessed the QCed b-values by converting the output NRRD to FSL with DWIConvert. I was unaware only the max b-value is stored in the NRRD, which would explain the homogeneity in the b-value outputs. Given that I would like to use the QCed data as inputs to a different program to perform tractography, which requires a .nii.gz input w/ bval and bvec txt files, does DTIPrep have a method of returning all b-values (not only the max value)? I suppose a workaround would be to parse the QC report to extract the indices of slices that survive QC, and then index the original bvalue txt file accordingly.

        Also, for some reason after manually setting the baseline b-values to 0, DTIPrep still did not recognize them as baseline. I only changed the .txt file; would any manipulation need to be done to the .nii as well?

        Thanks,
        Steven

        • Jun 16, 2020  01:06 AM | Martin Styner
          RE: DTIPrep is not recognizing B0 Images
          Hi Steven
          Sorry, I was imprecise. All the b-values are still there, in the NRRD header, they are just not mentioned explicitly (only a reference b-value is listed, and that is usually the maximum b-value, though it strictly does not need to be the max b-value), but encoded with the magnitude/norm of the b-vecors. A great explanation of the encoding of b-values and b-vectors in NRRD headers can be found here:
          https://www.na-mic.org/wiki/NAMIC_Wiki:D...

          If you want explicit b-values, one possibility is also to convert the NRRD file back to NIFTI using DWIConvert (it can convert back to/from NRDD & NIFTI). Just type DWIConvert --help and you should get a sufficient help information to know how to do that. 

          Re setting baseline b-values to 0, just to ensure I fully understand: what you did is a) set b-values to 0 in the NIFTI b-val file, b) convert NIFTI to NRRD  via DWIConvert (and providing that edited b-val file to DWIConvert as one of the input options) and then looking at the header of the NRRD file. It's quite possible that you need to also edit the b-vec file and set the gradient vector for the baselines to 0,0,0 for this to work.

          Martin

          Originally posted by Steven Meisler:
          Hi Martin,

          Thank you for your response. I assessed the QCed b-values by converting the output NRRD to FSL with DWIConvert. I was unaware only the max b-value is stored in the NRRD, which would explain the homogeneity in the b-value outputs. Given that I would like to use the QCed data as inputs to a different program to perform tractography, which requires a .nii.gz input w/ bval and bvec txt files, does DTIPrep have a method of returning all b-values (not only the max value)? I suppose a workaround would be to parse the QC report to extract the indices of slices that survive QC, and then index the original bvalue txt file accordingly.

          Also, for some reason after manually setting the baseline b-values to 0, DTIPrep still did not recognize them as baseline. I only changed the .txt file; would any manipulation need to be done to the .nii as well?

          Thanks,
          Steven

          • Jun 25, 2020  07:06 PM | Steven Meisler - Harvard University / MIT
            RE: DTIPrep is not recognizing B0 Images
            Hi Martin,

            Sorry for late reply; manually changing the bvecs (in addition to the bvals which I was already doing) to 0 seemed to have worked for DTIPrep to recognize baseline scans! When I convert the QCed NRRD back to NIFTI using DWIConvert, I still see that the each bval from the output of DWIConvert always hover around the maximum bvalue (differs by no more than 0.02).

            Best,
            Steven

            • Jun 25, 2020  08:06 PM | Martin Styner
              RE: DTIPrep is not recognizing B0 Images
              mmm, there seems to be an issue with DWIConvert. Which version of DWIConvert are you using? Maybe using a newer version (e.g. from Slicer 4.10) may work?

              Martin
              Originally posted by Steven Meisler:
              Hi Martin,

              Sorry for late reply; manually changing the bvecs (in addition to the bvals which I was already doing) to 0 seemed to have worked for DTIPrep to recognize baseline scans! When I convert the QCed NRRD back to NIFTI using DWIConvert, I still see that the each bval from the output of DWIConvert always hover around the maximum bvalue (differs by no more than 0.02).

              Best,
              Steven

              • Jun 26, 2020  06:06 PM | Steven Meisler - Harvard University / MIT
                RE: DTIPrep is not recognizing B0 Images
                I am using DWIConvert version 1.0.0 as packaged with DTIPrep 1.2.4, I will try to use a more recent version and get back to you.

                • Jun 26, 2020  06:06 PM | Martin Styner
                  RE: DTIPrep is not recognizing B0 Images
                  Yeah, that's super old and is know to have issues with NIFTI-NRRD conversion (we use v4.6 right now), so that would explain it.
                  Martin

                  • Jun 29, 2020  06:06 PM | Steven Meisler - Harvard University / MIT
                    RE: DTIPrep is not recognizing B0 Images
                    I have been struggling with installing Slicer and using its command-line DWIConvert tool on my HPC. Does it come with DTIPrep after 1.2.4?

                    • Jul 1, 2020  07:07 PM | Steven Meisler - Harvard University / MIT
                      RE: DTIPrep is not recognizing B0 Images
                      I found an older version of slicer that had a more recent version of DWIConvert; that did the trick thanks!

                      • Jul 1, 2020  08:07 PM | Martin Styner
                        RE: DTIPrep is not recognizing B0 Images
                        Originally posted by Steven Meisler:
                        I found an older version of slicer that had a more recent version of DWIConvert; that did the trick thanks!
                        Just in case, I added a separate download for a statically linked version of DWIConvert (v 4.6) to the downloads section.

                        Martin

  • Jun 11, 2020  09:06 PM | ameliaqian
    General question of preprocess in DTIprep
    1. Is there a registration procedure in DTIPrep that performs an affine registration of the diffusion-weighted images prior to motion and eddy-currents correction?
    2.When correcting for subject motion, if there is a rotation of the image involved in the image registration, then the same rotation must be applied to the encoding vectors. I wonder whether rotations that are applied to a given diffusion-weighted volume are also applied to the encoding vectors in DTIPrep automatic pipelines?
    3. If SNR is not low, is denoising still recommended?

    • Jun 11, 2020  10:06 PM | Martin Styner
      RE: General question of preprocess in DTIprep
      Originally posted by ameliaqian:
      1. Is there a registration procedure in DTIPrep that performs an affine registration of the diffusion-weighted images prior to motion and eddy-currents correction?
      2.When correcting for subject motion, if there is a rotation of the image involved in the image registration, then the same rotation must be applied to the encoding vectors. I wonder whether rotations that are applied to a given diffusion-weighted volume are also applied to the encoding vectors in DTIPrep automatic pipelines?
      3. If SNR is not low, is denoising still recommended?
      1. No, the affine registration happens during motion & eddy current correction. There is a rigid registration that happens for the baseline motion correction and averaging (just before the motion & eddy current correction).

      2. of course, otherwise it would be incorrect. The motion & eddy current correction in DTIPrep is built on the same principles as FSL 5 (only the baseline motion correction is slightly different). (note, FSL 6 does things quite a bit differently)

      3. We rarely do it, and it is off by default for DTIPrep, but it's available if users wish to do denoising. Older, low SNR diffusion data would probably benefit from denoising.

  • Jun 3, 2020  04:06 PM | ameliaqian
    denoising procedure in DTIPrep
    I have some questions concerning denoising procedure in DTIPrep. Denoise is one of good practice. However, I found there is no difference of the excluded gradients between with and without denoising procedure. 
    1. I noticed there is *_DenoiseInput.nrrd file created. I wonder whether and how this denoised file is linked to the DTIPrep output.
    2. Is Rician noise removal the same as smoothing in DTIPrep?

    • Jun 11, 2020  09:06 PM | Martin Styner
      RE: denoising procedure in DTIPrep
      Originally posted by ameliaqian:
      I have some questions concerning denoising procedure in DTIPrep. Denoise is one of good practice. However, I found there is no difference of the excluded gradients between with and without denoising procedure. 
      1. I noticed there is *_DenoiseInput.nrrd file created. I wonder whether and how this denoised file is linked to the DTIPrep output.
      2. Is Rician noise removal the same as smoothing in DTIPrep?

      the denoising in DTIPrep is achieved via the Slicer modules for DWI denoising (these are no longer included in the newer versions of Slicer, not sure why).
      https://www.slicer.org/wiki/Documentation/4.4/Modules/DWIJointRicianLMMSEFilter
      https://www.slicer.org/wiki/Documentation/4.4/Modules/DWIRicianLMMSEFilter

      Both are based on Rician noise
      Martin

  • Mar 25, 2020  06:03 PM | Puck Reeders
    Is there a way to leave the B0's between the other DWI data in their place after using DTIPrep?
    Hi everyone, 

    When I use DTIPrep for my DWI QC, it deletes all my B0 files. 
    I tried to turn off the averaging of the B0 files by turning the  "baseline_averaging" to "No", but for some reason all my B0 files are gone after I use DTIPrep. I am not using the eddy/motion correction in DTIPrep. I know that needs the averaged B0.
    Any recommendations on how to use DTIPrep and keeping my B0 files in place?
    Thank you in advance!

    Best,

    Puck Reeders

    • Mar 25, 2020  07:03 PM | Martin Styner
      RE: Is there a way to leave the B0's between the other DWI data in their place after using DTIPrep?
      Originally posted by Puck Reeders:
       Hi everyone, 

      When I use DTIPrep for my DWI QC, it deletes all my B0 files. 
      I tried to turn off the averaging of the B0 files by turning the  "baseline_averaging" to "No", but for some reason all my B0 files are gone after I use DTIPrep. I am not using the eddy/motion correction in DTIPrep. I know that needs the averaged B0.
      Any recommendations on how to use DTIPrep and keeping my B0 files in place?
      Thank you in advance!

      Best,

      Puck Reeders
      If you turn off baseline averaging, then it should not replace all of your b=0 with the average b=0, so all you b=0 volumes should still be present.  Please try again (and ensure that it writes to a new output folder) with baseline averaging disabled.

      btw, the eddy motion correction uses the first b=0 as target. If baseline averaging is enabled, then that is the first b=0 volume. baseline averaging is not needed but recommended for eddy motion correction

      One last comment: it could also be that the b=0 volumes are all low quality and thus get rejected in the slice-wise or interlace check? You should be able to see that from the QC report txt file

      Martin

      • May 7, 2020  10:05 AM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
        RE: Is there a way to leave the B0's between the other DWI data in their place after using DTIPrep?
        Hi, I am experiencing exactly the same problem. I have double cheked (visual inspected) b0 images and they are completely fine. I unselect average b0 options and it does not change behavior. For any reason, during slice wise cheking, it detects bad correlation levels between slices of the b0 images (first and last volumes). 
          I tried to increase baseline slice-wise threhsold to sd=6, but it keeps on removing b0 volumes (slices with zscore around -3.7 to -5.). Interestengly it only detects slices with negative Z correlations. 

        any suggestion about how to tell DTIPrep to preserve b0 volumes?

        Best regards,
        Dani Bergé
        Originally posted by Martin Styner:
        Originally posted by Puck Reeders:
         Hi everyone, 

        When I use DTIPrep for my DWI QC, it deletes all my B0 files. 
        I tried to turn off the averaging of the B0 files by turning the  "baseline_averaging" to "No", but for some reason all my B0 files are gone after I use DTIPrep. I am not using the eddy/motion correction in DTIPrep. I know that needs the averaged B0.
        Any recommendations on how to use DTIPrep and keeping my B0 files in place?
        Thank you in advance!

        Best,

        Puck Reeders
        If you turn off baseline averaging, then it should not replace all of your b=0 with the average b=0, so all you b=0 volumes should still be present.  Please try again (and ensure that it writes to a new output folder) with baseline averaging disabled.

        btw, the eddy motion correction uses the first b=0 as target. If baseline averaging is enabled, then that is the first b=0 volume. baseline averaging is not needed but recommended for eddy motion correction

        One last comment: it could also be that the b=0 volumes are all low quality and thus get rejected in the slice-wise or interlace check? You should be able to see that from the QC report txt file

        Martin

        • May 7, 2020  12:05 PM | Martin Styner
          RE: Is there a way to leave the B0's between the other DWI data in their place after using DTIPrep?
          Quick clarification question:
          - are there no (0) b0 after DTIPrep or just 1 b0 (the first volume)?
          - given your description, it's not an issue of the b0 averaging (since that is turned off), but the slice-wise check removes all b0's (you can see that in the output report or in the output xml)?

          Martin
          Originally posted by Daniel Berge:
          Hi, I am experiencing exactly the same problem. I have double cheked (visual inspected) b0 images and they are completely fine. I unselect average b0 options and it does not change behavior. For any reason, during slice wise cheking, it detects bad correlation levels between slices of the b0 images (first and last volumes). 
            I tried to increase baseline slice-wise threhsold to sd=6, but it keeps on removing b0 volumes (slices with zscore around -3.7 to -5.). Interestengly it only detects slices with negative Z correlations. 

          any suggestion about how to tell DTIPrep to preserve b0 volumes?

          Best regards,
          Dani Bergé
          Originally posted by Martin Styner:
          Originally posted by Puck Reeders:
           Hi everyone, 

          When I use DTIPrep for my DWI QC, it deletes all my B0 files. 
          I tried to turn off the averaging of the B0 files by turning the  "baseline_averaging" to "No", but for some reason all my B0 files are gone after I use DTIPrep. I am not using the eddy/motion correction in DTIPrep. I know that needs the averaged B0.
          Any recommendations on how to use DTIPrep and keeping my B0 files in place?
          Thank you in advance!

          Best,

          Puck Reeders
          If you turn off baseline averaging, then it should not replace all of your b=0 with the average b=0, so all you b=0 volumes should still be present.  Please try again (and ensure that it writes to a new output folder) with baseline averaging disabled.

          btw, the eddy motion correction uses the first b=0 as target. If baseline averaging is enabled, then that is the first b=0 volume. baseline averaging is not needed but recommended for eddy motion correction

          One last comment: it could also be that the b=0 volumes are all low quality and thus get rejected in the slice-wise or interlace check? You should be able to see that from the QC report txt file

          Martin

          • May 8, 2020  08:05 AM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
            RE: Is there a way to leave the B0's between the other DWI data in their place after using DTIPrep?
            Hi Martin, Thanks for your answer,
             
                  Both b0 images are removed during the slice-wiise process. It happens for all subjects, and b0 images seem to be ok when visually inspected. I modified the protocol to run only sice-wise and the problem is there. Both b0 are excluded as it is reported in the QCReport.txt and in the xml file. I am attaching the txt report.
             I guess I could use the GUI , open the xml results file and mark the b0 images as "included" after visual inspection, but doing this process for each subject would be time consuming. I hope there is another way.

            Thanks in advance.

            Originally posted by Martin Styner:
            Quick clarification question:
            - are there no (0) b0 after DTIPrep or just 1 b0 (the first volume)?
            - given your description, it's not an issue of the b0 averaging (since that is turned off), but the slice-wise check removes all b0's (you can see that in the output report or in the output xml)?

            Martin
            Originally posted by Daniel Berge:
            Hi, I am experiencing exactly the same problem. I have double cheked (visual inspected) b0 images and they are completely fine. I unselect average b0 options and it does not change behavior. For any reason, during slice wise cheking, it detects bad correlation levels between slices of the b0 images (first and last volumes). 
              I tried to increase baseline slice-wise threhsold to sd=6, but it keeps on removing b0 volumes (slices with zscore around -3.7 to -5.). Interestengly it only detects slices with negative Z correlations. 

            any suggestion about how to tell DTIPrep to preserve b0 volumes?

            Best regards,
            Dani Bergé
            Originally posted by Martin Styner:
            Originally posted by Puck Reeders:
             Hi everyone, 

            When I use DTIPrep for my DWI QC, it deletes all my B0 files. 
            I tried to turn off the averaging of the B0 files by turning the  "baseline_averaging" to "No", but for some reason all my B0 files are gone after I use DTIPrep. I am not using the eddy/motion correction in DTIPrep. I know that needs the averaged B0.
            Any recommendations on how to use DTIPrep and keeping my B0 files in place?
            Thank you in advance!

            Best,

            Puck Reeders
            If you turn off baseline averaging, then it should not replace all of your b=0 with the average b=0, so all you b=0 volumes should still be present.  Please try again (and ensure that it writes to a new output folder) with baseline averaging disabled.

            btw, the eddy motion correction uses the first b=0 as target. If baseline averaging is enabled, then that is the first b=0 volume. baseline averaging is not needed but recommended for eddy motion correction

            One last comment: it could also be that the b=0 volumes are all low quality and thus get rejected in the slice-wise or interlace check? You should be able to see that from the QC report txt file

            Martin

            • May 8, 2020  01:05 PM | Martin Styner
              RE: Is there a way to leave the B0's between the other DWI data in their place after using DTIPrep?
              Hi Daniel
              Not sure what is going wrong. The correlation values are high even in the slices identified as bad, so those b0 volumes should not get excluded. 

              Possibly this is a bug (?), but I don't have sufficient information to diagnose what is going wrong. 

              One possible thing to try: create a brain mask (or even just a foreground mask), mask the DWI and rerun it on DTIPrep. That assumes that there is significant noise on the background that was not immediately perceptible visually and the noise confuses DTIPrep

              Below is pasted section showing the most relevant info from your text file
              Slicewise_artifacts Region GradientNum Slice Correlation zScore
              Slicewise_artifacts whole 0 23 0.967734 -5.141697
              Slicewise_artifacts whole 0 37 0.975505 -3.743096
              Slicewise_artifacts whole 69 7 0.981529 -5.826872
              Slicewise_artifacts whole 69 8 0.980383 -5.847404
              Slicewise_artifacts whole 69 9 0.983170 -4.458537
              Slicewise_artifacts whole 69 10 0.974445 -4.216282

              …..
              Originally posted by Daniel Berge:
              Hi Martin, Thanks for your answer,
               
                    Both b0 images are removed during the slice-wiise process. It happens for all subjects, and b0 images seem to be ok when visually inspected. I modified the protocol to run only sice-wise and the problem is there. Both b0 are excluded as it is reported in the QCReport.txt and in the xml file. I am attaching the txt report.
               I guess I could use the GUI , open the xml results file and mark the b0 images as "included" after visual inspection, but doing this process for each subject would be time consuming. I hope there is another way.

              Thanks in advance.

              Originally posted by Martin Styner:
              Quick clarification question:
              - are there no (0) b0 after DTIPrep or just 1 b0 (the first volume)?
              - given your description, it's not an issue of the b0 averaging (since that is turned off), but the slice-wise check removes all b0's (you can see that in the output report or in the output xml)?

              Martin
              Originally posted by Daniel Berge:
              Hi, I am experiencing exactly the same problem. I have double cheked (visual inspected) b0 images and they are completely fine. I unselect average b0 options and it does not change behavior. For any reason, during slice wise cheking, it detects bad correlation levels between slices of the b0 images (first and last volumes). 
                I tried to increase baseline slice-wise threhsold to sd=6, but it keeps on removing b0 volumes (slices with zscore around -3.7 to -5.). Interestengly it only detects slices with negative Z correlations. 

              any suggestion about how to tell DTIPrep to preserve b0 volumes?

              Best regards,
              Dani Bergé
              Originally posted by Martin Styner:
              Originally posted by Puck Reeders:
               Hi everyone, 

              When I use DTIPrep for my DWI QC, it deletes all my B0 files. 
              I tried to turn off the averaging of the B0 files by turning the  "baseline_averaging" to "No", but for some reason all my B0 files are gone after I use DTIPrep. I am not using the eddy/motion correction in DTIPrep. I know that needs the averaged B0.
              Any recommendations on how to use DTIPrep and keeping my B0 files in place?
              Thank you in advance!

              Best,

              Puck Reeders
              If you turn off baseline averaging, then it should not replace all of your b=0 with the average b=0, so all you b=0 volumes should still be present.  Please try again (and ensure that it writes to a new output folder) with baseline averaging disabled.

              btw, the eddy motion correction uses the first b=0 as target. If baseline averaging is enabled, then that is the first b=0 volume. baseline averaging is not needed but recommended for eddy motion correction

              One last comment: it could also be that the b=0 volumes are all low quality and thus get rejected in the slice-wise or interlace check? You should be able to see that from the QC report txt file

              Martin

  • Apr 17, 2020  08:04 PM | skylar
    Gradient Failure and Interlace Check
    Hi,

    I'm hoping to get some clarity on the gradient failed result under diffusion information that I'm receiving for most of the DWI files I'm processing. This was addressed in a previous forum post with the response being, "The error stems from the mismatch in gradients between the files. I.e. if the DWI file that you use to create the default protocol has different gradients from the DWI that you are QC\'ing then DTIPrep will raise that as an issue. Simply turn off the diffusion gradient information check and DTIPrep will not check that the protocol and the DWI have to have the same gradients." Could you explain why this information check is irrelevant? Or is it only irrelevant in certain cases?

    Also, the interlace correlation parameters for every gradient and some of the interlace translation parameters are in red. Does this indicate an error? If so, why were these gradients still included? I've attached a picture for reference.

    I'm using the default protocol with the exception of the brain mask settings.

    Thank you!
    Skylar

  • Apr 17, 2020  12:04 PM | Angels Calvet
    BrainMask_method 2 error
    Dear users and developers,

    I'm new using DTIPrep for DWI QC.
    I'm using it from command line and I'm interested in performing the BRAINMASK as (if I'm not wrong) it is necessary for the DOMINANTDIRECTION step (in which I'm really interested).
    However, choosing the BRAINMASK_method to 2 (the user mask) and introducing the path in BRAINMASK_MaskedImage. I get the following error :

    The brain mask procedure needs brain mask image. No brain mask image is used in protocol.
    FAILURE IN:/work/jprieto/source/DTIPrep/src/main.cxx at 208

    How can I load the mask?

    Thank you!

    • Apr 17, 2020  02:04 PM | Martin Styner
      RE: BrainMask_method 2 error
      Yes, the brain mask is needed for the dominant direction step. We usually use the automatically generated one, so it could be that using a user supplied mask is currently not working properly.

      You specified things correctly, i.e. set BRAINMASK_method to 2 and set the path to the mask in BRAINMASK_MaskedImage. The error you are getting should only happen if your method is set to 2 and the mask image path is empty. Can you check your protocol xml file to see whether the BRAINMASK_MaskedImage entry is empty or not?

      Quick questions: Which version of DTIPrep are you using? Which platform?

      Best
      Martin
      Originally posted by Angels Calvet:
      Dear users and developers,

      I'm new using DTIPrep for DWI QC.
      I'm using it from command line and I'm interested in performing the BRAINMASK as (if I'm not wrong) it is necessary for the DOMINANTDIRECTION step (in which I'm really interested).
      However, choosing the BRAINMASK_method to 2 (the user mask) and introducing the path in BRAINMASK_MaskedImage. I get the following error :

      The brain mask procedure needs brain mask image. No brain mask image is used in protocol.
      FAILURE IN:/work/jprieto/source/DTIPrep/src/main.cxx at 208

      How can I load the mask?

      Thank you!

      • Apr 17, 2020  04:04 PM | Angels Calvet
        RE: BrainMask_method 2 error
        Hi!

        I'm using the version 1.2.8 in linux.

        Regarding method 2, I checked the protocol and there was the path in the BRAINMASK_MaskedImage entry. I don't think this will be the error, but the mask is in nifti format.

        Then, I tried with method 0 (FSL bet (B0)) and it hasn't worked either:

        FAILED execution of Documents/DTIPrepTools-0.1.1-Linux/bin/DTIPrep in /work/jprieto/source/DTIPrep/src/main.cxx at 1475 with code 96

        Bests

  • Feb 28, 2020  06:02 PM | ameliaqian
    Visual check of the DTI data
    I have ran the DTIPrep automated pipeline and going to have visual check on QCed data. I noticed that the exclusion in DTIprep is gradient-based. I wonder whether I need to check every slice in one gradient to make sure there is no artifacts, or one slice in each gradient is enough. Also, I wonder if the same artifact occurs in multiple gradient (~10-20%), should I code this whole scan as failed?

    • Mar 23, 2020  02:03 PM | ameliaqian
      RE: Visual check of the DTI data
      In the *_QCReport.txt file, there are "Slice-wise Check Artefacts". Besides a column of excluded gradient, it includes a column of "Slice#". I wonder what the slice mean? Does it imply the gradient has high correlation in this specific slice, so this gradient is excluded?

      Also, I want to ask about the "Region" column. What do "whole", "region1", "region3" mean?

      • Mar 23, 2020  08:03 PM | Martin Styner
        RE: Visual check of the DTI data
        Originally posted by ameliaqian:
        In the *_QCReport.txt file, there are "Slice-wise Check Artefacts". Besides a column of excluded gradient, it includes a column of "Slice#". I wonder what the slice mean? Does it imply the gradient has high correlation in this specific slice, so this gradient is excluded?

        Also, I want to ask about the "Region" column. What do "whole", "region1", "region3" mean?
        The Slice number indicates the slice number where the slice wise check detected an artifacts (mainly based on a low correlation of this slice to its neighboring slice). You can disregard the Region column as it is unused.

        Martin

        • Mar 23, 2020  10:03 PM | ameliaqian
          RE: Visual check of the DTI data
          The slice parameter is unclear for me. Does Slice# refer to the slice in the coronal, sagittal or axial view?

          • Mar 23, 2020  10:03 PM | Martin Styner
            RE: Visual check of the DTI data
            Originally posted by ameliaqian:
            The slice parameter is unclear for me. Does Slice# refer to the slice in the coronal, sagittal or axial view?
            It 's the z-axis slice direction (usually axial for diffusion sequences)

            Martin

            • Mar 29, 2020  10:03 PM | ameliaqian
              RE: Visual check of the DTI data
              1. In the DTIPrep manual, denoising is not default. One collaborator recommended me to denoise the DTI data. I wonder in which circumstance I should implement denoise procedure and how it influences the final analysis?

              2. One participant are failed from DTIPrep pipeline with the reason "Single b value DWI without a b0/baseline". But when I checked this participant, it does have b0 and 64 gradients. What does this failing reason mean?

              3. You mentioned "slice wise check detected an artifacts (mainly based on a low correlation of this slice to its neighboring slice)". I want to know whether DTIPrep calculates the correlation of this slice to its previous neighboring slice or more?

              4. I found I cannot implement visual check 2: "Directional Spatial Distribution QC". I can only see the lines starting from the centre of sphere, rather than dots. The lines change color when I move the sphere. So I cannot identify the location of excluded gradients. My version of DTIPrep is 1.2.4.

              5. I notices b0 in one brain scan have artifacts in raw data but corrected in QCed.nrrd. Should I excluded this participant in this case?

              6. I am trying to test the effect of NC on the DTIPrep output. Is it the parameter "SLICE_correlationDeviationThresholdGradient"? Also, I wonder if I change this parameter from 3.5 to 1, whether I need to change the parameter "SLICE_correlationDeviationThresholdbaseline" correspondingly?

          Mar 24, 2020  12:03 AM | ameliaqian
          RE: Visual check of the DTI data
          Thank you for your fast response. Here are my follow-up questions:

          1. In the DTIPrep manual, denoising is not default. One collaborator recommended me to denoise the DTI data. I wonder in which circumstance I should implement denoise procedure and how it influences the final analysis?

          2. One participant are failed from DTIPrep pipeline with the reason "Single b value DWI without a b0/baseline". But when I checked this participant, it does have b0 and 64 gradients. What does this failing reason mean?

          3. You mentioned "slice wise check detected an artifacts (mainly based on a low correlation of this slice to its neighboring slice)". I want to know whether DTIPrep calculates the correlation of this slice to its previous neighboring slice or more?

          4. In the DTIPrep manual, the procedure first implement automated pipeline then visual check. In visual check, I found some DTIPrep-excluded gradient looks similar to the other unexcluded ones, while the other have the severe artifacts. I wonder whether there is a strong reason that I must exclude the "look-not-so-bad" gradients which has been detected? My rationale is to keep as much DTI gradients as possible at the beginning rather than losing them. Furthermore, could I perform visual check then automated pipeline?

          5. I found I cannot implement visual check 2: "Directional Spatial Distribution QC". I can only see the lines starting from the centre of sphere, rather than dots. The lines change color when I move the sphere. My version of DTIPrep is 1.2.4.

          5. I notices b0 in one brain scan have artifacts. Should I excluded this participant in this case?

      Mar 23, 2020  08:03 PM | Martin Styner
      RE: Visual check of the DTI data
      Originally posted by ameliaqian:
      I have ran the DTIPrep automated pipeline and going to have visual check on QCed data. I noticed that the exclusion in DTIprep is gradient-based. I wonder whether I need to check every slice in one gradient to make sure there is no artifacts, or one slice in each gradient is enough. Also, I wonder if the same artifact occurs in multiple gradient (~10-20%), should I code this whole scan as failed?

      If you do a visual assessment, you need to do more than 1 slice per gradient. Best look at the orthogonal directions, i.e. if your data is axial, look at the sagittal and coronal slices, as you can see across-slice differences best in those views. 

      You can use the visual QC mode in DTIPrep (though it is quite clunky) to remove DWI gradients with bad slices. 

      With respect to failing a whole scan, we usually use a 30% threshold as compared to the full number of gradients (i.e. not based on the number of gradients in the QC output of DTIPrep, but the original number of gradients).

      Martin

  • Jan 16, 2020  05:01 PM | Ali Ghayoor
    Taking the average of components with similar gradient direction
    Hello,

    I have two questions regarding DTIPrep:
    1- Is it still available as an extension of 3D Slicer? I could not find it in Slicer 4.10.
    2- Does DTIPrep takes the average of the gradient components, which have the same gradient directions?

    Thank you,
    Ali Ghayoor

    • Jan 17, 2020  01:01 PM | Martin Styner
      RE: Taking the average of components with similar gradient direction
      Originally posted by Ali Ghayoor:
      Hello,

      I have two questions regarding DTIPrep:
      1- Is it still available as an extension of 3D Slicer? I could not find it in Slicer 4.10.
      2- Does DTIPrep takes the average of the gradient components, which have the same gradient directions?

      Thank you,
      Ali Ghayoor
      1. yes and no. It still works as a 3D Slicer extension (i.e. if DTIPrep is found in the module path list of Slicer, then it will add DTIPrep to the module list). But we do not consistently update it such that it remains available through the Extension browser. 
      2. No, it only averages the b=0 images (after correction for motion), all other images are not averaged.

      Best
      Martin

  • Dec 3, 2019  02:12 PM | Jayashree Chandrasekaran
    Couldn't see QC results
    Hello,

    I recently downloaded the DTIPrep on my mac (OS - Sierra) including the Slicer and FSL software. I ran the DTIPrep through GUI with default protocol on one of the DWI NRRD files (used DWIConvert to obtain NRRD file from DICOM), but I can only see incomplete QC report text file on the output folder. The QC results tab on the GUI is empty and doesn't contain the results. I'd really appreciate any help on fixing this issue.

    The protocol paths were automatically set except for bet2 and Slicer.


    Thank you!

    Jayashree

    • Dec 5, 2019  02:12 PM | Martin Styner
      RE: Couldn't see QC results
      Not sure what's going wrong, can you post the content of the QC report text file?
      Using the protocol tab, can you post which steps are scheduled to be done (or you could attach the protocol file that you used)

      Best
      Martin

      Originally posted by Jayashree Chandrasekaran:
      Hello,

      I recently downloaded the DTIPrep on my mac (OS - Sierra) including the Slicer and FSL software. I ran the DTIPrep through GUI with default protocol on one of the DWI NRRD files (used DWIConvert to obtain NRRD file from DICOM), but I can only see incomplete QC report text file on the output folder. The QC results tab on the GUI is empty and doesn't contain the results. I'd really appreciate any help on fixing this issue.

      The protocol paths were automatically set except for bet2 and Slicer.


      Thank you!

      Jayashree

      Dec 6, 2019  09:12 PM | Jayashree Chandrasekaran
      RE: Couldn't see QC results
      Hi Martin,

      Please find attached screenshots of the protocol and result tab and QC report text file.


      Appreciate your help!

      Jayashree
      Attachment: dtiPrep_results.png

      Dec 6, 2019  09:12 PM | Jayashree Chandrasekaran
      RE: Couldn't see QC results
      Protocol file

  • Nov 19, 2019  02:11 AM | ameliaqian
    brain mask error: ImageMath cannot be started
    I am doing QC using DTIPrep and it work well except brain mask. I use bet2 from FSL, DiffusionWeightedVolumeMasking from slicer 4.4.0, ImageMath from DTIPrep. Based on the posts on forum, I chose BRAINMASK_method as 3 FSL_bet(IDWI).


    The QC report shows: DTIPrepPackage/ImageMath cannot be started. (I attached a image of report). How can I solve this issue?
    Attachment: QCreport.png

    • Nov 19, 2019  02:11 PM | Martin Styner
      RE: brain mask error: ImageMath cannot be started
      ImageMath is a small tool on the DTIPrep package and it needs to find it in order to apply the computed brain masks. It looks like it finds it correctly (assuming that you have indeed ImageMath under the path listed in that line in the QCreport), but cannot start it. Not sure what the issue is as this is not a message from ImageMath, but from the system. Maybe you do not execution privileges for ImageMath? 

      If you look at the properties of that executable, you should see whether you can/are allowed to execute it or not.

      Martin

      • Nov 19, 2019  03:11 PM | ameliaqian
        RE: brain mask error: ImageMath cannot be started
        I checked the property of ImageMath. It is executable.


        I remembered several days ago, the QC report showed "Brain Mask FSL: DTIPrep/bet2 cannot be started". Then I changed some settings. Now it shows "ImageMath had an issue". I have no idea why it changed and how to solve it.

  • Jun 28, 2019  03:06 PM | gpicci - The Pennsylvania State University
    DTIPrep gitclone install errors
    Hello, 

    I'm having issues successfully installing DTIPrep in Linux. I followed the commands others listed with the gitclone and cmake. However, I get the following error during configuration:

    CMake Error at CMakeLists.txt:261 (message):
    Invlaid configuration: ITKV3_COMPATIBILITY AND ITK_LEGACY_REMOVE can not
    both be ON


    Does anyone have an idea about how to fix this? 

    Thank you in advance! 

    Giorgia

    • Jun 28, 2019  08:06 PM | Martin Styner
      RE: DTIPrep gitclone install errors
      Hi Giorgia
      Can you turn ITK_LEGACY_REMOVE off for the itk compilation?
      Martin
      Originally posted by gpicci:
      Hello, 

      I'm having issues successfully installing DTIPrep in Linux. I followed the commands others listed with the gitclone and cmake. However, I get the following error during configuration:

      CMake Error at CMakeLists.txt:261 (message):
      Invlaid configuration: ITKV3_COMPATIBILITY AND ITK_LEGACY_REMOVE can not
      both be ON


      Does anyone have an idea about how to fix this? 

      Thank you in advance! 

      Giorgia

      • Jul 2, 2019  03:07 PM | gpicci - The Pennsylvania State University
        RE: DTIPrep gitclone install errors
        Hi Martin,

        Thank you for your reply! I can certainly try. I'm a bit of a newbie in command line. Do you have recommendations for commands to do this? 

        Giorgia

        • Oct 8, 2019  03:10 PM | John Graner
          RE: DTIPrep gitclone install errors
          Giorgia,

          I ran into the same error and found a way around it. I am getting another error down the line now but I figured I'd share this in case it helps. Here's what I did, starting from the beginning of the install process (I also added a command to create the DTIPrep-build/bin directory because for some reason the installation wasn't creating it correctly):
          1) git clone https://github.com/NIRALUser/DTIPrep.git
          2) mkdir DTIPrep-build; mkdir DTIPrep-build/bin; cd DTIPrep-build
          3) cmake ../DTIPrep
          4) (Open the file ../DTIPrep/SuperBuild/External_ITKv4.cmake with a text editor.)
          5) (Change the default value of "-DITK_LEGACY_REMOVE" to "OFF".)
          6) make

          Here's the next error I'm getting that I haven't been able to solve:

          CMake Error at /usr/local/share/cmake-3.12/Modules/ExternalProject.cmake:2425 (message):
          URL_HASH is set to

          SHA512="1ee2c7bec3657f6846e63c6dfa71410563830d2b951966bf0123bd8f4f2f5d6b50f13b76d9a7b0eae70e44856f829ca6ceb3d080bb016
          49d1572c9f3f68e8eb1"
          but must be ALGO=value where ALGO is
          MD5|SHA1|SHA224|SHA256|SHA384|SHA512|SHA3_224|SHA3_256|SHA3_384|SHA3_512
          and value is a hex string.
          Call Stack (most recent call first):
          /usr/local/share/cmake-3.12/Modules/ExternalProject.cmake:3100 (_ep_add_download_command)
          CMake/itkExternal_FFTW.cmake:118 (ExternalProject_add)
          CMakeLists.txt:321 (include)

          Thanks,
          -John

  • Jun 14, 2019  07:06 PM | Hayley Clocksin
    DTIPrep Error with Default Protocol (Bad DWI)
    Hello, 

    I am just starting out with DTIPrep through the Slicer extension (version 4.4.0)and have run into the error "Bad DWI: mismatch between gradient image # and gradient vector #!" when I try to use the default protocol. This error has come up on different data sets from two different research centers. Any advice would be greatly appreciated! 

    Hayley

    • Jun 16, 2019  08:06 PM | Martin Styner
      RE: DTIPrep Error with Default Protocol (Bad DWI)
      Hi Hayley

      This is not an error of DTIPrep, but rather when reading your DWI-NRRD file the importer detects an issue, specifically that the number of DWI volumes does not match the number of gradient directions specified in the header. Likely this is a conversion issue when you generated the NRRD file.

      1) how did you generate the NRRD file?

      2) look at the header (it's ASCII, so you can look at it with any text editor): what is the header information? how many gradients are specified and how many volumes should there be?

      Martin

      Originally posted by Hayley Clocksin:
      Hello, 

      I am just starting out with DTIPrep through the Slicer extension (version 4.4.0)and have run into the error "Bad DWI: mismatch between gradient image # and gradient vector #!" when I try to use the default protocol. This error has come up on different data sets from two different research centers. Any advice would be greatly appreciated! 

      Hayley

      • Jun 17, 2019  05:06 PM | Hayley Clocksin
        RE: DTIPrep Error with Default Protocol (Bad DWI)
        Hi Martin, 

        I have been importing the DICOM files through Slicer, loading the relevant files and then saving them as a NRRD file.  The header file specifies 25 gradients and 25 volumes. 
        Thank you for your help!

        Hayley

        • Jun 17, 2019  06:06 PM | Martin Styner
          RE: DTIPrep Error with Default Protocol (Bad DWI)
          Hi Hayley
          The generic DICOM importer in Slicer does not work well for DWI data. You need to use the DWIConverter module to import your data (see also the QC presentation here (lesson 3 - slide 7) https://www.med.unc.edu/psych/research/niral/download/download-documents/)

          The use of DWIConverter in Slicer is a bit clunky, but it's worth using it. On linux you can also use it on the command line:

          Slicer --launch DWIConvert -i yourDicomDirectory -o yourOutput.nrrd --useBMatrixGradientDirections

          (the last option is not necessary, but provides more accurate b-values and gradient vectors if the BMatrix is stored in the DICOM tags).

          Best
          Martin

          Originally posted by Hayley Clocksin:
          Hi Martin, 

          I have been importing the DICOM files through Slicer, loading the relevant files and then saving them as a NRRD file.  The header file specifies 25 gradients and 25 volumes. 
          Thank you for your help!

          Hayley

          • Jun 18, 2019  02:06 PM | Hayley Clocksin
            RE: DTIPrep Error with Default Protocol (Bad DWI)
            Hi Martin,

            Thank you so much for your help! It looks like my DICOM files weren't compatible as well, but DWIConverter seems to be working with my NIFTI files. 

            Best, 
            Hayley

  • Apr 1, 2019  06:04 PM | John Graner
    DTIPrep Installation Error (libtiff)
    Hello all,

    I'm attempting to install DTIPrep using the following commands and ran into an error running "make". I'm running Ubuntu 16.04.6 on a Virtual Machine.
    I've been searching the internet for an answer but haven't come across anything that works.
    Does anybody have any suggestions?

    Thanks,
    -John

    Attempted install commands:
    1. git clone https://github.com/NIRALUser/DTIPrep.git
    2. mkdir DTIPrep-build; cd DTIPrep-build
    3. cmake ../DTIPrep
    4. make

    Error Messages:
    ...
    [100%] Linking CXX executable /home/code/DTIPrep-build/bin/itkTestDriver
    /home/code/DTIPrep-build/TIFF-install/lib/libtiff.a(tif_jbig.o):tif_jbig.c:function JBIGDecode: error: undefined reference to 'jbg_dec_init'
    /home/code/DTIPrep-build/TIFF-install/lib/libtiff.a(tif_jbig.o):tif_jbig.c:function JBIGDecode: error: undefined reference to 'jbg_newlen'
    /home/code/DTIPrep-build/TIFF-install/lib/libtiff.a(tif_jbig.o):tif_jbig.c:function JBIGDecode: error: undefined reference to 'jbg_dec_in'
    /home/code/DTIPrep-build/TIFF-install/lib/libtiff.a(tif_jbig.o):tif_jbig.c:function JBIGDecode: error: undefined reference to 'jbg_strerror'
    /home/code/DTIPrep-build/TIFF-install/lib/libtiff.a(tif_jbig.o):tif_jbig.c:function JBIGDecode: error: undefined reference to 'jbg_dec_free'
    /home/code/DTIPrep-build/TIFF-install/lib/libtiff.a(tif_jbig.o):tif_jbig.c:function JBIGDecode: error: undefined reference to 'jbg_dec_getimage'
    /home/code/DTIPrep-build/TIFF-install/lib/libtiff.a(tif_jbig.o):tif_jbig.c:function JBIGDecode: error: undefined reference to 'jbg_dec_getsize'
    /home/code/DTIPrep-build/TIFF-install/lib/libtiff.a(tif_jbig.o):tif_jbig.c:function JBIGDecode: error: undefined reference to 'jbg_dec_free'
    /home/code/DTIPrep-build/TIFF-install/lib/libtiff.a(tif_jbig.o):tif_jbig.c:function JBIGEncode: error: undefined reference to 'jbg_enc_init'
    /home/code/DTIPrep-build/TIFF-install/lib/libtiff.a(tif_jbig.o):tif_jbig.c:function JBIGEncode: error: undefined reference to 'jbg_enc_out'
    /home/code/DTIPrep-build/TIFF-install/lib/libtiff.a(tif_jbig.o):tif_jbig.c:function JBIGEncode: error: undefined reference to 'jbg_enc_free'
    collect2: error: ld returned 1 exit status
    Modules/Core/TestKernel/src/CMakeFiles/itkTestDriver.dir/build.make:126: recipe for target '/home/code/DTIPrep-build/bin/itkTestDriver' failed
    make[5]: *** [/home/code/DTIPrep-build/bin/itkTestDriver] Error 1
    CMakeFiles/Makefile2:13449: recipe for target 'Modules/Core/TestKernel/src/CMakeFiles/itkTestDriver.dir/all' failed
    make[4]: *** [Modules/Core/TestKernel/src/CMakeFiles/itkTestDriver.dir/all] Error 2
    Makefile:151: recipe for target 'all' failed
    make[3]: *** [all] Error 2
    CMakeFiles/ITKv4.dir/build.make:116: recipe for target 'ITKv4-prefix/src/ITKv4-stamp/ITKv4-build' failed
    make[2]: *** [ITKv4-prefix/src/ITKv4-stamp/ITKv4-build] Error 2
    CMakeFiles/Makefile2:227: recipe for target 'CMakeFiles/ITKv4.dir/all' failed
    make[1]: *** [CMakeFiles/ITKv4.dir/all] Error 2
    Makefile:94: recipe for target 'all' failed
    make: *** [all] Error 2

  • Feb 21, 2019  11:02 AM | esin karahan - Cardiff University Brain Research Imaging Centre
    Extract FA and MD maps calculated by DTIPrep
    Hi DTIPrep developers,

    I am using DTIPrep Version 1.2.8.

    My DWI data is composed of 30 directions of b=1200 shell and 60 directions of b=2400 shell. I ran a DTIPrep QC check over all my subjects. I want to compare the FA/MD maps between DTIPrep pipeline and a standard FSL DITFIT pipeline (bet, eddt_correct, linear dtifit) to see how much FA/MD maps are affected by the correction.

    I have 2 questions:

    1 - Is it possible to calculate FA/MD values in DTIPrep by only using one shell data (b=1200) by quality checking on the whole dataset?

    2 - How can I export the FA/MD maps from the *_QCed.nrrd file to NIFTI fileformat?

    I used the Slicer DWIConvert NRRD2FSL option bu it gave me the following error:

    ======= DWI Convert Tool Program=========
    INPUT VOLUME: ~/QC/checked/p1_QCed.nrrd
    Error: ReadVolume: Unsupported source pixel type.
    Input volume: unsigned_short
    Output volume: short
    The only supported output type is . You may consider using allowLossyConversion option.
    However, use this option with caution! Conversion from images of a different type may cause data loss due to rounding or truncation.
    terminate called after throwing an instance of 'itk::ExceptionObject'
    what(): /work/Stable/Slicer-4101-build/BRAINSTools/DWIConvert/DWIConvertLib.cxx:130:
    itk::ERROR: Exception creating converter
    itk::ExceptionObject (0x25a1550)
    Location: "unknown"
    File: /work/Stable/Slicer-4101-build/BRAINSTools/DWIConvert/NRRDDWIConverter.cxx
    Line: 91
    Description: itk::ERROR: ERROR Reading NRRD File : ~/QC/checked/p1_QCed.nrrd

    Thanks a lot.
    Esin

    • Feb 21, 2019  01:02 PM | Rachel Steiner - University of Wisconsin - Madison
      RE: Extract FA and MD maps calculated by DTIPrep
      Hi esin,

      I believe I know the workaround. Do you mind sharing some info though:

      Can you share the header information from your original nrrd DWI file from pre-QC with DTIPrep with me? And also the header info of the QCed version?

      If you are unsure of how to do that, I think I can answer my own question by looking at your DTIPrep QC protocol that you ran on all of the subjects (assuming you kept the same protocol for everyone) and the DTIPrep final QC report.txt file that was output after it finished running for the p1 subject nrrd file that’s giving you problems.

      What scanner manufacturer did you collect this data on? Siemens?

      • Feb 21, 2019  03:02 PM | esin karahan - Cardiff University Brain Research Imaging Centre
        RE: Extract FA and MD maps calculated by DTIPrep
        Hi Rachel,

        Thank you very much for the quick response. 

        I attached a zip file that contains a mat file for the header info of both pre-QC & QC-ed images,  protocol.xml and QC report. The pre-QC file was in FSL-NIFTI format and I converted to NRRD by using DWI Convert tool in Slicer (vr 4.10.1 r27931) before QC.


        Best,
        Esin
        Attachment: p1.zip

        • Feb 21, 2019  03:02 PM | esin karahan - Cardiff University Brain Research Imaging Centre
          RE: Extract FA and MD maps calculated by DTIPrep
          Sorry I forgot to tell. It is a Siemens 3T Prisma scanner.

          Thanks again.

  • Jan 29, 2019  12:01 PM | Benjamin Davidson
    Using DTI to plan a DBS surgery - Trackvis
    Hi all,

    I'm trying to plan a DBS surgery using an ROI generated in Trackvis using DTI. I can't seem to save the ROI as anything other than a .scene file. Does anyone know a way I can get this ROI as a Nifti or something I can use?

    Thanks!!

    • Jan 29, 2019  01:01 PM | Martin Styner
      RE: Using DTI to plan a DBS surgery - Trackvis
      Originally posted by neuronerd:
      Hi all,

      I'm trying to plan a DBS surgery using an ROI generated in Trackvis using DTI. I can't seem to save the ROI as anything other than a .scene file. Does anyone know a way I can get this ROI as a Nifti or something I can use?

      Thanks!!
      Not sure this is the right forum for your question (as this is really about DTIPrep, i.e. QC of DTI/dMRI data), as my lab does not use Trackvis, but rather performs tractography in 3D Slicer.
      Martin

      • Jan 31, 2019  01:01 PM | Benjamin Davidson
        RE: Using DTI to plan a DBS surgery - Trackvis
        Thanks Martin!

        • Feb 21, 2019  02:02 PM | Rachel Steiner - University of Wisconsin - Madison
          RE: Using DTI to plan a DBS surgery - Trackvis
          Originally posted by neuronerd:
          Thanks Martin!


          Yes I was going to suggest Slicer for your particular needs since the interactive tracking (fiducicial tracking) feature is effectively designed for potential applications like surgical planning. As you move the seed or fiducial or roi, the track changes in real time. Let me know if you’d like more information. It’s a very cool tool with many capabilities. check it out.

  • Jan 23, 2019  01:01 PM | Benjamin Davidson
    DTI for long tracks
    Hi there, 

    I'm trying to visualize a patient's DTI images on TrackVis to help with preoperative planning. I seem to only be able to see short tracks (mean length 12mm). Even when I create a large ROI and place it in the corticospinal track, I can't see long tracks which I know should be there. Is there some mode parameter in TrackVis I should be changing? Can't seem to find a solution. 

    Any help would be appreciated!

    Thank you

    • Feb 21, 2019  02:02 PM | Rachel Steiner - University of Wisconsin - Madison
      RE: DTI for long tracks
      What are the parameters you are using in trackVis - have you set a length threshold or angle threshold value that is too strict?

      what is the voxel size or spacing of the image you are tracking with?
      Please feel free to send a screenshot. That would be helpful for quickly seeing what’s going on

  • Mar 7, 2017  12:03 PM | Megan Shott
    DTI Prep Default Protocol Error
    Hello,

    I am new to DTIPrep and trying to run the default protocol. After I load my NRRD file and click on the default protocol i get an error that the following programs have not been found (attached is the screen shot of the error): bet2; convertITKformats; ImageMath; DiffusionWeightedVolumeMasking; dtiestim; dtiprocess. 

    It says to enter the path manually if necessary but i am not sure what that is referring to.

    Thanks!
    Attachment: Error.tiff

    • Mar 8, 2017  03:03 PM | Martin Styner
      RE: DTI Prep Default Protocol Error
      Hi Megan
      Which platform is this (mac, linux) and are you calling DTIPrep through Slicer, if so how exactly? It looks like your paths have not been set up correctly (maybe an issue with the extension).
      Martin

      • Mar 8, 2017  04:03 PM | Megan Shott
        RE: DTI Prep Default Protocol Error
        Hi Martin,

        I am using a macOS Sierra and have DTIPrep as a standalone program.

        I actually tried to add it as an extension in Slicer (version 4.6.2) but could not figure out the steps to do that. Do you know how to add it as an extension in that version or an older version? Or, is it best to use the standalone program? 

        Also, after I ran the DTI protocol it does create  the QC results and new nrrd image but I cannot figure out how to convert it into a NIFTI format to then use in FSL. I receive an error "The only supported output type is . You may consider using allowLossyConversion option.However, use this option with caution! Conversion from images of a different type may cause data loss due to rounding or truncation." I tried running with allowing LossyConversion but it only saves a bvec and bval file but no NIFTI image. I am unsure if the issue I am having converting the image to FSL format is due to an issue within Slicer or because of the errors i am receiving using the DTIPrep. 

        One other question, when I try to view the output to do the visual checking, i click on the 3D viewer mode but do not see a sphere with the distribution of direction of gradients that the manual talks about, it is just a grey screen. 


        Any help on these steps would be much appreciated. I've been trying to go off the 'Quality Control Tutorial for DTI' but I am new to this pipeline and am not entirely sure I am doing it correctly. 

        Thanks,

        Megan

        • Mar 9, 2017  03:03 PM | Martin Styner
          RE: DTI Prep Default Protocol Error
          Hi Megan

          1) platform: Did you compile it yourself or download from NITRC? Apart from the FSL tools (bet2), the other tools should have come with the DTIPrep download, so those tools should be there. You can specify in the protocol where this tools are located.

          2) to Slicer or not to Slicer: Both options are equally workeable, but the nice thing about the Slicer extension is that those external tools should be all setup (apart from the FSL bet). It may though be that we need to update the extension and it's not compatible with the newest version of Slicer.

          3) Those additional tools are necessary for a) mask creation and b) tensor computation. Thus, you will get the QCed DWI without the need for these tools DTIPrep did not find.

          4) NIFTI: Best use the Slicer module DWIConverter (stand alone DWIConvert) , we use it regularly to take DTIPrep data into the FSL world (e.g. for probabilistic tractography).

          5) Gradient sphere: did you enable the sphere and gradient display (click on the correspoding icons)?

          • Mar 10, 2017  04:03 AM | Megan Shott
            RE: DTI Prep Default Protocol Error
            Hi Martin,

            Thank you for your response:

            1. I downloaded DTIPrep version 1.2.7 from the NITRC website. I am able to input the FSL bet2 path but am not sure what paths to input for the other tools. Could you provide me with the directory paths for the other tools? When I look at the package contents I cannot tell where or what files to specify.

            2. With Slicer version 4.6.2 I do not see an option to add the DTIPrep extension. If is not compatible then I assume specifying where to find the tools in the standalone version of DTIPrep is the way to go? Otherwise, what version of Slicer is compatible with DTIPrep that would allow me to add as an extension?

            3/4. With the output file from DTIPrep I have been trying to figure out in Slicer how to convert the image into FSL format using the DWIConverter but receive several error message. I posted the error log on the Slicer community list but have not gotten any replies. Perhaps you could help me figure out the issue. The following is the errors I receive: 



            Found CommandLine Module, target is /Applications/Slicer.app/Contents/lib/Slicer-4.6/cli-modules/DWIConvert
            ModuleType: CommandLineModule
            DWIConverter command line:
            /Applications/Slicer.app/Contents/lib/Slicer-4.6/cli-modules/DWIConvert --conversionMode NrrdToFSL --inputVolume /var/folders/gm/5xjgw9fs1cd6w3f79y7bj72w0000gn/T/Slicer/GHAD_vtkMRMLDiffusionWeightedVolumeNodeB.nrrd --outputVolume /var/folders/gm/5xjgw9fs1cd6w3f79y7bj72w0000gn/T/Slicer/GHAD_vtkMRMLDiffusionWeightedVolumeNodeB.nrrd --inputDicomDirectory /Users/MEGAN/Documents/WORK/DataAnalyses/DTI/CWANAdol/CW_0044B_4/dicom_dti/new --outputBValues /Users/MEGAN/Documents/WORK/DataAnalyses/DTI/CWANAdol/CW_0044B_4/dicom_dti/new/bvals.bval --outputBVectors /Users/MEGAN/Documents/WORK/DataAnalyses/DTI/CWANAdol/CW_0044B_4/dicom_dti/new/bvecs.bvec --outputDirectory /Users/MEGAN/Documents/WORK/DataAnalyses/DTI/CWANAdol/CW_0044B_4/dicom_dti/new --smallGradientThreshold 0.2
            DWIConverter standard error:
            Error: ReadVolume: Unsupported source pixel type.
            Input volume: unsigned_short
            Output volume: short
            The only supported output type is . You may consider using allowLossyConversion option.
            However, use this option with caution! Conversion from images of a different type may cause data loss due to rounding or truncation.
            DWIConverter standard error:
            Error: ReadVolume: Unsupported source pixel type.
            Input volume: unsigned_short
            Output volume: short
            The only supported output type is . You may consider using allowLossyConversion option.
            However, use this option with caution! Conversion from images of a different type may cause data loss due to rounding or truncation.
            DWIConverter completed with errors
            Found CommandLine Module, target is /Applications/Slicer.app/Contents/lib/Slicer-4.6/cli-modules/DWIConvert
            ModuleType: CommandLineModule
            DWIConverter command line:
            /Applications/Slicer.app/Contents/lib/Slicer-4.6/cli-modules/DWIConvert --conversionMode NrrdToFSL --inputVolume /var/folders/gm/5xjgw9fs1cd6w3f79y7bj72w0000gn/T/Slicer/GHAD_vtkMRMLDiffusionWeightedVolumeNodeB.nrrd --outputVolume /var/folders/gm/5xjgw9fs1cd6w3f79y7bj72w0000gn/T/Slicer/GHAD_vtkMRMLDiffusionWeightedVolumeNodeD.nrrd --inputDicomDirectory /Users/MEGAN/Documents/WORK/DataAnalyses/DTI/CWANAdol/CW_0044B_4/dicom_dti/new --outputBValues /Users/MEGAN/Documents/WORK/DataAnalyses/DTI/CWANAdol/CW_0044B_4/dicom_dti/new/bvals.bval --outputBVectors /Users/MEGAN/Documents/WORK/DataAnalyses/DTI/CWANAdol/CW_0044B_4/dicom_dti/new/bvecs.bvec --outputDirectory /Users/MEGAN/Documents/WORK/DataAnalyses/DTI/CWANAdol/CW_0044B_4/dicom_dti/new --smallGradientThreshold 0.2
            DWIConverter standard error:
            Error: ReadVolume: Unsupported source pixel type.
            Input volume: unsigned_short
            Output volume: short
            The only supported output type is . You may consider using allowLossyConversion option.
            However, use this option with caution! Conversion from images of a different type may cause data loss due to rounding or truncation.
            DWIConverter completed with errors
            Found CommandLine Module, target is /Applications/Slicer.app/Contents/lib/Slicer-4.6/cli-modules/DWIConvert
            ModuleType: CommandLineModule
            DWIConverter command line:
            /Applications/Slicer.app/Contents/lib/Slicer-4.6/cli-modules/DWIConvert --conversionMode NrrdToFSL --inputVolume /var/folders/gm/5xjgw9fs1cd6w3f79y7bj72w0000gn/T/Slicer/GHAD_vtkMRMLDiffusionWeightedVolumeNodeB.nrrd --outputVolume /var/folders/gm/5xjgw9fs1cd6w3f79y7bj72w0000gn/T/Slicer/GHAD_vtkMRMLDiffusionWeightedVolumeNodeD.nrrd --inputDicomDirectory /Users/MEGAN/Documents/WORK/DataAnalyses/DTI/CWANAdol/CW_0044B_4/dicom_dti/new --outputBValues /Users/MEGAN/Documents/WORK/DataAnalyses/DTI/CWANAdol/CW_0044B_4/dicom_dti/new/bvals.bval --outputBVectors /Users/MEGAN/Documents/WORK/DataAnalyses/DTI/CWANAdol/CW_0044B_4/dicom_dti/new/bvecs.bvec --outputDirectory /Users/MEGAN/Documents/WORK/DataAnalyses/DTI/CWANAdol/CW_0044B_4/dicom_dti/new --smallGradientThreshold 0.2
            DWIConverter standard error:
            Error: ReadVolume: Unsupported source pixel type.
            Input volume: unsigned_short
            Output volume: short
            The only supported output type is . You may consider using allowLossyConversion option.
            However, use this option with caution! Conversion from images of a different type may cause data loss due to rounding or truncation.
            DWIConverter completed with errors


            I checked the "Lossy Conversion" option and it ran with no errors, but my output files that were saved included the .bvec and .bval file but no NIFTI file.

            Do you have a list of steps to take to convert to NIFTI format with the pipeline you use for your FSL analyses? Originally I used DWIConverter to convert my DICOM images to NRRD. And then am trying to use the NRRD to FSL option with the output from DTIPrep.

            5. I did enable the sphere and gradient display as the manual shows but there is just a blank screen when I click on 3d mode. When I switch back to MPR I see the gradient I am trying to view but then nothing when I go back to 3d view. 

            One other question is about the default protocol values and how to determine whether I should use the default protocol or make any changes. A tutorial I found on the NITRC site says that more information on the default protocol is available on the site but i cannot find that information. 

            I'm sorry for all the questions, I am definitely a novice with these programs and recently discovered them when I was trying to figure out how to increase reliability in longitudinal TBSS studies. 

            Thank you for your help,

            Megan

            • Apr 5, 2017  03:04 PM | Martin Styner
              RE: DTI Prep Default Protocol Error
              Hi Meghan
              1) you have the newest version, that's good (though the Mac version has not been tested, so there may be issues).
              2) re Slicer: we have not yet updated DTIPrep to the newest Slicer release (due to changes in every Slicer release, we need to modify/update the extension to remain compatible, which is quite a bit of a hassle). On linux Slicer 4.4 has the DTIPrep 1.2.7 extension (not sure about mac)
              3) Looking at your output, I see an immediate issue. It seems like the output node is a NRRD and not a nitfti file. It can very well be that you cannot run DWIConverter within Slicer (as it will use by default a NRRD output), but rather need to run DWIConvert via the command line.  You can do that by using your Terminal, try the following in a Terminal:
              /Applications/Slicer.app/Contents/lib/Slicer-4.5/cli-modules/DWIConvert --help
              (assuming you installed the Slicer app in /Applications) . If that works, you can do the conversion via that command line command (which is what we are doing, though on linux).
              5) I think the sphere display does not work on the Mac, we need to correct that.

              6) default protocol: that one sets reasonable values, but we usually adopt the parameters by running it on sample data from a study and adjusting threshold up/down based on whether the QC was too strict or not strict enough.

              hope this helps
              Martin

        Jan 24, 2019  11:01 AM | Franziska Baer
        RE: DTI Prep Default Protocol Error
        Dear Megan and Martin

        I am working with DTI prep a short while now and I have a simular problem as Megan had a year ago.
        After I transformed my Nifti/DICOM Datas into NRRD  without a problem I could run the Default protocol, but now I can not transform the nrrd back to nifti with 3DSlicer. When I try that I get this Error:

        DWIConverter standard error:
        Error: ReadVolume: Unsupported source pixel type.
        Input volume: unsigned_short
        Output volume: short
        The only supported output type is . You may consider using allowLossyConversion option.
        However, use this option with caution! Conversion from images of a different type may cause data loss due to rounding or truncation.

        I just don't know why I got these Error and so i ask for your help.

        Here some informations tu my data set:

        diffusion weighting: 1
        b-value: 1300 s/mm²
        diffusion directions: 36
        Phase encoding direction: p-a

        Thank you for your help,

        Franziska

        • Jan 25, 2019  04:01 AM | Martin Styner
          RE: DTI Prep Default Protocol Error
          This sounds exactly like the same issue that Megan had, but I am not sure whether she found a way to solve it. 

          I am not sure why we do not encounter it in our linux workflow, but I can recreate it on the Mac. It has to do with the DWIConvert and it's issue if the NRRD file has type "unsigned short" rather than "short" (don't ask me why it should not be able convert "unsigned short" data). (So it's not really a DTIPrep issue but rather about DWIConvert)

          There several ways around this:
          a) hack the header: since you unlikely have values higher than 32k in your DWI data, you can simply change "unsigned short" to "short" in the header (for values from 0-32k the two datatypes are equivalent). Since the header is ASCII readable, you can just edit the nrrd file in an editor, I used "vi" and it worked like a charm.
          b) you can convert rather than hack the file: there is neat swiss-army-knife-tool (it does a little bit of everything) specifically for nrrd data and that tool is called "unu" (http://teem.sourceforge.net/unrrdu/). It comes with Slicer on linux, but unfortunately not on Mac (don't know why). You can then use "unu convert" to convert the nrrd file from unsigned short to short.

          hope this helps
          Martin

  • Jan 10, 2019  07:01 PM | Justin Smith
    CentOS 7, can't install... Need a container
    CentOS 7 will never have GLIB 3.4.20 or 3.4.21...  The makers have said this

    Thus, I cannot get DTIPrep unless there's a singularity or docker container out there that's working.  I've tried some but they seem to be outdated.  Does anyone know of a working DTIPrep container (Docker or Singularity)?

  • Dec 12, 2018  04:12 PM | karen
    missing gradients
    Dear all, 

    When looking in the QCReport.txt files I noticed that there are gradients missing in the list of "Included gradients", which are not listed as interlace-wise check artifacts or slice-wise check artifacts (I'm skipping gradient-wise check). In fact, they are not mentioned in the report at all. This usually happens for 1-2 gradients in about 1 per 8 subjects. Does somebody know what happened to those gradients?

    For example, in the file attached, you can see that gradient 42 is not listed as an included gradient and neither as an interlace-wise or slice wise artifact. 

    Thanks, 
    Karen
    Attachment: DTIPrep_QCReport

    • Dec 14, 2018  04:12 PM | Martin Styner
      RE: missing gradients
      Originally posted by karen:
      Dear all, 

      When looking in the QCReport.txt files I noticed that there are gradients missing in the list of "Included gradients", which are not listed as interlace-wise check artifacts or slice-wise check artifacts (I'm skipping gradient-wise check). In fact, they are not mentioned in the report at all. This usually happens for 1-2 gradients in about 1 per 8 subjects. Does somebody know what happened to those gradients?

      For example, in the file attached, you can see that gradient 42 is not listed as an included gradient and neither as an interlace-wise or slice wise artifact. 

      Thanks, 
      Karen
      Hi Karen
      I could not see the attached file (not sure what's wrong with it, but I cannot download it from NITRC). Is gradient 42 a baseline/b=0 volume? If so then it would be missing, as it was averaged with the other b=0 volumes.
      Martin

      • Dec 17, 2018  03:12 PM | karen
        RE: missing gradients
        Hi Martin,

        Thanks for your response. In this case gradient 42 was a baseline volume (and I would have expected it to be listed with the other baseline volumes "Baselines_indices" in the list ). However, it also seems to happen for gradients, i.e. not baseline volumes. I attached another file, in which gradient 87 is not in the list of included gradients and not listed among the artifacts (and it is not a baseline volume).

        Best, 
        Karen

  • Dec 15, 2018  05:12 AM | jiggerjaw
    Problem with install... midas3.kitware unavailable
    Problem installing... It would appear that some of the Slicer library is no longer available?


    GET
    /midas/api/rest?method=midas.bitstream.download&checksum=2edab8c06b24feeb3b82bbb3ebf3e7b3&name=fftw-3.3.4.tar.gz
    HTTP/1.1

    User-Agent: curl/7.29.0
    Host: midas3.kitware.com
    Accept: */*
    The requested URL returned error: 404 Not Found

  • Nov 29, 2018  05:11 PM | Huan Yang
    Questions about understanding QCreport
    Dear all,
     
    After I run DTIprep, i don't understand some points in QCReport.
    1. Some parameters are blank under "Interlace-wise Check Artifacts"and "Inter-gradient check Artifacts", as following:

    Interlace-wise Check Artifacts:
    Gradient#:       AngleX        AngleY     AngleZ       TranslationX       TranslationY    TranslationZ      Metric(MI) Correlation

    Inter-gradient check Artifacts:
    Gradient#:      AngleX     AngleY        AngleZ         TranslationX        TranslationY     TranslationZ        Metric(MI)

    Whether there should be parameters following Anglex, et al.


    2. As I seen in the QCReport, there are results of "EddyCurrentHeadMotionCorrectIowa ...
    Transforms"whether that is mean the QC check has done the eddy current and head motion correction. If so how to understand the following results?
    I don't understand why each included gradient has two lines, one is parameters, and the other is fixed parameters. And why the following numbers have different number, since "parameter" has 12 numbers, but "fixed parameters" has 3 numbers?

    0 - Parameters: [0.9997539562179837, -0.0000456712971941987, 0.00012814643209806194, 0.0001919390366571939, 0.9996859054763518, -0.00002926969037700233, -0.00011713357421570307, 0.00010946833467130879, 0.9997676269027517, -0.0009163895499214427, -0.005300804295234882, 0.008665774469949795]
    0 - Fixed Parameters: [2.0063291738889677, 29.472202481645756, -25.351412463387636]
    1 - Parameters: [0.9973658126577162, -0.0032099643661705193, -0.0026982670174528984, 0.003487339476547441, 0.99321195724164, 0.011081261533761417, 0.0035208460196087398, -0.009190952090957454, 0.999104607135376, 0.06964221564603196, -0.28415220872622377, -0.7374703184740822]
    1 - Fixed Parameters: [2.0063291738889677, 29.472202481645756, -25.351412463387636]

    3. when we need to transfer nerd files to nil format, we should transfer the *.nrrd or *_QCed.nrrd? It seems I can only transfer *.nrrd to nil, and failed to transfer *_QCed.nrrd to nil.


    Thank you so much for your help.
    Huan

    • Nov 29, 2018  06:11 PM | Martin Styner
      RE: Questions about understanding QCreport
      Dear Huan
      Re 1. Which file are you refering to, the "txt" file or the "xml" file. The "txt" is more information reporting, and the xml should be used if you plan to perform any analysis of the computed transforms or corrections/rejections. In general, parameters may no values for a given DWI, if a prior step excluded that DWI (so any further steps would not be applied to it).

      Re 2. Both sets of parameters are used to describe the full affine transform. The fixed parameter describes center of rotation of a transform. See also:
      https://itk.org/Doxygen312/html/classitk...

      Best 
      Martin

      Originally posted by Huan Yang:
      Dear all,
       
      After I run DTIprep, i don't understand some points in QCReport.
      1. Some parameters are blank under "Interlace-wise Check Artifacts"and "Inter-gradient check Artifacts", as following:

      Interlace-wise Check Artifacts:
      Gradient#:       AngleX        AngleY     AngleZ       TranslationX       TranslationY    TranslationZ      Metric(MI) Correlation

      Inter-gradient check Artifacts:
      Gradient#:      AngleX     AngleY        AngleZ         TranslationX        TranslationY     TranslationZ        Metric(MI)

      Whether there should be parameters following Anglex, et al.


      2. As I seen in the QCReport, there are results of "EddyCurrentHeadMotionCorrectIowa ...
      Transforms"whether that is mean the QC check has done the eddy current and head motion correction. If so how to understand the following results?
      I don't understand why each included gradient has two lines, one is parameters, and the other is fixed parameters. And why the following numbers have different number, since "parameter" has 12 numbers, but "fixed parameters" has 3 numbers?

      0 - Parameters: [0.9997539562179837, -0.0000456712971941987, 0.00012814643209806194, 0.0001919390366571939, 0.9996859054763518, -0.00002926969037700233, -0.00011713357421570307, 0.00010946833467130879, 0.9997676269027517, -0.0009163895499214427, -0.005300804295234882, 0.008665774469949795]
      0 - Fixed Parameters: [2.0063291738889677, 29.472202481645756, -25.351412463387636]
      1 - Parameters: [0.9973658126577162, -0.0032099643661705193, -0.0026982670174528984, 0.003487339476547441, 0.99321195724164, 0.011081261533761417, 0.0035208460196087398, -0.009190952090957454, 0.999104607135376, 0.06964221564603196, -0.28415220872622377, -0.7374703184740822]
      1 - Fixed Parameters: [2.0063291738889677, 29.472202481645756, -25.351412463387636]


      Thank you so much for your help.
      Huan

  • Oct 31, 2018  03:10 PM | karen
    Gradients are excluded
    Dear all, 

    I'm using DTIPrep and after transposing the bvec (3 columns) and bval (one column) files, it gives the correct appearance in the DTIPrep. However, after running the QC, it makes all the gradients excluded except of the baseline images.

    In the text file it comes out like this:
    Included gradients:
    Baselines_indices: 0 QCIndex: 0
    Baselines_indices: 1 QCIndex: 0
    Baselines_indices: 2 QCIndex: 0
    Baselines_indices: 3 QCIndex: 0
    Baselines_indices: 4 QCIndex: 0
    Baselines_indices: 5 QCIndex: 0

    Does somebody know how to solve this problem?
    Thanks in advance.

    • Oct 31, 2018  05:10 PM | Martin Styner
      RE: Gradients are excluded
      I think we need a bit more information. 
      1. Which QC step rejects all the non-baseline gradients? (look at the report text file) What are the protocol settings for that step?
      2. Since you started with a nifti file, you had to first convert it to NRRD? If so, does the header information look correct (the NRRD header is ASCII, so you can look at it with any editor)? Do the gradient directions look correct in the NRRD header?

      Martin

      • Nov 1, 2018  04:11 PM | karen
        RE: Gradients are excluded
        Dear Martin, 

        Thank you for your quick response!
        1. It is the gradient-wise checking (see attached QC report). 
        Parameters:
        TranslationThreshold: 1.31773
        RotationThreshold: 0.5
        2. The gradient directions look ok when loading the nrrd-file into the DTIPrep GUI. We've used DWIConvert from the command line and not created separate header files. When I convert in Slicer and save a separate header file, the gradient directions have a different precision. Might this have to do with which space the data is in? (LPS vs. RAS)? The contents of the .nhdr are found below (since I can't attach two files). Anyway, it looks ok in DTIPrep.

        It should perhaps be mentioned that we're processing older data (~10 years).

        Best,
        Karen


        NRRD0005
        # Complete NRRD file format specification at:
        # http://teem.sourceforge.net/nrrd/format....
        type: short
        dimension: 4
        space: right-anterior-superior
        sizes: 38 256 256 64
        space directions: none (-0.97659999132156361,0,0) (0,-0.97659999132156361,0) (0,0,2)
        kinds: list domain domain domain
        endian: little
        encoding: gzip
        space origin: (124.70899963378905,134.45399540662763,-79.152496337890625)
        measurement frame: (-1,0,0) (0,-1,0) (0,0,1)
        data file: test.raw.gz
        DWMRI_b-value:=1000.000000
        DWMRI_gradient_0000:=0.000000 0.000000 0.000000
        DWMRI_gradient_0001:=0.000000 0.000000 0.000000
        DWMRI_gradient_0002:=0.000000 0.000000 0.000000
        DWMRI_gradient_0003:=0.000000 0.000000 0.000000
        DWMRI_gradient_0004:=0.000000 0.000000 0.000000
        DWMRI_gradient_0005:=0.000000 0.000000 0.000000
        DWMRI_gradient_0006:=-1.000000 0.000000 0.000000
        DWMRI_gradient_0007:=-0.494198 -0.869349 0.000000
        DWMRI_gradient_0008:=0.120009 -0.641050 0.758059
        DWMRI_gradient_0009:=-0.919038 0.331014 -0.214009
        DWMRI_gradient_0010:=0.111970 0.630833 0.767797
        DWMRI_gradient_0011:=0.914305 0.236079 0.329110
        DWMRI_gradient_0012:=-0.680844 -0.302930 0.666847
        DWMRI_gradient_0013:=-0.066978 -0.997670 -0.012996
        DWMRI_gradient_0014:=-0.917623 -0.152937 0.366849
        DWMRI_gradient_0015:=-0.443231 0.890464 0.103054
        DWMRI_gradient_0016:=-0.215975 0.926892 -0.306964
        DWMRI_gradient_0017:=-0.480032 0.671045 -0.565038
        DWMRI_gradient_0018:=0.549943 0.477950 0.684928
        DWMRI_gradient_0019:=0.700688 -0.692691 0.170924
        DWMRI_gradient_0020:=0.429108 0.007002 -0.903226
        DWMRI_gradient_0021:=0.698790 0.639808 0.319904
        DWMRI_gradient_0022:=-0.725825 -0.090978 -0.681836
        DWMRI_gradient_0023:=-0.389830 0.248892 -0.886614
        DWMRI_gradient_0024:=0.172056 0.881289 -0.440144
        DWMRI_gradient_0025:=0.609674 -0.640657 -0.466750
        DWMRI_gradient_0026:=-0.598760 -0.688724 0.408836
        DWMRI_gradient_0027:=0.727829 -0.221948 -0.648848
        DWMRI_gradient_0028:=-0.882959 0.397981 0.248988
        DWMRI_gradient_0029:=-0.320210 -0.548360 0.772507
        DWMRI_gradient_0030:=0.044018 0.268107 -0.962383
        DWMRI_gradient_0031:=-0.188896 0.876518 0.442757
        DWMRI_gradient_0032:=-0.732165 0.333075 -0.594134
        DWMRI_gradient_0033:=-0.308976 0.549957 0.775939
        DWMRI_gradient_0034:=-0.285959 -0.857876 -0.426938
        DWMRI_gradient_0035:=-0.859154 -0.504090 0.088016
        DWMRI_gradient_0036:=0.106972 -0.214945 -0.970750
        DWMRI_gradient_0037:=0.297951 0.177970 0.937844
        modality:=DWMRI
        space:=left-posterior-superior
        Attachment: QCReport.txt

        • Nov 2, 2018  12:11 PM | Martin Styner
          RE: Gradients are excluded
          Thanks Karen

          The gradient-wise checking uses an alternative registration to detect alternative motion and is a bit more susceptible to low SNR data (and overestimates particularly residual translation motion in such a case). I would disable the gradient-wise/residual motion check phase (set it to "No" in the protocol), as it is not stable with your data.

          re header: If only the precision is different, than that should be fine, you have plenty of precision in the gradient directions in that header. 

          one more note: your DTI data is not isotropic (0.98x0.98x2), which is not recommended. After DTIPrep, I would first resample the DWI data to 0.98x0.98x0.98 and only then fit the tensor etc

          Best
          Martin
          Originally posted by karen:
          Dear Martin, 

          Thank you for your quick response!
          1. It is the gradient-wise checking (see attached QC report). 
          Parameters:
          TranslationThreshold: 1.31773
          RotationThreshold: 0.5
          2. The gradient directions look ok when loading the nrrd-file into the DTIPrep GUI. We've used DWIConvert from the command line and not created separate header files. When I convert in Slicer and save a separate header file, the gradient directions have a different precision. Might this have to do with which space the data is in? (LPS vs. RAS)? The contents of the .nhdr are found below (since I can't attach two files). Anyway, it looks ok in DTIPrep.

          It should perhaps be mentioned that we're processing older data (~10 years).

          Best,
          Karen


          NRRD0005
          # Complete NRRD file format specification at:
          # http://teem.sourceforge.net/nrrd/format....
          type: short
          dimension: 4
          space: right-anterior-superior
          sizes: 38 256 256 64
          space directions: none (-0.97659999132156361,0,0) (0,-0.97659999132156361,0) (0,0,2)
          kinds: list domain domain domain
          endian: little
          encoding: gzip
          space origin: (124.70899963378905,134.45399540662763,-79.152496337890625)
          measurement frame: (-1,0,0) (0,-1,0) (0,0,1)
          data file: test.raw.gz
          DWMRI_b-value:=1000.000000
          DWMRI_gradient_0000:=0.000000 0.000000 0.000000
          DWMRI_gradient_0001:=0.000000 0.000000 0.000000
          DWMRI_gradient_0002:=0.000000 0.000000 0.000000
          DWMRI_gradient_0003:=0.000000 0.000000 0.000000
          DWMRI_gradient_0004:=0.000000 0.000000 0.000000
          DWMRI_gradient_0005:=0.000000 0.000000 0.000000
          DWMRI_gradient_0006:=-1.000000 0.000000 0.000000
          DWMRI_gradient_0007:=-0.494198 -0.869349 0.000000
          DWMRI_gradient_0008:=0.120009 -0.641050 0.758059
          DWMRI_gradient_0009:=-0.919038 0.331014 -0.214009
          DWMRI_gradient_0010:=0.111970 0.630833 0.767797
          DWMRI_gradient_0011:=0.914305 0.236079 0.329110
          DWMRI_gradient_0012:=-0.680844 -0.302930 0.666847
          DWMRI_gradient_0013:=-0.066978 -0.997670 -0.012996
          DWMRI_gradient_0014:=-0.917623 -0.152937 0.366849
          DWMRI_gradient_0015:=-0.443231 0.890464 0.103054
          DWMRI_gradient_0016:=-0.215975 0.926892 -0.306964
          DWMRI_gradient_0017:=-0.480032 0.671045 -0.565038
          DWMRI_gradient_0018:=0.549943 0.477950 0.684928
          DWMRI_gradient_0019:=0.700688 -0.692691 0.170924
          DWMRI_gradient_0020:=0.429108 0.007002 -0.903226
          DWMRI_gradient_0021:=0.698790 0.639808 0.319904
          DWMRI_gradient_0022:=-0.725825 -0.090978 -0.681836
          DWMRI_gradient_0023:=-0.389830 0.248892 -0.886614
          DWMRI_gradient_0024:=0.172056 0.881289 -0.440144
          DWMRI_gradient_0025:=0.609674 -0.640657 -0.466750
          DWMRI_gradient_0026:=-0.598760 -0.688724 0.408836
          DWMRI_gradient_0027:=0.727829 -0.221948 -0.648848
          DWMRI_gradient_0028:=-0.882959 0.397981 0.248988
          DWMRI_gradient_0029:=-0.320210 -0.548360 0.772507
          DWMRI_gradient_0030:=0.044018 0.268107 -0.962383
          DWMRI_gradient_0031:=-0.188896 0.876518 0.442757
          DWMRI_gradient_0032:=-0.732165 0.333075 -0.594134
          DWMRI_gradient_0033:=-0.308976 0.549957 0.775939
          DWMRI_gradient_0034:=-0.285959 -0.857876 -0.426938
          DWMRI_gradient_0035:=-0.859154 -0.504090 0.088016
          DWMRI_gradient_0036:=0.106972 -0.214945 -0.970750
          DWMRI_gradient_0037:=0.297951 0.177970 0.937844
          modality:=DWMRI
          space:=left-posterior-superior

          • Nov 6, 2018  03:11 PM | karen
            RE: Gradients are excluded
            Hi Martin, 

            Thanks a lot for your suggestions!

            Best, 
            Karen

  • Sep 19, 2016  04:09 PM | Tanmay Nath
    DTIPrep command line installation
    Hi,

    Can anyone point me to the command line installation of DTIPrep? I was using this
    svn checkout https://www.nitrc.org/svn/dtiprep/trunk DTIPrep

    but it gives me following output.

    svn: E175013: Unable to connect to a repository at URL 'https://www.nitrc.org/svn/dtiprep/trunk'
    svn: E175013: Access to 'https://www.nitrc.org/svn/dtiprep/trunk' forbidden 

    I do have the nitrc account, but I am not sure how to seek permission to install DTIPrep.

    Thanks

    • Sep 19, 2016  06:09 PM | Martin Styner
      RE: DTIPrep command line installation
      The svn repository has been replaced by a git repository. If you click on the "source code" link in the navigation menu to the left. It will take you to the git repo on github. You can then get the code via 
      git clone https://github.com/NIRALUser/DTIPrep.git

      Hope this helps
      Martin

      • Sep 19, 2016  06:09 PM | Tanmay Nath
        RE: DTIPrep command line installation
        Hi Martin
        Thank you . I was able to download the DTIPrep. I used the following steps to install it, but now i do not know how to start the DTIPrep. Also, strangely, the make process was very quick. I wonder if i made any mistake while installing DTIPrep.

        After these steps, I have the list of directories in my current working directory. Please find it in the attachment.
        Can you please explain me how to go ahead with this?

        • Sep 19, 2016  07:09 PM | Juan Prieto - NIRAL
          RE: DTIPrep command line installation
          Did you execute the make command after configuration? 

          The build steps should look something like this. 

          1. git clone https://github.com/NIRALUser/DTIPrep.git
          2. mkdir DTIPrep-build; cd DTIPrep-build
          3. ccmake ../DTIPrep
          4. make

          Best, 

          Juan

          • Sep 19, 2016  08:09 PM | Tanmay Nath
            RE: DTIPrep command line installation
            Hi,

            Thanks Juan it works. The difference was in the step 4. I was doing ccmake rather than make.

            But now when i am running the command line, it opens the GUI. I do not want to use GUI. I need to use it from command line.

            ./DTIPrep_build/bin/DTIPrep.app/Contents/MacOS/DTIPrep -w sub5621/data/01+dti_64dir_3x3x3/sub5621_a.nhdr -d -f working_projects/sub5621/sub5621_QC/

            Any idea how to make it run via command line?

            • Sep 20, 2016  02:09 PM | Tanmay Nath
              RE: DTIPrep command line installation
              Any help?

              • Sep 20, 2016  03:09 PM | Juan Prieto - NIRAL
                RE: DTIPrep command line installation
                When you type 'DTIPrep --help' you can get the full description of the options for this program. 

                The flag you want to use is '-c' when you don't want to use the graphical user interface. 

                Something like, 

                ./DTIPrep_build/bin/DTIPrep.app/Contents/MacOS/DTIPrep -w sub5621/data/01+dti_64dir_3x3x3/sub5621_a.nhdr -d -f working_projects/sub5621/sub5621_QC/ -c

                Best, 

                Juan

            Aug 8, 2017  04:08 PM | Cyril Pernet
            RE: DTIPrep command line installation
            Dear Juan,

            I followed the instructions below but I got an error message related to Qt
            Did you execute the make command after configuration? 

            The build steps should look something like this. 

            1. git clone https://github.com/NIRALUser/DTIPrep.git
            2. mkdir DTIPrep-build; cd DTIPrep-build
            3. ccmake ../DTIPrep
            4. make

            I'm running Ubuntu Xenial and have intalled Qt5 Qt4 following the instruction here
            https://wiki.qt.io/Install_Qt_5_on_Ubuntu
            error message seems to be that I need at least qt4.6  ?? 
            CMake Error at
            /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148
            (message):
            Could NOT find Qt4 (missing: QT_RCC_EXECUTABLE) (found suitable version
            "4.8.7", minimum required is "4.6")
            Call Stack (most recent call first):
            /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388
            (_FPHSA_FAILURE_MESSAGE)
            /usr/share/cmake-3.5/Modules/FindQt4.cmake:1333
            (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
            Common.cmake:38 (find_package)
            SuperBuild.cmake:20 (include)
            CMakeLists.txt:29 (include)

            Any ideee how to make it work ?? 

            thx
            cyril

            • Sep 8, 2017  05:09 PM | Amanda Szymanski
              RE: DTIPrep command line installation
              I'm having a similar issue as Cyril:

              CMake Error at /usr/local/Cellar/cmake/3.9.2/share/cmake/Modules/FindQt4.cmake:1318 (message):
              Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x
              Call Stack (most recent call first):
              Common.cmake:35 (find_package)
              SuperBuild.cmake:20 (include)
              CMakeLists.txt:28 (include)

              I have Qt5 installed. I've tried installing Qt4 & directing ccmake to use that instead, but it still wouldn't work. Any suggestions?

              Originally posted by Cyril Pernet:
              Dear Juan,

              I followed the instructions below but I got an error message related to Qt
              Did you execute the make command after configuration? 

              The build steps should look something like this. 

              1. git clone https://github.com/NIRALUser/DTIPrep.git
              2. mkdir DTIPrep-build; cd DTIPrep-build
              3. ccmake ../DTIPrep
              4. make

              I'm running Ubuntu Xenial and have intalled Qt5 Qt4 following the instruction here
              https://wiki.qt.io/Install_Qt_5_on_Ubuntu
              error message seems to be that I need at least qt4.6  ?? 
              CMake Error at
              /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148
              (message):
              Could NOT find Qt4 (missing: QT_RCC_EXECUTABLE) (found suitable version
              "4.8.7", minimum required is "4.6")
              Call Stack (most recent call first):
              /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388
              (_FPHSA_FAILURE_MESSAGE)
              /usr/share/cmake-3.5/Modules/FindQt4.cmake:1333
              (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
              Common.cmake:38 (find_package)
              SuperBuild.cmake:20 (include)
              CMakeLists.txt:29 (include)

              Any ideee how to make it work ?? 

              thx
              cyril

              • Apr 22, 2018  12:04 PM | Anna Kautto - University of Turku
                RE: DTIPrep command line installation
                I also have a problem with Qt version. I have 5.6.2 and I get error "Found unsuitable Qt version "5.6.2" from /anaconda3/bin/qmake, this code
                requires Qt 4.x" Should I try installing older version of Qt? Did someone already solve this issue?

                Anna
                Originally posted by Amanda Szymanski:
                I'm having a similar issue as Cyril:

                CMake Error at /usr/local/Cellar/cmake/3.9.2/share/cmake/Modules/FindQt4.cmake:1318 (message):
                Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x
                Call Stack (most recent call first):
                Common.cmake:35 (find_package)
                SuperBuild.cmake:20 (include)
                CMakeLists.txt:28 (include)

                I have Qt5 installed. I've tried installing Qt4 & directing ccmake to use that instead, but it still wouldn't work. Any suggestions?

                Originally posted by Cyril Pernet:
                Dear Juan,

                I followed the instructions below but I got an error message related to Qt
                Did you execute the make command after configuration? 

                The build steps should look something like this. 

                1. git clone https://github.com/NIRALUser/DTIPrep.git
                2. mkdir DTIPrep-build; cd DTIPrep-build
                3. ccmake ../DTIPrep
                4. make

                I'm running Ubuntu Xenial and have intalled Qt5 Qt4 following the instruction here
                https://wiki.qt.io/Install_Qt_5_on_Ubuntu
                error message seems to be that I need at least qt4.6  ?? 
                CMake Error at
                /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148
                (message):
                Could NOT find Qt4 (missing: QT_RCC_EXECUTABLE) (found suitable version
                "4.8.7", minimum required is "4.6")
                Call Stack (most recent call first):
                /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388
                (_FPHSA_FAILURE_MESSAGE)
                /usr/share/cmake-3.5/Modules/FindQt4.cmake:1333
                (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
                Common.cmake:38 (find_package)
                SuperBuild.cmake:20 (include)
                CMakeLists.txt:29 (include)

                Any ideee how to make it work ?? 

                thx
                cyril

                • Jun 21, 2018  02:06 AM | XIAO YANG
                  RE: DTIPrep command line installation
                  Dear Experts and DTIPrep users,

                  I am trying to do the build steps following:

                  1. git clone https://github.com/NIRALUser/DTIPrep.git
                  2. mkdir DTIPrep-build; cd DTIPrep-build
                  3. ccmake ../DTIPrep
                  4. make

                  I had a similar problem. When I did run: cmake ../DTIPrep

                  CMake Error at /usr/local/Cellar/cmake/3.11.4/share/cmake/Modules/FindQt4.cmake:1321 (message):
                  Found unsuitable Qt version "5.6.2" from /anaconda3/bin/qmake, this code
                  requires Qt 4.x
                  Call Stack (most recent call first):
                  Common.cmake:35 (find_package)
                  SuperBuild.cmake:20 (include)
                  CMakeLists.txt:28 (include)

                  Aftet I installed qt4 /usr/local/Cellar/qt@4/4.8.7_5: 2,963 files, 86.1MB. it still didn't work.

                  Any help and suggestion would be appreciated.

                  Best,

                  Xiao

                  Originally posted by Anna Kautto:
                  I also have a problem with Qt version. I have 5.6.2 and I get error "Found unsuitable Qt version "5.6.2" from /anaconda3/bin/qmake, this code
                  requires Qt 4.x" Should I try installing older version of Qt? Did someone already solve this issue?

                  Anna
                  Originally posted by Amanda Szymanski:
                  I'm having a similar issue as Cyril:

                  CMake Error at /usr/local/Cellar/cmake/3.9.2/share/cmake/Modules/FindQt4.cmake:1318 (message):
                  Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x
                  Call Stack (most recent call first):
                  Common.cmake:35 (find_package)
                  SuperBuild.cmake:20 (include)
                  CMakeLists.txt:28 (include)

                  I have Qt5 installed. I've tried installing Qt4 & directing ccmake to use that instead, but it still wouldn't work. Any suggestions?

                  Originally posted by Cyril Pernet:
                  Dear Juan,

                  I followed the instructions below but I got an error message related to Qt
                  Did you execute the make command after configuration? 

                  The build steps should look something like this. 

                  1. git clone https://github.com/NIRALUser/DTIPrep.git
                  2. mkdir DTIPrep-build; cd DTIPrep-build
                  3. ccmake ../DTIPrep
                  4. make

                  I'm running Ubuntu Xenial and have intalled Qt5 Qt4 following the instruction here
                  https://wiki.qt.io/Install_Qt_5_on_Ubuntu
                  error message seems to be that I need at least qt4.6  ?? 
                  CMake Error at
                  /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148
                  (message):
                  Could NOT find Qt4 (missing: QT_RCC_EXECUTABLE) (found suitable version
                  "4.8.7", minimum required is "4.6")
                  Call Stack (most recent call first):
                  /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388
                  (_FPHSA_FAILURE_MESSAGE)
                  /usr/share/cmake-3.5/Modules/FindQt4.cmake:1333
                  (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
                  Common.cmake:38 (find_package)
                  SuperBuild.cmake:20 (include)
                  CMakeLists.txt:29 (include)

                  Any ideee how to make it work ?? 

                  thx
                  cyril

                  • Jun 29, 2018  02:06 PM | Kelli Dominick - Cincinnati Children's Hospital Medical Center
                    RE: DTIPrep command line installation
                    Did anyone get a solution to this?
                    Originally posted by XIAO YANG:
                    Dear Experts and DTIPrep users,

                    I am trying to do the build steps following:

                    1. git clone https://github.com/NIRALUser/DTIPrep.git
                    2. mkdir DTIPrep-build; cd DTIPrep-build
                    3. ccmake ../DTIPrep
                    4. make

                    I had a similar problem. When I did run: cmake ../DTIPrep

                    CMake Error at /usr/local/Cellar/cmake/3.11.4/share/cmake/Modules/FindQt4.cmake:1321 (message):
                    Found unsuitable Qt version "5.6.2" from /anaconda3/bin/qmake, this code
                    requires Qt 4.x
                    Call Stack (most recent call first):
                    Common.cmake:35 (find_package)
                    SuperBuild.cmake:20 (include)
                    CMakeLists.txt:28 (include)

                    Aftet I installed qt4 /usr/local/Cellar/qt@4/4.8.7_5: 2,963 files, 86.1MB. it still didn't work.

                    Any help and suggestion would be appreciated.

                    Best,

                    Xiao

                    Originally posted by Anna Kautto:
                    I also have a problem with Qt version. I have 5.6.2 and I get error "Found unsuitable Qt version "5.6.2" from /anaconda3/bin/qmake, this code
                    requires Qt 4.x" Should I try installing older version of Qt? Did someone already solve this issue?

                    Anna
                    Originally posted by Amanda Szymanski:
                    I'm having a similar issue as Cyril:

                    CMake Error at /usr/local/Cellar/cmake/3.9.2/share/cmake/Modules/FindQt4.cmake:1318 (message):
                    Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x
                    Call Stack (most recent call first):
                    Common.cmake:35 (find_package)
                    SuperBuild.cmake:20 (include)
                    CMakeLists.txt:28 (include)

                    I have Qt5 installed. I've tried installing Qt4 & directing ccmake to use that instead, but it still wouldn't work. Any suggestions?

                    Originally posted by Cyril Pernet:
                    Dear Juan,

                    I followed the instructions below but I got an error message related to Qt
                    Did you execute the make command after configuration? 

                    The build steps should look something like this. 

                    1. git clone https://github.com/NIRALUser/DTIPrep.git
                    2. mkdir DTIPrep-build; cd DTIPrep-build
                    3. ccmake ../DTIPrep
                    4. make

                    I'm running Ubuntu Xenial and have intalled Qt5 Qt4 following the instruction here
                    https://wiki.qt.io/Install_Qt_5_on_Ubuntu
                    error message seems to be that I need at least qt4.6  ?? 
                    CMake Error at
                    /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148
                    (message):
                    Could NOT find Qt4 (missing: QT_RCC_EXECUTABLE) (found suitable version
                    "4.8.7", minimum required is "4.6")
                    Call Stack (most recent call first):
                    /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388
                    (_FPHSA_FAILURE_MESSAGE)
                    /usr/share/cmake-3.5/Modules/FindQt4.cmake:1333
                    (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
                    Common.cmake:38 (find_package)
                    SuperBuild.cmake:20 (include)
                    CMakeLists.txt:29 (include)

                    Any ideee how to make it work ?? 

                    thx
                    cyril

                    • Jun 29, 2018  03:06 PM | Martin Styner
                      RE: DTIPrep command line installation
                      Juan Prieto would probably be more appropriate to answer this, but here a bit of guidance
                      1. DTIPrep needs QT 4 (like you realized)
                      2. After you installed QT 4, and you rerun ccmake, does it find the correct version and sets the paths correctly for QT?

                      Did you start the configuration and compilation from scratch after the installation of QT4, or did you try to continue on the previous compilation that did not succeed with Qt5? If not, just try to compile from scratch.

                      Martin
                      Originally posted by Kelli Dominick:
                      Did anyone get a solution to this?
                      Originally posted by XIAO YANG:
                      Dear Experts and DTIPrep users,

                      I am trying to do the build steps following:

                      1. git clone https://github.com/NIRALUser/DTIPrep.git
                      2. mkdir DTIPrep-build; cd DTIPrep-build
                      3. ccmake ../DTIPrep
                      4. make

                      I had a similar problem. When I did run: cmake ../DTIPrep

                      CMake Error at /usr/local/Cellar/cmake/3.11.4/share/cmake/Modules/FindQt4.cmake:1321 (message):
                      Found unsuitable Qt version "5.6.2" from /anaconda3/bin/qmake, this code
                      requires Qt 4.x
                      Call Stack (most recent call first):
                      Common.cmake:35 (find_package)
                      SuperBuild.cmake:20 (include)
                      CMakeLists.txt:28 (include)

                      Aftet I installed qt4 /usr/local/Cellar/qt@4/4.8.7_5: 2,963 files, 86.1MB. it still didn't work.

                      Any help and suggestion would be appreciated.

                      Best,

                      Xiao

                      Originally posted by Anna Kautto:
                      I also have a problem with Qt version. I have 5.6.2 and I get error "Found unsuitable Qt version "5.6.2" from /anaconda3/bin/qmake, this code
                      requires Qt 4.x" Should I try installing older version of Qt? Did someone already solve this issue?

                      Anna
                      Originally posted by Amanda Szymanski:
                      I'm having a similar issue as Cyril:

                      CMake Error at /usr/local/Cellar/cmake/3.9.2/share/cmake/Modules/FindQt4.cmake:1318 (message):
                      Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x
                      Call Stack (most recent call first):
                      Common.cmake:35 (find_package)
                      SuperBuild.cmake:20 (include)
                      CMakeLists.txt:28 (include)

                      I have Qt5 installed. I've tried installing Qt4 & directing ccmake to use that instead, but it still wouldn't work. Any suggestions?

                      Originally posted by Cyril Pernet:
                      Dear Juan,

                      I followed the instructions below but I got an error message related to Qt
                      Did you execute the make command after configuration? 

                      The build steps should look something like this. 

                      1. git clone https://github.com/NIRALUser/DTIPrep.git
                      2. mkdir DTIPrep-build; cd DTIPrep-build
                      3. ccmake ../DTIPrep
                      4. make

                      I'm running Ubuntu Xenial and have intalled Qt5 Qt4 following the instruction here
                      https://wiki.qt.io/Install_Qt_5_on_Ubuntu
                      error message seems to be that I need at least qt4.6  ?? 
                      CMake Error at
                      /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148
                      (message):
                      Could NOT find Qt4 (missing: QT_RCC_EXECUTABLE) (found suitable version
                      "4.8.7", minimum required is "4.6")
                      Call Stack (most recent call first):
                      /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388
                      (_FPHSA_FAILURE_MESSAGE)
                      /usr/share/cmake-3.5/Modules/FindQt4.cmake:1333
                      (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
                      Common.cmake:38 (find_package)
                      SuperBuild.cmake:20 (include)
                      CMakeLists.txt:29 (include)

                      Any ideee how to make it work ?? 

                      thx
                      cyril

            Mar 5, 2018  05:03 PM | Huan Yang
            RE: DTIPrep command line installation
            Why after I tried the command "ccmake", it always said that "command not found"?  Thank you so much if you know the answer.
            Originally posted by Juan Prieto:
            Did you execute the make command after configuration? 

            The build steps should look something like this. 

            1. git clone https://github.com/NIRALUser/DTIPrep.git
            2. mkdir DTIPrep-build; cd DTIPrep-build
            3. ccmake ../DTIPrep
            4. make

            Best, 

            Juan

            • Mar 5, 2018  05:03 PM | Martin Styner
              RE: DTIPrep command line installation
              You need to first install cmake (ccmake is part of cmake)

              Martin

              • Mar 6, 2018  05:03 PM | Huan Yang
                RE: DTIPrep command line installation
                Thank you so much for your quick reply, Martin. 
                I have install the cmake, but after I run the recommend " ccmake ../DTIPrep", it opened the CMake interface, said "empty cache".
                 
                Could you please tell me why this happen? I followed the instruction before, and the first two steps seems run correctly.
                Thank you so much for you help.

                Huan

                • Mar 6, 2018  09:03 PM | Juan Prieto - NIRAL
                  RE: DTIPrep command line installation
                  Can you run the following commands inside the DTIPrep-build directory?

                  mkdir bin; 
                  cmake ../DTIPrep


                  The command 'ccmake' brings up the interface of cmake, but if you run 'cmake' only, it will configure the project. 

                  Best,

            Sep 3, 2018  10:09 AM | Abhineet Ojha
            RE: DTIPrep command line installation
            Originally posted by Juan Prieto:
            Did you execute the make command after configuration? 

            The build steps should look something like this. 

            1. git clone https://github.com/NIRALUser/DTIPrep.git
            2. mkdir DTIPrep-build; cd DTIPrep-build
            3. ccmake ../DTIPrep
            4. make

            Best, 

            Juan

            1. git clone https://github.com/NIRALUser/DTIPrep.git
            2. mkdir DTIPrep-build; cd DTIPrep-build
            3. ccmake ../DTIPrep
            4. make

            I am able to execute first two commands without any error but in third command it is giving this error(mentioned in red colour). Please, look at it and provide appropriate solution


            abhineet@abhineet-SVE15118FNB:~/DTIPrep-build$ sudo cmake ../DTIPrep
            -- Found Qt4: /usr/bin/qmake (found suitable version "4.8.7", minimum required is "4.6")
            -- Performing Test C_HAS_WARNING-Wformat=2
            -- Performing Test C_HAS_WARNING-Wformat=2 - Success
            -- Performing Test CXX_HAS_WARNING-Wformat=2
            -- Performing Test CXX_HAS_WARNING-Wformat=2 - Success
            -- Found Qt4: /usr/bin/qmake (found version "4.8.7")
            -- SuperBuild - DTIPrepTools => Requires VTK, DCMTK, ITKv4, SlicerExecutionModel, DTIProcess, niral_utilities, BRAINSTools,
            -- SuperBuild - VTK[OK]
            -- SuperBuild - DCMTK[OK]
            -- SuperBuild - DCMTK => Requires TIFF, JPEG, zlib,
            -- SuperBuild - TIFF[OK]
            -- SuperBuild - TIFF => Requires zlib, JPEG,
            -- SuperBuild - zlib[OK]
            -- SuperBuild - JPEG[OK]
            -- SuperBuild - TIFF[OK]
            -- SuperBuild - DCMTK[OK]
            -- SuperBuild - ITKv4 => Requires VTK[INCLUDED], DCMTK[INCLUDED], TIFF[INCLUDED], JPEG[INCLUDED], zlib[INCLUDED],
            -- SuperBuild - ITKv4[OK]
            -- SuperBuild - SlicerExecutionModel => Requires ITKv4[INCLUDED],
            -- SuperBuild - SlicerExecutionModel[OK]
            CMake Error at SuperBuild/External_DTIProcess.cmake:36 (if):
            if given arguments:

            "DEFINED" "DTIProcess_DIR" "AND" "NOT" "EXISTS" "AND" "NOT" "EXISTS"
            Unknown arguments specified
            Call Stack (most recent call first):
            CMake/SlicerMacroCheckExternalProjectDependency.cmake:69 (include)
            SuperBuild.cmake:288 (SlicerMacroCheckExternalProjectDependency)
            CMakeLists.txt:28 (include)
            -- Configuring incomplete, errors occurred!
            See also "/home/abhineet/DTIPrep-build/CMakeFiles/CMakeOutput.log".
            See also "/home/abhineet/DTIPrep-build/CMakeFiles/CMakeError.log".

            • Sep 4, 2018  03:09 PM | Juan Prieto - NIRAL
              RE: DTIPrep command line installation
              The following commit fixes finding the DTIProcess package https://github.com/NIRALUser/DTIPrep/com...
              The following commit fixes building the TIFF library with ZLIB support https://github.com/NIRALUser/DTIPrep/com...


              Please remove the current version of the source code and try the commands again.

              Best,

              • Sep 5, 2018  03:09 PM | Abhineet Ojha
                RE: DTIPrep command line installation
                Originally posted by Juan Prieto:
                The following commit fixes finding the DTIProcess package https://github.com/NIRALUser/DTIPrep/com...
                The following commit fixes building the TIFF library with ZLIB support https://github.com/NIRALUser/DTIPrep/com...


                Please remove the current version of the source code and try the commands again.

                Best,
                Dear Sir,
                First of all, thanks for updating the program. I am able to compile DTIPrep.
                Sorry to bother you again.
                I am getting an error (in red colour font)while running in Performing configure step for 'niral_utilities' part while running make command.
                I had try to look for it online but unable to find any solution.
                Please provide your insight on how to solve this error.
                I am also attaching .png file showing my ccmake option for DTIPrep.


                abhineet@abhineet-SVE15118FNB:~/DTIPrep-build$ cmake ../DTIPrep
                -- Found Qt4: /usr/bin/qmake (found suitable version "4.8.7", minimum required is "4.6")
                -- Performing Test C_HAS_WARNING-Wformat=2
                -- Performing Test C_HAS_WARNING-Wformat=2 - Success
                -- Performing Test CXX_HAS_WARNING-Wformat=2
                -- Performing Test CXX_HAS_WARNING-Wformat=2 - Success
                -- Found Qt4: /usr/bin/qmake (found version "4.8.7")
                -- SuperBuild - DTIPrepTools => Requires VTK, DCMTK, ITKv4, SlicerExecutionModel, DTIProcess, niral_utilities, BRAINSTools,
                -- SuperBuild - VTK[OK]
                -- SuperBuild - DCMTK[OK]
                -- SuperBuild - DCMTK => Requires TIFF, JPEG, zlib,
                -- SuperBuild - TIFF[OK]
                -- SuperBuild - TIFF => Requires zlib, JPEG,
                -- SuperBuild - zlib[OK]
                -- SuperBuild - JPEG[OK]
                -- SuperBuild - TIFF[OK]
                -- SuperBuild - DCMTK[OK]
                -- SuperBuild - ITKv4 => Requires VTK[INCLUDED], DCMTK[INCLUDED], TIFF[INCLUDED], JPEG[INCLUDED], zlib[INCLUDED],
                -- SuperBuild - ITKv4[OK]
                -- SuperBuild - SlicerExecutionModel => Requires ITKv4[INCLUDED],
                -- SuperBuild - SlicerExecutionModel[OK]
                -- SuperBuild - DTIProcess => Requires ITKv4[INCLUDED], VTK[INCLUDED], SlicerExecutionModel[INCLUDED],
                -- SuperBuild - DTIProcess[OK]
                -- SuperBuild - niral_utilities => Requires ITKv4[INCLUDED], VTK[INCLUDED], SlicerExecutionModel[INCLUDED],
                -- SuperBuild - niral_utilities[OK]
                -- SuperBuild - BRAINSTools => Requires ITKv4[INCLUDED], SlicerExecutionModel[INCLUDED], VTK[INCLUDED], DCMTK[INCLUDED], teem, OpenCV, zlib[INCLUDED],
                -- SuperBuild - teem => Requires zlib[INCLUDED],
                -- SuperBuild - teem[OK]
                -- SuperBuild - OpenCV[OK]
                -- SuperBuild - BRAINSTools[OK]
                -- SuperBuild - BRAINSTools => Requires ITKv4[INCLUDED], SlicerExecutionModel[INCLUDED], VTK[INCLUDED], DCMTK[INCLUDED], teem[INCLUDED], OpenCV[INCLUDED], zlib[INCLUDED], TIFF[INCLUDED], JPEG[INCLUDED],
                -- SuperBuild - BRAINSTools[OK]
                -- SuperBuild - DTIPrepTools[OK]
                -- Configuring done
                -- Generating done
                -- Build files have been written to: /home/abhineet/DTIPrep-build

                abhineet@abhineet-SVE15118FNB:~/DTIPrep-build$ sudo make
                [ 8%] Built target OpenCV
                [ 16%] Built target zlib
                [ 24%] Built target teem
                [ 32%] Built target VTK
                [ 39%] Built target JPEG
                [ 47%] Built target TIFF
                [ 55%] Built target DCMTK
                [ 63%] Built target ITKv4
                [ 70%] Built target SlicerExecutionModel
                [ 78%] Built target DTIProcess
                [ 79%] Performing configure step for 'niral_utilities'
                -- Configuring executable: ImageMath
                -- Configuring executable: convertITKformats
                -- Configuring executable: convertITKformats4D
                -- Configuring executable: convertTextToImage
                -- Configuring done
                CMake Error: INSTALL(EXPORT) given unknown export "niral_utilitiesTargets"
                -- Generating done
                -- Build files have been written to: /home/abhineet/DTIPrep-build/niral_utilities-build
                CMakeFiles/niral_utilities.dir/build.make:109: recipe for target 'niral_utilities-prefix/src/niral_utilities-stamp/niral_utilities-configure' failed
                make[2]: *** [niral_utilities-prefix/src/niral_utilities-stamp/niral_utilities-configure] Error 1
                CMakeFiles/Makefile2:697: recipe for target 'CMakeFiles/niral_utilities.dir/all' failed
                make[1]: *** [CMakeFiles/niral_utilities.dir/all] Error 2
                Makefile:94: recipe for target 'all' failed
                make: *** [all] Error 2
                Attachment: ccmake DTIPrep.png

                • Sep 10, 2018  01:09 PM | Juan Prieto - NIRAL
                  RE: DTIPrep command line installation
                  Is this issue resolved with the latest updates?

      Sep 19, 2016  07:09 PM | Juan Prieto - NIRAL
      RE: DTIPrep command line installation
      Hi Tanmay, 

      Could you please visit the github page https://github.com/NIRALUser/DTIPrep and use the github repository address to checkout DTIPrep?

      Best, 

      Juan

      Mar 13, 2018  10:03 PM | Ryan H - UCLA
      RE: DTIPrep command line installation
      Hi, 

      Of the 4 following steps, I've successfully executed the first 3: 

      1. git clone https://github.com/NIRALUser/DTIPrep.git
      2. mkdir DTIPrep-build; cd DTIPrep-build
      3. cmake ../DTIPrep
      4. make


      However, when I enter 'make' into the command line, I encounter the following errors:


      (venv) [rhyon@n2236 DTIPrep-build]$ make
      Scanning dependencies of target OpenCV
      [ 1%] Creating directories for 'OpenCV'
      [ 2%] Performing download step (git clone) for 'OpenCV'
      error: unknown option 'config'
      usage: git clone [options] [--] []

      -v, --verbose be more verbose
      -q, --quiet be more quiet
      --progress force progress reporting
      -n, --no-checkout don't create a checkout
      --bare create a bare repository
      --mirror create a mirror repository (implies bare)
      -l, --local to clone from a local repository
      --no-hardlinks don't use local hardlinks, always copy
      -s, --shared setup as shared repository
      --recursive initialize submodules in the clone
      --template path the template repository
      --reference reference repository
      -o, --origin
      use instead of 'origin' to track upstream
      -b, --branch
      checkout instead of the remote's HEAD
      -u, --upload-pack
      path to git-upload-pack on the remote
      --depth create a shallow clone of that depth
      error: unknown option 'config'
      usage: git clone [options] [--] []
      -v, --verbose be more verbose
      -q, --quiet be more quiet
      --progress force progress reporting
      -n, --no-checkout don't create a checkout
      --bare create a bare repository
      --mirror create a mirror repository (implies bare)
      -l, --local to clone from a local repository
      --no-hardlinks don't use local hardlinks, always copy
      -s, --shared setup as shared repository
      --recursive initialize submodules in the clone
      --template path the template repository
      --reference reference repository
      -o, --origin
      use instead of 'origin' to track upstream
      -b, --branch
      checkout instead of the remote's HEAD
      -u, --upload-pack
      path to git-upload-pack on the remote
      --depth create a shallow clone of that depth
      error: unknown option 'config'
      usage: git clone [options] [--] []
      -v, --verbose be more verbose
      -q, --quiet be more quiet
      --progress force progress reporting
      -n, --no-checkout don't create a checkout
      --bare create a bare repository
      --mirror create a mirror repository (implies bare)
      -l, --local to clone from a local repository
      --no-hardlinks don't use local hardlinks, always copy
      -s, --shared setup as shared repository
      --recursive initialize submodules in the clone
      --template path the template repository
      --reference reference repository
      -o, --origin
      use instead of 'origin' to track upstream
      -b, --branch
      checkout instead of the remote's HEAD
      -u, --upload-pack
      path to git-upload-pack on the remote
      --depth create a shallow clone of that depth
      -- Had to git clone more than once:
      3 times.
      CMake Error at /u/home/r/rhyon/DTIPrep-build/OpenCV-prefix/tmp/OpenCV-gitclone.cmake:66 (message):
      Failed to clone repository: 'git://github.com/BRAINSia/opencv.git'
      make[2]: *** [OpenCV-prefix/src/OpenCV-stamp/OpenCV-download] Error 1
      make[1]: *** [CMakeFiles/OpenCV.dir/all] Error 2
      make: *** [all] Error 2


      Do you know what could be going wrong? Thank you, much appreciated!

      • Mar 15, 2018  09:03 PM | Juan Prieto - NIRAL
        RE: DTIPrep command line installation
        Could you please let me know your git version? 
        If you have an older version, that may be the cause of this error. The minimum version should be 2.2.1, older version should work just fine. 

        Best,

  • Sep 10, 2018  11:09 AM | nikhil gupta
    DTI-Prep installation error
    HI

    I am installing DTI_Prep tools while installing the software an error occurred. Can anybody help me with the error.

    In file included from /home/nick1104/DTIPrep/SuperBuild/ExternalSources/ITKv4/Modules/ThirdParty/VNL/src/vxl/vcl/vcl_iostream.h:5:0,
    from /home/nick1104/DTIPrep/SuperBuild/ExternalSources/ITKv4/Modules/ThirdParty/VNL/src/vxl/vcl/vcl_deprecated.cxx:4:
    /home/nick1104/DTIPrep/SuperBuild/ExternalSources/ITKv4/Modules/ThirdParty/VNL/src/vxl/vcl/vcl_compiler.h:79:4: error: #error "Dunno about this gcc"
    # error "Dunno about this gcc"
    ^~~~~
    Modules/ThirdParty/VNL/src/vxl/vcl/CMakeFiles/itkvcl.dir/build.make:62: recipe for target 'Modules/ThirdParty/VNL/src/vxl/vcl/CMakeFiles/itkvcl.dir/vcl_deprecated.cxx.o' failed
    make[5]: *** [Modules/ThirdParty/VNL/src/vxl/vcl/CMakeFiles/itkvcl.dir/vcl_deprecated.cxx.o] Error 1
    CMakeFiles/Makefile2:666: recipe for target 'Modules/ThirdParty/VNL/src/vxl/vcl/CMakeFiles/itkvcl.dir/all' failed
    make[4]: *** [Modules/ThirdParty/VNL/src/vxl/vcl/CMakeFiles/itkvcl.dir/all] Error 2
    Makefile:151: recipe for target 'all' failed
    make[3]: *** [all] Error 2
    CMakeFiles/ITKv4.dir/build.make:116: recipe for target 'ITKv4-prefix/src/ITKv4-stamp/ITKv4-build' failed
    make[2]: *** [ITKv4-prefix/src/ITKv4-stamp/ITKv4-build] Error 2
    CMakeFiles/Makefile2:1364: recipe for target 'CMakeFiles/ITKv4.dir/all' failed
    make[1]: *** [CMakeFiles/ITKv4.dir/all] Error 2
    Makefile:94: recipe for target 'all' failed
    make: *** [all] Error 2

    Thankyou

    • Sep 10, 2018  01:09 PM | Juan Prieto - NIRAL
      RE: DTI-Prep installation error
      Hi,

      Could you provide a little bit more information about your OS and the compiler you are using?

  • May 21, 2018  11:05 PM | Scott Sorg
    problems running on mac
    Hello,
    I've been trying to test out DTIprep on some data, but I haven't been able to get it to run successfully. I'm not sure if it is due to errors I'm making or if the data may just be unsuitable for DTIprep (my assumption is that it should be fine). One thing that I noticed is that it doesn't immediately recognize where slicer is located or fsl. I set the paths to both programs (fsl_bet2 and slicer) in the protocol path section. I am running it with the default settings. Last time I ran it (on a simple 6 direction scheme with 1 b0 image) the message: "Single b-value DWI without a b0/baseline!" appeared within the Interlace-wise Check Artifacts section. I installed slicer (4.8.1), FSL (5.0) and DTIprep (DTIPrep1.2.8_MacOSX). Any assistance here would be most appreciated. 
    -Scott

    • May 24, 2018  07:05 PM | Martin Styner
      RE: problems running on mac
      Hi Scott, the default settings can be a bit aggressive (they will be changed to be less aggressive in future releases), so you probably want to change the parameters (e.g. increasing the thresholds that are related to standard deviations, and displacements/rotations or decreasing those that are related to correlation).

      A 6-directional scheme is very sensitive in our QC, as a single remove DWI will fail the whole dataset (as one cannot recover the tensor from only 5 directions). If you look at the txt report in the output folder, you can see which DWIs are kicked out in which stage (you can also see it in the output xml, but that one is much harder to read). Maybe try with a dataset that has more than 6 gradients.

      Slicer and FSL are only used for the brain masking step and thus should not matter for the QC of the DWI (only for the brain mask computation and the DTI reconstruction). If that is an issue you may also simply disable the brain masking and do that step outside DTIPrep (as a work around)

      Martin
      Originally posted by Scott Sorg:
      Hello,
      I've been trying to test out DTIprep on some data, but I haven't been able to get it to run successfully. I'm not sure if it is due to errors I'm making or if the data may just be unsuitable for DTIprep (my assumption is that it should be fine). One thing that I noticed is that it doesn't immediately recognize where slicer is located or fsl. I set the paths to both programs (fsl_bet2 and slicer) in the protocol path section. I am running it with the default settings. Last time I ran it (on a simple 6 direction scheme with 1 b0 image) the message: "Single b-value DWI without a b0/baseline!" appeared within the Interlace-wise Check Artifacts section. I installed slicer (4.8.1), FSL (5.0) and DTIprep (DTIPrep1.2.8_MacOSX). Any assistance here would be most appreciated. 
      -Scott

  • Mar 6, 2018  03:03 PM | Giuseppe Cabras - University of Udine
    DWI QC Report interpretation
    Dear users and developers,
    I am using DTIPrep 1.2.4 in a pipeline (no GUI) and apparently works fine, but I have some doubts on reading the QC report. Are there some instructions or a tutorial on how to read it? In particular I am interested on gradient remove info: in a subject i get gradient 22 removed because:
    ======
    Slice-wise Check Artifacts:
    Region Gradient# Slice# Correlation
    whole         22 8    0.816240
    =====================

    but looking at gradient DWI I didn't see any hugly and slice 8 to what refer? native slice 8 in z axis? It is too low.
    Eventually can I send you the dataset or the dwi volume 22?
    Thanks in advance,
    cheers,
    Giuseppe

    • Mar 6, 2018  03:03 PM | Martin Styner
      RE: DWI QC Report interpretation
      Hi Giuseppe
      In the docs section on NITRC you find a manual that should provide some information.

      Wrt your QC report txt file: Yes, this would be gradient index 22 (starting at index 0, so it's the 23rd DWI volume). Slice 8 is the native  slide 8 (again starting at index 0, so it's the 9th slice).

      If that slice is actuallyfine, but at the full bottom or top of the brain then you need to increase the head skip (resp tail skip) parameter, so that it does not check there. The slices at the bottom and at the full top of the brain need to be skipped, as the slice wise check is based on consistency across slices and if the slice content, i.e. anatomy, changes dramatically from one slice to the other, then DTIPrep will flag that slice, even though the inconsistency is not due to an artifact.

      Martin

      Originally posted by Giuseppe Cabras:
      Dear users and developers,
      I am using DTIPrep 1.2.4 in a pipeline (no GUI) and apparently works fine, but I have some doubts on reading the QC report. Are there some instructions or a tutorial on how to read it? In particular I am interested on gradient remove info: in a subject i get gradient 22 removed because:
      ======
      Slice-wise Check Artifacts:
      Region Gradient# Slice# Correlation
      whole         22 8    0.816240
      =====================

      but looking at gradient DWI I didn't see any hugly and slice 8 to what refer? native slice 8 in z axis? It is too low.
      Eventually can I send you the dataset or the dwi volume 22?
      Thanks in advance,
      cheers,
      Giuseppe

      Apr 19, 2018  10:04 AM | Susanne Meinert
      RE: DWI QC Report interpretation
      Hi everyone,
      we are trying to implement DTIPrep in our study. Unfortunately we are unsure of how to interpret the output of the Diffusion Gradient Check. 5-10% of subjects are excluded due to a mismatch in diffusion gradients in some dw-directions. What does that mean? When visually inspecting the images, we found no changes or artifacts. How should we proceed? Exclude these participants from analysis alltogether, exclude the affected directions or ignore the error in absense of observable artifacts?

      Thanks in advance!
      Susanne

      • Apr 19, 2018  04:04 PM | Martin Styner
        RE: DWI QC Report interpretation
         
        Originally posted by Susanne Meinert:
        Hi everyone,
        we are trying to implement DTIPrep in our study. Unfortunately we are unsure of how to interpret the output of the Diffusion Gradient Check. 5-10% of subjects are excluded due to a mismatch in diffusion gradients in some dw-directions. What does that mean? When visually inspecting the images, we found no changes or artifacts. How should we proceed? Exclude these participants from analysis alltogether, exclude the affected directions or ignore the error in absense of observable artifacts?

        Thanks in advance!
        Susanne
        Hi Susanne

        The Diffusion Gradient Check is not well named (we should probably change that), as it detects residual motion that the prior motion & eddy current correction step was not able to correct.

        The default settings of that Diffusion Gradient Check step are quite aggressive (another thing to definitely change), and thus it could be that DTIPrep is removing acceptable images. One way to diagnose whether that is the case is to turn this step off and look at the otherwise-rejected DWIs and see whether they show motion compared to the other DWIs. If so, you should increase the thresholds. Alternatively, you could also just increase the thresholds and look at the output and see whether you see increased residual motion in the output DWI. If not, then you are fine with the increased thresholds.

        In our own studies, we commonly use larger thresholds than the defaults. We use 1.5 - 2 x voxelsize for the translation and 1 - 1.5 degrees for rotation.

        Martin

  • Apr 8, 2016  12:04 PM | Jacek M
    DWIConvert
    Dear All,

    I would like to usee DTIPrep, yet I am stucked ad the very first stage, namely at the conversion to Nrdd. I have tried it using GUI, but literally, nothing happened. I got no error message and of course no .nhdr file.

    Furthermore, I would like to try it using command line. I download your manual "2014.01.14-quality_control_tutorial_for_DTI_MANUAL" but I cant make it further then step 2a. When I type "DWIConvert" into my terminal, not surprisingly I got an error message "command not found". Is there any software I need to install? So far I got only Slicer

    Thank you in advance.

    Best,
    Jacek

    • Apr 8, 2016  12:04 PM | Martin Styner
      RE: DWIConvert
      Hi Jacek
      thanks for pointing this out, we need to look at the conversion tab, which has not been updated in a while. The current version uses an older conversion tool that used to be disseminated with Slicer (DicomToNRRDConverter), but which is no longer part of Slicer, as it has been replaced with DWIConvert (the Slicer module is called DWIConverter).

      Best, download the newest version of Slicer and use that module (DWIConverter) to convert your DICOM folder with the DWI/DTI data into a NRRD file, which you can then load into DTIPrep.

      Best regards
      Martin

      Apr 8, 2016  02:04 PM | Juan Prieto - NIRAL
      RE: DWIConvert
      What type of input data do you have?
      Are you selecting the Slicer module DWIConverter?

      Are you specifying the input/output data in the DWIConverter module? 

      Best, 

      Juan

      • Apr 13, 2016  11:04 AM | Jacek M
        RE: DWIConvert
        Dear All,

        Thanks for your tips. Yes I tried using Slicer DWIConverter, but the only difference in comparison to converter in DTIPrep is, that this time I got at least an error message.
        I use "regular" .dcm files.

        I dont quite understand what should I do with the fields: Input/Output DWI Volume, there is nothing I can select in here, so it remains "none".
        I specified Input Dicom Data Directory, Output Directory and Gradient Vector File, but still all I got is an error message.


        Cheers,
        Jacek

        • Apr 13, 2016  12:04 PM | Martin Styner
          RE: DWIConvert
          Hi Jacek
          You need to specify Input Dicom Data Directory and Output DWI Volume file. Use option DicomToNrrd. I am not sure you need Output Directory, but it should not hurt. 

          Do not specify the NiftiFSL options such as the input bvec file.

          Under advanced conversion parameters, try enabling the "Use BMatrix Gradient Directions"

          Btw, what is the error message that you are getting (Check also the "error log" window)

          Martin

          • Apr 13, 2016  06:04 PM | Jacek M
            RE: DWIConvert
            Hi Martin,

            I specified Input Dicom Data Directory and as a Output  DWI Volume file I just selected "DWI Volume file" . I can only choose between "none" or "Rename Currect Diffusion Weigted Image" or "Create new...", "Create new as..." or "Delete ..."

            So I got an following errors:

            Found CommandLine Module, target is /Applications/Slicer.app/Contents/lib/Slicer-4.5/cli-modules/DWIConvert
            ModuleType: CommandLineModule
            DWIConverter command line:

            /Applications/Slicer.app/Contents/lib/Slicer-4.5/cli-modules/DWIConvert --conversionMode DicomToNrrd --outputVolume /var/folders/7q/y90nswcn65sfpj6wt7h47p3c0000gn/T/Slicer/JDJ_vtkMRMLDiffusionWeightedVolumeNodeB.nrrd --inputDicomDirectory /Users/Jacek/Desktop/Tracula/dti_jacekmanko --useBMatrixGradientDirections --outputDirectory /Users/Jacek/Desktop --gradientVectorFile / --smallGradientThreshold 0.2

            and this one too

            DWIConverter standard error:

            W: DcmItem: Length of element (6423,726d) is odd
            E: DcmElement: Unknown Tag & Data (6423,726d) larger (778269289) than remaining bytes in file
            E: DcmElement: Unknown Tag & Data (2020,3020) larger (808464430) than remaining bytes in file
            E: DcmElement: Unknown Tag & Data (2020,3020) larger (808464430) than remaining bytes in file
            /Users/..../Medphys_Asperger_20100213_s0008_i0001.dcm has no non-zero diffusion vectors
            libc++abi.dylib: terminating with uncaught exception of type std::ios_base::failure: basic_filebuf::underflow error reading the file
            DWIConverter terminated with an unknown exception.

      Apr 15, 2016  11:04 AM | Jacek M
      RE: DWIConvert
      To make it more complicated - I have now used Slicer v 3.6.3 on Windows and I got the following feedback, but I got a output file in .nrrd format.

      Dicom to Nrrd Converter standard output:

      C:/Users/Jacek/.../data.nrrd
      ORIGINAL\PRIMARY\M\ND\MOCO\DICO\MOSAIC
      Image acquired using a Siemens scanner
      Siemens Mosaic format
      WARNING: Unknown transfer syntax, assuming little endian. This may cause strange results, such as bizarre b-values and directions



      My another question is, I gues we all have more than one subject, is there a way to automatize this conversion using command line?

      • Apr 15, 2016  12:04 PM | Martin Styner
        RE: DWIConvert
        Hi Jacek
        Does the nrrd file look okay when loaded in Slicer or DTIPrep? If so, then at least you have found a workaround. Which is surprising as DicomToNrrdConverter is basically the same as DWIConvert (DWIConvert is a newer version of DicomToNrrdConverter).

        Re calling this on the command line: Yes, most Slicer modules have a command line interface. Not sure about how to do that in Windows (this is really a question for the Slicer user-list), but in Linux you can find all built-in modules in the folder /lib/Slicer-/cli-modules . You can also call (again in Linux) Slicer --launch e.g. Slicer --launch DicomToNrrdConverter

        Martin

        • Mar 27, 2018  01:03 AM | Micah Johnson - UCLA Department of Psychology
          RE: DWIConvert
          Hi there, I'm using linux, and I'm having trouble running Slicer from my bash script.sh, it gives me the error message, when trying to run DWIConvert, that "--launch: command not found", which is very strange, because the exact same code works correctly when I type it into the terminal.

          Any ideas?

          Much appreciated!
          Micah

          Originally posted by Martin Styner:
          Hi Jacek
          Does the nrrd file look okay when loaded in Slicer or DTIPrep? If so, then at least you have found a workaround. Which is surprising as DicomToNrrdConverter is basically the same as DWIConvert (DWIConvert is a newer version of DicomToNrrdConverter).

          Re calling this on the command line: Yes, most Slicer modules have a command line interface. Not sure about how to do that in Windows (this is really a question for the Slicer user-list), but in Linux you can find all built-in modules in the folder /lib/Slicer-/cli-modules . You can also call (again in Linux) Slicer --launch e.g. Slicer --launch DicomToNrrdConverter

          Martin

          • Apr 2, 2018  08:04 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
            RE: DWIConvert
            Hi, just an idea,
             Try specifying the exact path where your latest version of Slicer is and add "./" before Slicer (ie: /whateverpath/Slicer-4.8somethingelse/./Slicer --launch DWIConvert.....).

            Just in case you haven't done it yet.




            Originally posted by Micah Johnson:
            Hi there, I'm using linux, and I'm having trouble running Slicer from my bash script.sh, it gives me the error message, when trying to run DWIConvert, that "--launch: command not found", which is very strange, because the exact same code works correctly when I type it into the terminal.

            Any ideas?

            Much appreciated!
            Micah

            Originally posted by Martin Styner:
            Hi Jacek
            Does the nrrd file look okay when loaded in Slicer or DTIPrep? If so, then at least you have found a workaround. Which is surprising as DicomToNrrdConverter is basically the same as DWIConvert (DWIConvert is a newer version of DicomToNrrdConverter).

            Re calling this on the command line: Yes, most Slicer modules have a command line interface. Not sure about how to do that in Windows (this is really a question for the Slicer user-list), but in Linux you can find all built-in modules in the folder /lib/Slicer-/cli-modules . You can also call (again in Linux) Slicer --launch e.g. Slicer --launch DicomToNrrdConverter

            Martin

            • Apr 2, 2018  10:04 PM | Micah Johnson - UCLA Department of Psychology
              RE: DWIConvert
              Hi Daniel, thanks, that works. I had jerryrigged it by cd'ing into the folder and then calling it from within there, but that's cleaner for my batch script, thanks

      Apr 27, 2016  11:04 AM | Jacek M
      RE: DWIConvert
      Dear Martin,

      Thank you for your help! I have already conducted my quality assurance analysis the way I wanted!

      I'd like yet another question that does not belong to this topic but nevertheless I dare myself to ask it. You see, in 30% of my data, the report indicates "Too many bad gradient directions found" after that, as defined in my protocol, analysis stops. Does it mean that all of these subjects are to be excluded?

      • Apr 27, 2016  12:04 PM | Martin Styner
        RE: DWIConvert
        Hi Jacek

        Well, it should, but there is a bug (that we have not yet looked into) that can (quite often) lead to an incorrect printout of that line. 

        By default, DTIPrep will not write out a final QC'ed image if there were indeed too many gradients excluded (as defined by the "QC_badGradientPercentTolerance" parameter). So, if DTIPrep generated the QC'ed DWI image, then you are all fine.

        If no QC'ed DWI image as generated, then indeed there were too many bad gradients. Please, be aware that the default threshold for that is set a bit stringent, i.e. it's perfectly fine to relax it a bit, e.g. to 0.3 (30%), or even higher depending on the number of starting gradients.

        Martin

      Jun 7, 2016  04:06 PM | Marie Drottar - Boston Childrens Hospital
      RE: DWIConvert
      DWIConverter standard error:

      W: DcmItem: Length of element (7453,6475) is odd
      E: DcmElement: Unknown Tag & Data (7453,6475) larger (1936607609) than remaining bytes in file

      I am getting this error message when trying to convert dcm to nrrd in slicer 4.5. The window says the conversion is 100% complete; but not .nnrd file is output into folder.

      thank you

      marie

      Jan 10, 2018  09:01 AM | Maike Kleemeyer
      RE: DWIConvert
      Hello all,

      I have for the first time acquired data with two b-values and when converting these from DICOM to nrrd, the second b-value is nor correctly identified. I originally have files with b=0 (10), b=700 (30 directions), and b=2850 (60 directions), however after converting them using DWIConvert from the command line, the bval file contains b=0, b=1412, and b=2850. When I do an intermediate conversion from DICOM to FSL and then from FSL to nrrd, they are all correct. Any idea what this may be caused by? Also, do I need to make changes to the default settings in DTIPrep?

      Thanks in advance, Maike

      • Jan 10, 2018  10:01 PM | Martin Styner
        RE: DWIConvert
        Hi Maike
        That sounds like a bug in DWIConvert. Can you file a bug with them (DWIConvert is not part of DTIPrep, but rather an external tool that is used by DTIPrep). 
        here is the github page to DWIConvert: https://github.com/BRAINSia/BRAINSTools/tree/master/DWIConvert

        Best
        Martin

        • Jan 11, 2018  02:01 PM | Maike Kleemeyer
          RE: DWIConvert
          Thanks, Martin for the quick reply. Do you have any thoughts on using DTIPrep when acquiring DWIs with 2 b-values. In a test run, a lot of gradients were excluded and I wonder whether this is because of the different b-values? Or should it work just fine and that subject was particularly bad?

          Thanks in advance, Maike

          • Jan 11, 2018  02:01 PM | Martin Styner
            RE: DWIConvert
            Hi Maike
            DTIprep has a built-in support for multiple b-values in that it adjusts the checking parameters for the different b-values. So that should be fine.

            But the default values by DTIPrep for high b-values are too strict and thus many high b-value DWIs are rejected if you use the default parameters. Best adapt them to be less strict. Double check your output, either the text report or the xml result, to see which step kicks out your DWIs (assuming they look good if you visually inspect them either with DTIPrep, Slicer or fslview), then go to the parameters for that step and increase the thresholds/sigmas.

            Of course, that particular dataset may be quite bad, but you should be able to also visually see that. DTIPrep does not necessarily detect things that cannot be seen by the pure eye, but rather it standardizes & automizes the QC process (i.e. you could also visually check all your DWIs for all your datasets, which is though less stable/reliable and significantly more time consuming).

            Martin

            • Jan 15, 2018  12:01 PM | Maike Kleemeyer
              RE: DWIConvert
              Hey Martin,

              thanks for the quick replay again. I now checked again another subject, and this one looks indeed better. However, the resulting bval file only includes one b-value (apart from the first b=0), even though volumes from the other bval are still included. Are they somehow transformed to the same bval? Or what is happening here? I attached a bval file with the first 100 lines displaying the original and thereafter the qced version as example.

              Thanks again, Maike

              • Jan 17, 2018  04:01 PM | Martin Styner
                RE: DWIConvert
                Hi Maike
                Not sure what's happening. The DWI's should not be transformed to a single b-value (not even sure that's possible). Thus, this is likely a bug in DWIConvert. I am though not an expert of the DWIConvert code etc. Can you send this isseu to the DWIConvert githubpage: https://github.com/BRAINSia/BRAINSTools/tree/master/DWIConvert

                Martin

                • Jan 18, 2018  08:01 AM | Maike Kleemeyer
                  RE: DWIConvert
                  Okay. And would there be a way to check that they are still correct in the qced.nrrd file?

                  Thanks, Maike

                  • Jan 18, 2018  07:01 PM | Martin Styner
                    RE: DWIConvert
                    If they are correct in the input nrrd file to DTIPrep, then they should be correct in the qced.nrrd file (as there is no conversion happening as part of DTIPrep).

                    Best
                    Martin

      Jan 23, 2018  11:01 PM | Ryan H - UCLA
      RE: DWIConvert
      Hi all, I figured I'd ask my question here rather than creating a new thread, as my issue pertains specifically to the DWIConvert tool.

      In brief summary, I've converted my NIFTIs to NRRDs so that I can use DTIPrep's denoising and artifact checking tools, after which I've converted the QCed NRRDs back to NIFTI so that I can use FSL's FDT tools for further preprocessing (i.e., fsl eddy). 

      Eddy outputs a file called data.nii.gz.eddy_restricted_movement_rms in which there are estimates for movement (1) relative to the first volume (the b0) and (2) between each consecutive volumes. I use this movement estimation file to identify subjects with excess movement in the scanner to remove them from analysis.

      Here is the puzzling output that I get, where the first column indicates type-(1) values and the second column indicates type-(2) values: 

      0 0
      0.0004349732621 0.0004349732621
      0.1293237744 0.1290371457
      0.0770145743 0.0787793649
      0.1380966347 0.1334343518
      0.120617891 0.0671182883
      0.2690339005 0.164081166
      0.3256238628 0.07334808195
      0.1346585371 0.1988556541
      0.1346585371 0
      0.1346585371 0
      0.1346585371 0
      0.1346585371 0
      0.1364517787 0.06969197052
      0.2810317103 0.1871601272
      0.2053992891 0.1139292096
      0.1838997283 0.04258127975
      0.1850058225 0.03042424084
      0.1640395851 0.04978561965
      0.1441797516 0.03871081352
      0.1411901608 0.08651112032
      0.05642180761 0.09891716264
      0.1132709746 0.1019541404
      0.198486599 0.2614182835
      0.2152392961 0.02585408788
      0.2636229757 0.05646168819
      0.2057839289 0.111750168
      0.2018872141 0.06196124255
      0.3124672885 0.1476290345
      0.3520931575 0.07196218901
      0.2838850662 0.09389126276
      0.3076169748 0.04724860972
      0.3053632287 0.0193159719


      According to this, there is absolutely zero movement between a consecutive 4 volumes, which seems unlikely, if not impossible. I get similar strange looking output for many other subjects processed using DTIPrep tools and then FSL eddy. Importantly, I get normal-looking movement estimation when I do not use DWIConvert or DTIPrep's tools.

      To identify the problem, I've tried only using DWIConvert from NIFTI to NRRD and then again from NRRD to NIFTI without using any of DTIPrep's preprocessing tools. In theory, there should be no change in the NIFTI after converting to and from NRRD. However, after running FSL eddy again on this back-and-forth-converted dataset, I still get strange eddy movement estimation in that it indicates absolutely zero movement between certain volumes.

      Does anyone have any insight into what may be causing the problem? Converting from NIFTI to NRRD back to NIFTI using DWIConvert seems to change the alignment of volumes. But I'm not quite sure.

      Thank you very much in advance.

      • Jan 26, 2018  01:01 AM | Martin Styner
        RE: DWIConvert
        Hi Ryan

        Not sure what's happening. It seems this behavior stems from DWIConvert (which we do not maintain, but rather is a Slicer module).

        Alternatively it may be FSL who does not play well with DWIConvert (FSL is known for having its own info in the nifti header that can provide conflict information to elsewhere in the header, thus as long as you stay within FSL everything is fine, but when converting to the outside bad/confusing things can happen when the conversion program is not using the FSL specific info but the "correct" Nitfi info).

        Did you compare the bval and bvec files when you ran NiftiToNrrd and then again NrrdToNifti on the same data? Do they look the same? If you run fslinfo on the nifti before and afte conversion, do you get the same output?

        Best regards
        Martin

        • Jan 26, 2018  02:01 AM | Ryan H - UCLA
          RE: DWIConvert
          Hi Martin, thank you for the response!

          Here's the raw dwi.nii.gz before DWIConverting:
          $ fslinfo raw_dwi.nii.gz
          data_type FLOAT32
          dim1 128
          dim2 128
          dim3 70
          dim4 33
          datatype 16
          pixdim1 1.875000
          pixdim2 1.875000
          pixdim3 2.000000
          pixdim4 8.844934
          cal_max 0.0000
          cal_min 0.0000
          file_type NIFTI-1+

          Here it is after DWIConverting to NRRD, running DTIPrep, and DWIConverting back to NIFTI:
          $ fslinfo raw_dwi_QCed.nii
          data_type INT16
          dim1 128
          dim2 128
          dim3 70
          dim4 33
          datatype 4
          pixdim1 1.875000
          pixdim2 1.875000
          pixdim3 2.000000
          pixdim4 1.000000
          cal_max 0.0000
          cal_min 0.0000
          file_type NIFTI-1+


          It looks like there is change in the data_type and pixdim4. Do you think this would be an issue? And my bval and bvec files are the same before and after conversion.

          • Jan 26, 2018  02:01 AM | Martin Styner
            RE: DWIConvert
            It could very well be that the issue is the data type. Not sure what DWIConvert does with float data (it probably casts it to short/Int16), as it expects short data. A possibility is that the nifti header says one thing and some FSL tag in the header says another thing (i.e. the data is actually not float, as the nifti header info is wrong).

            Did you get the raw dwi data directly from the DICOM conversion? The acquired raw data should be in short, not float. Also pixdim4 should be 1 or 0 (the 4th dimension is the DWI volumes, in this case you have 33 DWIs, which have, according to fslinfo, a spacing of 8.8, which is really non-sensical as DWIs don't really have a spatial spacing), though i don't think that this is what causes DWIConvert to do something incorrect.

            What conversion tool did you use (we use dcm2niix to go to nifti data from DICOM), maybe that's the issue? Alternatively you could go from DICOM to NRRD with DWIConvert, apply DTIPrep and then convert to Nifti for further processing in FSL. 

            Martin

            • Jan 26, 2018  02:01 AM | Ryan H - UCLA
              RE: DWIConvert
              I see, that all makes sense. I used dcm2niix to go from PAR/REC to NIFTI (this data is from a Phillips scanner). 

              I entered "more *PAR" into my command line and found this, which might be helpful:

              # slice number (integer)
              # echo number (integer)
              # dynamic scan number (integer)
              # cardiac phase number (integer)
              # image_type_mr (integer)
              # scanning sequence (integer)
              # index in REC file (in images) (integer)
              # image pixel size (in bits) (integer)
              # scan percentage (integer)
              # recon resolution (x y) (2*integer)
              # rescale intercept (float)
              # rescale slope (float)
              # scale slope (float)
              # window center (integer)
              # window width (integer)
              # image angulation (ap,fh,rl in degrees ) (3*float)
              # image offcentre (ap,fh,rl in mm ) (3*float)
              # slice thickness (in mm ) (float)
              # slice gap (in mm ) (float)
              # image_display_orientation (integer)
              # slice orientation ( TRA/SAG/COR ) (integer)
              # fmri_status_indication (integer)
              # image_type_ed_es (end diast/end syst) (integer)
              # pixel spacing (x,y) (in mm) (2*float)
              # echo_time (float)
              # dyn_scan_begin_time (float)
              # trigger_time (float)
              # diffusion_b_factor (float)
              # number of averages (integer)
              # image_flip_angle (in degrees) (float)
              # cardiac frequency (bpm) (integer)
              # minimum RR-interval (in ms) (integer)
              # maximum RR-interval (in ms) (integer)
              # TURBO factor <0=no turbo> (integer)
              # Inversion delay (in ms) (float)
              # diffusion b value number (imagekey!) (integer)
              # gradient orientation number (imagekey!) (integer)
              # contrast type (string)
              # diffusion anisotropy type (string)
              # diffusion (ap, fh, rl) (3*float)
              # label type (ASL) (imagekey!) (integer)

              • Jan 26, 2018  01:01 PM | Martin Styner
                RE: DWIConvert
                I think the types listed in your email is the type of the entry in the PAR header, e.g. 
                slice number (integer) => the slice number is an integer, and not the datatype of the data.


                But, given that you indeed directly converted these with dcm2niix, this could indicate an issue with that conversion (as mentioned before it should be type short)?

                If you do the conversion from nifti to nrrd and look at the nrrd header (e.g. via "more" as it's the header entries are in ASCII, or you could use "unu head ", unu is part of the Slicer distribution), is the datatype float or short? 

                Martin

                • Jan 26, 2018  06:01 PM | Ryan H - UCLA
                  RE: DWIConvert
                  I'm confused -- is it an issue that slice number is an integer type? 

                  Here's more output when I do more *PAR:
                  # === PIXEL VALUES =============================================================
                  # PV = pixel value in REC file, FP = floating point value, DV = displayed value on console
                  # RS = rescale slope, RI = rescale intercept, SS = scale slope
                  # DV = PV * RS + RI FP = DV / (RS * SS)

                  Does this mean my PAR file is of float type?

                  And the NRRD file after conversion from NIFTI-->NRRD is of data type short:
                  type: short
                  dimension: 4
                  space: left-posterior-superior
                  sizes: 128 128 70 33
                  thicknesses: NaN NaN 2 NaN
                  space directions: (1.875,0,0) (0,-1.875,0) (0,0,2) none
                  centerings: cell cell cell ???
                  kinds: space space space list
                  endian: little
                  encoding: raw
                  space units: "mm" "mm" "mm"
                  space origin: (-119.0625,121.57050323486328,-40.989997863769531)
                  measurement frame: (1,0,0) (0,1,0) (0,0,1)
                  modality:=DWMRI

                  Thanks for your help!

                  • Jan 29, 2018  01:01 PM | Martin Styner
                    RE: DWIConvert
                    It looks like that the data is indeed in "float" type according to the PAR. But DWIConvert will convert it to a "short" type and that may be the root of your problem.

                    If you have the DICOM data, can you try to use DWIConvert directly on the DICOM data?

                    If you visualize the nifti DWI data in fsl (e.g. fslview) does everything look okay? What is the range of the values, particularly in your DWI data with highest b-value (which has the lowest intensity values)?

                    you may also try to first convert the DWI data to short in fsl and then convert it with DWIConvert.

                    Best
                    Martin

                    • Jan 29, 2018  07:01 PM | Ryan H - UCLA
                      RE: DWIConvert
                      Unfortunately I don't have access to the DICOM data (it is old data collected from a previous institution). 

                      The float-type NIFTI looks fine when inspected visually. Using 'fslstats input -R' on one of the float-type DWI volumes of b = 1000, I get an intensity range of (0, 93305.70315).



                      I converted the raw_dwi.nii.gz to short using 'fslmaths input output -odt short' and fslinfo shows that the data-type is now INT16 (which I assume is the same as short). The intensity range changed to (-32650, 32122). I then converted the NIFTI to NRRD and back to NIFTI without doing any preprocessing and ran FSL eddy. I'm still getting strange movement estimation: 

                      0 0
                      0.0005123407713 0.0005123407713
                      0.1587485656 0.1582605558
                      0.1130426769 0.06394702062
                      0.1097974095 0.1337300947
                      0.11404085 0.08107907265
                      0.3179253263 0.2206585268
                      0.4007477664 0.09403035524
                      0.1543348373 0.2570243276
                      0.1543348373 0
                      0.1543348373 0
                      0.1543348373 0
                      0.1543348373 0
                      0.1225902082 0.07993731502
                      0.2240278314 0.1871989644
                      0.1729541336 0.131174488
                      0.134783198 0.05127259891
                      0.1494564061 0.01923367243
                      0.1481162757 0.05901859775
                      0.12086009 0.05416809264
                      0.1289983919 0.08436664884
                      0.07256662594 0.08781279937
                      0.1652316784 0.1233758291
                      0.1835429475 0.2549493272
                      0.1891260267 0.02074442581
                      0.23023032 0.06132250048
                      0.1969288796 0.09180264617
                      0.154194244 0.1013813746
                      0.2781723719 0.1835796615
                      0.3017552357 0.06266238067
                      0.234440393 0.1011516561
                      0.2462515138 0.05882053334
                      0.2478950007 0.0187058368

                      • Jan 30, 2018  12:01 AM | Martin Styner
                        RE: DWIConvert
                        Ryan
                        Thanks for this info. This solves the source of the problem (likely).

                        Not sure what exactly happened from raw DICOM data to the data that you are using, but I have not seen a range of 0 to 93k in raw MRI data before.

                        But, assuming that your data is all fine, your upper range is 93K which is beyong the range of a short/16 bit integer. a short can go from 0 to 64k (for unsigned) or -32k to 32k (for signed). In your case you need to change the data first, so that you can convert it to short. 

                        Dividing all your data by ten should do the trick (as your changed data values stay below 32k). Then you can put that into DWIConvert.

                        I think fslmaths can do that for you, not sure but this should do the trick
                        fslmaths -div 10 -odt short

                        Best
                        Martin

                        • Jan 30, 2018  05:01 AM | Ryan H - UCLA
                          RE: DWIConvert
                          Hey Martin, thank you for all the help! I appreciate your patience a lot!

                          So I divided the raw NIFTI by 10 and converted it to short, as you instructed. Did the conversion to NRRD and back to NIFTI without any preprocessing. Ran FSL eddy and still get funky restricted_movement_rms output:

                          0 0
                          0.2038525508 0.2038525508
                          0.2966385594 0.1289960832
                          0.1769648149 0.1353480775
                          0.2093033512 0.04258349482
                          0.1773506161 0.07180787622
                          0.4360092816 0.2773610629
                          0.6433636054 0.2146519237
                          0.7557379137 0.2671309679
                          0.9438142919 0.2064356003
                          0.2655247508 0.718929466
                          0.2655247508 0
                          0.2655247508 0
                          0.265382307 0.02058829451
                          0.1863159236 0.1653923633
                          0.2176241255 0.07100286362
                          0.1928490649 0.04373855596
                          0.2655247508 0.1501076218
                          0.2141449818 0.1186811482
                          0.216806364 0.05683636863
                          0.225604777 0.1054652953
                          0.1759822132 0.1186303828
                          0.335097248 0.1770273245
                          0.1854769045 0.2700244462
                          0.1804167972 0.09800466894
                          0.1933196696 0.04450558272
                          0.190211893 0.08558773421
                          0.229563502 0.1136821019
                          0.2355598626 0.04767706248
                          0.2273612482 0.0650830617
                          0.1970970425 0.06067492451
                          0.2442049681 0.09359118973
                          0.2205755626 0.05380801303


                          Not sure where to go from here.. Would you recommend that I solicit help over at the Slicer forum?

                          Thank you!

                          • Jan 31, 2018  05:01 PM | Martin Styner
                            RE: DWIConvert
                            I think we need to first make sure that the conversions are all good. 

                            After you divided the float nifti data by 10 and converted it to short (if you used my suggested command line then fslmaths did that conversion to short for you before using DWIConvert), did you load the converted/changed DWI back into fslview and checked it's appearance for some of the DWI volumes (for all b=0 and shells)?

                            If you then convert with DWIconvert to nrrd and back to nifti, is fslinfo producing the same results for both before and after the DWIconvert conversion? (there should be no difference now, as you did the short conversion with fslmaths)

                            If you visualize the DWI volumes converted back from nrrd with fslview, are the volume appearance appropriate/same as before conversion with DWIConvert?

                            Are the bval and bvec files before and after conversion consistent?


                            Then, one last thing, what is the range of values for the restricted_movement_rms output that you are looking for (i.e. what are those 2 values, since I usually use the eddy current correction in DTIPrep, I am unfamiliar with this output)?

                            Best regards
                            Martin

                            • Jan 31, 2018  07:01 PM | Ryan H - UCLA
                              RE: DWIConvert
                              There's an issue that precedes most of your questions:

                              To make sure the raw_dwi was actually getting divided, I went back and did 'fslmaths raw_dwi.nii.gz -div 10 raw_dwi_div10' and checked the intensity of the raw_dwi_div10, and it's the same intensity range as that of the input image. I'm not sure why fslmaths division isn't working here.


                              FSL eddy's movement output has two columns; each value in the first column corresponds to absolute movement relative to the first volume, and each value in the second column corresponds to movement relative to the previous volume. These movement estimates are in mm. So, I'm trying to exclude subjects with >2mm of movement between volumes.

                              Feb 2, 2018  06:02 PM | Ryan H - UCLA
                              RE: DWIConvert
                              Hey Martin, I fixed the abovementioned issue. fslmaths was working correctly -- I had misinterpreted what I was seeing. Sorry about that --

                              I tried the whole process again, but instead now dividing the initial raw_dwi by 100 because I noticed that the b0 volume had peak intensity of 797,687.25, and I wanted to reduce that value to <64k, since you had mentioned that 64k is the max value for an unsigned short datatype. 

                              Having done this (divided raw_dwi by 100), here are my responses to your questions in bold:
                              Originally posted by Martin Styner:
                              I think we need to first make sure that the conversions are all good. 

                              After you divided the float nifti data by 10 and converted it to short (if you used my suggested command line then fslmaths did that conversion to short for you before using DWIConvert), did you load the converted/changed DWI back into fslview and checked it's appearance for some of the DWI volumes (for all b=0 and shells)?
                              Yes, it looks fine upon visually inspecting each volume. 

                              If you then convert with DWIconvert to nrrd and back to nifti, is fslinfo producing the same results for both before and after the DWIconvert conversion? (there should be no difference now, as you did the short conversion with fslmaths)
                              Yes. The only difference is pixdim4 is 8.844934 for the before-conversion, and pixdim4 is 1 for the after-conversion. But as you mentioned before, this shouldn't be an issue.

                              If you visualize the DWI volumes converted back from nrrd with fslview, are the volume appearance appropriate/same as before conversion with DWIConvert?
                              Yes, they look identical.

                              Are the bval and bvec files before and after conversion consistent?
                              Bvecs before conversion:
                              0 -0.500038 -0.500038 0.707107 -0.653098 -0.208947 0.019999 0.42106 0.690009 -0.653098 -0.292936 0.294971 0.515037 0.706847 -0.707244 -0.472163 0.555156 0.707244 -0.707107 -0.707244 0.707244 0.472163 -0.707084 -0.636045 -0.706036 -0.292936 0.292936 0.707084 0.706847 -0.706257 0.0350086 0.707056 0.707107
                              0 0.500038 0.500038 0.707107 0.271041 0.675829 0.706965 0.568081 0.155002 0.271041 0.706847 0.70593 0.486035 0.292936 0.472163 0.707244 0.644181 0.472163 0.707107 0.472163 0.472163 0.707244 0.707084 0.42503 0.706036 0.706847 0.706847 0.707084 0.292936 0.706257 0.706173 0.707056 0
                              0 -0.707053 0.707053 0 -0.707106 -0.706821 -0.706965 -0.707101 -0.707009 -0.707106 -0.64386 -0.643937 -0.70605 -0.64386 -0.526182 -0.526182 -0.526148 -0.526182 0 0.526182 0.526182 0.526182 0.00800095 0.644046 0.0550028 0.64386 0.64386 0.00800095 0.64386 0.0490178 0.707173 0.0120009 0.707107
                              Bvecs after conversion:
                              0.0 -0.500038025 -0.500038025 0.707106995 -0.6530979610000001 -0.208946991 0.019998999 0.421059998 0.690008972 -0.6530979610000001 -0.292936035 0.294971008 0.515037048 0.7068470459999999 -0.707244019 -0.472162994 0.555155945 0.707244019 -0.707106995 -0.707244019 0.707244019 0.472162994 -0.7070839839999999 -0.636044983 -0.70603595 -0.292936035 0.292936035 0.7070839839999999 0.7068470459999999 -0.7062569580000001 0.03500860200000001 0.70705603 0.707106995
                              0.0 0.500038025 0.500038025 0.707106995 0.271040955 0.675828918 0.706965027 0.568081055 0.155001999 0.271040955 0.7068470459999999 0.705929932 0.486035004 0.292936035 0.472162994 0.707244019 0.644180969 0.472162994 0.707106995 0.472162994 0.472162994 0.707244019 0.7070839839999999 0.425029999 0.70603595 0.7068470459999999 0.7068470459999999 0.7070839839999999 0.292936035 0.7062569580000001 0.7061730350000001 0.70705603 0.0
                              0.0 -0.7070529790000001 0.7070529790000001 0.0 -0.707106018 -0.7068209839999999 -0.706965027 -0.707101013 -0.707008972 -0.707106018 -0.6438599850000001 -0.643937012 -0.706049988 -0.6438599850000001 -0.526182007 -0.526182007 -0.52614801 -0.526182007 0.0 0.526182007 0.526182007 0.526182007 0.008000951000000001 0.6440460819999999 0.055002796 0.6438599850000001 0.6438599850000001 0.008000951000000001 0.6438599850000001 0.049017798999999994 0.707172913 0.012000899 0.707106995
                              They seem to be the same, but after converting, there seem to be more decimal places.

                              Then, one last thing, what is the range of values for the restricted_movement_rms output that you are looking for (i.e. what are those 2 values, since I usually use the eddy current correction in DTIPrep, I am unfamiliar with this output)?
                              (Answered in my previous reply)


                              Best regards
                              Martin


                              Thank you!

                              • Feb 19, 2018  10:02 PM | Martin Styner
                                RE: DWIConvert
                                Sorry Ryan for the late reply.

                                Looking at your email, it looks like that after the conversion back and forth, everything is nearly the same.

                                If you run Eddy on the converted-back-forth image do you still get the weird behavior (0 movement for some of the data), or do you need to run DTIPrep in between to "enable" it?

                                Best
                                Martin

                                • Feb 19, 2018  10:02 PM | Ryan H - UCLA
                                  RE: DWIConvert
                                  Hi Martin, no problem!

                                  Simply using DWIConvert back-and-forth from NIFTI to NRRD to NIFTI will 'enable' this weird behavior (0 movement for some volumes). No DTIPrep tools are being used.

                                  • Feb 21, 2018  04:02 PM | Martin Styner
                                    RE: DWIConvert
                                    I am stumped. Given that the actual data is untouched (as you converted the type of the data prior to conversion to/from NRRD) and header info is nearly untouched, I don't see why FSL would treat the two images as different.

                                    At the moment, this looks less as an issue of conversion and more as a bug of FSL (2 images, virtually the same, different behavior)

                                    Martin

      Mar 22, 2018  06:03 PM | Micah Johnson - UCLA Department of Psychology
      RE: DWIConvert
      Hi there,

      I've been having some overlapping problems related to this discussion thread, hoping you may have some insight.

      The input nrrd (output from dcm2niix, and input to DTIPrep) is in left-posterior-superior orientation/space and of type (short).

      The output QCed nrrd is in left-posterior-superior orientation and of type (unsigned short).

      In order for Slicer's DWIConvert (to go from nrrd to nifti, using the NrrdToFsl option) to changed from unsigned short to short, requires the "allowLossyConversion" option (which is dangerous for potentially losing parts of the data). And I think this may be messing up my later stages of registration.

      Is there a way to prevent DTIPrep output from having unsigned short type?

      Thanks so much,
      Micah

      • Mar 22, 2018  06:03 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
        RE: DWIConvert
        Hi Micah!
          I had a similar problem, and in my case what it worled was applying the unu command to convert QCed.nrrd files from unsigned short to short as in this thread https://www.nitrc.org/forum/message.php?msg_id=23391

        Then DWI convert worked perfectly from nrrd to nii (always using latest version that comes with Slicer 4.8)


        Originally posted by Micah Johnson:
        Hi there,

        I've been having some overlapping problems related to this discussion thread, hoping you may have some insight.

        The input nrrd (output from dcm2niix, and input to DTIPrep) is in left-posterior-superior orientation/space and of type (short).

        The output QCed nrrd is in left-posterior-superior orientation and of type (unsigned short).

        In order for Slicer's DWIConvert (to go from nrrd to nifti, using the NrrdToFsl option) to changed from unsigned short to short, requires the "allowLossyConversion" option (which is dangerous for potentially losing parts of the data). And I think this may be messing up my later stages of registration.

        Is there a way to prevent DTIPrep output from having unsigned short type?

        Thanks so much,
        Micah

        • Mar 22, 2018  07:03 PM | Micah Johnson - UCLA Department of Psychology
          RE: DWIConvert
          Hi Daniel! Thank you very much! If I could ask one more follow-up, how can I use this function on the command line? I can't find it in my Slicer 4.8 directory, and simply typing it into the command line doesn't recognize it.

          • Mar 22, 2018  07:03 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
            RE: DWIConvert
            What I used was:

            I think that unu is not in all Slicer versions. I found it in Slicer 4.4, so:

            > cd $yourhomepathorwhatever/Slicer-4.4.0-linux-amd64/

            and from there:

            > ./Slicer --launch unu convert -t short -clamp -i $pathtofile/$QCednrrdfile -o $whereyouwanttheoutput/$outputfilename

            (note that paths with $ need to be replaced to fit your files, without $ if they are not variables)

            Hope it helps


            Originally posted by Micah Johnson:
            Hi Daniel! Thank you very much! If I could ask one more follow-up, how can I use this function on the command line? I can't find it in my Slicer 4.8 directory, and simply typing it into the command line doesn't recognize it.

            • Mar 22, 2018  07:03 PM | Martin Styner
              RE: DWIConvert
              One more note: this only works for linux, i.e. using Slicer --launch to run a slicer module as command line with the Slicer environment setup does not work on MacOS or windows

              Martin

              • Mar 22, 2018  08:03 PM | Micah Johnson - UCLA Department of Psychology
                RE: DWIConvert
                Thank you both very much. Yes fortunately I'm running on Linux (well, it's bash on windows). The unu command for unzipped output worked, and now I'm running the zipped version (see code below, it's taking much longer, still running)

                Can I confirm with you that the code I'm runningn for DWIConvert is still accurate, given the new Slicer 4.8? (see below)

                ## Running DWIConvert to go from nii to nrrd
                $SlicerNew --launch DWIConvert --inputVolume ${origDWI}.nii.gz --conversionMode FSLToNrrd --inputBValues ${bval}.txt --inputBVectors ${bvec}.txt --outputVolume ${nrrdraw}.nrrd

                ## Using the unu command
                $SlicerOld --launch unu convert -t short -clamp -i ${DTIPREPDIR}/${SUBJ}_dwi_QCed.nrrd | $SlicerOld --launch unu save -e gzip -f nrrd -o ${DTIPREPDIR}/${SUBJ}_dwi_QCed_unu.nrrd

                ## Running the DWIConvert take unu output and go from nrrd to nii
                $SlicerNew --launch DWIConvert --inputVolume ${nrrdraw}_QCed_unu.nrrd --conversionMode NrrdToFSL --outputBValues ${bval}_QCed.txt --outputBVectors ${bvec}_QCed.txt --outputVolume ${nrrdraw}_QCed.nii.gz

                Another strange thing is that now I cannot run this code from my original .sh script (it only works on the command line), from the script produces the error below:

                --launch: command not found

                Have you seen this before?

                Is it possible it's because I deleted the NA-MIC settings folder? (as instructed on the website, copied below)

                [On Linux, remove the directory where the application is located. To clean up settings, remove "~/.config/NA-MIC/"]

                • Mar 22, 2018  08:03 PM | Micah Johnson - UCLA Department of Psychology
                  RE: DWIConvert
                  Correction to my unu code to save as zipped (was frozen before):

                  $SlicerOld --launch unu convert -t short -clamp -i ${DTIPREPDIR}/${SUBJ}_dwi_QCed.nrrd -o ${DTIPREPDIR}/${SUBJ}_dwi_QCed_unutemp.nrrd
                  ## version Slicer 4.4 (most recent one with unu)

                  $SlicerOld --launch unu save -e gzip -f nrrd -i ${DTIPREPDIR}/${SUBJ}_dwi_QCed_unutemp.nrrd -o ${DTIPREPDIR}/${SUBJ}_dwi_QCed_unu.nrrd

                  Mar 22, 2018  09:03 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
                  RE: DWIConvert
                  Hi
                   In my case, the last step from this script you sent, DWIConvert from nrrd to nii, did not work well using "-outputVolume ..." as you did. Instead, using Slicer 4.8, I typed "-outputNiftiFile ..." and it worked.
                  Just in case.





                  Originally posted by Micah Johnson:
                  Thank you both very much. Yes fortunately I'm running on Linux (well, it's bash on windows). The unu command for unzipped output worked, and now I'm running the zipped version (see code below, it's taking much longer, still running)

                  Can I confirm with you that the code I'm runningn for DWIConvert is still accurate, given the new Slicer 4.8? (see below)

                  ## Running DWIConvert to go from nii to nrrd
                  $SlicerNew --launch DWIConvert --inputVolume ${origDWI}.nii.gz --conversionMode FSLToNrrd --inputBValues ${bval}.txt --inputBVectors ${bvec}.txt --outputVolume ${nrrdraw}.nrrd

                  ## Using the unu command
                  $SlicerOld --launch unu convert -t short -clamp -i ${DTIPREPDIR}/${SUBJ}_dwi_QCed.nrrd | $SlicerOld --launch unu save -e gzip -f nrrd -o ${DTIPREPDIR}/${SUBJ}_dwi_QCed_unu.nrrd

                  ## Running the DWIConvert take unu output and go from nrrd to nii
                  $SlicerNew --launch DWIConvert --inputVolume ${nrrdraw}_QCed_unu.nrrd --conversionMode NrrdToFSL --outputBValues ${bval}_QCed.txt --outputBVectors ${bvec}_QCed.txt --outputVolume ${nrrdraw}_QCed.nii.gz

                  Another strange thing is that now I cannot run this code from my original .sh script (it only works on the command line), from the script produces the error below:

                  --launch: command not found

                  Have you seen this before?

                  Is it possible it's because I deleted the NA-MIC settings folder? (as instructed on the website, copied below)

                  [On Linux, remove the directory where the application is located. To clean up settings, remove "~/.config/NA-MIC/"]

                  • Mar 22, 2018  09:03 PM | Micah Johnson - UCLA Department of Psychology
                    RE: DWIConvert
                    And you still use the --conversionMode NrrdToFSL option?

                    The output works for me either way, but I still get incorrect anterior/posterior labels (are you using FSLview?)

                    • Mar 22, 2018  09:03 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
                      RE: DWIConvert
                      > Yep. Also make sure you use the latest version of DWIConvert. I found a difference between the one that comes with Slicer 4.8 and the one the comes with Slicer 4.4.

                      • Mar 22, 2018  09:03 PM | Micah Johnson - UCLA Department of Psychology
                        RE: DWIConvert
                        Hmm ok thanks, yup I'm still getting the fslview labels error with the new Slicer 4.8. I will have to do more sleuthing...

                Mar 22, 2018  09:03 PM | Micah Johnson - UCLA Department of Psychology
                RE: DWIConvert
                The code now works, thank you very much.

                However, when viewing the output file in fslview, the orientation labels are still wrong (anterior/posterior has been switched) and the angle of the brain in the sagittal view is very slanted. Is there something wrong or missing with my code??

                $SlicerNew --launch DWIConvert --inputVolume ${nrrdraw}_QCed_unu.nrrd --conversionMode NrrdToFSL --outputBValues ${bval}_QCed_corr.txt --outputBVectors ${bvec}_QCed_corr.txt --outputVolume ${nrrdraw}_QCed_corr.nii.gz

                Or is it that FSL is incorrectly reading the header? Have you seen this problem before?

                In the past, I've "fixed" it with the code below (taken from https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/O...), but this drastically changes the sform/qform header info and gives me severe problems when trying to use this output for registrations (e.g. moving to T1 space, using ANTs)

                fslorient -deleteorient filename.nii.gz
                fslorient -setsformcode 1 filename.nii.gz

                Do you know of any solution to this problem? (this would be a huge help for me, I've been stuck on this problem for a long time)

  • Jul 21, 2017  03:07 PM | James Hartzell
    DICOM to NRRD
    Hello

    Do you have updated instructions for converting DICOMS to NRRD?  
    I've downloaded the latest versions of DTIPrep and Slicer, but the various earlier versions of instructions on this list and
    on the Slicer list don't seem to work for me.

    • Jul 21, 2017  06:07 PM | Martin Styner
      RE: DICOM to NRRD
      Best use the DWIConverter module in Slicer, either through its commandline interface (DWIConvert)  or through Slicer. Here is a description as well as nice tutorial:
      https://www.slicer.org/wiki/Documentatio...

      Martin

      • Jul 24, 2017  08:07 AM | James Hartzell
        RE: DICOM to NRRD
        Thanks very much Martin--the instructions work quite well, though they left out the 'save' step at the end, and the current Slicer menu structure is a little bit different under the conversion tab.
        Cheers

        • Jul 27, 2017  01:07 PM | James Hartzell
          RE: DICOM to NRRD
          HI Martin

          I have a follow-up question.  When I load the default protocol for the NRRD DWI's
          I get the following message:
          The following programs have not been found.
          Please enter the path manually if necessary:
          > bet2
          > DiffusionWeightedVolumeMasking

          Is it necessary to have the nodif_mask for running DTIPrep successfully? 
          I ask because I already have made masks using bet2, and for some reason I can't find the path to Slicer's DiffusionWeightedVolumeMasking

          Cheers
          James

          • Jul 27, 2017  02:07 PM | Martin Styner
            RE: DICOM to NRRD
            Hi James
            No, you do not need those, unless you are using DTIPrep to run bet2 (in your case, you have done that already, so no need to redo it) or you want to use the Slicer based DiffusionWeightedVolumeMasking (again, not needed in your case). Thus you can safely disregard these warnings.

            Best
            Martin

            • Jul 27, 2017  02:07 PM | James Hartzell
              RE: DICOM to NRRD
              Hi Martin

              Thanks very much---just wanted to be certain on this point.

              Cheers
              James

              • Aug 2, 2017  12:08 PM | James Hartzell
                RE: DICOM to NRRD
                HI Martin

                Could you point me to clear instructions for converting the resulting QCed.nrrd files back to nifti (nii.gz)?

                Cheers
                James

                • Aug 3, 2017  08:08 AM | James Hartzell
                  RE: DICOM to NRRD
                  Hi Martin

                  A colleague guided me on the conversion from NRRD to NIFTI using Slicer.

                  I notice though that the QCed bvecs have flipped the x and z axis values, so that negative became positive and
                  positive became negative.  Is there some way to prevent this from happening, since otherwise I have to manually
                  correct the bvalue texts.

                  Cheers
                  James

                  • Aug 20, 2017  04:08 PM | Martin Styner
                    RE: DICOM to NRRD
                    Hi James

                    Are the bvecs fully inverted (i.e. multiplied by (-1)), or is it only the x and z components? If all components are inverted, then you do not need edit the bvecs (as diffusion MRI is not sensitive to inversions of the gradient direction).

                    Otherwise, this would be a bug needing to be reported to the conversion tool (DWIConvert), best on its github page.

                    Martin

                    • Aug 20, 2017  05:08 PM | James Hartzell
                      RE: DICOM to NRRD
                      HI Martin

                      Thanks for the feedback.
                      The sign inversion is just in the x and z coordinates. I posted to the Slicer list and they responded that it is a bug in DWIConvert that they're implementing a fix for.
                      Cheers
                      James

                      • Mar 22, 2018  09:03 PM | Micah Johnson - UCLA Department of Psychology
                        RE: DICOM to NRRD
                        Hi James, do you know if this has been fixed? (or could you point me to any further discussion on it?)

                        I'm having the opposite problem (using Slicer 4.8)...only my y axis is flipped.

                        Many thanks,
                        Micah

                        Originally posted by James Hartzell:
                        HI Martin

                        Thanks for the feedback.
                        The sign inversion is just in the x and z coordinates. I posted to the Slicer list and they responded that it is a bug in DWIConvert that they're implementing a fix for.
                        Cheers
                        James

                      Jan 11, 2018  03:01 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
                      RE: DICOM to NRRD
                      Hi James and Martin  I had a similar problem than James converting nrrd files to FSL. Using the latest version of DWIConvert and flag ---outputNiftiFile instead of--outputVolume in Slicer 4.8, it wirtes bvec file with gradients directions exactly as in nifti. However this works with standard nrrd files, but not for preprocessed DTIPrep nrrd files (*_QCed.nrrd). It reports that the only supported output is "short" . There is an "unsigned short" in the headers of *QCed.nrrd instead of "short" in the regular nrrd files.
                       Any suggestions of how to solve this would be very appreciated.

                      I am attaching an example of this QCed.nrrd file in case it helps

                      Thanks

                      • Jan 11, 2018  03:01 PM | Martin Styner
                        RE: DICOM to NRRD
                        Not sure what the issue us with the updated DWIConvert (i.e. why it would not take unsigned short data). Assuming that your DWI data does not have intensity values above 32,000 , you could simply convert the QCed unsigned short DWI file to a signed short one using unu (a swiss-army-knife style utility for NRRD that is packaged with Slicer):
                        unu convert -t short -clamp -i inputUnsignedShort.nrrd -o outputShort.nrrd

                        Best
                        Martin

                        • Jan 11, 2018  03:01 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
                          RE: DICOM to NRRD
                          Thanks! I also noticed that qced file header says format gzip instead of raw as in regular. Nrrd. Any chance that this has something to do with this issue?
                          Thanks again.

                          • Jan 11, 2018  03:01 PM | Martin Styner
                            RE: DICOM to NRRD
                            no, zipping the data in nrrd is standard, so that should not be an issue. 

                            One note though: unu will write raw data, if you want unu to write zipped data you need to also use it's save option, e.g.

                            unu convert -t short -i input.nrrd | unu save -e gzip -f nrrd -o output.nrrd

                            Martin

                            • Mar 27, 2018  12:03 PM | Maike Kleemeyer
                              RE: DICOM to NRRD
                              Dear all,

                              do you have any ideas on how to solve this issue when running on Mac OS? Is there an option for outpuuting DTIPrep data NOT in unsigned short type?

                              Thanks, Maike

                          Jan 11, 2018  08:01 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
                          RE: DICOM to NRRD
                          > Thanks a lot! That worked perfectly! Just in case any other uses this,
                          > unu can be found in Slicer 4.4 and previous versions, launched as
                          > ./Slicer --launch unu convert( and flags and options mentioned by
                          > Martin Styner in thread)

  • Oct 31, 2016  04:10 PM | Huanjie Li - Dalian University of Technology
    Bad gradients cannot be manual exclusion
    Hi,

    When I want to exclude the bad gradients when Visual Check, I select "Exclude" in the pop-up box to remove the bad gradients, then select the "Save Dwi and QCResult" button under "Manual Checking" to save the changes. But the pop-up box shown "No Processing done", and the changes can not be saved.  

    This error was shown in the terminal: DTIPrep[31294:507] modalSession has been exited prematurely - check for a reentrant call to endModalSession

    Any suggestion would be appreciate. Thanks.

    Huanjie

    • Nov 2, 2016  01:11 PM | Martin Styner
      RE: Bad gradients cannot be manual exclusion
      Hi Huanjie

      Which platform and which version of DTIPrep are you using?

      Martin

      • Mar 13, 2018  02:03 PM | XIAO YANG
        RE: Bad gradients cannot be manual exclusion
        Hi Martin,

        I also met the same problem. I am currently using the DTIPrep1.2.4_linux64 (Qt4).

        When I select Exclude and try to save it. The pop-up box shown "No Processing done", and the changes can not be saved.
        The terminal showed:
        VC_Status.size(): 32
        index:0 VC_Status: -1
        index:1 VC_Status: -1
        index:2 VC_Status: -1
        index:3 VC_Status: -1
        index:4 VC_Status: -1
        index:5 VC_Status: -1
        index:6 VC_Status: -1
        index:7 VC_Status: -1
        index:8 VC_Status: -1
        index:9 VC_Status: -1
        index:10 VC_Status: -1
        index:11 VC_Status: -1
        index:12 VC_Status: -1
        index:13 VC_Status: -1
        index:14 VC_Status: -1
        index:15 VC_Status: -1
        index:16 VC_Status: -1
        index:17 VC_Status: -1
        index:18 VC_Status: -1
        index:19 VC_Status: -1
        index:20 VC_Status: -1
        index:21 VC_Status: -1
        index:22 VC_Status: -1
        index:23 VC_Status: -1
        index:24 VC_Status: -1
        index:25 VC_Status: -1
        index:26 VC_Status: -1
        index:27 VC_Status: -1
        index:28 VC_Status: -1
        index:29 VC_Status: -1
        index:30 VC_Status: -1
        index:31 VC_Status: 6

        What can I do to save this change?

        Thank you very much,

        Best
        Xiao

      Mar 23, 2018  06:03 PM | Huan Yang
      RE: Bad gradients cannot be manual exclusion
      I have another problem when I was trying to exclude the bad gradients. After I clicked "Visual check", and then click "exclude", the GUI will automatically closed. I tried this on my mac, both DTIprep 1.2.4 and 1.2.7 have this problem. I wonder whether there is some method can deal with this, or can this step can be done by command?
      Thank you so much for any suggestions. 
      Thanks.

      Huan
      Originally posted by Huanjie Li:
      Hi,

      When I want to exclude the bad gradients when Visual Check, I select "Exclude" in the pop-up box to remove the bad gradients, then select the "Save Dwi and QCResult" button under "Manual Checking" to save the changes. But the pop-up box shown "No Processing done", and the changes can not be saved.  

      This error was shown in the terminal: DTIPrep[31294:507] modalSession has been exited prematurely - check for a reentrant call to endModalSession

      Any suggestion would be appreciate. Thanks.

      Huanjie

  • Mar 12, 2018  07:03 PM | XIAO YANG
    The created tutorialProtocol.xml file not suitable for other subjects
    Hi experts,

    We are now using the DTIPrep to do the quality control for DTI images. We met a problem when we tried to apply the tutorialProtocal.xml file to other subjects.

    1. We used DTIPrep in the Linux and opened the .nrrd file of the first subject of out project (Sub001) to create the tutorialProtocol.xml following the guide by Dave Welch, Joy Matsui (https://www.slicer.org/w/images/a/a6/DTI...). We can use the tutorialProtocol.xml and run it for the Sub001 without any errors (no matter in the GUI or in the command). It created 10 new files (however as tutorial said, only 3 files will be created) . Though we can ignore this and just use 3 among them (DTI_Sub001_QCed.nrrd; DTI_Sub001_QCReport.txt; DTI_Sub001_XMLQCResult.xml; ), we were wondering whether this was kind of error? 10 files were as following:

    DTI_Sub001_QCed_DTI_frobeniusnorm.nrrd
    DTI_Sub001_QCed_DTI_MD.nrrd
    DTI_Sub001_QCed_DTI.nrrd
    DTI_Sub001_QCed_IDWI.nrrd
    DTI_Sub001_QCed_Baseline.nrrd
    DTI_Sub001_QCed.nrrd
    DTI_Sub001_QCed_DTI_colorFA.nrrd
    DTI_Sub001_QCReport.txt
    DTI_Sub001_QCed_DTI_FA.nrrd
    DTI_Sub001_XMLQCResult.xml

    2. As the tutorial said, we just need to create one tutorial protocol for all subjects in one project. But when we tried to apply this tutorial (Created from the Sub01) for other subjects, it didn't work well.
    Only 2 files were generated (DTI_Sub004_QCReport.txt;DTI_Sub004_XMLQCResult.xml ).

    =================================
    * DWI QC Report ( DTIPrep 1.2.4 ) *
    =================================
    DWI File: /data/xyang/test_tutorial_protocol_common/Sub004/DTI_Sub004.nrrd
    xml File: /data/xyang/test_tutorial_protocol_common/Sub004/DTI_Sub004_XMLQCResult.xml
    Check Time: Mon Mar 12 15:31:42 2018

    Image_information_checkingImage_size_check OK
    Image_information_checkingImage_origin_check FAILED
    Image_information_checkingImage_spacing_check OK
    Image_information_checkingImage_space_check OK
    ================================
    Diffusion Information checking
    ================================
    DWMRI_bValue Check: OK
    DWMRI_gradient_0001 mismatch! DWI: [ 00.669879 -0.66989200000000004 -0.246644 ] protocol: [ 0.72837700000000005 -0.63302800000000004 -0.17624400000000001 ] Colinearity angle (degrees): 5.7705994761850414 > 1
    DWMRI_gradient_0002 mismatch! DWI: [ -0.020227999999999999 00.387932 0.67747000000000002 ] protocol: [ 00.052897 00.449959 0.70582299999999998 ] Colinearity angle (degrees): 5.7800619388441508 > 1
    DWMRI_gradient_0003 mismatch!
    ......
    ......
    DWMRI_gradient_0032 mismatch! DWI: [ 0.80618999999999996 00.120661 0.70087900000000003 ] protocol: [ 00.768204 0.084681000000000006 0.71373799999999998 ] Colinearity angle (degrees): 2.6242412713547631 > 1
    Diffusion gradient Check: FAILED
    Diffusion information Check FAILED.

    We didn't know why this happened. Was something wrong when we created the .xml file?

    Any help are appreciated.

    Best

    Xiao

    • Mar 13, 2018  09:03 PM | Martin Styner
      RE: The created tutorialProtocol.xml file not suitable for other subjects
      Re 1. The additional files are the reconstructed tensor and its properties. So, no error.

      Re 2. The error stems from the mismatch in gradients between the files. I.e. if the DWI file that you use to create the default protocol has different gradients from the DWI that you are QC\'ing then DTIPrep will raise that as an issue. Simply turn off the diffusion gradient information check and DTIPrep will not check that the protocol and the DWI have to have the same gradients.

      Best
      Martin

      • Mar 13, 2018  10:03 PM | XIAO YANG
        RE: The created tutorialProtocol.xml file not suitable for other subjects
        Hi Martin,

        Thank you very much.

        There are two options available: DIFFUSION_bCheck and GRADIENT_bCheck. I tried to change the value of DIFFUSION_bCheck to 'No' when created the tutorialProtocol.xml. The tutorialProtocol.xml can be applied to other subjects without any errors. Is that the right option I changed?

        Thanks again for your help.

        Best
        Xiao

        • Mar 14, 2018  11:03 AM | Martin Styner
          RE: The created tutorialProtocol.xml file not suitable for other subjects
          Correct, it's the DIFFUSION_bCheck that enables/disable the checking of the diffusion gradient information. The other one, GRADIENT_bCheck, is probably not well named, as it checks for residual motion present in the gradient, after motion has been corrected
          Martin

          • Mar 14, 2018  02:03 PM | XIAO YANG
            RE: The created tutorialProtocol.xml file not suitable for other subjects
            Thank you so much. I got it.

            I also met another problem which followed up the 'Bad gradients cannot be manual exclusion' question in the forum. 

            I found a bad gradient and selected 'Exclude'. However, when I tried to save it, the pop-up box showed "No Processing done", and the changes can not be saved. I am currently using the DTIPrep1.2.4_linux64 (Qt4).

            I think this may be a similar with that topic, so I put details in under that question which created by Huanjie Li. Here is the link:

            https://www.nitrc.org/forum/forum.php?th...

            Can you help me with that?

            Xiao

  • Mar 13, 2018  05:03 PM | Anna Eppes
    Sphere distribution of gradients not appearing
    DTPrep version 1.2.8 on a linux system. I have converted my raw dicom data to .nrrd using DWIConvert. After loading the nrrd file I can't view the sphere distribution of gradients the screen remains grey. I have selected the sphere (looks like a ball of yarn) and the two blue icons next to it. Any suggestions would be appreciated.
    Thanks!
    Anna

    • Mar 14, 2018  01:03 PM | Martin Styner
      RE: Sphere distribution of gradients not appearing
      Thanks Anna

      This may be a bug. Can you download an earlier version (e.g. 1.2.3) and see whether that works for you? If the older version works but not the newer one, then we have a bug that needs to be ironed out. It would be wonderful if you can add a new issue using the tracker link at the bottom of NITRC's navigation side bar.

      Best
      Martin

  • Dec 2, 2015  02:12 PM | Jian Zhang
    Create XML file without running checking
    Hi experts,

    We want to use the command line of DTIPrep to create XML file and then modify it, using the command as below:
    DTIPrep -d -p SomeProto.xml -w dwi.nrrd
    But, only the GUI of DTIPrep will be launched, so we set the command like this:
    DTIPrep -d -c -p SomeProto.xml -w dwi.nrrd
    We got the default protocol file, but this command run the whole quality check procedure!
    Can you help us to point out how to create the default protocol XML file via command, without running the whole quality check, so that we can quickly modify XML file and then run the next command:
    DTIPrep -c -p Modified.xml -w dwi.nrrd
    OR is there any way to combine these 2 steps together?

    Thank you very much!

    -Jian

    • Dec 4, 2015  06:12 PM | Martin Styner
      RE: Create XML file without running checking
      Hi Jian
      Sorry for the delay in answering. 
      1. the way to run DTIPrep is to use the same protocol within a given study. You do not want to have different protocol files in the same study, as this could significantly bias your analytical results. So, only run the command to create the default protocol only once.

      2. while the default protocol is okay, it is worthwhile to change it to your needs (e.g. if you have sedated scans, you may want to turn off the motion correction). Thus, I suggest you start up the GUI of DTIPrep and use its interface to generate the default protocol, adapt it and then save it for future use in the command line executions.

      3. Finally, you are right, there is currently not a way to create the default protocol only on the command line mode. Something to correct for future uses, can you create a feature request on the github/source code issue tracker?

      Thanks
      Martin

      • Dec 5, 2015  12:12 PM | Jian Zhang
        RE: Create XML file without running checking
        Hi Martin,

        Thanks for your answer.

        1. The reason for us to create protocol for every participant is that the b vector values are different during participants, even thought they are scanned under the same protocol, we want to extract the gradient information into the XML file for everyone, without changing other option. If we use the public protocol for all participants, the gradient information would be the first one, not the real value of others. Do you think we can accept this little difference and ignore it?

        2. Besides the command line way to create the default protocol, can you add other options for command line mode (e.g. turn off the motion correction) in future.

        3. I have create the feature request on the github/source code issue tracker.

        Thanks
        -Jian

        • Dec 6, 2015  06:12 PM | Martin Styner
          RE: Create XML file without running checking
          Re 1) if b-values (or b-vectors) are different across subjects, I hope you do NOT plan to use them in the same study, as such a study would not be appropriate, diffusion based properties (such as FA or GFA), are far to sensitive to changes in those.

          If you have (e.g. for purpose of testing) different b-vectors or values, and don't want DTIPrep to test for that, simply disable the diffusion information check in the protocol file. 

          In general, I think there is a misconception how DTIPrep operates. One should not change parameters etc on the command line, but rather create protocol files where all parameters (and there are many) can be adapted to the given study. It is simple to enable/disable motion correction in the protocol files, and that's the place where it should be modified (not on the command line).

      Dec 11, 2017  04:12 PM | Michael Dayan
      RE: Create XML file without running checking
      Hi,

      Just as a follow up. It is actually not uncommon for the gradient directions to be encoded according to the patient position rather than the scanner coordinate system. As such there is nothing wrong in having a different set of diffusion gradient coordinates for each subject (they are simply rotated according to the patient position, with same number of directions and same b-values).

      In this case, would it be possible to know how to change the protocol file on the command line? Or is it still not an option?

      Thank you,

      Michael

      • Dec 11, 2017  06:12 PM | Martin Styner
        RE: Create XML file without running checking
        The QC procedure/protocol (stored in XML format) does not need to check the gradient directions. Just turn off that step and it does not matter what directions are in the protocol.

        Best
        Martin

        • Feb 12, 2018  05:02 PM | Jian Zhang
          RE: Create XML file without running checking
          Hi Martin,

          Just as a follow up, which option should we choose to turn off the checking of gradient directions? Change the "IMAGE bCheck" to No or change the "DIFFUSION bCheck" to no?

          Thanks
          Jian

          • Mar 6, 2018  03:03 PM | Martin Styner
            RE: Create XML file without running checking
            Sorry, forgot to follow up. It's the DIFFUSION bCheck that needs to be set to "No"
            Best
            Martin
            Originally posted by Jian Zhang:
            Hi Martin,

            Just as a follow up, which option should we choose to turn off the checking of gradient directions? Change the "IMAGE bCheck" to No or change the "DIFFUSION bCheck" to no?

            Thanks
            Jian

            • Mar 9, 2018  04:03 PM | Jian Zhang
              RE: Create XML file without running checking
              Thanks, Martin. It's clear now.

              Jian
              Originally posted by Martin Styner:
              Sorry, forgot to follow up. It's the DIFFUSION bCheck that needs to be set to "No"
              Best
              Martin
              Originally posted by Jian Zhang:
              Hi Martin,

              Just as a follow up, which option should we choose to turn off the checking of gradient directions? Change the "IMAGE bCheck" to No or change the "DIFFUSION bCheck" to no?

              Thanks
              Jian

      Jan 3, 2018  11:01 PM | Rachel Steiner - University of Wisconsin - Madison
      RE: Create XML file without running checking
      Hi Jian,

      Load a representative raw dwi dataset from your study in the GUI, go to the protocol tab, click default protocol, then click “save as” to save the xml file somewhere before clicking “Run.” You can modify the default parameters right there in the GUI then save it again as the new modified xml without running the whole processing. Just click save rather Jan run protocol.

      Alternatively, run a new dtiprep window to open up that default xml file younjust saved and manually modify using the GUI and then save as a different name somewhere safely to be used on the command line ... on the command line you will be pointing the -p to the absolute path where you’ve saved the modified xml. For example, /Home/safe/modified. xml

      Did I understand your question correctly? Are you having an issue finding a save as button in the GUI window with your version of dtiprep?

      Rachel



      color=#000000]
      [/color]Originally posted by Jian Zhang:
      Hi experts,

      We want to use the command line of DTIPrep to create XML file and then modify it, using the command as below:
      DTIPrep -d -p SomeProto.xml -w dwi.nrrd
      But, only the GUI of DTIPrep will be launched, so we set the command like this:
      DTIPrep -d -c -p SomeProto.xml -w dwi.nrrd
      We got the default protocol file, but this command run the whole quality check procedure!
      Can you help us to point out how to create the default protocol XML file via command, without running the whole quality check, so that we can quickly modify XML file and then run the next command:
      DTIPrep -c -p Modified.xml -w dwi.nrrd
      OR is there any way to combine these 2 steps together?

      Thank you very much!

      -Jian

      • Jan 3, 2018  11:01 PM | Rachel Steiner - University of Wisconsin - Madison
        RE: Create XML file without running checking
        Oops sorry I did not see that anyone had replied to your postings.

        I’m glad you worked it out!

        Rachel.
        Originally posted by Rachel Steiner:
        Hi Jian,

        Load a representative raw dwi dataset from your study in the GUI, go to the protocol tab, click default protocol, then click “save as” to save the xml file somewhere before clicking “Run.” You can modify the default parameters right there in the GUI then save it again as the new modified xml without running the whole processing. Just click save rather Jan run protocol.

        Alternatively, run a new dtiprep window to open up that default xml file younjust saved and manually modify using the GUI and then save as a different name somewhere safely to be used on the command line ... on the command line you will be pointing the -p to the absolute path where you’ve saved the modified xml. For example, /Home/safe/modified. xml

        Did I understand your question correctly? Are you having an issue finding a save as button in the GUI window with your version of dtiprep?

        Rachel



        color=#000000]
        [/color]Originally posted by Jian Zhang:
        Hi experts,

        We want to use the command line of DTIPrep to create XML file and then modify it, using the command as below:
        DTIPrep -d -p SomeProto.xml -w dwi.nrrd
        But, only the GUI of DTIPrep will be launched, so we set the command like this:
        DTIPrep -d -c -p SomeProto.xml -w dwi.nrrd
        We got the default protocol file, but this command run the whole quality check procedure!
        Can you help us to point out how to create the default protocol XML file via command, without running the whole quality check, so that we can quickly modify XML file and then run the next command:
        DTIPrep -c -p Modified.xml -w dwi.nrrd
        OR is there any way to combine these 2 steps together?

        Thank you very much!

        -Jian

  • Jun 7, 2017  05:06 PM | afouto - ISR - IST
    Convertion problems
    Hi,

    I did some preprocessing steps on my diffusion data using FSL. More specifically, eddy-current distortions were corrected using FSL's eddy and then tensor fitting was performed using FSL's dtifit. At this stage I would like to perform an outliers detection with DTIPrep before starting Glm's analysis. However, I'm having trouble with the first stage of the convertion to Nrrd. I'm using Slicer 4.4 (linux version) instead of the most recent version because the extension for DTIPrep is not avaliable on the latter one. I followed the steps indicated in this tutorial to convert Dicom to Nrrd but nothing happends and I didn't even receive any error message (http://dmri.slicer.org/docs/tutorials/DW...). I also tried the convertion FSL to Nrrd but I didn't get any results either. The folder that I created to save the outputs remained empty. I'm more interested in the convertion FSL to Nrrd, once I already have the images preprocessed in the Nifti format.

    I would appreciate some help to get over this first step and perform the outliers analyses.

    Thanks in advance for the help

    Best regards,
    Ana F.

    • Jun 8, 2017  01:06 PM | Martin Styner
      RE: Convertion problems
      Dear Ana
      1. Yes, we know that DTIPrep does not load into the current Slicer's extension browser. One workaround is to use 4.4 like you did. We expect that DTIPrep will be available later this year in the current Slicer version. Having to keep up with Slicer versions is actually a clear downside of using Slicer as a dissemination infrastructure.

      2. Not sure why you would use dicom to nrrd in your setting, if I understand correctly you want to convert your nifti (nii.gz) to nrrd . For that purpose use the same tool (DWIConvert) but you would need the newest Slicer version (the older DWIConvert had bugs in the nifti conversion)

      3. Most importantly, I am not sure DTIPrep is the right tool for you. DTIPrep really designed for processing the DWI data (by getting rid of bad DWIs) not the fitted tensors. Btw, eddy current correction in DTIPrep is slightly better than FSL (though both are very similar) as it uses an iteratively averaged B0 for the correction. Now, if you would like to detect outliers in the fitted tensors there are other packages such as tortoise which provide an implementation of RESTORE for exactly this purpose.

      Best regards
      Martin
      Originally posted by afouto:
      Hi,

      I did some preprocessing steps on my diffusion data using FSL. More specifically, eddy-current distortions were corrected using FSL's eddy and then tensor fitting was performed using FSL's dtifit. At this stage I would like to perform an outliers detection with DTIPrep before starting Glm's analysis. However, I'm having trouble with the first stage of the convertion to Nrrd. I'm using Slicer 4.4 (linux version) instead of the most recent version because the extension for DTIPrep is not avaliable on the latter one. I followed the steps indicated in this tutorial to convert Dicom to Nrrd but nothing happends and I didn't even receive any error message (http://dmri.slicer.org/docs/tutorials/DW...). I also tried the convertion FSL to Nrrd but I didn't get any results either. The folder that I created to save the outputs remained empty. I'm more interested in the convertion FSL to Nrrd, once I already have the images preprocessed in the Nifti format.

      I would appreciate some help to get over this first step and perform the outliers analyses.

      Thanks in advance for the help

      Best regards,
      Ana F.

      • Jun 9, 2017  09:06 AM | afouto - ISR - IST
        RE: Convertion problems
        Dear Martin,

        Thank you very much for the quick response and all the tips. Once I'm already in an advanced stage of the processing I will try the outliers detection with RESTORE as you suggested. Later if I have enough time I will try to perform the entire pipeline of DTIPrep with the dicoms.

        Keep up the good work with DTIPrep!

        Best regards,
        Ana F.

        Jan 24, 2018  09:01 PM | XIAO YANG
        RE: Convertion problems
        Hi Martin,
        I am current working on a project with DTI data. I want to convert my nifti (nii) to nrrd. I also met some problems when I tried to do NifitFSL To Nrrd in 3D Slicer 4.8.1 in Windows 10, 64-bit OS (I've already converted the DICOM data which collected from Philip to NIfTI nii by dcm2nii) . I set the panel as showing in the attachment.

        I also checked that the .bval file contains the information as: o 1000 1000.....while the .bvec file contains rows correspond to x/y/z column compnents respectively. These may be the supported FSL-style by DWIConvert.

        However, when I clicked the "Apply", the error came out as following: DWIConvert.exe has stopped working.  I tested this for several subjects. There was always the same error.

        Diffusion-weighted DICOM Import (DWIConvert) standard error:

        Error: ReadVolume: Unsupported source pixel type.
        Input volume: float
        Output volume: short
        The only supported output type is . You may consider using allowLossyConversion option.
        However, use this option with caution! Conversion from images of a different type may cause data loss due to rounding or truncation.

        Could you help me with this problem?
        Thanks in advance!
        Xiao
        Attachment: setting.png

        • Jan 24, 2018  10:01 PM | XIAO YANG
          RE: Convertion problems
          Hi Martin, when I checked the Allow lossy image conversion option. It worked and I got the nhdr format image in the output directory. It worked both in Windows and Mac OS. 
          However, it further raised two problems because I want to do this in the loop. 

          First, it seemed that I couldn't install the Slicer well in my own macbook. Each time I opened Slicer by clicking the icon, it came out the warning as follows: "Slicer" can't be opened because the identity of the developer cannot be confirmed. I don't know why this happens everytime.
           
          Secondly, i tried to use the software in Linux OS. I did as the tutorial suggested, I opened the tar.gz archive and copy directory to the location of my current folder. But when i typed the "DWIConvert", I got an error message "command not found". So do the "DWIConverter" command. (I saw your suggestion to others' problems.)Just the same error. Is there any software I need to install? So far I just got only Slicer 4.8.1 for Linux.

          Thank you,
          Xiao

          • Jan 25, 2018  08:01 PM | Martin Styner
            RE: Convertion problems
            Hi Xiao

            I will try to answer these, though they are probably more appropriate for the Slicer discussion/help boards as they do not affect DTIprep directly.

            1) I think that warning disappears when you open it with a shift/right click (a menu opens up and select "Open" ).

            2) In linux, you can access any Slicer module via "Slicer --launch ", e.g. Slicer --launch DWIConvert . I don't think that works in Mac OSX or Windows (not fully sure)

            Best regards
            Martin

            Jan 26, 2018  03:01 PM | Martin Styner
            RE: Convertion problems
            Hi Xiao

            I will try to answer these, though they are probably more appropriate for the Slicer discussion/help boards as they do not affect DTIprep directly.

            1) I think that warning disappears when you open it with a shit/right click (a menu opens up and select "Open" ).

            2) In linux, you can access any Slicer module via "Slicer --launch ", e.g. Slicer --launch DWIConvert . I don't think that works in Mac OSX or Windows (not fully sure)

            Best regards
            Martin

  • Jan 26, 2018  01:01 AM | Ryan H - UCLA
    DTIPrep movement estimation output?
    Hi all,

    I'm wondering if I can retrieve estimated movement values between volumes from DTIPrep. FSL eddy automatically outputs a text file indicating between-volume movement for each subject along with cumulative movement estimates relative to the first volume. I use these estimated movement values to exclude certain subjects from analysis.


    Thanks!

    • Jan 26, 2018  01:01 AM | Ryan H - UCLA
      RE: DTIPrep movement estimation output?
      I've found that this movement output is labeled "TranslationNorm" in the *XMLQCREsult.xml output file. However, I see a value of 0 for each volume, implying there was absolutely zero movement between each volume, which seems implausible. It may help to know that I am using DTIPrep v1.2.4 and Slicer 4.6.2 (for when I use DWIConvert to go from NIFTI to NRRD).

      Any help would be appreciated! Thanks again!

      • Jan 26, 2018  01:01 AM | Martin Styner
        RE: DTIPrep movement estimation output?
        Hi Ryan

        "TranslationNorm" is indeed the total amount of translative motion found by the motion correction (each DWI has such an entry). The amount of rotation motion is found in the output "Angle".

        Keep in mind that this is only the translation and rotation recovered by the motion & eddy current correction step in DTIPrep. If you ran eddy with FSL first, that information is not used/accessible by DTIPrep.

        If you ran the motion & eddy current correction and get a TranslationNorm of exactly 0, then something is likely off. There should be some minor translation even just due to noise. Did you run the motion & eddy current step?

        Best regards
        Martin

  • May 23, 2017  07:05 PM | Rachel Steiner - University of Wisconsin - Madison
    DTIPrep 1.2.7 for Mac
    Hi all,
    Very big fan of this tool. Keep up the good work. I am having trouble saving visually QCed changes to the QCed file using version 1.2.7 on a Mac. After excluding gradients manually, I click Save Dwi and QC Result and get the error message "No Processing done." As a workaround I will try out version 1.2.4. 


    Thanks for your help!

    rachel

    • Jan 18, 2018  10:01 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
      RE: DTIPrep 1.2.7 for Mac
      Hi, same problem here using linux and DTIPrep versions 1.2.8 and 1.2.4. I also saw a previous post with similar problems: https://www.nitrc.org/forum/message.php?... . Is it something related to the installation of DTIPrep or Slicer?
      Thanks

  • Jan 11, 2018  02:01 PM | Tanmay Nath
    DTIprep on multiband DTI dataset.
    Hi,
    I am having issues running DTIPrep on multi-band  DTI dataset and it seems DTIPrep cannot handle multiband data. Is it true?
    I have a multi-band DTI  dataset(MB factor 3) which visually appears to be fine and when I use FSL to compute the motion params, it gives me mean motion of 1.3 and max of 2.9. Ideally, this data set should pass the QC. But when I use DTIPrep to process, the output QCed image has only 8 dirs left out of 137 and the dataset does not pass the QC. Please find attached the screenshot of one of the directions of the QCed image. The image looks distorted too.

    Any suggestions? I never had any problem when I ran DTIPrep on the dataset with MB factor 1.

    • Jan 11, 2018  03:01 PM | Martin Styner
      RE: DTIprep on multiband DTI dataset.
      Hi Tanmay
      We regularly apply DTIprep to multi band data. There should not be something particular about MB data regarding the QC process that's different from non-MB data. 

      If the DWI volumes that get rejected by DTIPrep look visually free of intensity artifacts, then your DTIPrep parameters are likely to strict (DTIPrep's default parameter particularly for high b-value images can be too strict). Adjust the parameters of the steps that fails your DWI volume.

      Not sure about the distortions, to me it looks like that the voxelsize information in the volume may be incorrect as it seems stretched in inferior-superior direction (or at least incorrect the way AFNI displays it, does it look similarly in fsl if you use fslview, or in Slicer?). It is possible that your acquisition uses a slice overlap and thus that the voxelsize in the slice-direction has been set to the DICOM slice thickness instead of the slice step (difference in slice-position between slices).

      Martin

  • Jan 3, 2018  05:01 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
    Field inhomogeneities DWI
    I am setting a pipeline to preprocess DWI data and it seems there are no tools inside DTIPrep to correct for field inhomogeneities. I have seen previous reports using AFNI or FSL that try to correct field inhomogeneities by registering b0 image with a standard T2 image or by calculating a kind of field map (topup procedure in FSL). Is there a similar tool in DTIPrep?

    Thanks,
    I do appreciate any comments.

    • Jan 3, 2018  11:01 PM | Rachel Steiner - University of Wisconsin - Madison
      RE: Field inhomogeneities DWI
      Hi Daniel,

      If you are interested in preprocessing your data using FSL’s topup to correct for these artifacts prior to running dtiprep, I am happy to offer guidance for doing that. In my experience working with dtiprep, we have first run tools from fsl for preparing the data (correcting field in homogeneities) prior to dtiprep.

      • Jan 4, 2018  08:01 PM | Daniel Berge - Hospital del Mar Medical Research Institute (IMIM)
        RE: Field inhomogeneities DWI
        Thanks Rachel,

          Unfortunately, I do not have PA and AP images from my acquisition to run topup. I just was wandering if there was any procedure in DTIPrep or Slice to run an equivalent procedure, such as warping b0 image to T2 images and then apply the wrap field to the DWI as other groups have done using ANTS.
         Otherwise, I guess I can always run this procedure before or after DTIPrep (always before computing the tensors).

        Thanks.

  • Jan 3, 2018  11:01 PM | Ryan H - UCLA
    DENOISING_bCheck parameters?
    Hi DTI experts,

    This is my first time using DTIPrep, and I want to use the DENOISING_bCheck tool. I'm wondering if anyone has any suggestions for what value to set for the DENOISING_ParameterSet parameter. The default settings leave this parameter blank.

    I've left the rest of the parameters with the default values. Is this advisable? My voxel size is 1.875 x 1.875 x 2.000.


    I'm also using the SLICE_bCheck and INTERLACE_bCheck tools with default values for all of the parameters as well (with the exception of putting 'Yes' for Slice_bSubregionalCheck because this tutorial said to do so: https://www.slicer.org/w/images/a/a6/DTI...). Any advice would be hugely appreciated.


    Thank you for your time and help!

    • Jan 3, 2018  11:01 PM | Rachel Steiner - University of Wisconsin - Madison
      RE: DENOISING_bCheck parameters?
      Hi Ryan,
      Can you provide more information about your data? Such as number of diffusion directions, some demographic details like the species, age and whether it’s a clinical population or typical healthy individual? Also, what type of scanner was used - magnetic strength and manufacturer. When you look through the raw data in dtiprep, do you notice any inherent or consistent artifacts such as some cropped brain slices if the field of view cut off, for example, a few slices of the occipital lobe or do you see that the whole brain was included? Feel free to attach your xml of the setting you are using when you load the raw image and click “default” for the protocol. This will give me some info about the input data.

      Thank you!

      Rachel

  • Dec 5, 2017  12:12 PM | Giuseppe Cabras - University of Udine
    DTIPrep problem with b=0 not in first volume
    Hello support for DTIPrep,
    I have successfully used DTIPrep 1.2.4 and DWIConvert 1.0 to create a pre-processing pipeline for my local dwi.nii which has a b = 0 to the first volume. Now, I'm trying to pre-process with the same pipeline subjects from a different center that has a b = 0 not in the first volume, but a bit in the middle of dwi.nii 4Dimage. Apparently DTIPrep and DWIConvert work correctly and do the job, but when I look at the output QCed.bval and QCed.bvec, the resulting average b = 0 bval / bvec is in the first element, as expected, while the QCed.nii has the b = 0 NOT in the first volume and, of course, FA, MD and everything is in disarray. Where am I wrong?
    Greetings,
    Giuseppe

    • Dec 5, 2017  09:12 PM | Martin Styner
      RE: DTIPrep problem with b=0 not in first volume
      Hi Giuseppe

      Some parts of DTIPrep's code assume that the first (input) DWI image has to be a b=0 image, so you may have to rearrange your DWI volume such that the b=0 is the first volume. You can use the "unu" NRRD tool http://teem.sourceforge.net/unrrdu/ (it's also disseminated with Slicer) for this purpose (I think this can also be done with the fsl tools)

      Best
      Martin

      • Dec 6, 2017  10:12 AM | Giuseppe Cabras - University of Udine
        RE: DTIPrep problem with b=0 not in first vol
        Thanks Martin,
        do you know if there is a sample script that use unu for this or similar purpose?
        Cheers,
        Giuseppe

        • Dec 7, 2017  05:12 PM | Martin Styner
          RE: DTIPrep problem with b=0 not in first vol
          There are probably better ways to do this, but I would do it as follows:

          Use "unu crop" 3 times to make 3 DWI parts:
          a) the DWI's before b=0
          b) the b=0 DWI
          c) the DWI's after b=0

          Assuming that the 4th axis is where your DWI images are indexed in the 4D DWI volume, this would look like, and 30 is the index of your b=0 DWI (starting index 0):

          unu crop -i yourfile.nrrd -o part1.nrrd -min 0,0,0,0 -max M,M,M,29
          unu crop -i yourfile.nrrd -o part2.nrrd -min 0,0,0,30 -max M,M,M,30
          unu crop -i yourfile.nrrd -o part3.nrrd -min 0,0,0,31 -max M,M,M,M

          Then use unu join to put these back together

          unu join -i part2.nrrd part1.nrrd part3.nrrd -o joined.nrrd

          Now, you will have to go end exit the nrrd header to change the informaiton of the gradients in the header (move the 30th diretion to the 0th and update all direction numbers).

          I know that's quite ugly, there may be simpler/more elegant solutions out there.

          Martin

  • Sep 22, 2017  09:09 PM | michikoc
    Command DWIPrep not found?
    Hi DTIPrep Users/Experts:

    I am a first-time user of DTIPrep. I have downloaded the version for Mac and have tried adding the program to my path in ~/.bashrc but the command DWIPrep would not execute..

    Is there something I am not doing right..?

    Thanks very much!

    • Sep 29, 2017  02:09 PM | Martin Styner
      RE: Command DWIPrep not found?
      The mac version of DTIPrep is an app, i.e. you can start it by double clicking on it. The first time you start it you need to control-click on it and select "Open" (otherwise OSX will not allow you to run it, as we are not certified apple developers).

      You can also run it from your terminal, but you need to specify the binary witin the app-package. E.g. on my system, I type 
      /Applications/DTIPrep1.2.7.app/Contents/MacOS/DTIPrep1.2.7
      into a terminal to run it from there.

      Hope this helps
      Martin

  • Sep 29, 2017  01:09 PM | palmta
    Installation - github repository not found
    Hi all,

    I'm a new user and I've tried installing DTIPrep on CentOS 7. I have gone through the steps as described by Juan
    The build steps should look something like this.
    1. git clone https://github.com/NIRALUser/DTIPrep.git
    2. mkdir DTIPrep-build; cd DTIPrep-build
    3. ccmake ../DTIPrep
    4. make
    During step 4 (make), I have to log into github and github.com/BRAINSia/KWStyle.git is supposed to be cloned. The repository, however, does not exist. (I've also tried typing it into the browser, the URL does not exist.)
    Is there a new repository that I should clone?

    Any help is greatly appreciated!

    Theresa

  • Jul 14, 2017  01:07 PM | Chr. Roßmanith
    hex output for floats
    Hi,

    is there a reason why e.g. interlace correlations for gradients are printed as hex float numbers? This format is used in section "Output Diffusion Gradient direction information" of the QC report as well but e.g. not in section "EddyCurrentHeadMotionCorrectIowa".

    Regards,
    Christina Rossmanith

    • Jul 14, 2017  01:07 PM | Martin Styner
      RE: hex output for floats
      Hi Christina

      Are you referring to the terminal output, the report txt file or the full report xml file?

      Can you provide an example?

      best

      Martin

      • Jul 14, 2017  02:07 PM | Chr. Roßmanith
        RE: hex output for floats
        Terminal output and report txt file. XML seems to be fine.

        Lines look like (txt)

        1 [ -0x1.a1fd9ba1b1961p-3, 0x1.45bd0e12e83a1p-5, -0x1.f4cf28c79f666p-1 ]

        or (terminal)
        Interlace correlation for gradient 52: 0x1.e6f854a520339p-1

        I've attached a report.

        Regards,
        Christina

        • Jul 14, 2017  02:07 PM | Martin Styner
          RE: hex output for floats
          Not sure what's happening, as we have not seen that in our runs. Which system are using (mac vs linux distribution)? Which version of DTIPrep  and where did you get it from (Slicer, NITRC)? Likely this is system related and may be difficult to change.

          As a work-around you could use the information from the XML, since that seems to be fine.

          Martin
          Originally posted by Chr. Roßmanith:
          Terminal output and report txt file. XML seems to be fine.

          Lines look like (txt)

          1 [ -0x1.a1fd9ba1b1961p-3, 0x1.45bd0e12e83a1p-5, -0x1.f4cf28c79f666p-1 ]

          or (terminal)
          Interlace correlation for gradient 52: 0x1.e6f854a520339p-1

          I've attached a report.

          Regards,
          Christina

          • Jul 19, 2017  05:07 AM | Chr. Roßmanith
            RE: hex output for floats
            I'm using linux and the NITRC version of DTIPrep (Version: 1.2.8)

            I had a look at the documentation of std::ios_base::fmtflags (cppreference.com):

            "scientific: generate floating point types using scientific notation, or hex notation if combined with fixed: see std::scientific"

            In src/itkDWIBaselineAverager.hxx "fixed" is used in combination with "scientific" which leads to hex notation. But it is strange why only I am hit by this problem.


            Christina

            • Jul 20, 2017  02:07 PM | Martin Styner
              RE: hex output for floats
              My guess is that it's due to your linux distribution, as different distributions have slightly different kernels and system libraries. We usually use scientific linux, which is built on CentOS, and also compile our distributions on that platform (not sure what Slicer uses for its compilation of the extensions).

              In this case, it's likely a c++ library difference. 
              But, in the code the formate info for the output is not well chosen:
              " << std::setw(9) << std::setiosflags(std::ios::fixed) << std::setprecision(17) << std::setiosflags( std::ios::right | std::ios::scientific )"

              setw and setprecision should be aligned, particularly if one chooses a fixed notation (setw should be larger than setprecision). And if one choses a fixed notation, then one should not use scientific. So this is clearly not good programming on our end. 

              The best seems to replace this with a fixed notation at the higher precision (probably too high with 17), i.e. 
              " << std::setw(19) << std::setiosflags(std::ios::fixed) << std::setprecision(17) << std::setiosflags( std::ios::right)"

              I'll add that as an issue to change for the next release (which though may take a while to do).

              Martin

  • Jun 13, 2017  12:06 AM | Micah Johnson - UCLA Department of Psychology
    FAIL:Single b-value DWI without a b0/baseline
    Hello DTIPrep team,

    Thank you for such a wonderful tool, I've been using it for many years. I'm currently running DTIPrep1.2.4(Linux) and am getting the following error message below, which results in a QC output that is missing the averaged b0 image that I request in my protocol (so the output contains only DWIs).

    Interlace-wise Check Artifacts:
    Gradient#: AngleX AngleY AngleZ TranslationX TranslationY TranslationZ Metric(MI) Correlation
    0 0.005173 0.019200 0.006233 0.067178 0.026310 1.494784 0.260701 0.851486
    20 -0.013550 -0.004478 -0.004047 -0.023368 0.108741 1.503283 0.259852 0.855707
    Single b-value DWI without a b0/baseline!


    The input contains two b0s, such as displayed in my bval table below...

    0
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    0
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000
    1000

    According to the QCReport.txt, the first b0 has an Interlace-wise artifact, so it's being excluded, and so obviously cannot be averaged with the other b0 image (no reported artifacts). So just to make sure, is this why I get the error message above? I was hoping that the baseline averaging option would be automatically ignored if there is only one good b0 gradient remaining, but is this not the case? (the QC output contains only DWIs). Since I'm batching this protocol xml across many subjects (some which have both good b0s, and some which may have one of the b0s corrupted), is there a handy way I could keep the baseline average option and have it ignore if there's only 1 good b0?

    The other source of my confusion is that the XMLQCResult.xml (will be attached in another message following) says that the Interlace-wise is fine (Value=INCLUDE), but the QC_Index=-1 which means exclude, so if it's being excluded then why would Value=INCLUDE?

    Another apparent mismatch is that the QCReport.txt says that gradient #20 has Interlace-wise artifact, but the XMLQCResult.xml says that gradient #20 is fine (Value=INCLUDE, QC_Index=18)...why?

    Thanks so much,
    Micah

  • Apr 19, 2017  02:04 AM | minchulusa
    Too many gradients excluded by "default"
    Hello ,
    My name is MC kim, and I need some help.
    The DTIPrep version I got is 1.2.4.
    I try to preprocess my DWI images with DTIPrep, and I got some questions in doing it. 

    1) I initially tried with 'default' protocol, and DTIPrep excluded 17 out for 31 gradients from a DWI data set from a subject.
    the reason was due to interlace artifact. When I visual checked the DWI data, I couldn't agree that much artifact. 
    I attached the captured QC result file.

    I tried preprocessing again, and this time I changed the protocol, instead of using 'default'.
    By default, DENOISING_bCheck, JOINDENOISING_bCheck, BRAINMAST_bCheck, and DOMINANTDIRECTION_bCheck at setted "No", and I changed settings into "YES"
    As I tried again with all "YES" all of the directions were included in QCed DWI.
    Thus I though by changing protocols to all "YES", the protocol became more tolerant to artifact.

    My question is is it okay to run with the protocol setting of all "YES"? Is there any potential problem?

    2) Even though the "default"protocol excluded more than half of DWI gradient directions, DTIPrep still generated DTI images such as FA, MD, etc.
    Can I use this DTI image to analysis or tract generation? or should I prepration again with different protocol setting.

    3)I read that DTIPrep has two nice functions, those are "vibration artifact checking" and "simulation based bias analysis".
    I want to know which parameter on protocol setting represents those functions.
    My guess is "DOMINANTDIRECTION_bCheck" maybe vibration artifact correction, am I right?

    4) When I click on "Default" protocol, I get the error message saying "The following programs have not been found. Please enter the path manually if necessary> DiffusionWeightedVolumeMasking"
    Can you tell me where can I get this program or how can I solve the problem?

    Thanks in advance and I look forward to hear from you.

    MC Kim
    Attachment: error.jpg

    • Apr 19, 2017  03:04 PM | Martin Styner
      RE: Too many gradients excluded by "default"
      Hi Minchul
      Re 1) the first denoising/smoothing option DENOISING_bCheck smooth the DWI data prior to any check which will smooth out any minor artifacts, which is why the previously rejected DWIs are now considered fine. It's "okay" to use that option, though we usually do not (I prefer un-smoothed data, but other researchers prefer smoothed data). This would definitely be something that you would need to report in any papers resulting from your work. The options JOINDENOISING_bCheck, BRAINMAST_bCheck, and DOMINANTDIRECTION_bCheck have no effect on the DWI cleaning/rejections.

      What we usually do when too many DWI get rejected despite appearing appropriate is to change the thresholds for SLICE and INTERLACE checks. The report txt and xml files give you information which step rejects the most DWI and why. 

      Re 2) That depends on your settings. You can tell DTIPrep not to create the final QCed DWI and DTI images when the resulting DWI has more than a certain percentage of rejected DWIs (tolerance threshold). At the most permissive (when data is very noisy), we usually do not go beyond 40% rejection, while our usual studies use 20-30% rejection tolerance. 50% seems to high to me and I would NOT use that data for further analysis.

      re 3)DOMINANTDIRECTION_bCheck = vibration artifact check. This is not commonly needed unless you have earlier Tim Trio data or suspect presence of vibration artifacts. The issue here is that you need to train the classifier by running the check on sample data that looks good (the xml contains the entropy results, see our papers on this topic) and then use the mean & stdev from that sample data in the protocol to identify the presence or absence of such an artifact.

      re 3) simulation based bias analysis: unfortunately that is not in DTIPrep yet. We simply don't have the manpower to put it in (there is no grant that support DTIPrep and we are currently only maintaining it and do not add any major functionality). This would be great as it would allow to reject/accept DTI data based on the expected error rather than a simple tolerance threshold.

      re 4) DTIPrep offers support for multiple brain masking options. If you want to use that option you need to point DTIPrep to it (it's part of Slicer). We commonly suggest the use of FSL's bet/bet2 with IDWI (double click on the protocol option and DTIPrep will allow you to select which masking option to choose)

      Martin
      Originally posted by Minchul Kim:
      Hello ,
      My name is MC kim, and I need some help.
      The DTIPrep version I got is 1.2.4.
      I try to preprocess my DWI images with DTIPrep, and I got some questions in doing it. 

      1) I initially tried with 'default' protocol, and DTIPrep excluded 17 out for 31 gradients from a DWI data set from a subject.
      the reason was due to interlace artifact. When I visual checked the DWI data, I couldn't agree that much artifact. 
      I attached the captured QC result file.

      I tried preprocessing again, and this time I changed the protocol, instead of using 'default'.
      By default, DENOISING_bCheck, JOINDENOISING_bCheck, BRAINMAST_bCheck, and DOMINANTDIRECTION_bCheck at setted "No", and I changed settings into "YES"
      As I tried again with all "YES" all of the directions were included in QCed DWI.
      Thus I though by changing protocols to all "YES", the protocol became more tolerant to artifact.

      My question is is it okay to run with the protocol setting of all "YES"? Is there any potential problem?

      2) Even though the "default"protocol excluded more than half of DWI gradient directions, DTIPrep still generated DTI images such as FA, MD, etc.
      Can I use this DTI image to analysis or tract generation? or should I prepration again with different protocol setting.

      3)I read that DTIPrep has two nice functions, those are "vibration artifact checking" and "simulation based bias analysis".
      I want to know which parameter on protocol setting represents those functions.
      My guess is "DOMINANTDIRECTION_bCheck" maybe vibration artifact correction, am I right?

      4) When I click on "Default" protocol, I get the error message saying "The following programs have not been found. Please enter the path manually if necessary> DiffusionWeightedVolumeMasking"
      Can you tell me where can I get this program or how can I solve the problem?

      Thanks in advance and I look forward to hear from you.

      MC Kim

      • Apr 20, 2017  02:04 AM | minchulusa
        RE: Too many gradients excluded by "default"
        Hi Martin
        Thank you a lot for your kind advice, it was helpful.
        I cameout with additional questions on your answer.

        1) Upon your answer "Re 2)" , I want to set the tolerance threshold to whether create or not created final QCed DWI and DTIs.
        I looked up at media wiki, but I cannot be sure which Parameter is for tolerance setting.
        I have two guesses and marked "1" and "2" in attached image.
        Please let me know the function and meanings of those two parameters.

        2) Another question is that for "Re 3)", Am I supposed to train DTIPrep with my own artifact free data? Because I though DTIPrep has 
        kind of built-in artifact free samples and compare with my data.

        Thanks in advance and look forward to listen.

        Minchul 
        Originally posted by Martin Styner:
        Hi Minchul
        Re 1) the first denoising/smoothing option DENOISING_bCheck smooth the DWI data prior to any check which will smooth out any minor artifacts, which is why the previously rejected DWIs are now considered fine. It's "okay" to use that option, though we usually do not (I prefer un-smoothed data, but other researchers prefer smoothed data). This would definitely be something that you would need to report in any papers resulting from your work. The options JOINDENOISING_bCheck, BRAINMAST_bCheck, and DOMINANTDIRECTION_bCheck have no effect on the DWI cleaning/rejections.

        What we usually do when too many DWI get rejected despite appearing appropriate is to change the thresholds for SLICE and INTERLACE checks. The report txt and xml files give you information which step rejects the most DWI and why. 

        Re 2) That depends on your settings. You can tell DTIPrep not to create the final QCed DWI and DTI images when the resulting DWI has more than a certain percentage of rejected DWIs (tolerance threshold). At the most permissive (when data is very noisy), we usually do not go beyond 40% rejection, while our usual studies use 20-30% rejection tolerance. 50% seems to high to me and I would NOT use that data for further analysis.

        re 3)DOMINANTDIRECTION_bCheck = vibration artifact check. This is not commonly needed unless you have earlier Tim Trio data or suspect presence of vibration artifacts. The issue here is that you need to train the classifier by running the check on sample data that looks good (the xml contains the entropy results, see our papers on this topic) and then use the mean & stdev from that sample data in the protocol to identify the presence or absence of such an artifact.

        re 3) simulation based bias analysis: unfortunately that is not in DTIPrep yet. We simply don't have the manpower to put it in (there is no grant that support DTIPrep and we are currently only maintaining it and do not add any major functionality). This would be great as it would allow to reject/accept DTI data based on the expected error rather than a simple tolerance threshold.

        re 4) DTIPrep offers support for multiple brain masking options. If you want to use that option you need to point DTIPrep to it (it's part of Slicer). We commonly suggest the use of FSL's bet/bet2 with IDWI (double click on the protocol option and DTIPrep will allow you to select which masking option to choose)

        Martin
        Originally posted by Minchul Kim:
        Hello ,
        My name is MC kim, and I need some help.
        The DTIPrep version I got is 1.2.4.
        I try to preprocess my DWI images with DTIPrep, and I got some questions in doing it. 

        1) I initially tried with 'default' protocol, and DTIPrep excluded 17 out for 31 gradients from a DWI data set from a subject.
        the reason was due to interlace artifact. When I visual checked the DWI data, I couldn't agree that much artifact. 
        I attached the captured QC result file.

        I tried preprocessing again, and this time I changed the protocol, instead of using 'default'.
        By default, DENOISING_bCheck, JOINDENOISING_bCheck, BRAINMAST_bCheck, and DOMINANTDIRECTION_bCheck at setted "No", and I changed settings into "YES"
        As I tried again with all "YES" all of the directions were included in QCed DWI.
        Thus I though by changing protocols to all "YES", the protocol became more tolerant to artifact.

        My question is is it okay to run with the protocol setting of all "YES"? Is there any potential problem?

        2) Even though the "default"protocol excluded more than half of DWI gradient directions, DTIPrep still generated DTI images such as FA, MD, etc.
        Can I use this DTI image to analysis or tract generation? or should I prepration again with different protocol setting.

        3)I read that DTIPrep has two nice functions, those are "vibration artifact checking" and "simulation based bias analysis".
        I want to know which parameter on protocol setting represents those functions.
        My guess is "DOMINANTDIRECTION_bCheck" maybe vibration artifact correction, am I right?

        4) When I click on "Default" protocol, I get the error message saying "The following programs have not been found. Please enter the path manually if necessary> DiffusionWeightedVolumeMasking"
        Can you tell me where can I get this program or how can I solve the problem?

        Thanks in advance and I look forward to hear from you.

        MC Kim
        Attachment: tolerance.jpg

        • Apr 20, 2017  02:04 AM | Martin Styner
          RE: Too many gradients excluded by "default"
          Hi Minchul
          Re 1) it's the one called badGradientPercentageTolerance
          Re 2) the defaults are for a specific setting (pediatric human data) and a given diffusion acquisition protocol. If you have a different protocol, then the values would be different and need to be retrained
          Martin
          Originally posted by Minchul Kim:
          Hi Martin
          Thank you a lot for your kind advice, it was helpful.
          I cameout with additional questions on your answer.

          1) Upon your answer "Re 2)" , I want to set the tolerance threshold to whether create or not created final QCed DWI and DTIs.
          I looked up at media wiki, but I cannot be sure which Parameter is for tolerance setting.
          I have two guesses and marked "1" and "2" in attached image.
          Please let me know the function and meanings of those two parameters.

          2) Another question is that for "Re 3)", Am I supposed to train DTIPrep with my own artifact free data? Because I though DTIPrep has 
          kind of built-in artifact free samples and compare with my data.

          Thanks in advance and look forward to listen.

          Minchul 
          Originally posted by Martin Styner:
          Hi Minchul
          Re 1) the first denoising/smoothing option DENOISING_bCheck smooth the DWI data prior to any check which will smooth out any minor artifacts, which is why the previously rejected DWIs are now considered fine. It's "okay" to use that option, though we usually do not (I prefer un-smoothed data, but other researchers prefer smoothed data). This would definitely be something that you would need to report in any papers resulting from your work. The options JOINDENOISING_bCheck, BRAINMAST_bCheck, and DOMINANTDIRECTION_bCheck have no effect on the DWI cleaning/rejections.

          What we usually do when too many DWI get rejected despite appearing appropriate is to change the thresholds for SLICE and INTERLACE checks. The report txt and xml files give you information which step rejects the most DWI and why. 

          Re 2) That depends on your settings. You can tell DTIPrep not to create the final QCed DWI and DTI images when the resulting DWI has more than a certain percentage of rejected DWIs (tolerance threshold). At the most permissive (when data is very noisy), we usually do not go beyond 40% rejection, while our usual studies use 20-30% rejection tolerance. 50% seems to high to me and I would NOT use that data for further analysis.

          re 3)DOMINANTDIRECTION_bCheck = vibration artifact check. This is not commonly needed unless you have earlier Tim Trio data or suspect presence of vibration artifacts. The issue here is that you need to train the classifier by running the check on sample data that looks good (the xml contains the entropy results, see our papers on this topic) and then use the mean & stdev from that sample data in the protocol to identify the presence or absence of such an artifact.

          re 3) simulation based bias analysis: unfortunately that is not in DTIPrep yet. We simply don't have the manpower to put it in (there is no grant that support DTIPrep and we are currently only maintaining it and do not add any major functionality). This would be great as it would allow to reject/accept DTI data based on the expected error rather than a simple tolerance threshold.

          re 4) DTIPrep offers support for multiple brain masking options. If you want to use that option you need to point DTIPrep to it (it's part of Slicer). We commonly suggest the use of FSL's bet/bet2 with IDWI (double click on the protocol option and DTIPrep will allow you to select which masking option to choose)

          Martin
          Originally posted by Minchul Kim:
          Hello ,
          My name is MC kim, and I need some help.
          The DTIPrep version I got is 1.2.4.
          I try to preprocess my DWI images with DTIPrep, and I got some questions in doing it. 

          1) I initially tried with 'default' protocol, and DTIPrep excluded 17 out for 31 gradients from a DWI data set from a subject.
          the reason was due to interlace artifact. When I visual checked the DWI data, I couldn't agree that much artifact. 
          I attached the captured QC result file.

          I tried preprocessing again, and this time I changed the protocol, instead of using 'default'.
          By default, DENOISING_bCheck, JOINDENOISING_bCheck, BRAINMAST_bCheck, and DOMINANTDIRECTION_bCheck at setted "No", and I changed settings into "YES"
          As I tried again with all "YES" all of the directions were included in QCed DWI.
          Thus I though by changing protocols to all "YES", the protocol became more tolerant to artifact.

          My question is is it okay to run with the protocol setting of all "YES"? Is there any potential problem?

          2) Even though the "default"protocol excluded more than half of DWI gradient directions, DTIPrep still generated DTI images such as FA, MD, etc.
          Can I use this DTI image to analysis or tract generation? or should I prepration again with different protocol setting.

          3)I read that DTIPrep has two nice functions, those are "vibration artifact checking" and "simulation based bias analysis".
          I want to know which parameter on protocol setting represents those functions.
          My guess is "DOMINANTDIRECTION_bCheck" maybe vibration artifact correction, am I right?

          4) When I click on "Default" protocol, I get the error message saying "The following programs have not been found. Please enter the path manually if necessary> DiffusionWeightedVolumeMasking"
          Can you tell me where can I get this program or how can I solve the problem?

          Thanks in advance and I look forward to hear from you.

          MC Kim

          • Apr 20, 2017  02:04 AM | minchulusa
            RE: Too many gradients excluded by "default"
            Hi Martin

            If I set badGradientPercentage Tolerance "0.2" ,run DTIPrep, and get QCed DWI and DTI created,
            Can I assume that the percentage of excluded data is below 20%?

            Minchul

            • Apr 20, 2017  02:04 AM | Martin Styner
              RE: Too many gradients excluded by "default"
              Yes
              Martin

              • May 11, 2017  02:05 AM | minchulusa
                RE: Too many gradients excluded by "default"
                Hello , Martin

                I got into another problem of DTIPrep excluding the initial B0 gradient dataset. 
                And I think it's due to "DWIConvert" module.
                My DWI data is in nifti format and I tried to convert the data into NRRD format.
                I used "DWIConvert" I could convert my data, but faced a problem of unwanted change of b-values.

                I used "FSLtoNRRD" command and gave input b-value text file with one B0 and B1000, 1500 and 2000 values.
                The given txt. file is " 0 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 "

                After converting, I re-converted NRRD file into Nifti format to check everything is fine.(because DTIPrep kept on excluding initial B0 gradient).
                But the B-value cameout with Nifti file is not same as I gave as input.
                The numbers were ramdomly changed.
                The b-value text file cameout is
                "569.14677169328775
                1210.4240156296401
                2394.278657453659
                2064.6115111473659
                2436.8009231442984
                1705.7749517509521
                1516.4484019703827
                1514.1840056875694
                1719.9054732742741
                2824.3546439594234
                2039.8874449352959
                1211.1570127685525
                2394.0072468217677
                2064.9339802438881
                2437.7675224831487
                1705.874096430357
                1516.5357335934659
                1514.0713333670778
                1719.814571234273
                2824.4174183001828
                2040.1616777009938
                1210.592447597332
                2394.3981996158004
                2064.7939236817956
                2437.6351466971118
                1706.1506126118095
                1516.6813482354526
                1514.5959658969289
                1719.3471588181069
                2824.4694227411933
                2214.1862132865399
                1818.5253904163474
                2379.8818229158201
                1534.0663695825635
                2377.2198780491276
                1531.6037871520705
                2376.2974797197626
                1533.6721350225935
                3030.4495159553903
                1497.819497263901
                1139.6441598187059
                1817.9113032772889
                2379.4458786272944
                1533.8076305638847
                2377.341528007285
                1532.092919034837
                2376.8870089482484
                1533.7763507339953
                3030.39438321854
                1497.4963034622233
                1139.4844454853051
                1817.60332523135
                2379.0966775756933
                1533.7479203686992
                2377.114705937805
                1532.9149473982216
                2376.9214811331449
                1533.496245336315
                3030.1965392951452
                1497.2164576375399
                485.30360327283682
                2963.2369306481619
                1239.161593096693
                2396.5764449663329
                1660.7085313620228
                1508.0419153094763
                1896.0191813079648
                3153.7796491840281
                730.87428877886327
                1942.1368712267449
                1008.437730083243
                2963.446215401349
                1240.038375975256
                2397.1494366414922
                1659.3181504339971
                1507.376482833866
                1894.6606209606766
                3153.9309149673081
                730.16050594589706
                1942.6741487412278
                1007.5010623141499
                2963.5995044988094
                1240.5890343827225
                2397.4182379207482
                1659.6068556891951
                1507.0685735595321
                1894.0214419438767
                3153.877208544558
                730.13306594795426
                1943.4686143768183
                1007.4178745724701"

                And no B-value of "0", which should be resistration template.
                I think when converting nifti to NRRD, unintented b-value change occurs.
                I have tired with other datasets from other subjects and found this always occurs.

                This maybe a problem with DWIConvert module, but I just want to ask have you ever faced and fixed this problem.
                Or could I send you a sample dataset of mine for you to take a look?

                Minchul

                • May 11, 2017  02:05 PM | Martin Styner
                  RE: Too many gradients excluded by "default"
                  This indeed looks like an issue for DWIConvert. Which version are you using, as earlier version had a known bug with multi-b-value images to go from NRRD to NIFTI (and back)? You may want to download it with the newest version of Slicer (maybe even a nightly build), or compile it yourself: https://github.com/BRAINSia/BRAINSTools/tree/master/DWIConvert

                  Btw, we do not maintain DWIConvert, it's a Slicer/BRAINS tool that we use (just like FSL's bet2)

                  Also, can you double-check the header of the NRRD file, whether the first DWI gradient is 0 0 0? This would narrow it down to see which of the 2 conversions messes things up.

                  Best
                  Martin
                  Originally posted by Minchul Kim:
                  Hello , Martin

                  I got into another problem of DTIPrep excluding the initial B0 gradient dataset. 
                  And I think it's due to "DWIConvert" module.
                  My DWI data is in nifti format and I tried to convert the data into NRRD format.
                  I used "DWIConvert" I could convert my data, but faced a problem of unwanted change of b-values.

                  I used "FSLtoNRRD" command and gave input b-value text file with one B0 and B1000, 1500 and 2000 values.
                  The given txt. file is " 0 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 1500 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 "

                  After converting, I re-converted NRRD file into Nifti format to check everything is fine.(because DTIPrep kept on excluding initial B0 gradient).
                  But the B-value cameout with Nifti file is not same as I gave as input.
                  The numbers were ramdomly changed.
                  The b-value text file cameout is
                  "569.14677169328775
                  1210.4240156296401
                  2394.278657453659
                  2064.6115111473659
                  2436.8009231442984
                  1705.7749517509521
                  1516.4484019703827
                  1514.1840056875694
                  1719.9054732742741
                  2824.3546439594234
                  2039.8874449352959
                  1211.1570127685525
                  2394.0072468217677
                  2064.9339802438881
                  2437.7675224831487
                  1705.874096430357
                  1516.5357335934659
                  1514.0713333670778
                  1719.814571234273
                  2824.4174183001828
                  2040.1616777009938
                  1210.592447597332
                  2394.3981996158004
                  2064.7939236817956
                  2437.6351466971118
                  1706.1506126118095
                  1516.6813482354526
                  1514.5959658969289
                  1719.3471588181069
                  2824.4694227411933
                  2214.1862132865399
                  1818.5253904163474
                  2379.8818229158201
                  1534.0663695825635
                  2377.2198780491276
                  1531.6037871520705
                  2376.2974797197626
                  1533.6721350225935
                  3030.4495159553903
                  1497.819497263901
                  1139.6441598187059
                  1817.9113032772889
                  2379.4458786272944
                  1533.8076305638847
                  2377.341528007285
                  1532.092919034837
                  2376.8870089482484
                  1533.7763507339953
                  3030.39438321854
                  1497.4963034622233
                  1139.4844454853051
                  1817.60332523135
                  2379.0966775756933
                  1533.7479203686992
                  2377.114705937805
                  1532.9149473982216
                  2376.9214811331449
                  1533.496245336315
                  3030.1965392951452
                  1497.2164576375399
                  485.30360327283682
                  2963.2369306481619
                  1239.161593096693
                  2396.5764449663329
                  1660.7085313620228
                  1508.0419153094763
                  1896.0191813079648
                  3153.7796491840281
                  730.87428877886327
                  1942.1368712267449
                  1008.437730083243
                  2963.446215401349
                  1240.038375975256
                  2397.1494366414922
                  1659.3181504339971
                  1507.376482833866
                  1894.6606209606766
                  3153.9309149673081
                  730.16050594589706
                  1942.6741487412278
                  1007.5010623141499
                  2963.5995044988094
                  1240.5890343827225
                  2397.4182379207482
                  1659.6068556891951
                  1507.0685735595321
                  1894.0214419438767
                  3153.877208544558
                  730.13306594795426
                  1943.4686143768183
                  1007.4178745724701"

                  And no B-value of "0", which should be resistration template.
                  I think when converting nifti to NRRD, unintented b-value change occurs.
                  I have tired with other datasets from other subjects and found this always occurs.

                  This maybe a problem with DWIConvert module, but I just want to ask have you ever faced and fixed this problem.
                  Or could I send you a sample dataset of mine for you to take a look?

                  Minchul

                  May 18, 2017  08:05 AM | minchulusa
                  RE: Too many gradients excluded by "default"
                  I am replying to myself because I found the reason why B value change occurs.

                  I tried with transposed matrix of b value and b vectors and problem solved.

                  Also upgraded to newest version of DTIPrep.

                  Thanks for helping, Martin.

                  Minchul.

                  • May 18, 2017  02:05 PM | Martin Styner
                    RE: Too many gradients excluded by "default"
                    Thanks Minchul
                    Yes, that's a common issue with DWIConvert, i.e. that the bvectors need to be in the transposed format.
                    Best regards
                    Martin

  • Nov 1, 2016  07:11 PM | Christopher Petty
    concatenated DTI scans
    What should be happening in the scenario where i've concatenated 6 scans together?

    They were scanned back to back during the same scanning session, with the same 15 direction + 2 b0 protocol.  I concatenated them all together into a long 4D nii.gz ( including the bvalues and bvectors ).

    I was expecting DTIPrep to average all the B0 and treat the all the gradient directions individually, but what actually happened is that they were averaged into a single 17 direction scan, then processed.  Also, my b0s were never averaged.

    • Nov 1, 2016  07:11 PM | Christopher Petty
      RE: concatenated DTI scans
      i should mention, this was on a Mac with version 1.2.4

      Nov 2, 2016  01:11 PM | Christopher Petty
      RE: concatenated DTI scans
      same version on Linux with the same protocol/options behaved as i would've expected

      Nov 2, 2016  01:11 PM | Martin Styner
      RE: concatenated DTI scans
      Hi Chris

      Yes, you should be able to concatenate, we do it all the time in our studies

      Did you try to feed DTIPrep directly the nii.gz image? If so, I don't think that this would work, you would have to first convert the image to NRRD (with DWIConvert). 

      Also Re b0, Currently DTIPrep does not allow to specify the minimal b-value for a b0 to be detected. Only those gradients with very small gradient entry (10-7) are currently detected as b0.
      Something we need to improve.

      Btw, for combining multiple DWI's you can also use CombineDWIs https://github.com/NIRALUser/CombineDWIs
      Martin
      Originally posted by Christopher Petty:
      What should be happening in the scenario where i've concatenated 6 scans together?

      They were scanned back to back during the same scanning session, with the same 15 direction + 2 b0 protocol.  I concatenated them all together into a long 4D nii.gz ( including the bvalues and bvectors ).

      I was expecting DTIPrep to average all the B0 and treat the all the gradient directions individually, but what actually happened is that they were averaged into a single 17 direction scan, then processed.  Also, my b0s were never averaged.

      • Nov 10, 2016  07:11 PM | Christopher Petty
        RE: concatenated DTI scans
        Hey Martin .. Just coming back to this ..

        I did process them as nrrd ... the linux version behaved as i would've expected, it averaged all the B0s together for me ... but the same protocol processed on the mac had weird results i described above and It did not average the B0 and

        • Nov 11, 2016  09:11 PM | Martin Styner
          RE: concatenated DTI scans
          mm, sounds like a mac related bug. Can you double check that both linux and mac versions are the same and if so at a bug report on the tracker?

          Thanks
          Martin

  • Oct 21, 2016  07:10 PM | Yuta Aoki - The University of Tokyo
    assurance of uniform distribution
    Dear DTIPrep experts,

    Could someone teach me how to quantify the uniformity of the distribution of directions?
    We have DTI data with 64directions, and it looks like DTIPrep with default setting exclude 10 directions.
    Before analyzing these data, I want to make sure the uniformity of distribution.
    I would like to replicate the figure7 in the paper "DTIPrep: quality control of diffusion-weighted images" published in 2014.
    I am using DTIPrep1.2.7.

    Best,
    Yuta

    • Oct 24, 2016  05:10 PM | Martin Styner
      RE: assurance of uniform distribution
      Hi Yuta

      Well, the error estimates shown in rows 2 and 3 in that figure cannot be reproduced by DTIPrep (It is not difficult to do so, we just don't have the manpower to add this, as there is limited interest for that particular option).

      With respect to the top row of that figure, that simply displays the surviving motion corrected gradients, that should be possible in DTIPrep. For that 
      - load the QCed DWI data as a new dataset into DTIPrep
      - you may need to go to protocol and generate a default protocol, or you could load the protocol used to generated the QCed DWI
      - go to the 3D display and you should be all set, i.e. you should see the sphere with directions etc 
      - set opacity to 1.0 (you may need to move it around to have an effect, there's a bug on that slider) to only see the ends of the gradient vectors

      • Oct 27, 2016  04:10 PM | Yuta Aoki - The University of Tokyo
        RE: assurance of uniform distribution
        Hi Martin,

        Thank you for your swift response.
        As far as I tried, DTIPrep1.2.7 does not display the top row of that figure, while DTIPrep1.2.4 did.

        If it is not difficult, it would be greatly appreciated if you teach me how to reproduce the rows 2-3 figures so that I can try to reproduce them in my computer.
        (since my background is clinical, it should not be easy for me...)

        Best,
        Yuta

        • Nov 2, 2016  01:11 PM | Martin Styner
          RE: assurance of uniform distribution
          Hi Yuta

          Unfortunately the support to create image like those is not available in DTIPrep right now (and I don't know any tool that would be supporting this in a straightforward manner). We computed these with matlab and visualized with 3D Slicer (ParaView or ShapePopulationViewer would work great too). The computation of these take about 1 day per experiment (as these are simulation based error estimations).

          Martin

          • Nov 10, 2016  04:11 PM | Yuta Aoki - The University of Tokyo
            RE: assurance of uniform distribution
            Hi Martin,

            Thank you for your response.
            I will try to make the image.

            best,
            Yuta

  • Oct 16, 2016  01:10 AM | Tanmay Nath
    Motion correction
    Hi,

    I just ran few subjects with DTI prep and computed the mean absolute RMS motion using FSl. I compared the mean absolute RMS motion before and after DTIprep. But strangely for some subjects the mean absolute RMS motion was higher for subjects after DTI prep.

    Any thoughts why is it so?

    Thanks

    • Oct 17, 2016  01:10 PM | Martin Styner
      RE: Motion correction
      I assume you meant FSL (using fsl_motion_outliers)?

      Not sure how the RMS motion is computed, and this could be an artifact of the particular program you are using to compute the motion. If there were such a thing as a perfect way to measure motion, we would simply use that measure as a goal to optimize. But any measure introduces a bias to its assumptions.

      But it is certainly not impossible for DTIPrep (or any motion correction, such as in FSL) to make things worse. Especially if there is no motion present, a registration process (to correct the potential motion) may correct for a larger motion than actually present (due to the high noise, low SNR). 

      Martin

      • Oct 19, 2016  03:10 PM | James Hartzell
        RE: Motion correction
        Hi
        I have a related question.
        With the rot_bvecs script one can adjust the bvec gradient orientations to the applied motion correction and eddy current correction in the eddy_correct script.

        Is there a way to do the same with DTIPrep--i.e., adjust the gradient vectors according to the applied motion correction?
        Originally posted by Martin Styner:
        I assume you meant FSL (using fsl_motion_outliers)?

        Not sure how the RMS motion is computed, and this could be an artifact of the particular program you are using to compute the motion. If there were such a thing as a perfect way to measure motion, we would simply use that measure as a goal to optimize. But any measure introduces a bias to its assumptions.

        But it is certainly not impossible for DTIPrep (or any motion correction, such as in FSL) to make things worse. Especially if there is no motion present, a registration process (to correct the potential motion) may correct for a larger motion than actually present (due to the high noise, low SNR). 

        Martin

        • Oct 19, 2016  04:10 PM | Martin Styner
          RE: Motion correction
          All motion and eddy current correction is automatically applied to the diffusion gradient directions, i.e. DTIPrep does not save any DWI information that does not have a correspondingly corrected gradient direction. Thus it does not offer an option to separately apply the motion or eddy current correction.

          Martin

  • Oct 7, 2016  04:10 PM | Jian Zhang
    Diffusion Weighted Volume Masking not found
    Dear all,

    When I was using DTIPrep to import data to create the protocol, a small window popped up, with this message:

    The following programs have not been found.
    Please enter the path manually if necessary:
    > DiffusionWeightedVolumeMasking

    Is the Diffusion Weighted Volume Masking setting compulsory or we can ignore it?

    Thanks.

    Jian

    • Oct 7, 2016  05:10 PM | Martin Styner
      RE: Diffusion Weighted Volume Masking not found
      It is not necessary, unless you want to use that tool to do the brain masking (it is a 3D Slicer module). You can also turn off the brain masking, or do the brain masking with alternative options such as BET in FSL.

      Martin

      Oct 8, 2016  09:10 AM | Jian Zhang
      RE: Diffusion Weighted Volume Masking not found
      Thanks for the explanation.

      Jian

      Oct 14, 2016  12:10 AM | Tanmay Nath
      RE: Diffusion Weighted Volume Masking not found
      Hi,

      I have the same question regarding the Diffusion Weighted Volume masking window.

      I also get this window pop up(on my linux server but not on mac) which says 

      The following programs have not been found.
      Please enter the path manually if necessary:
      > DiffusionWeightedVolumeMasking

      I am trying to correct the dominant direction/vibration noise, and even if i select the brain mask(i chose option slicer), the step for dominant direction/vibration fails and it gives me this output.

      Brain Mask
      protocol -> GetBrainMaskProtocol().reportFileMode 1
      Brain mask check NOT set
      Brain Mask DONE


      Any idea how to make it run? Also, what mask are we supposed to input? Please find attached the screen shot of my protocol.

      Thanks

      • Oct 14, 2016  12:10 PM | Martin Styner
        RE: Diffusion Weighted Volume Masking not found
        Hi Tanmay
        DiffusionWeightedVolumeMasking is a 3D Slicer based brain masking tool. If you choose FSL for your masking, then you can safely disregard this warning (which just tells you that it could not find this particular brain masking tool).

        If you look at your masking protocol, it says BRAINMASK_method 1 . By double clicking on that, a window pops up that lets you select the method (We should change the information displayed to a description, not a simple number).

        Also, DTIPrep is pretty strict regarding the exact naming. Your BRAINMASK_bcheck is set to "yes", but it should be "Yes" (upper case Y). In your case, this meant that the masking was not run (Brain mask check NOT set)

        Martin

  • Oct 12, 2016  09:10 PM | Tanmay Nath
    Motion parameters
    Hi,

    I was wondering if there is a way to extract the amount of motion corrected by DTIPrep. I mean what is the resultant motion of the QCed subjects. I do have the QC report, but i cannot find the motion parameters in it. Also how does it correct this motion? Is it only that DTIPrep does an affine transformation of each directions with the baseline? 

    Thanks

    • Oct 13, 2016  12:10 PM | Martin Styner
      RE: Motion parameters
      Yes, it does stores the (affine) motion information (that was detected and corrected by the motion correction step) in the  xml-report. Per DWI you will find there the full transformation matrix (in case you want to use that), plus 2 summary features for the overall translation and the overall rotation. The entries are labeled as TranslationNorm and Angle.
      here is the info, how these are computed
      Angle = combined angle, this is the single total rotation around the best fitting rotation axis (so not one of the coordinate axes x, y, z) needed to represent the motion. This is actually not extracted from the affine transform, but simpler by looking at the angle between the gradient direction before the motion correction and after (which is very simple to extract).

      Translation = norm/length of the translation vector = sqrt(tx*tx + ty*ty + tz*tz), the translation vector is easily extracted from the Affine transform

      The affine transform is to the average baseline (by default computed via iterative unbiased averaging), see also:
      Kreilkamp BAK, Zacà D, Papinutto N, Jovicich J. Retrospective head motion correction approaches for diffusion tensor imaging: Effects of preprocessing choices on biases and reproducibility of scalar diffusion metrics. J Magn Reson Imaging. 2015 Jun 7.


      Martin

      Oct 14, 2016  12:10 AM | Tanmay Nath
      RE: Motion parameters
      Thank you for the reply. 

      I read the paper carefully, but have the following questions:
      • I  cannot differentiate between the eddy current and head motion correction algorithm for FSL and DTIPrep.
      • I do not understand the difference between the trilinear interpolation and 3d linear interpolation as reported in the table 1 of Kreilkamp et.al. paper
      Please provide some guidance. 

      Thank you 
      Tanmay

  • Oct 4, 2016  04:10 PM | Jian Zhang
    Image origin check FAILED
    Dear all,

    When I check the report of DTIPrep, I notice that it gives me some warning: "Image_information_checkingImage_origin_check FAILED", but the quality checking for the images is OK:

    PASS: Gradient direction #is not less than 6!
    PASS: Left Baseline images and the left b-value are ok!
    PASS: Bad gradient directions #passed in the tolerance! 

    Can you tell me what's the reason for the warning? Since for the QC result, everything is OK, is the warning important or not?

    Thank you very much.

    Best,
    Jian

    • Oct 4, 2016  04:10 PM | Martin Styner
      RE: Image origin check FAILED
      DTIPrep is based on your settings in the QC protocol. By default, image info and gradient info checks are set as "not failing overall QC" when these steps individually fail. You can interpret this behavior as a warning. In this specific case, the warning is that the image information is different from the one specified in the QC protocol, in particular the origin is different. This is actually expected, i.e. different scans should be expected to have different image origins, and thus you can safely disregard this warning. If the warning would be for differences in image size then you may be more worried (if you would assume that the images in your study should all have the same size). 

      In any case, you can easily disable this QC step in the QC protocol  and thus you would not see this warning anymore.

      Martin

      • Oct 4, 2016  04:10 PM | Jian Zhang
        RE: Image origin check FAILED
        Hi Martin,

        Thanks for the reply. I used images of subject A to create the protocol A, with the default option of DTIPrep, and then using protocol A to check the quality of subject A. Since protocol A is from subject A, why I also got the warning?

        Jian

        • Oct 5, 2016  01:10 AM | Martin Styner
          RE: Image origin check FAILED
          Is this the same image or just the same subject A (but a different image of that subject) that you used for generating the default protocol.

          Martin

          • Oct 5, 2016  07:10 AM | Jian Zhang
            RE: Image origin check FAILED
            The same subject, same image (used for generating the default protocol).

            Jian

            • Oct 5, 2016  01:10 PM | Martin Styner
              RE: Image origin check FAILED
              mmm, not sure what the problem is, likely this is a bug (Can you report this as a bug in the DTIPrep tracker?). Probably we should turn off the image-info-check by default in any case, as the value is rather limited (whereas the gradient info check is definitely useful to ensure the same diffusion gradient protocol was used for all DWIs in a given study).

              Martin

              • Oct 5, 2016  02:10 PM | Jian Zhang
                RE: Image origin check FAILED
                Thanks. I will report this in the DTIPrep tracker.

                Jian

  • Jul 16, 2016  09:07 AM | Alexander Lebedev
    QC'ed output: are bvecs already rotated?
    Hi Dear All,
    I am planning to implement DTIPrep steps in my tractography pipeline. Just wanted to double-check that the QC'ed output produced by the program is corrected for motion and eddy currents and that the bvecs are already rotated. Can anyone confirm this?
    Thank you very much for you time!
    /Alex

    • Jul 17, 2016  08:07 PM | Martin Styner
      RE: QC'ed output: are bvecs already rotated?
      Hi Alex
      ,
      yes, the bvecs are all correctly rotated as part of the motion/eddy current correction process, so the QCed DWI image is ready for use for tensor (or other diffusion model) estimation. The transformation information that is computed in the correction process is also recorded in the QC xml report. It also has a total translation and total rotation entry for quick assessment of motion per DWI (e.g. when you need to look at whether the amount of motion in the DWI data is correlated with group or covariates).

      Martin

  • Jul 2, 2016  05:07 AM | Adnan Hirad - University of Rochester
    DTIPrep Command line isntall
    Hello all,

    Thank you for your input in advance. We do DTI processing using FSL. But as of late I have been wanting to try out DTIPrep at least for some steps in our usual processing pipeline. I installed the Mac OSx DTIprep package and can use the gui. However, I am having hard time calling commands through command line in the mac terminal (I suspect that is because there path set up). I would appreciate any help with command line installation of the program (I am versatile enough with shell scripting to set a path, and did so for FSL and Freesurfer. I can't locate any instructions for how to set similar paths for DTIPrep). Please, let me know if you would like me to clarify the question.

    Regards,
    Adnan

    • Jul 6, 2016  06:07 PM | Martin Styner
      RE: DTIPrep Command line isntall
      Hi Adnan
      Did you install DTIPrep through 3D Slicer or the 1.2.7 version on the download page here at NITRC? Calling it through Slicer may be a bit of an issue (I don't think the Slicer Mac version supports the --launch command line option).

      If you downloaded from NITRC, then the setup should be hopefully straightforward, probably not unlike what you did for FSL or FreeSurfer, though I am no Mac expert.

      If the issue is libraries, then "otool" may come in handy to pinpoint which libraries are not being found.

      Martin