midas(1)                    General Commands Manual                   midas(1)



NAME
       midas - manual image alignment for MRC files.

SYNOPSIS
       midas  [options]  image_file  [transform_file]

DESCRIPTION
       Midas allows one to assess and adjust the alignment between pairs of
       images.  It is typically used to align images from serial sections and
       to correct errors in a pre-alignment of tilt series images by cross-
       correlation.  It can also be used to adjust the alignment between adja-
       cent pieces in a montaged image.  There are interactive controls for
       adjusting translation, rotation, magnification (scale), and stretch
       along an axis.  Linear transformations are used to apply the transla-
       tion, rotation or distortion.  This means that the same amount of
       translation, rotation or distortion happens everywhere in an image.  A
       nonlinear transformation, or warping, can be added by marking selected
       points and locally aligning images at those locations.

       All transformation parameters can be adjusted by dragging a point on
       the image with the mouse.  The help menus describe the functions of
       each mouse button, as well as the operation of the various controls and
       hot keys.  The controls also have tooltips with brief summaries of
       their function.

       Midas also allows one to adjust the brightness and contrast of each
       image independently to ease comparisons.  The program can produce a
       copy of the image stack with these individual contrast changes applied
       (but not with the transformations applied).

       The input image files for Midas must be MRC files.  They can be byte,
       integer, or real images, and can also be RGB images, which will be dis-
       played in grayscale.  The latter option can be used to align model con-
       tours displayed on an image by snapshotting the Zap window in 3dmod
       and creating a color MRC stack with tif2mrc.

       Information on using Midas with a high-DPI monitor is provided in sec-
       tion 1.13 of the IMOD Guide.


   Alignment modes
       Midas maintains a list of transformations, one for each section in the
       image file.  At any given time, one section is the "current" section,
       it is displayed with its transformation applied to it, and any adjust-
       ments in alignment modify that transform.  Another section is the "ref-
       erence" section to which the current section is being aligned.  Other
       aspects of the way that transforms are treated depend on which mode
       Midas is operating in: local, global, or reference.

       In local alignment mode, each image section is usually aligned to the
       previous section.  The transformations in this mode are sometimes
       referred to as "xf" transforms, which are suitable only for aligning
       one image to another.  The program xftoxg is used to convert xf
       transforms into the "xg" transforms that are suitable for transforming
       the whole image stack into alignment.  In this mode, Midas displays the
       reference section without transforming it, and any changes in transfor-
       mation are applied only to the transform of the current section.

       In global alignment mode, each image section is effectively aligned to
       the entire image stack.  The transformations are of the global (xg)
       type, ready to use to transform all of the images into alignment.
       There are two differences in program operation that achieve this:
       first, the reference section's transformation is applied whenever it is
       displayed; second, when you modify the transform of the current sec-
       tion, the transforms of all following sections are changed by the same
       amount.  Global alignment may be suitable for aligning small sets of
       sections because of its simplicity.  However, it is not recommended for
       larger numbers of sections (more than 20-30).  Local alignment followed
       by the use of xftoxg is preferable because it will automatically
       keep the aligned images from drifting out of the field of view.  It
       will also preserve trends in the data; for example, if you align using
       features that gradually get smaller, global alignment may eliminate
       this size change, while local alignment will preserve it, even if every
       transform over the series includes a size change.

       If you do want to use global alignment mode, you may want to start in
       the middle of the image stack and work forward from there.  Then, turn
       off the "Keep Curr-Ref Diff" box, make the middle section be the refer-
       ence again and make the previous section be the current section.  Turn
       the "Keep Curr-Ref Diff" box back on again and work backwards to the
       beginning of the stack.

       Reference alignment mode is used to align each image in a stack to a
       single image that may be in another image file.  The other image file
       is specified with the -r option.  In this mode, advancing or backing up
       by a section changes only the current section unless you turn on the
       "Keep Curr-Ref Diff" option; with that option off, the reference sec-
       tion is changed only by typing a new number into its text box.  If your
       reference section happens to be in the same file as the images being
       aligned to it, then you can either specify that file as both the refer-
       ence and the image file, or start Midas in local alignment mode then
       turn off the "Keep Curr-Ref Diff" box and set the reference and current
       sections independently.

       In global or reference alignment mode, a menu option can be used to
       transform a model file using the transformations available for each
       section, just as with imodtrans.


   Warping Images
       Warping can introduced by adding a set of points, referred to as con-
       trol points, and applying an appropriate shift at each point.  This
       warping is in addition to whatever linear transformation has been set.
       To start adding points, turn on "Add/edit warp points".  You can then
       add a point with the middle mouse button and shift images into align-
       ment at that location with either the left mouse button, the X and Y
       translation buttons, or the arrow keys.  The shift at the point is
       shown on the lines with the X and Y translation buttons, while the
       translation component of the linear transformation is shown on a sepa-
       rate line.

       Until there are at least four points, shifting a control point will
       just change the linear transformation.  With one point, it will shift
       the whole image; with two points, shifting at one point will rotate and
       magnify the image to keep it stationary at the other point; with three
       points, shifting at one point will stretch the image to keep it aligned
       at the other two points.  You can thus use three points in this way to
       set a linear transformation.  If the linear transformation is already
       set, you should probably add four or more points before shifting any of
       them.  Once there are at least four points, you can no longer turn off
       the option to edit warp points because the linear translation is fixed.

       Make the control points widely spaced and distributed over as much of
       the area as possible.  The program will warp the image inside the
       region bounded by the control points but has to use extrapolated trans-
       formations outside that region.

       A control point is considered to be fixed on the reference image.  You
       can thus add the point at a recognizable feature on the reference
       image, then shift the current image to center that feature on the
       point.  You can change the fixed location of the point by clicking with
       the right mouse button.  The currently active point is shown in yellow
       and other points are shown in red.  Click with the left mouse button to
       select the nearest point as the active point.  There is a menu entry
       and a hot key for deleting the current point.

       Warping transformations can be specified only in local or reference
       alignment mode.  Xftoxg can convert them to global transformations.
       They can be used interchangeably with linear transforms in Xfprod-
       uct(1), Xfinverse, Newstack, Blendmont, Xfmodel, and serial
       tomogram joining.


   Storage of Transforms
       The transformation for the current section is automatically stored on
       the internal list of transforms when you change to a different section.
       Before changing sections, you can restore the transform to the stored
       value using an entry in the Edit menu.  There are also menu entries to
       reset to the unit transform (no translations, rotations, etc.) and to
       store the current transform on the internal list.  You can use the lat-
       ter to save a transform that you like before trying to improve on it.

       If the name of a file of transforms is entered after the image filename
       when first starting Midas, then Midas will read transforms from this
       file, and images will initially be displayed with these transforms.
       This file then becomes the default file into which Midas will save
       transforms.  Transforms can be saved into a different file with the
       File menu entry "Save As".  After doing so, that file becomes the
       default file for successive save operations.  In either case, the first
       time that Midas saves to a file, it will make a backup of an existing
       file by that name by adding ~ at the end.  If the name of a transform
       file that does not yet exist is entered on the command line, Midas will
       create and save into that file.


   Using Global Rotations and Cosine Stretching
       Midas can rotate all images by a common amount and allow you to adjust
       transformations in the rotated images.  This ability, invoked with the
       -a option, can be used to make the tilt axis vertical when aligning a
       tilt series.  When the program is started in this mode, there is a con-
       trol for adjusting the global rotation angle.  There is also a check
       box to constrain translations with the mouse to the X direction, which
       is usually the only direction that needs fixing in a tilt series pre-
       aligned by correlation.  This rotation provides a convenient way to
       look at tilted images but should not affect the alignment; the trans-
       formations output by the program are independent of the global rotation
       angle.  However, the X and Y translations that are displayed and
       adjusted in Midas are relative to the rotated images and will change
       with the angle.  Global rotations can be used in local or global align-
       ment mode.

       Midas can also apply cosine stretching of images if a file of tilt
       angles is provided with the -t option.  It will stretch the current
       image by the ratio of the cosines of the current and reference image
       tilt angles.  The stretch is always along the X axis after applying a
       global rotation, so invoking this option turns on the global rotation
       mode.  With such a stretch, it should be easier to find the shift that
       aligns the images.  If stretched images do not line up well, even when
       looking just at features on one Z plane, then an offset can be applied
       to the tilt angles.  As with global rotation, this stretching does not
       affect the alignment transforms output by the program, but the X trans-
       lation that is displayed in the program does depend on the stretching.
       Cosine stretching cannot be used in global or reference alignment mode.


   Aligning Chunks of Sections
       Midas has another mode of operation that can be used to align tomograms
       of serial sections.  This is referred to as "chunk" alignment because
       sections are considered in chunks, where a chunk corresponds to all of
       the slices from one tomogram.  In this mode, all of the sections in a
       chunk are given the same transformation alignment, so there is only one
       transformation per chunk.  This mode is a variant of the local align-
       ment mode, with the additional constraint that the alignment is always
       between adjacent pairs of chunks.  When adjusting the transformation
       between a pair of chunks, you can view any pair of sections from the
       two chunks, and you are also free to scroll through the slices in a
       chunk to discern trends in position.  Activate this mode by specifying
       the number of sections in each chunk with the -c option.  To get one
       transformation per tomogram, do not divide the slices from the top and
       bottom of tomogram into separate chunks.


   Fixing Montage Overlaps
       When the pieces of a montage need to be shifted into registration with
       each other, Blendmont uses the image displacements in the overlap
       zones between adjacent pieces to determine how to shift the pieces.
       Sometimes Blendmont does not determine a displacement correctly, lead-
       ing to erroneous registration of the pieces.  To use Midas to correct
       the displacements, start Midas with the -p option followed by the name
       of the piece list file.   After the montaged image file name, in place
       of a transformation file, enter the name of the edge correlation dis-
       placement (.ecd) file produced by Blendmont.  You can then display and
       adjust the overlap between any pair of adjacent pieces on any section.
       Overlap zones are referred to as edges and are of two types: X edges
       between pieces in a horizontal row, and Y edges between pieces in a
       column.  X edges are numbered sequentially from left to right, first in
       the bottom row, then in the next row, etc.  Y edges are numbered from
       bottom to top in columns, with the leftmost column being the first one.
       The edge number controls, just below the section controls, allow one to
       select any given edge by this number, but they also allow you to see
       and select an edge by the X and Y frame number of the lower piece (the
       one to the left of an X edge, or below a Y edge).  To find edges that
       need fixing, it is usually more convenient to use the buttons provided
       for selecting one of the edges with the worst displacement errors.

       When two pieces are displayed, their X and Y translation values corre-
       spond to the image displacement at that edge, originally measured by
       Blendmont and possibly adjusted within Midas.  The displacements for
       all of the edges are used to determine the optimal shifts of the piece.
       When these shifts are applied to the pieces, they produce displacements
       at all of the edges, displacements that may or may not match the indi-
       vidual displacements measured from the images there.  A mismatch at an
       edge is a displacement error, which has X and Y components.  Large dis-
       placement errors arise when the displacement measured at an edge does
       not align the images there.  Manually aligning images at an edge with a
       large error will thus reduce the error there and also at other edges
       involving the same pieces.

       If there is only one edge with a mismeasured displacement, then solving
       for the shifts using all of the other edges while leaving out the one
       in question will often imply a perfectly good displacement at that
       edge.  The difference between this displacement and the measured one is
       called the "leave-out error", and pushing the "Apply Leave-out Error"
       button will adjust the edge to the displacement implied by all of the
       other edges.  If an edge shows a visible image mismatch that appears to
       correspond to the leave-out error, then pushing this button is a useful
       shortcut for aligning the images by hand.

       One must be careful to examine both of the edges with the top two
       errors when the erroneous edge involves a corner piece in the montage,
       a not infrequent occurrence.  In this case, the error will be equally
       divided between the two edges of the corner piece, even though there is
       an erroneous measurement at only one of them.  For similar reasons, a 2
       by 2 montage with an erroneous displacement will spread the error
       equally among all four edges.

       If the montage consists of only one row or one column, all errors will
       be zero regardless of whether the displacements have been measured cor-
       rectly.  Visual examination of the edges is the only way to detect and
       correct errors in the measured displacements.

       When there are more than 10 pieces, the program can find a more robust
       solution for the shifts between pieces that can give less weight to or
       eliminate edges that have obviously erroneous displacement.  This is
       referred to as robust fitting.  Its main value in Midas is to make the
       edges with bad diplacements show up with particularly high errors.  The
       degree of robustness is controlled by a criterion value with a default
       value of 1.  With the default value, some edges that have good dis-
       placements may be downweighted inappropriately and thus show up as hav-
       ing a high error even though they are well-aligned.  A higher criterion
       will prevent this from happening but may fail to identify some bad
       edges as outliers (values up to about 1.5 should be tried).

       If an edge with a good alignment shows up as having a large error with
       robust fitting enabled, use the following strategy:
       1) Continue to fix or exclude other edges with high errors.  The error
       of the well-aligned edge may drop as other errors around it are
       resolved.
       2) If the well-aligned edge still has a high error after other edges
       with high errors have been fixed, examine all of the edges around the
       two pieces below and above this edge.  You may find a small misalign-
       ment.
       3) If you still can not find a misaligned edge, raise the fitting cri-
       terion until the error becomes normal, or ignore the large error.  Note
       that if you are going to use the robust fitting option in Blendmont,
       you would need to set the criterion to this same value to prevent a
       misalignment across this edge.


