xftoxg(1) General Commands Manual xftoxg(1) NAME xftoxg - Converts transforms between sections into alignment transforms SYNOPSIS xftoxg [options] input_file [output_file] DESCRIPTION Xftoxg takes a list of transformations (f) from each section to the previous one, and computes a list of xforms (g) to apply to each sec- tion to obtain a single consistent set of alignments. Transforms can be simple 6-component linear transforms or warping transformations. Three different modes of operation can be selected. In the first, all sections will be transformed to a single position in the "center" of the series. Here "position" refers to the entire set of parame- ters describing the transformation, i.e. not just the x,y coordinates but the rotation and stretch as well. This mode, sometimes referred as giving a global alignment, can be invoked with the option "-n 0". This mode will remove any consistent trends in the data stack, such as a progressive rotation, compression or shift. Because of this effect, this mode is often inappropriate for large sets of serial sections. For example, if the alignment is dominated by a structure (such as a cell boundary) that becomes actually smaller toward one end of the series, the global alignment will erroneously expand sections at the end of the series to keep the structure the same size. In the second mode, the "center" position is allowed to change progres- sively over the series. For each section, the program fits polynomials to the transformation parameters over the selected distance (centered on the given section, if possible), and uses these polynomial fits to define the position to which that section should be transformed. This mode will retain trends in the data stack that occur over the range of the specified distance; for the example in the last paragraph, the trend for the cell to get smaller would be retained and sections would not be expanded inappropriately. This is the default mode of opera- tion, with linear fits over 7 adjacent sections. In the third mode, the "center" position is assumed to change progres- sively over the whole series, based on a polynomial fit to the series, and a transformation will be computed for each section that will align it to a fitted shifting center position. If a polynomial order of 1 is selected, the center position will shift linearly from one end to the other of the data stack. This mode will retain trends in the data stack to the extent that they can be fit by the order of polynomial chosen. For example, if order 1 is chosen, the fit is a linear one, and the resulting transforms will retain trends that occur at a con- stant rate from one end to the other. It is also possible to do a mixed or hybrid alignment in which trends are retained for some parameters while they are eliminated for others. Trends can be eliminated just for X and Y translations, just for rota- tions, for both translations and rotations, or for overall size changes as well. The most appropriate choice would be to eliminate trends for rotations and possibly for translations as well, unless the rotation trends in the data are meaningful and should be preserved. Eliminating trends in translation can result in progressive shifts that become extensive over a long series of sections. This hybrid method can be used with either local or global polynomial fits (the second or third mode of operation). Sometimes a small minority of sections are rotated at a large angle from the rest. Including such sections in the computation of the "cen- ter" position would skew the average rotation. In such cases, the "-range" option can be used to exclude sections whose rotation angles fall outside of the given range from the averaging and fitting proce- dures. For example, if a range of 45 degrees is given, then the pro- gram will find the largest group of sections whose angles span a range of 45 degrees or less, and use only these sections to compute the global average alignment. However, if there are large blocks of sec- tions at a variety of different rotations, this approach will not work, and the recourse is to use the mixed alignment to eliminate trends in rotation, thus aligning all sections to a single global rotation. The input file can contain warping transformations, which can be speci- fied either as displacements at a set of control points, or as dis- placements on a regular grid. In either case, the output will consist of a regular grid of displacements, with the same grid locations for every section. The program first analyzes each warping transform to remove the linear component from it and combine that with the separate linear transformation. The linear transforms are treated as usual, according to the various options that are given, including the choice for a hybrid alignment. The remaining warp transforms are analyzed similarly to the linear transforms. When a global alignment is being done, the program forms a cumulative warping transform by multiplying successive transforms, determines the average cumulative transform and multiplies each cumulative transform by this average. This method pro- duces an acceptable result for a small number of sections. When local or global polynominal fits are used for the linear transforms, a simi- lar fitting method is applied at each position of the warping trans- forms. This method keeps the converted warp vectors from building up over large numbers of sections. The program can also do robust fitting, in which it attempts to elimi- nate or down-weight transformation components that appear to be out- liers. This is an experimental feature intended to deal with situa- tions where a few isolated images need a much bigger shift, rotation, size change, or stretch than others to bring them into alignment. With the default linear fitting to 7 sections, an aberrant image would be brought 6/7 of the way into alignment with its neighbors, and the neighbors would be pulled out of their proper alignment by the remain- ing 1/7. In principle, with robust fitting, the aberrant image would be eliminated from local fits, the neighbors' alignments would be undisturbed, and the aberrant one would be brought to their alignment. To do the averaging and fitting, the program converts the A matrix of the g transforms to the "semi-natural" parameters: global rotation and magnification, and differences between Y and X axis rotation and stretch. This conversion allows the hybrid alignments to be done. It also means that if input transformations involve only a restricted set of these parameters (e.g., rotation only), this restriction will be retained in the final g transforms. The ability to use both the local fits and fits of order higher than 1 is somewhat redundant. If local fitting is used, start with order 1 and go to higher orders only if necessary. OPTIONS Xftoxg uses the PIP package for input (see the manual page for pip) and can take also input interactively to maintain compatibility with old command files. The following 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. -input (-in) OR -InputFile File name Input file with f transforms -goutput (-g) OR -GOutputFile File name Output file for g transforms. If an output filename is omitted and the input filename ends in xf, the input filename will be used as output with the last letter converted from f to g. -nfit (-n) OR -NumberToFit Integer Number of adjacent sections to fit, 0 for global alignment, or 1 for fit to all sections -ref (-re) OR -ReferenceSection Integer Do a global alignment to the given section; this will give the reference section a unit transform and keep it from being trans- formed. Sections are numbered from 1. -order (-o) OR -OrderOfPolynomialFit Integer Order of the polynomial fit to the data. The default is 1 (lin- ear fit). -mixed (-mi) OR -HybridFits Integer Number of parameters to eliminate trends for with a hybrid alignment: 1 for rotations only, 2 for translations only, 3 for translations and rotations, 4 for size changes also. -range (-ra) OR -RangeOfAnglesInAverage Floating point Compute the global average center position, and the center posi- tion for local fits, using the largest group of sections whose rotation angles fall within the given range. -robust (-ro) OR -RobustFit Use robust weighting when fitting to find the center position. The fits will be done iteratively, with a weight assigned to each point in the fit and the weight adjusted after each itera- tion based on the fitting error of that point. Weights are adjusted together in a fit to the four rotation/magnification parameters, and independently adjusted in a separate fit to the X and Y shift values. -kfactor (-k) OR -KFactorScaling Integer Amount to scale the K factor that controls how many points are down-weighted in the robust fitting. The default scaling of 1 gives a K factor of 4.685, the factor commonly used for the Tukey bisquare weighting. A smaller factor will down-weight and eliminate more points. -max (-ma) OR -MaximumIterations Integer The maximum number of iterations in the robust fitting. The default is 200. A negative number can be entered to obtain out- put about the changes in weights after each iteration. -iteration (-it) OR -IterationParams Three floats This option sets three values that control the robust fitting: (1) The maximum fraction of points that are allowed to have zero weight. The actual limit for a particular fit is the nearest integer of this value times the number of points being fit. The default is 0.2. (2) The maximum change in weights allowed before considering that a fit has converged, if the fit is not oscillating between two states. The default is 0.02. (3) The maximum change in weights allowed for terminating the fit if it is oscillating between two states; the change in weights in one state must also be less than the maximum described in (2). The default is 0.04. -help (-h) OR -usage Print help output -StandardInput Read parameter entries from standard input. INTERACTIVE INPUT If the program is started with no command line arguments, it reverts to interactive input with the following entries: 0 to align all sections to a single average central alignment, 1 to align to an average alignment fit to a single polynomial, N > 1 to align each section to an average alignment fit to the nearest N sec- tions, or -1 or -N to do a hybrid of central and shifting alignments with fits to a single polynomial or to locally fitted polynomials IF you entered a negative number, next enter 2 for central alignment of translations only, 3 for central alignment of translations and rota- tions, or 4 for central alignment of translations, rotations and size changes IF you entered a nonzero number to the first query, next enter the order of the polynomials to fit (1 for linear fits) Name of input file of F transforms Name of output file of G transforms HISTORY Written by David Mastronarde, 1988 Added hybrid method, 7/26/01 Converted to PIP input, 1/25/04 Added support for warping transforms, June 2011 BUGS Email bug reports to mast at colorado dot edu. IMOD 5.2.0 xftoxg(1)