DCAN-Labs/abcd-hcp-pipeline

Possible ants bracket expansion bug

Opened this issue · 0 comments

What happened?

I ran into this error in the PostFreeSurfer stage that in searching looks like it may be related to an issue with ANTs known as the "bracket expansion bug": ANTsX/ANTs#712

What command did you use?

Routine Docker execution in PostFreeSurfer stage.

What version of the abcd-hcp pipeline are you using?

v0.1.0

Directory Structure

No response

Relevant log output

Truncated relevant portion from the 'AtlasRegistration to MNI152' section on calling /opt/ants/antsRegistrationSyN.sh

.
.
.
  PixelContainer:
    ImportImageContainer (0x4613b20)
      RTTI typeinfo:   itk::ImportImageContainer<unsigned long, double>
      Reference Count: 1
      Modified Time: 3052
      Debug: Off
      Object Name:
      Observers:
        none
      Pointer: 0x7f23dff9a010
      Container manages memory: true
      Size: 7221032
      Capacity: 7221032

     Weighting = 1
     Sampling strategy = none
     Number of bins = 32
     Radius = 4
     Sampling percentage  = 1
   Transform = SyN
     Gradient step = 0.1
     Update field sigma (voxel space) = 3
     Total field sigma (voxel space) = 0
     Update field time sigma = 0
     Total field time sigma  = 0
     Number of time indices = 0
     Number of time point samples = 0
Registration using 3 total stages.

Stage 0
  iterations = 2
  convergence threshold = 1e-06
  convergence window size = 10
  number of levels = 1
  using the Mattes MI metric (number of bins = 32, weight = 1)
  preprocessing:  winsorizing the image intensities



ERROR:  The number of shrink factors does not match the number of levels.
Shrink Factors: 4
Number Of Levels: 1



 antsApplyTransform

Add any additional information or context about the problem here.

I was able to work around by adding 'set -f' in the ansRegistrationSyN.sh script within the Docker container with the following command:
docker run -it --entrypoint=/bin/bash -v /data/bids:/bids_input -v /data/bids/derivatives/abcd-hcp-pipeline:/output -v /freesurfer-license.txt:/license.txt dcanumn/abcd-hcp-pipeline:v0.1.0 -c 'sed -i "2i set -f" /opt/ants/antsRegistrationSyN.sh; /entrypoint.sh /bids_input /output --freesurfer-license=/license.txt --ncpus 12 --participant-label 123 --session-id 01 --stage PostFreeSurfer:PostFreeSurfer'

You may want to consider updating the ANTs version in the Docker container.