ANTSSLICEREGU...DREGISTRATION(1)

πŸ“¦
version 2.6.4 Β· 2 versions
, in ubuntu resolute

πŸŽ€ ANTSSLICEREGU...DREGISTRATION(1) πŸŽ€

User Commands manual page, bestie. Let's get into it πŸ’–

✨ NAME ✨

antsSliceRegularizedRegistration - part of ANTS registration suite πŸ¦‹

✨ DESCRIPTION ✨

πŸ“£ COMMAND:

antsSliceRegularizedRegistration

okay so this one is a user-level application for slice-by-slice translation registration πŸ’… It's giving precision. The results get regularized in z using polynomial regression, and it's built for spinal cord MRI 🧠

Only one stage is supported, and a stage is made of a transform, an image metric, and iterations, shrink factors, and smoothing sigmas for each level. It's specialized for 3D data, so the fixed image is 3D and the moving image is 3D too. Registration happens slice-by-slice first, then gets regularized in z. The -p flag controls the polynomial degree, and -p 0 means no regularization ✨

Shoutout to B. Avants for implementing it and Julien Cohen-Adad for conceiving it 🫢

πŸ“€ Outputs:

  • OutputPrefixTxTy_poly.csv: the polynomial fit to Tx & Ty πŸ“ˆ
  • OutputPrefix.nii.gz: the transformed image πŸ–ΌοΈ

πŸ§ͺ Example call:

antsSliceRegularizedRegistration -p 4 --output [OutputPrefix,OutputPrefix.nii.gz] --transform Translation[0.1] --metric MI[ fixed.nii.gz, moving.nii.gz , 1 , 16 , Regular , 0.2 ] --iterations 20 --shrinkFactors 1 --smoothingSigmas 0

✨ OPTIONS ✨

  • -m, --metric β€” pick your image metric, there's a whole menu here πŸ“ The forms look like this:
CC[fixedImage,movingImage,metricWeight,radius,<samplingStrategy={Regular,Random,None}>,<samplingPercentage=[0,1]>]

MI[fixedImage,movingImage,metricWeight,numberOfBins,<samplingStrategy={Regular,Random,None}>,<samplingPercentage=[0,1]>]
MeanSquares[fixedImage,movingImage,metricWeight,radius,<samplingStrategy={Regular,Random,None}>,<samplingPercentage=[0,1]>]
GC[fixedImage,movingImage,metricWeight,radius,<samplingStrategy={Regular,Random,None}>,<samplingPercentage=[0,1]>]

There are four image metrics available: GC (global correlation), CC (ANTS neighborhood cross correlation), MI (mutual information), and MeanSquares (mean-squares intensity difference) πŸ”₯

⚠️ Heads up: the metricWeight is currently not used. It's just a temporary placeholder until multivariate metrics are available for a single stage.
  • -x, --mask mask-in-fixed-image-space.nii.gz β€” a fixed image mask that limits which voxels the metric considers 🎯
  • -n, --interpolation β€” choose your interpolation vibe. Options:
Linear
NearestNeighbor
MultiLabel[<sigma=imageSpacing>,<alpha=4.0>]
Gaussian[<sigma=imageSpacing>,<alpha=1.0>]
BSpline[<order=3>]
CosineWindowedSinc
WelchWindowedSinc
HammingWindowedSinc
LanczosWindowedSinc
GenericLabel[<interpolator=Linear>]

ITK has a whole buffet of interpolation options, and we've made all of them available 🍰

  • -t, --transform β€” pick your transform 🧚 Options:
Translation[gradientStep]
Rigid[gradientStep]
Similarity[gradientStep]

There are several transform options. The gradientStep (or learningRate) characterizes the gradient descent optimization, and it gets scaled appropriately for each transform using the shift scales estimator. Subsequent parameters are transform-specific and can be figured out from the usage πŸ’œ

  • -i, --iterations MxNx0... β€” specify the number of iterations at each level πŸ”
  • -s, --smoothingSigmas MxNx0... β€” specify the amount of smoothing at each level 🌫️
  • -f, --shrinkFactors MxNx0... β€” specify the shrink factor for the virtual domain (typically the fixed image) at each level πŸ“
  • -o, --output β€” set your output vibes πŸ¦‹ The format is:
[outputTransformPrefix,<outputWarpedImage>,<outputAverageImage>]

Specify the output transform prefix (the output format is .nii.gz). Optionally, you can warp the moving image to the fixed space and, if the inverse transform exists, you can also output the warped fixed image ✨

  • -h, --help β€” print the help menu (short version). <VALUES>: 1, 0
  • -v, --verbose β€” verbose option. <VALUES>: 0
  • -p, --polydegree β€” the degree of polynomial, up to zDimension-2. This is the main polynomial degree control, and 0 means no regularization 🌈 It can also be a vector, written like 2x2x1 for a 3-parameter transform (e.g. rigid). That would regularize the translation with a 2nd degree polynomial and the rotation with a linear function πŸ‘‘

🌸 And that's the whole tea, bestie! Source: antsSliceRegularizedRegistrat..., dated December 2025 πŸ’…βœ¨

πŸ“¦ where this page comes from