OPTIONS
       Midas accepts some Qt options (such as -style) and the following
       options.

       -g     Start Midas in global alignment mode.  The default is local
              alignment mode.

       -r filename
              Load a reference image from a file with the given filename.
              This reference image can be used for aligning an image stack to
              the single reference image.

       -rz section
              This option will select the section number to be used when load-
              ing in a reference image with the -r option.  The default value
              is the first section which is numbered 0.

       -c list of sizes
              Determine alignment between chunks of sections.  Enter a comma-
              separated list of the number of sections in each chunk.  The
              list should add up to the total number of sections in the image
              file.  When chunks are entered in this way, the reference or
              current section can be set to any section within a chunk.

       -cs list of sizes
              Determine alignment between chunks of sections from samples near
              the boundaries between chunks (e.g., tomograms corresponding to
              physical sections).  Enter a comma-separated list of the number
              of sections in each sample, where the first and last chunk have
              only one sample and other chunks have two samples.  The list
              should add up to the total number of sections in the image file.
              When chunks are entered in this way, the reference and current
              section are constrained to stay within a sample.

       -B factor
              Bin images by the given factor when reading them in.  The trans-
              lation component of the transformation shown and adjusted in the
              program will be smaller by this amount.  Translations will be
              scaled down when read in from a file and scaled back up when
              written out to file.  Errors shown when fixing montage overlaps
              will also be smaller by the binning factor.  Entering this
              option overrides automatic binning specified with the environ-
              ment variable MIDAS_BIN_TO_TARGET (use "man imodenv" or "imod-
              help" - Other Man Pages - IMOD Environment Variables for
              details).

       -p filename
              Load piece coordinates for a montaged image file from the given
              filename and enter montage fixing mode.  The final argument on
              the command line would ordinarily be the .ecd file produced by
              Blendmont, but it is possible to open a montage without such
              a file.

       -C size
              Set the cache size to the given number of sections.  Sections
              are read from the file as needed, intensity-scaled to be stored
              as bytes, and kept in a cache.  By default, the cache is limited
              to about 1 gigabyte, or at least big enough for 4 sections.  If
              your file has more than this number of pixels, and you have more
              memory available, you can use this option to provide enough
              cache for all sections.  If you have less than this amount of
              memory available and your file has more pixels than there is
              memory, you should enter an appropriate size to avoid disk swap-
              ping.

       -s min,max
              Scale the image intensities when reading from the file, so that
              the range from min to max will be scaled to range from 0 to 255
              when the section is stored in the program.

       -b size
              Set the initial size of the blocks for transforming the current
              image.  The larger the block size, the faster the display, but
              quality will suffer, especially for images that are rotated sub-
              stantially.  A size of 0 will turn on image interpolation.

       -a angle
              Display all images with a global rotation specified by angle.
              When the program is started with this option, the angle can be
              adjusted if necessary with a spin box control.

       -o filename
              Save transforms to a file with the given filename instead of to
              the file that transforms were read from.

       -l size,limit
              When fixing montage overlaps, set the initial values for corre-
              lation box size and shift limit to the given values.  Use an
              entry of 0 to use the default for one value set just the other
              value.

       -e number
              When fixing montage overlaps, show the given number of buttons
              with the highest errors (between 2 and 10).

       -O 2 letters
              Specify the colors for the previous and current image in overlay
              mode.  The colors must be two of r g b c m y which stand for
              red, green, blue, cyan (green + blue), magenta (red + blue), and
              yellow (red + green).  The two letters must specify different
              channels; e.g., rc will work and rm will not.  The default over-
              lay colors are magenta and green (mg).

       -D     Run in debug mode, which means do not run the program in the
              background.

       -q     Suppress reminder to rebuild edge functions when exiting after
              fixing montage edges.

