Documentation

elastix

The registration toolbox behind the FANC and BANC transforms — what to install, and the detail that catches people out.

Most of the bridging transforms VFB and the Jefferis lab publish are CMTK registrations. The FANC and BANC transforms are not: they are elastix, so moving data into or out of those spaces needs elastix installed as well.

If you are not working with FANC or BANC, you do not need this.

What to install

navis looks for a transformix executable on your PATH and uses the elastix lib directory that sits beside it. It is therefore the precompiled command-line binaries you want, from the elastix releases, unpacked somewhere on your PATH.

The Python package itk-elastix and the SimpleElastix bindings are a different interface to the same algorithms. They are useful in their own right, but installing them does not give navis the transformix binary it looks for.

The library-path catch

elastix needs its own lib directory on the dynamic library search path — LD_LIBRARY_PATH on Linux, DYLD_LIBRARY_PATH on macOS — or the binaries fail to start. navis sets this up itself when it imports, so transforms run from inside a Python session generally work once the binaries are unpacked. Running transformix directly from a shell may need the variable set by hand; the release archives ship a script for this.

Note that macOS strips DYLD_* variables from protected processes under SIP, which is a recurring source of confusion when the same setup works in one context and not another.

Where next

Which spaces need elastix, and how a route between two spaces is chosen, is covered on the bridging registrations page. flybrains is what actually invokes it from Python.

Documentation and manual: elastix.dev and the project wiki. Source: SuperElastix/elastix.