[MINC-users] nonlinear registration bombs with 0.5 mm isotropic voxels

Patrick Bermudez patrick at bic.mni.mcgill.ca
Wed May 27 16:33:06 EDT 2009


Dear MINCphilic colleagues,

I am experiencing a problem with a nonlinear fit of 0.5 mm isotropic
volumes.  The script exits at the first iteration of the first fit.
I've placed everything I'm using here:

/data/scratch/scratch2/patrick

and the command I'm using is:

./04mm_NLfit.pl -source_mask 0.5mm_lsq12_subject_004_t1_nuc_mask.mnc
-target_mask 0.5mm_icbm_avg_152_t1_tal_nlin_symmetric_VI_mask.mnc
0.5mm_lsq12_subject_004_t1_nuc.mnc
0.5mm_icbm_avg_152_t1_tal_nlin_symmetric_VI.mnc nl.xfm


The resulting minctracc debug output looks like this:

===== Debugging information from minctracc =====
Data filename       =
/tmp/04mm_NLfit.pl-6uIu8oTx/0.5mm_lsq12_subject_004_t1_nuc_8_blur.mnc
Model filename      =
/tmp/04mm_NLfit.pl-6uIu8oTx/0.5mm_icbm_avg_152_t1_tal_nlin_symmetric_VI_8_blur.mnc
Data mask filename  = 0.5mm_lsq12_subject_004_t1_nuc_mask.mnc
Model mask filename = 0.5mm_icbm_avg_152_t1_tal_nlin_symmetric_VI_mask.mnc
Input xform name    =
Output filename     =
/tmp/04mm_NLfit.pl-6uIu8oTx/0.5mm_lsq12_subject_004_t1_nuc_0.xfm
Step size           = 16.000000 16.000000 16.000000
Sub-lattice dia     = 48.000000 48.000000 48.000000
Objective function  = cross correlation (threshold = 0.000000 0.000000)
Transform linear    = TRUE
Transform inverted? = FALSE
Transform type      = 9
Transform matrix    =    1.0000    0.0000    0.0000    0.0000
                         0.0000    1.0000    0.0000    0.0000
                         0.0000    0.0000    1.0000    0.0000
Transform center   =    0.000    0.000    0.000
Transform rotation   =    0.000    0.000    0.000

Transform trans    =    0.000    0.000    0.000
Transform scale    =    1.000    1.000    1.000

This run will use sub-lattice correlation (type 5) between the two input
vols.
Source volume size: 361  by 433  by 361
Source voxel =    0.500    0.500    0.500
min/max value=    0.001   80.845
min/max voxel=    0.000 4095.000

Target volume size: 361  by 433  by 361
Target voxel =    0.500    0.500    0.500
min/max value=   -0.000   65.645
min/max voxel= -32768.000 32767.000


  using input transformation to get initial parameters:
   Center of rot/scale not forced, will be set to : 0.000000 0.000000
0.000000
AFTER init_params()
Transform matrix    =    1.0000    0.0000    0.0000    0.0000
                         0.0000    1.0000    0.0000    0.0000
                         0.0000    0.0000    1.0000    0.0000

Transform center   =    0.000    0.000    0.000
Transform rotations  =    0.000    0.000    0.000
Transform trans    =    0.000    0.000    0.000
Transform scale    =    1.000    1.000    1.000
Transform shear    =    0.000    0.000    0.000

In set_up_lattice, xyzv[axes] = 2, 1, 0, -1
slice lim 0 9
row lim   1 12
col lim   1 9
thresh =    0.00000    0.00000
In set_up_lattice, xyzv[axes] = 2, 1, 0, -1
Target volume is smallest
Lattice step size  =   16.000   16.000   16.000
Lattice start      =  -64.000 -106.000  -62.000
Lattice count      =        9       12       10

In append_new_default_deformation_field...
in append new def, the start is:  -64.000 -106.000  -62.000
in append_new_default_deformation_field:
        count_extended= 3 15 17 14
 point: -104.000 -146.000 -102.000
 start: -104.000 -146.000 -102.000
 wstrt: -104.000 -146.000 -102.000
 voxel:    0.000    0.000    0.000
 dirs:    1.000    0.000    0.000
 dirs:    0.000    1.000    0.000
 dirs:    0.000    0.000    1.000
There are 1 feature pairs
0: [5] [1.00000]
/tmp/04mm_NLfit.pl-6uIu8oTx/0.5mm_lsq12_subject_004_t1_nuc_8_blur.mnc
<->
/tmp/04mm_NLfit.pl-6uIu8oTx/0.5mm_icbm_avg_152_t1_tal_nlin_symmetric_VI_8_blur.mnc
A sub-lattice is needed for at least one feature
Sub-lattice dia     = 48.000000 48.000000 48.000000
orig transform is 2 long
all_until_last is 1 long
inside do_nonlinear: thresh:     0.0000     0.0000
    443     433 -> 0.00440087


Debug info from do_nonlinear_optimization---------------
Initial corr         = 0.004401
Source vol threshold = 0.000000
Target vol threshold = 0.000000
Iteration limit      = 20
Iteration weight     = 1.000000
xyzv                 =   3   2   1   0
number_dimensions    = 3
num_of_dims_to_opt   = 3
smoothing_weight     = 1.000000
loop                 = (1 13) (1 16) (1 14)
current_def_vector   = 0.000000 0.000000 0.000000

Fitting STRATEGY ----------
  This fit will use local simplex optimization and
  Simplex radius =   32.00 (voxels) or   16.00(mm)
    global smoothing.
  The similarity function will be evaluated using tri-linear interpolation
    on a ellipsoidal sub-lattice with a radii of
    6 nodes across the diameter
      96.00,  96.00,  96.00  (data voxels),
      48.00   48.00   48.00 (mm) width
      19.20   19.20   19.20 (data voxels) per node
       9.60    9.60    9.60 (mm) per node
-----------------------
Iteration  1 of 20
Died at ./04mm_NLfit.pl line 285.


A colleague has tracked down the following (in case it helps): minctracc
aborts in function "go_get_samples_with_offset" (sub_lattice.c:612) when
it attempts to make use of a null/zero Volume pointer (pointer
"sshort_ptr", line 612).  The indices themselves appear to be within range.

Any and all help will be greatly appreciated.  Cheers.

Patrick


More information about the MINC-users mailing list