sotnir / NENAH-BIDS

A collaborate platform for streamlining a BIDS workflow for the NENAH study, on the linux workstation based at University of Southampton.
https://www.southampton.ac.uk/cndng
Creative Commons Zero v1.0 Universal
2 stars 2 forks source link

ANTs #66

Closed finnlennartsson closed 2 years ago

finnlennartsson commented 3 years ago

Need to install N4

dwibiascorrect: [ERROR] Could not find ANTS program N4BiasFieldCorrection; please check installation

Originally posted by @finnlennartsson in https://github.com/yukaizou2015/NENAH-BIDS/issues/3#issuecomment-845076527

yukaizou2015 commented 3 years ago

(12 June 2023, Nayan)- After installation of ANTs from the instructions we need to configure it with Cmake:

In the ANTs directory run, for /local/scratch/software/ANTs

ccmake /local/scratch/software/ANTs

Hit ‘c’ to do an initial configuration. CMake will do some checking and then present options for review. Hit ‘c’ again to do another round of configuration. If there are no errors, you’re ready to generate the make files by pressing ‘g’. Now you are back at the command line, it’s time to compile:

make

This compiles in the most resource-efficient manner. To save time, you can use multiple threads, for example:

make -j 2 see below link for more details:

https://www.greydongilmore.com/post/wsl_docs/ants/

After compiling: If you want to use ANTs scripts, copy them from the source directory Scripts/ to the bin directory where antsRegistration etc are located: cp -r ~/local/scratch/software/ANTs/Scripts/ local/scratch/software/ANTs/bin/ (make sure you create the bin directory it is not present by default) If all the scripts are not present in the Scripts folder, you can copy scripts from install directory present in: /local/scratch/software/ and then use: cp -r ~/local/scratch/software/install/ local/scratch/software/ANTs/bin/

yukaizou2015 commented 3 years ago

Success.

(base) [root@uos-15263 ANTS-build]# /opt/ANTs/bin/N4BiasFieldCorrection

COMMAND:
     N4BiasFieldCorrection
          N4 is a variant of the popular N3 (nonparameteric nonuniform normalization)
          retrospective bias correction algorithm. Based on the assumption that the
          corruption of the low frequency bias field can be modeled as a convolution of
          the intensity histogram by a Gaussian, the basic algorithmic protocol is to
          iterate between deconvolving the intensity histogram by a Gaussian, remapping
          the intensities, and then spatially smoothing this result by a B-spline modeling
          of the bias field itself. The modifications from and improvements obtained over
          the original N3 algorithm are described in the following paper: N. Tustison et
          al., N4ITK: Improved N3 Bias Correction, IEEE Transactions on Medical Imaging,
          29(6):1310-1320, June 2010.

OPTIONS:
     -d, --image-dimensionality 2/3/4
          This option forces the image to be treated as a specified-dimensional image. If
          not specified, N4 tries to infer the dimensionality from the input image.

     -i, --input-image inputImageFilename
          A scalar image is expected as input for bias correction. Since N4 log transforms
          the intensities, negative values or values close to zero should be processed
          prior to correction.

     -x, --mask-image maskImageFilename
          If a mask image is specified, the final bias correction is only performed in the
          mask region. If a weight image is not specified, only intensity values inside
          the masked region are used during the execution of the algorithm. If a weight
          image is specified, only the non-zero weights are used in the execution of the
          algorithm although the mask region defines where bias correction is performed in
          the final output. Otherwise bias correction occurs over the entire image domain.
          See also the option description for the weight image. If a mask image is *not*
          specified then the entire image region will be used as the mask region. Note
          that this is different than the N3 implementation which uses the results of Otsu
          thresholding to define a mask. However, this leads to unknown anatomical regions
          being included and excluded during the bias correction.

     -r, --rescale-intensities 0/(1)
          At each iteration, a new intensity mapping is calculated and applied but there
          is nothing which constrains the new intensity range to be within certain values.
          The result is that the range can "drift" from the original at each iteration.
          This option rescales to the [min,max] range of the original image intensities
          within the user-specified mask. A mask is required to perform rescaling.

     -w, --weight-image weightImageFilename
          The weight image allows the user to perform a relative weighting of specific
          voxels during the B-spline fitting. For example, some studies have shown that N3
          performed on white matter segmentations improves performance. If one has a
          spatial probability map of the white matter, one can use this map to weight the
          b-spline fitting towards those voxels which are more probabilistically
          classified as white matter. See also the option description for the mask image.

     -s, --shrink-factor 1/2/3/(4)/...
          Running N4 on large images can be time consuming. To lessen computation time,
          the input image can be resampled. The shrink factor, specified as a single
          integer, describes this resampling. Shrink factors <= 4 are commonly used.Note
          that the shrink factor is only applied to the first two or three dimensions
          which we assume are spatial.

     -c, --convergence [<numberOfIterations=50x50x50x50>,<convergenceThreshold=0.0>]
          Convergence is determined by calculating the coefficient of variation between
          subsequent iterations. When this value is less than the specified threshold from
          the previous iteration or the maximum number of iterations is exceeded the
          program terminates. Multiple resolutions can be specified by using 'x' between
          the number of iterations at each resolution, e.g. 100x50x50.

     -b, --bspline-fitting [splineDistance,<splineOrder=3>]
                           [initialMeshResolution,<splineOrder=3>]
          These options describe the b-spline fitting parameters. The initial b-spline
          mesh at the coarsest resolution is specified either as the number of elements in
          each dimension, e.g. 2x2x3 for 3-D images, or it can be specified as a single
          scalar parameter which describes the isotropic sizing of the mesh elements. The
          latter option is typically preferred. For each subsequent level, the spline
          distance decreases in half, or equivalently, the number of mesh elements doubles
          Cubic splines (order = 3) are typically used. The default setting is to employ a
          single mesh element over the entire domain, i.e., -b [1x1x1,3].

     -t, --histogram-sharpening [<FWHM=0.15>,<wienerNoise=0.01>,<numberOfHistogramBins=200>]
          These options describe the histogram sharpening parameters, i.e. the
          deconvolution step parameters described in the original N3 algorithm. The
          default values have been shown to work fairly well.

     -o, --output correctedImage
                  [correctedImage,<biasField>]
          The output consists of the bias corrected version of the input image.
          Optionally, one can also output the estimated bias field.

     --version
          Get Version Information.

     -v, --verbose (0)/1
          Verbose output.

     -h
          Print the help menu (short version).

     --help
          Print the help menu.

Added path to bashrc_yz23e20: