restrictalign(1) General Commands Manual restrictalign(1)
NAME
restrictalign - Restrict tilt alignment parameters for low number of
fiducials
SYNOPSIS
restrictalign options tiltalign_command_file
DESCRIPTION
Restrictalign will modify the parameter settings in a command file for
running Tiltalign so that they are appropriate for the number of
fiducials available. It uses two fundamentally different methods for
reducing the number of variables being solved for. The original
method, currently the default, is based on the ratio of measured values
to unknown variables. Variables are reduced until this ratio rises to
a target or minimum level. Although this ratio provides some guidance
for how to avoid over-fitting, this method cannot take into account the
signal-to-noise ratio of the data, namely how much random error there
is in the measurements.
Cross-validation
The newer method is cross-validation: running Tiltalign numerous
times with a small fraction of points left out, measuring how well each
solution predicts the positions of the points left out, and computing
an average "leave-out error". This error, not the mean residual error,
accurately reflects whether a different selection of parameters gives a
better solution or not. The mean residual will always go down when
more variables are solved for (e.g, by adding a parameter to solve for
or reducing its grouping), whereas the leave-out error will go down
when the added variables improve the fit and go up when they over-fit
to the data. The downside of this superior method of avoiding overfit-
ting is that it takes much more time for the many runs of Tiltalign;
this becomes a major consideration with local alignments and many fidu-
cials.
The variables tested are completely different depending on whether
local alignments are to be tested. Without local alignments, the pro-
gram tests a sequence of the global variables being solved for. For
each variable, it tests with default grouping if there is no grouping,
with intermediate grouping, with very large grouping, and with the
variable fixed (or, for rotation, with solving for only one rotation
angle), stopping when the leave-out error rises. The order of the
tests is X-stretch and skew together, tilt angle, rotation, magnifica-
tion, beam tilt, X axis tilt, and projection stetch. With local align-
ments, the program can test either by restricting alignment variables
in a similiar sequence, or by increasing the size of local areas
together with the required number of fiducials in each, or with both
kinds of tests. Here the sequence of variables is X-stretch and skew
together, tilt angle, rotation, and magnification. It is recommended
that the area requirements be tested first because the same requirement
tends to be chosen regardless of which order they are done in, whereas
the variables tend to be restricted more when tested before the area
requirement has been increased.
If robust fitting is being done, the program may first disable it per-
manently if the ratio of measurements to unknowns is too low. If not,
the program uses a weighted leave-out error computed with and without
robust fitting to assess the benefit from robust fitting, and if the
benefit is not above a criterion, it turns off robust fitting temporar-
ily for all further tests simply in order to save time.
Restrictions Based on the Ratio of Measurements to Unknowns
In the old method, the program proceeds by applying a series of
restrictions - grouping a variable instead of solving at every tilt, or
fixing it instead of grouping - in a specified order until an appropri-
ate ratio of measured values to unknown variables is reached. That
ratio is picked based on two parameters, the minimum required ratio,
and a target ratio. When two restrictions both give more than the min-
imum ratio, the one closest to the target is chosen. To have the pro-
gram always pick the first restriction where the ratio is above the
minimum, set the target ratio equal to the minimum ratio.
The -order option controls the order in which restrictions will be
applied by changes in the magnification, rotation, and tilt solutions,
but these are not the only changes that can occur. Before applying any
of these restrictions, the stretching solution (X-stretch and skew),
local alignments, and variable X-axis tilt (except between two halves
of a tilt series) will be turned off. If these restrictions are suffi-
cient, no further changes are made. When there are fewer than 4 beads,
the beam tilt solution, projection stretch, and variable X-axis tilt
between two halves of a tilt series are turned off; all of these
involve solving for a single variable. The solution for one rotation
angle is turned off with only one bead. When the ratio of measurements
to unknowns falls below the minimum, robust fitting is turned off.
The program always changes parameters so as to solve for fewer vari-
ables than in the current file. If the ratio is already greater than
the minimum and closer to the target than with any restriction applied,
no change will be made.
To use the program with the default settings with a single-axis tilt
series, simply enter:
restrictalign align.com
to use the original method, or
restrictalign -cross 1 align.com
to do cross-validation when local alignments are not being used, or
restrictalign -cross 1 -local 3 align.com
to test the local area requirements then the local variables. The
existing file will be renamed to align.com~ and the file with the
changed parameters will be written as align.com, unless the -trial
option is entered.
OPTIONS
Restrictalign 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.
-align (-a) OR -AlignCommandFile File name
Command file for running Tiltalign. If this option is not
entered, the first non-option argument will be used for the name
of the command file.
-fiducials (-f) OR -NumberOfFiducials Integer
Numbers of fiducial markers (beads) in the alignment model.
With this entry, he program will assume that each bead is marked
on every view. If this option is not entered, the program will
use the number of contours in the fiducial model with more than
one point, and count up the number of points in those contours.
The latter will give more accurate estimates of the ratio of
measurements to unknowns when there beads marked on only a sub-
set of views.
-views (-vi) OR -NumberOfViews Integer
Number of views in the tilt series. If this option is not
entered, the program will use the number of views in the image
file listed in the command file.
-target (-ta) OR -TargetMeasurementRatio Floating point
Target ratio of measurements to unknown values. If two succes-
sive restrictions give a ratio above the minimum required by the
-minimum option, the restriction that gives a ratio closest to
this value will be chosen. The default is 3.6.
-minimum (-m) OR -MinMeasurementRatio Floating point
Minimum ratio of measurements to unknown values. Restrictions
will be applied until at least one ratio rises above this value.
The default is 3.2.
-order (-or) OR -OrderOfRestrictions Multiple integers
Order in which possible restrictions should be applied to
achieve the target. The restrictions are numbered as follows:
1: Group rotations
2: Solve for one rotation
3: Fix tilt angles
4: Group magnifications
5: Fix magnifications
The default order is 1,4,3,2,5, which means rotations will be
grouped, then magnifications grouped, tilt angles fixed, then
one rotation solved for, then magnifications fixed. If fewer
than 5 numbers are entered, they will replace just the first
numbers in the order list, and they must be different from the
remaining values
-cross (-cr) OR -UseCrossValidation Integer
With this option, the program will test for the value of
restricting the alignment parameters using cross-validation.
Namely, alignment is run repeatedly with ~10% of points left
out, and the error in predicting the positions of the left-out
points from the solution obtained with the remaining points is
computed. A set of alignment parameters is considered to be
better if it reduces this error, regardless of the effect on the
mean residual of the fit with all points. If 1 is entered, sets
of 5 points on adjacent views are left out, with error measured
from the middle 3 points. If 2 is entered, contours will be
left out instead. The latter approach is unsuitable if there
are few contours.
-local (-l) OR -LocalAlignValidation Integer
Do cross-validation on local alignment parameters: enter 1 to
test the variable selections, increasing the grouping or turning
off magnification, rotation, tilt, and x-stretch and skew
together. Enter 2 to test the required number of fiducials in
local areas while increasing their target size (or reducing the
number if that is specified instead of target size). Enter 3 or
4 to do both tests, first areas then variables with a 3, or
variables then areas with a 4. These tests can take several to
many minutes. No tests will be done on global variable selec-
tions. Local alignment must be selected in the command file.
-benefit (-b) OR -MinRobustBenefit Floating point
Minimum percentage benefit (reduction in leave-out error) with
robust fitting needed to keep using robust fitting during cross-
validation tests. The benefit is the difference between the
non-robust and robust weighted errors of the points left out,
i.e., the weights from robust fitting with no points left out
are applied identically to the prediction errors of the points
left out without and with robust fitting. When the benefit is
less than the give amount, robust fitting will be omitted in
order to speed up the tests. The default is 2%.
-cvorder (-cv) OR -CrossValTestOrder Multiple integers
Order in which different variables are tested with cross-valida-
tion. variables are numbered as follows and the default is to
test in this order
1: X stretch and skew
2: Variable tilt around the X axis
3: Tilt
4: Rotation
5: Magnification
6: Single variables: beam tilt, single X-tilt, projection
stretch
Fewer than 6 numbers may be entered; they will replace the
first ones in order list and must be different from the remain-
ing values. The same order will apply to local variable tests,
although only 1, 3, 4, and 5 are relevant there.
-onestep (-on) OR -OneStepPerVariableTest Integer
Make only one change for a variable before testing other vari-
ables. With an entry of 0, the program will test all the possi-
ble restrictions on the first variable in the testing order and
adopt each restriction that improves the leave-out error, then
do the same for the second variable, etc. With the default
value of 1, the program will test restrictions on a variable
until an improvement occurs, accept that restriction, then go on
to the next variable. It will cycle through the variables
repeatedly until there is nothing left to test. When testing
both local variables and local areas, it will alternate between
a change in variable and a change in local area. With an entry
of 2 or 3, the program will test restrictions on a variable
until the first improvement occurs, but not accept the restric-
tion. After all variables have been tested, it will accept the
restriction that gave the biggest or smallest improvement with
an entry of 2 or 3 respectively. Then it will cycle through the
variables again, until finished.
-permute (-p) OR -TestPermutations Multiple integers
List of variables for which to try all permutations in testing
order when evaluating global variables. These variables will
exchange positions with each other in the order and others will
keep their defined positions. The whole sequence of tests is
run for each permutation, so this will take 6 times as long to
permute 3 variable, and 24 times as long to permute 4. Vari-
ables are numbered as in -cvorder above. If this option is
entered, the default value of -onestep becomes 0 and a non-zero
entry for -onestep will give an error. This option will be
ignored if local alignments are being evaluated.
-skipbeam (-s) OR -SkipBeamTiltWithOneRot
By default, the program will add a solution for beam tilt if and
when it switches to solving for only one rotation angle. (If
parameters are already set to solve for only one rotation angle,
this switch does not occur and it will not add beam tilt.) With
this option, it will not add the beam tilt solution along with
this restriction.
-trial (-tr) OR -TrialMode
Output modifications to a different command file instead of
replacing the input file. The output file will be named as the
root of the input file plus "_new.com"
-verbose (-ve) OR -VerboseOutput
Output the errors at each step when doing cross-validation
-PID Print process ID
-help (-h) OR -usage
Print help output
-StandardInput
Read parameter entries from standard input
FILES
The input file is renamed by adding a ~ to the end of its name and
replaced with the new file, or new file is produced in trial mode with
the root of the input name followed by "_new.com".
AUTHOR
David Mastronarde
SEE ALSO
tiltalign
BUGS
Email bug reports to mast at colorado dot edu.
IMOD 5.2.0 restrictalign(1)