tomostitch(1) General Commands Manual tomostitch(1)
NAME
tomostitch - Warps, stacks, and blends a montage of overlapping volumes
SYNOPSIS
tomostitch options supermontage_info_file
DESCRIPTION
Tomostitch is a Python program for performing the final steps in
stitching together adjacent, overlapping volumes. These steps are: 1)
running Findwarp on the warping patch vectors produced by
Stitchalign; 2) running Warpvol to produce the aligned volumes;
3) running Densmatch to match their densities and Newstack to
stack them into a single file; and 4) running Blendmont to produce
the final stitched volume. By default, the program will run all of
these steps, but there are options to run just a subset of consecutive
steps.
There are options for running with a subset of the volumes. These
options can be used either for experimenting or for building a subset
of the stitched reconstruction. They apply to all of the steps except
blending, since whichever volumes have been stacked are the ones that
will be blended. It may be useful to run the first step alone, inter-
actively, since it might fail on some volumes and require editing of
patch vectors or adjustment of parameters. If necessary, the step can
then be rerun just on the volumes that failed. The other steps might
be better run from a command file so that output can be collected in a
log.
The size of the warped volumes in X and Y was set when Stitchalign
was run and cannot be adjusted in this program. The thickness can be
specified.
The density scaling is a point where problems may occur with byte data.
The program will use Densmatch to find the scaling that will match
up the densities within a strip in the overlap zone between each pair
of adjacent volumes. These relative scalings are then resolved into
scalings to apply to each of the volumes to minimize the density dis-
parities in all of the overlap zones. One of the volumes is always set
as a refernce that will not be scaled (piece 1, 1 by default). The
final scalings are printed out before the program starts to stack the
volumes while applying these scalings. If some volumes are multiplied
by a factor much more than 1, then there is a danger that image data of
interest will be truncated at 0 or 255. If a factor is much less than
1, then there is a danger of that piece having its intensities com-
pressed into too little dynamic range, although this might be a more
difficult problem to notice. In some cases, you might want to select a
new reference volume to reduce the amount that volumes are scaled over-
all. For example, if most scale factors are between 0.8 and 1.0,
select one with a factor of 0.9 as the reference to makes the scalings
overall be closer to 1.0. To do this, kill the stacking operation (use
Ctrl C at the command line) and rerun it with the new reference.
Artifacts in the blended volume can be minimized by setting a limit for
the slices from which edge functions will be computed. Edge functions
computed from areas outside the section are prone to errors which dif-
fer radically from slice to slice, making the remaining image features
jump around when paging through the slices. The solution is to use the
edge functions computed on the last good slice for slices outside the
range of good slices. A lower and upper limit on the slices with good
edge functions can be set with the -goodedge option. Using a single
limit for all edges may not be appropriate, so limits can also be set
for individual edges. If -goodedge is entered, its limits apply to all
edges that do not have individual limits. Limits can be specified for
individual edges in two ways. One is with the -onegood option, where
one must specify the number in X and Y of the frame below or to the
left of the edge, and whether the edge is between two pieces adjacent
in X or adjacent in Y. The other way is to make an entry in the info
file in the section for the particular edge, of the form:
goodLimits = # #
where the two numbers are the lower and upper Z limits. Note that in
either of these cases, the slices are numbered from 1 and can be read
directly out of 3dmod. Once you have defined these limits, you can
rerun the blend operation, specifying -oldedge to avoid recomputing
edge functions.
Another kind of artifact can occur in the overlap zones when the trans-
formed volumes contain significant areas filled with a uniform value
due to large shifts. To handle this problem, an option is supplied to
Blendmont to exclude these areas from edge functions and from being
used when blending across edges.
This program outputs a command file for the blending operation that
could be used to run Blendmont with different parameters not acces-
sible through this interface. The file is named blend_sec-
tion_name.com.
Tomostitch provides options so that you can work initially with binned
volumes then apply the results to stitch unbinned volumes. There are
two different ways that you can use this capability. One way is to do
all the alignment through the Findwarp step of Tomostitch with binned
volumes. At that point you would substitute the unbinned volumes for
the binned ones, then carry on in Tomostitch with warping, etc., using
the "-scale" option to specify the change in scale. Any size parame-
ters (such as thickness) would then be given in unbinned pixels. The
other way is to complete the stitching, including the setting of good
edge limits if desired to avoid artifacts beyond the bounds of the sec-
tion. Then either substitute the unbinned volumes for the binned ones,
or copy the info file and all the ".warpxf" to a directory where the
unbinned volumes are. Then run Tomostitch with all the same parameters
as before, using both "-scale" and "-apply" so that the program will
scale all size and position related entries to fit the unbinned data.
OPTIONS
Tomostitch uses the PIP package for input (see the manual page for
pip). Options can be specified either as command line arguments
(with the -) or one per line in a command file (without the -).
Options can be abbreviated to unique letters; the currently valid
abbreviations for short names are shown in parentheses.
-info (-inf) OR -InfoFile File name
Name of a supermontage info file containing all the data about
the frames and sections. If this option is not entered, the
first non-option argument will be taken as the name of the info
file.
-xrun (-xr) OR -XRunStartEnd Two integers
Starting and ending frame number in X to include in operations.
The default is to include all frames in X.
-yrun (-yr) OR -YRunStartEnd Two integers
Starting and ending frame number in Y to include in operations.
The default is to include all frames in Y.
-zrun (-z) OR -ZRun Integer
Z value to perform operations on. This entry is not needed if
there is only one section described in the info file.
-thickness (-th) OR -ThicknessToOutput Integer
Thickness to make output volume. All frames will be transformed
to this thickness. The default is the largest thickness of any
input volume.
-find (-f) OR -FindWarping
Run Findwarp on the warping vector fields from
Stitchalign. The default is to do all operations if no indi-
vidual operations are selected by -find, -warp, -stack, or
-blend, but run only the specified operations if any of these
options are entered.
-warp (-wa) OR -WarpVolumes
Run Warpvol on the pieces
-stack (-st) OR -StackVolumes
Run Densmatch and Newstack on the pieces and produce piece list
-blend (-bl) OR -BlendVolumes
Run Blendmont on warped and stacked pieces
-scale (-sc) OR -SizeScalingFactor Floating point
Scaling factor between the volumes that were analyzed to deter-
mine alignment and analysis, and the volumes that are now being
operated on. For example, if you initially found warping for a
set of volumes that were binned by two, and have now substituted
unbinned volumes in order to stitch them, you would enter a fac-
tor of 2.
-apply (-a) OR -ApplyScaleToEntries
Apply the scale factor to all entries specifying a size or loca-
tion for warping, density matching, stacking, and blending. For
example, if you complete the stitching of binned volumes,
including adjusting the output thickness and setting lower and
upper Z limits for edges in Blendmont, then you can use this
option to rerun Tomostitch on the unbinned volumes with the same
entries of all parameters. Without this option, you would have
to adjust any entries by the scaling factor manually.
-verbose (-v) OR -VerboseOutput Integer
Level of verbose output: 1 for command lines and some output in
density matching, 2 for output of all iterations in density
matching
Options for Running Findwarp or Warpvol
-target (-ta) OR -TargetMeanResidual Multiple floats
One or more mean residual values to try to reach when Find-
warp(1) searches for the best warping. Multiple values should
be entered in increasing order. Findwarp will try to find a
warping with the largest number of included patches that gives a
mean residual below the first value; then it tries again with
the second value, etc.
-measured (-me) OR -MeasuredRatioMinAndMax Two floats
The minimum and maximum ratio of measurements to unknowns to be
allowed in the fits in Findwarp. The defaults are 4 and 12,
divided by the cube of the vector spacing factor used when run-
ning Stitchalign. The actual value used will be reported by
the program.
-discount (-di) OR -DiscountIfZeroVectors Floating point
This option is supplied to Findwarp with a default value of
0.5 to prevent misleading averages when analyzing the warping
fields, which contain mostly zero vectors. Fits with the number
of zero vectors bigger than the given fraction of the total vec-
tors will be excluded from the averages.
-tempdir (-te) OR -TemporaryDirectory Text string
Directory to use for temporary files when runnning Warpvol.
The default is that the temporary files will be placed in the
current directory.
Options for Density Matching when Stacking
-density (-de) OR -DensityReferenceFrame Two integers
Frame number in X and Y (numbered from one) of the volume to
serve as reference for density matching. The default is to use
the first one. (Successive entries accumulate)
-match (-ma) OR -MatchingWidthXandY Two integers
Width of overlap zone in X and Y to use to determine the scaling
for density matching. The program will run Densmatch on the
overlap zones to find a relative scaling between each pair of
overlapping volumes, then resolve these scalings into a single
scaling for each volume. The default is to use the central 30%
of the width of the overlap zone. Enter a width of 0,0 to use
the original kind of density matching, which is a scaling based
on matching the density in the interior of each volume to that
of the reference volume.
-length (-l) OR -MatchingLengthXandY Two integers
Length of overlap zone in X and Y to use to determine the scal-
ing for density matching. The default is to use the central 70%
of the length of an overlap zone; smaller values might be needed
if pieces are severely skewed and have gray area along a large
fraction of the length of the overlap zones. The X and Y
lengths are used for the overlaps between pieces in Y and X,
respectively. Enter 0 for one of the values to use the default.
Options for Running Blendmont
-xminmax (-xm) OR -StartingAndEndingX Two integers
Minimum and maximum X index coordinates to output in Blend-
mont(1) (numbered from 0). The default is to output the entire
image.
-yminmax (-ym) OR -StartingAndEndingY Two integers
Minimum and maximum Y index coordinates to output in Blendmont.
-bin (-bi) OR -BinByFactor Integer
Use binning to reduce blended images in size by the given fac-
tor. Binning is applied to the data just before output, so the
starting and ending X and Y coordinates to output should be
specified in unbinned pixels.
-oldedge (-ol) OR -OldEdgeFunctions
Use existing edge functions, if they exist, rather than comput-
ing new ones in Blendmont.
-goodedge (-g) OR -GoodEdgeLowAndHighZ Two integers
Default lower and upper Z limits for where edge functions in
Blendmont are good. Beyond these limits, the edge functions
will be taken from the last good Z value. If this option is
entered, these limits will applied to all edges except ones that
have Z limit entries in the info file. Unlike in Blendmont,
these Z values are numbered from 1 for convenience.
-onegood (-on) OR -OneGoodEdgeLimits Multiple integers
This options specifies lower and upper Z limits for a specific
edge; beyond these limits the edge functions will be taken from
the last good Z value. Five values are expected: number of
frame below the edge in X and Y, 1 for an edge in X or 2 for an
edge in Y, lower and upper Z limits. Note that the frame num-
bers are the fixed numbers in the supermontage (numbered from
1), not the frame numbers within the blend, which might be lower
if a subset of frames is being blended. Also note that unlike
in Blendmont, the Z values are numbered from 1. (Successive
entries accumulate)
-exclude (-e) OR -ExcludeFillFromEdges
With option, Blendmont will detect image areas near an over-
lap zone that consist of uniform values and exclude these areas
when computing the edge function. In addition, in areas along
an edge where one piece consists of uniform values and the other
has actual image data, it will use the actual data across the
whole edge instead of transitioning to the uniform data. This
option is helpful when stitching a pair of volumes that do not
line up well vertically or horizontally, but it can produce
artifacts with supermontages that are laid out more regularly.
-width (-wi) OR -BlendingWidthXandY Two integers
Width in X and Y across which to blend overlaps in Blendmont.
The default is:
80% of the overlap zone width for overlap width less than 63,
50 pixels for overlap width between 63 and 100, or
50% of the overlap width for overlap width greater than 100.
You will probably need to set a width smaller than the default
if you made extra-large tomograms to avoid losing good regions
from the rotation of the tilt axis to vertical, and you did not
trim the size back in the warped volumes that are being blended.
-boxsize (-bo) OR -BoxSizeShortAndLong Two integers
Size of box for finding edge functions in short and long direc-
tions in Blendmont. The short direction is across an overlap
zone, the long direction is along it. The default size is 10
pixels in the short direction for frame sizes up to 1024 pixels,
increasing proportional to the maximum dimension of the frame
above 1024. The default in the long direction is 1.5 times the
size in the short direction.
-indents (-ind) OR -IndentShortAndLong Two integers
Borders at the edge of the overlap zone in the short and long
directions which will be excluded when finding edge functions in
Blendmont. If your data were taken as a supermontage aligned
to specimen rather than camera axes, it may be helpful to set an
indent in the long direction that will keep the program from
analyzing images in regions where there is good data in only one
of the two overlapping volumes. The default size is 5 pixels in
each direction for frame sizes up to 1024 pixels, increasing
proportional to the maximum dimension of the frame above 1024.
-help (-h) OR -usage
Print help output
-StandardInput
Read parameter entries from standard input
FILES
When Findwarp is run, several files are produced for each piece:
piecename.warpxf has the warping transforms
piecename_res.patch is a file with the patch vectors and residuals
piecename_res.mod is made from these patches with patch2imod -s 5
To edit the patches, edit "piecename_res.mod". When you run Tomostitch
again, it will detect that it has been edited and replace the original
patch file by running
imod2patch piecename_res.mod piecename.patch
When Warpvol is run, it produces files named "piecename.warped".
When the warped volumes are stacked, the output files are
section_name.st the stacked volumes
section_name.pl the piece list
The output file from blending is "section_name.bl"
AUTHOR
David Mastronarde
SEE ALSO
findwarp, warpvol, newstack, densmatch, blendmont,
stitchalign
BUGS
Email bug reports to mast at colorado dot edu.
IMOD 5.2.0 tomostitch(1)