Sct_register_multimodal error


#1

Hey everyone!

I’m executing the following command (which normally works, to register fMRI to T2 anatomical):

sct_register_multimodal -i ../Segmentation/mean_for_seg.nii.gz \
                -d ../../Structural/t2.nii.gz \
                -iseg ../Segmentation/mask_sc.nii.gz -dseg ../../Structural/t2_seg.nii.gz -param step=1,type=seg,algo=slicereg,metric=MeanSquares:step=2,type=seg,al

but get the following response:

Estimate transformation
isct_antsRegistration --dimensionality 3 --transform 'syn[0.5,3,0]' --metric 'MI[dest_RPI.nii,src.nii,1,32]' --convergence 0 --shrink-factors 1 --smoothing-sigmas 0mm --restrict-deformation 1x1x0 --output '[step0,src_regStep0.nii]' --interpolation 'BSpline[3]' --verbose 1 # in /tmp/sct-20191016195101.385408-VbDSdx

--
ESTIMATE TRANSFORMATION FOR STEP #1

Apply transformation from previous step
sct_apply_transfo -i src_seg.nii -d dest_seg_RPI.nii -w warp_forward_0.nii.gz -o src_seg_reg.nii -x nn # in /tmp/sct-20191016195101.385408-VbDSdx
Registration parameters:
  type ........... seg
  algo ........... slicereg
  slicewise ...... 0
  metric ......... MeanSquares
  iter ........... 10
  smooth ......... 0
  laplacian ...... 0
  shrink ......... 1
  gradStep ....... 0.5
  deformation .... 1x1x0
  init ...........
  poly ........... 5
  dof ............ Tx_Ty_Tz_Rx_Ry_Rz
  smoothWarpXY ... 2
isct_antsSliceRegularizedRegistration -t 'Translation[0.5]' -m 'MeanSquares[dest_seg_RPI_crop.nii,src_seg_reg_crop.nii,1,4,Regular,0.2]' -p 5 -i 10 -f 1 -s 0 -v 1 -o '[step1,src_seg_reg_crop_regStep1.nii]' # in /tmp/sct-20191016195101.385408-VbDSdx
Traceback (most recent call last):
  File "/home/shernand/Lumbar_Cord/sct_3.2.7/scripts/sct_register_multimodal.py", line 802, in <module>
    main()
  File "/home/shernand/Lumbar_Cord/sct_3.2.7/scripts/sct_register_multimodal.py", line 497, in main
    warp_forward_out, warp_inverse_out = register(src, dest, paramreg, param, str(i_step))
  File "/home/shernand/Lumbar_Cord/sct_3.2.7/scripts/sct_register_multimodal.py", line 634, in register
    status, output = sct.run(cmd, param.verbose)
  File "/home/shernand/Lumbar_Cord/sct_3.2.7/scripts/sct_utils.py", line 476, in run
    raise RunError(output)
sct_utils.RunError: Loop0 polyerr: 2.73475 image-metric 0.253882
polyx 9.6445 -53.3536 114.411 -107.4 37.0864 iceptx 2.48772
polyy -4.49936 47.5941 -130.286 139.772 -52.5826 icepty -1.02022
/home/sct_3.2.7/bin/sct_launcher: fork: retry: No child processes
Total processing time: 19 min 52 s

How should I interpret this error? What should I do?


#2

Hi @shernand,

Maybe the source and destination segmentations are too far apart. I suggest you replace slicereg by centermass. It produces similar results, and centermass will not cause this bug.

Cheers,
Julien