TEND-HELIX(1)

πŸ“¦ version 1.11.0, in fedora 43, fedora 44

🌸 TEND-HELIX(1) 🌸

okay bestie, welcome to the User Commands section of the manual, this is tend-helix and she is literally the moment πŸ’…


✨ NAME ✨

tend-helix β€” generate twisting helical tensor field πŸŒ€πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

tend helix [-s <size>] [-ip <image orientation>] [-mp
<measurement orientation>] [-b <boundary>] [-r <little radius>] [-R
<big radius>] [-S <spacing>] [-a <angle>] [-nit] [-ev <eigenvalues>]
[-bg <background>] [-v <verbose>] [-o <nout>]

like look at her go, so many flags, so much range πŸ‘‘


πŸŽ€ DESCRIPTION πŸŽ€

So what she does: she generates a twisting helical tensor field. And why do we care, you ask? Because the whole point of this field is to debug how coordinate systems get handled in tensor field visualization. It's giving QA queen, fr fr πŸ”βœ¨

Here's the tea πŸ«–: the β€œspace directions” and β€œspace origin” fields of the NRRD header determine the mapping from coordinates in the index space of the image β†’ coordinates in the world space in which the image is sampled. Meanwhile the β€œmeasurement frame” field determines the mapping from the coordinates of the tensor itself β†’ coordinates of the world space.

And when all of that is handled correctly?? The region of high anisotropy is a right-handed helix β€” same as DNA πŸ§¬πŸ’– no cap.

Using differing axes sizes (that's via -s) helps make sure the raster ordering of axes is correct. Slay. And on top of that, the tensors twist relative to the helix, which is exactly what exposes the handling of the measurement frame.

Then β€” and this is the part that eats β€” if you trace paths guided by the principal eigenvector of the tensors, along the surface of the helical cylinder, you get another right-handed helix πŸŒ€ as if the the tensor field is modeling the result of twisting a set of fibers into single-stranded helical bundle. iconic behavior honestly.


πŸ’… OPTIONS πŸ’…

  • -s <size> β€” sizes along fast, medium, and slow axes of the sampled volume, often called β€œX”, β€œY”, and β€œZ”. Bestie, it is best to use slightly different sizes here, to expose errors in interpreting axis ordering (e.g. -s 39 40 41) 🎯 (3 ints)
  • -ip <image orientation> β€” quaternion quotient space orientation of image (3 doubles); default: 0 0 0 🌸
  • -mp <measurement orientation> β€” quaternion quotient space orientation of measurement frame (3 doubles); default: 0 0 0 πŸŽ€
  • -b <boundary> β€” parameter governing how fuzzy the boundary between high and low anisotropy is. Use -b 0 for no fuzziness (double); default: 10 ☁️
  • -r <little radius> β€” (minor) radius of cylinder tracing helix (double); default: 30 πŸ“
  • -R <big radius> β€” (major) radius of helical turns (double); default: 50 πŸ’œ
  • -S <spacing> β€” spacing between turns of helix (along its axis) (double); default: 100 πŸ“
  • -a <angle> β€” maximal angle of twist of tensors along path. There is no twist at helical core of path, and twist increases linearly with radius around this path. Positive twist angle with positive spacing resulting in a right-handed twist around a right-handed helix πŸŒ€ (double); default: 60
  • -nit β€” changes behavior of twist angle as function of distance from center of helical core: instead of increasing linearly as describe above, be at a constant angle πŸ‘€
  • -ev <eigenvalues> β€” eigenvalues of tensors (in order) along direction of coil, circumferential around coil, and radial around coil. (3 doubles); default: 0.006 0.002 0.001 🌈
  • -bg <background> β€” eigenvalue of isotropic background (double); default: 0.5 🫢
  • -v <verbose> β€” verbose output (int); default: 1 πŸ—£οΈ
  • -o <nout> β€” output file (string) default: - πŸ’Ύ

πŸ‘‘ SEE ALSO πŸ‘‘


lowkey if any of this is confusing, just go read tend(1) too, she's the main character and we love her πŸ’–

that's the whole page bestie, you ate that 🍽️✨

this was the User Commands version, April 2021, from the source/version line TEND-HELIX(1) β€” mwah, go generate a helix, ily πŸŽ€πŸ’…πŸŒ€

πŸ“¦ where this page comes from