User Guide

Use cases

  • montage (or “stitching” or “registration”): stitching of images in a single section of tissue. Even for a section comprised of thousands of images, these solves can generally be performed on a single workstation or compute node in under a minute.
  • rough alignment: stitching of downsampled images in 3D. Typically each section is a single downsampled image. Even for thousands of downsampled sections, these solves can generally be performed on a single workstation or compute node in a few minutes. Compared to montages the computation time is increased due to the underlying database structure. Compared to fine alignment, this is just a very small 3D solve.
  • fine alignment: these solves comprise thousands to millions of images across many z values. The solves are memory-limited and the size of the solve determines whether they can be run on a single node, need distribution across multiple nodes, and, potentially, whether one should choose a direct or iterative distributed solver.

The size of a solve is determined by the number of images, the number of point correspondences derived between the images, and, the number of degrees-of-freedom attributed to each image.

Important Dependencies

  • render-python This package provides underlying python interfaces to render
  • argschema This package provides the means for setting the many parameters that are inputs to this solver.
  • scipy.sparse For single-node solves, this package is used for factorization and solving.
  • PETSc This is a large package that supports distributed linear algebra and many different preconditioners and solvers.
  • Singularity The compilation and use of PETSc is a steep learning curve. This repo includes a PETSc build and a solver compilation in singularity containers for ease-of-use.

Detailed Argument Descriptions

see BigFeta schema

Distributed Usage