FILES
       The linear transformation files that Midas uses are in the following
       format.  The files are in ascii format with one line for each image in
       the image stack.  Each line contains 6 numerical parameters that are
       used to calculate the linear transformation.
       A11 A12 A21 A22 DX DY

       Where for each pixel with the coordinates (X, Y) a new location (X',
       Y') is given by the equations below (Xc, Yc is the center of the
       image).
            X' = A11 * (X - Xc) + A12 * (Y - Yc) + DX + Xc
            Y' = A21 * (X - Xc) + A22 * (Y - Yc) + DY + Yc

       Warping transformation files contain a linear transformation of this
       form plus the set of control points for each section.  Their format is
       described in the libiwarp library documentation.

HISTORY
       Midas (Manual Image Deformation and Alignment System) was first written
       in Fortran for a MicroVax with Parallax graphics by David Mastronarde.
       Jim Kremer then wrote a similar program in C for the SGI using first
       IrisGL, then X-windows, then OpenGL and Motif.  This was originally
       named Midas, but was renamed to Manali after Mastronarde ported the
       Midas program from the Vax to the SGI.  For the next version of Midas,
       Mastronarde modified Kremer's Manali to incorporate desirable features
       of the old Midas (such as manipulation with the mouse), to implement
       new features (such as caching, ability to zoom large images down, abil-
       ity to read integer or real mode files, and treatment of a transform
       file the way a model file is treated in 3dmod), and to provide com-
       pletely new controls, menus, and help windows.  In the latest version,
       the graphical interface was rewritten in Qt.

SEE ALSO
       xftoxg, imodtrans, newstack, blendmont, 3dmod,
       tif2mrc

BUGS
       Email bug reports to mast at colorado dot edu.



IMOD                                 5.0.2                            midas(1)