ctfplotter(1)               General Commands Manual              ctfplotter(1)



NAME
       ctfplotter - estimate defocus values of a tilt series

SYNOPSIS
       ctfplotter  options

DESCRIPTION
       This GUI program will plot the logarithm of a rotationally averaged
       power spectrum of an input tilt series after subtracting background
       noise .  The method is based on periodogram averaging; namely, averag-
       ing of spectra from small, overlapping areas of the images, referred to
       as tiles.  The user can interactively choose which projection views are
       included in the averaging.  It is also possible to run the program non-
       interactively for automatic fitting.  A standalone version can be built
       without the Qt graphical toolkit and can only be used non-interactively
       for automatic fitting.  Ctfplotter was initially described in Xiong, et
       al., 2009, J. Struct. Biol. 168: 378-87, and more recently in Mas-
       tronarde, 2024, J. Struct Biol. 216:108057.


   Noise Files
       The noise floor can be based on actual measurements of noise in an
       image taken with no specimen in the beam.  The program does have an
       alternative method of subtracting a background level that is based on
       fitting two lines to the spectrum, one to the rapidly falling region at
       low frequencies and one to the more gradually falling high-frequency
       end.  This method work wells with data from an electron counting camera
       and may work on other data from direct detectors.  However, if this
       method does not work, you need to supply noise images.

       To get noise images, collect a set of blank images at a series of beam
       intensities.  They can be placed in separate files or all in one stack.
       These noise images are specific not only to the microscope but also to
       the camera used, the operating voltage, and the binning.  However,
       these are not factors that vary over time (unless there is some radical
       change in the camera), so you should only have to collect these images
       once.  The mean counts in these images should span the range of the
       mean counts in the data being analyzed.  The interval between intensi-
       ties can be a factor of 1.5; interpolation is used to estimate the
       noise for an image whose mean counts do not match one of the noise
       images.  For example, for a camera that has a gain of 10 counts per
       electron, one might collect images at mean counts near 100, 150, 225,
       etc., up to 1710.  With a 1 nm pixel size, these noise images could be
       used with images where the dose recorded at the camera ranged from 0.1
       to 1.7 electrons per square Angstrom.  If you need images for analyzing
       both unbinned and binned data, you can take one set of unbinned noise
       images and then bin them with a Newstack command like this:
          newstack -bin 2 -mult 4,0  input_file output_file

       The multiplication by 4 (the square of the binning factor) is necessary
       to make the counts be the same as they would be for binned images from
       the microscope with the same exposure.

       If there are significant numbers of X-rays in the noise images, you
       should clean them with Ccderaser, such as with:
          ccderaser -find -peak 8 -diff 6  input_file output_file

       The noise images must have positive means; i.e., their values should be
       proportional to the recorded electrons.  If they are acquired with
       software that subtracts 32768 before storing as signed integers, then
       you need to add this offset back to the data in order to use them as
       noise images.

       If the noise images are in one stack, its file name is entered directly
       with the -config option. If the noise images are in separate files,
       they are listed in a simple text file, the configuration file specified
       by the -config option.  To be found easily from within Etomo, the lat-
       ter file, or a single stack, should be placed in a directory named
       /usr/local/ImodCalib/CTFnoise or in $IMOD_CALIB_DIR/CTFnoise if the
       environment variable IMOD_CALIB_DIR has been defined differently from
       the default.  Noise files can be placed in a subdirectory of CTFnoise,
       for example, F20.  In this case, the configuration file would contain a
       list like this:
       F20/file1.st
       F20/file2.st
       F20/file3.st


   Noise Files for Direct Detector Cameras
       For direct electron detector cameras, the actual power spectra may not
       fit the noise spectra very well, particularly if motion correction is
       applied to tilt series movie frames, or if electron counting is used.
       The fitting of a polynomial to the baseline of the power spectrum,
       described below, will generally give a flat enough power spectrum at
       higher frequencies.  However, when using motion correction, there are
       two potential solutions that may give better noise files.  Spectra from
       ordinary noise images will not fit the actual spectra if the aligning
       and summing of movie frames attenuates the high frequencies, which is
       inevitable if interpolation is done in real space to align the images.
       The best remedy is to shift frames into alignment with phase shifts in
       Fourier space instead of with interpolation.  This operation preserves
       the high frequency power.  Frames that have been aligned in SerialEM's
       plugin to DigitalMicrograph or in Alignframes have been shifted in
       Fourier space, preserving the power.  If you determine the frame align-
       ment some other way, you can transform the frames in Newstack with
       the -phase option to shift them in Fourier space.  The second remedy
       would be to collect movie frames for the noise images and apply small
       shifts to them by the same method used to shift actual frames before
       summing them.  Since the noise frames cannot be aligned, the shifts
       need to be obtained some other way; either take a set of shifts from
       real images, or use some random numbers between 0 and 1.

       At least currently, the response of an electron counting camera depends
       on the dose rate, which raises the question of whether to vary exposure
       time or beam intensity when taking the set of noise images.  In princi-
       ple, varying beam intensity will replicate the differences between
       light and dark areas in the same image; varying exposure time will give
       noise images applicable to a range of images taken with the same dose
       rate but different exposure times.  There does not seem to be a good
       solution here.

       As of IMOD 4.10.18, the baseline fitting option is turned on by default
       since its performance has been improved.  It can be disabled, or the
       polynomial order set, in a template file when processing through Etomo;
       for example, the template directive
         comparam.ctfplotter.ctfplotter.BaselineFittingOrder = 2
       will restrict the fitting to a parabolic baseline.


   Inverting Tilt Angles
       Several different conditions can result in the defocus gradient of
       tilted images being in the wrong direction, and the remedy is to invert
       the sign of tilt angles with the -invert option both here and in Ctf-
       phaseflip(1).  Two common ways for gradient inversion to occur are if
       the tilt series images have inverted handedness relative to a true pro-
       jection of the structure, or if the tilt axis rotation angle is off by
       180 degrees.  Tests indicate that when tilt images have inverted hand-
       edness and the tilt axis rotation angle is set by applying the same
       inversion to the tilt axis as to the image, the handedness is restored
       in reconstructions, but the tilt angles need inversion here.  If the
       tilt axis is set 180 degrees away from that, the tilt angles do not
       need inversion, but the tomogram still has inverted handedness.  In
       such a case, the tomogram should be post-processed by flipping Y and Z
       instead of rotating about X.  In contrast, if the images are not
       flipped but the axis is mistakenly set 180 degrees from its true value,
       the tilt angles DO need inversion and the tomogram will have inverted
       handedness.

       The standard SerialEM configuration for a JEOL microscope with an omega
       filter is to have the properties "InvertStageXAxis" and "RotateHead-
       erAngleBy180" set, in which case tomogram handedness will be correct
       but the tilt angles will need inversion here.  If you have data from
       such a microscope, you need to set the -invert option.

       One way to assess the need to invert angles is to examine the images in
       a stack aligned for reconstruction, with the tilt axis vertical.  At
       positive tilt angles, the right side of the images should be more
       underfocused than the left side; if not, then this option is needed.
       An easier way is to use the "Test Left-Right Differences" button in
       "Tile & wedge parameters" section of the Angle Range dialog.

       The tests mentioned above indicated that in each case where tilt angle
       inversion is needed, the resulting tomogram is upside-down relative to
       its normal orientation when there are no inversions and all angles are
       correct.  If 3D CTF correction is to be applied by computing CTF cor-
       rections at multiple Z levels, the direction of defocus offsets needs
       to be inverted with an upside-down tomogram.  Both Ctf3dsetup and
       Subtomosetup will invert offsets by default if the -invert option is
       set in the command file for CTF correction, but each program has its
       own -invert option to override this default.


   Program operation
       When you start the program, it will first load and analyze all of the
       noise images.  Then it will read in the images within the specified
       initial angular range and compute power spectra from the central tiles.
       This initial computation of tile power spectra is the most time-consum-
       ing step, whereas recomputing a summed power spectrum from the spectra
       of individual tiles is quick.  The program thus stores the power spec-
       trum for each tile in a cache when it is computed.  You will have to
       wait several seconds whenever you change the angular range to include
       views that have not been analyzed before.  However, once all of the
       tiles on all views have been analyzed, the program will respond quickly
       when you change angular ranges or defocus values.

       You may find that the power spectrum curves up or down at high frequen-
       cies, indicating that the noise power spectra do not adequately
       describe the noise in the actual data and that the baseline fitting is
       not working optimally to make the power spectrum be flat at high fre-
       quencies.  This fitting is controlled by an entry set in the Fitting
       dialog, whose value can be initialized with the -baseline option.  To
       do this fitting, the program first identifies points that could define
       a noise floor, primarily using points at local minima in the spectrum,
       but sampling other points if needed at the highest frequencies.  The
       program then fits a concave or convex polynomial of a selected order to
       those points and subtracts it from the power spectrum.  The result is
       to flatten the spectrum, except perhaps past 0.45/pixel. The order can
       be set to 1 to fit a line, 2 to fit a parabola, or 3 or 4 to fit 3rd or
       4th order equations.  (To keep higher order polynomials well-behaved,
       they are constrained to have a monotonically changing first derivative,
       as a parabola does.)  This fitting should be adjusted when the baseline
       deviates from flat by enough to impair the ability to visualize the
       zeroes or fit the spectrum.

       To read a general description of the plots and tool buttons, click the
       handbook icon to access the HTML help page.

       The defocus values found by the program, as well as astigmatism and
       phase shift if those are also found, can be saved in a text file that
       can be used as input to the CTF correction program Ctfphaseflip.




OPTIONS
       Ctfplotter 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.

       -input (-inp) OR -InputStack   File name
              Input stack whose defocus will be estimated.  In principle, this
              should be a raw stack, not an aligned stack, because the inter-
              polation used to make an aligned stack attenuates high frequen-
              cies and the noise power spectra would no longer match.  Also,
              the usable CTF signal at high frequencies would be reduced.

       -offset (-of) OR -OffsetToAdd       Floating point
              The program must analyze data values where 0 corresponds to no
              electrons recorded.  Use this option to specify a value to add
              to your input stack that will make values positive and propor-
              tional to recorded electrons.  The value will not be added to
              noise files; they are required to be positive.  The program
              automatically sets this value to 32768 if it recognizes a file
              from FEI data acquisition software with a minimum below 0, or if
              the minimum and mean of a non-FEI file are sufficiently nega-
              tive.

       -config (-con) OR -ConfigFile       File name
              If a text file is entered, this configure file specifies a set
              of single-image noise files used to estimate the noise floor,
              one file per line.  The files can be specified with either abso-
              lute paths or with paths relative to the location of the config-
              ure file itself.  Alternatively, all noise images can be in one
              stack and the name of the stack provided here.

       -angleFn (-an) OR -AngleFile   File name
              File containing tilt angles for the input stack.  Each line of
              this file is the tilt angle for a view of the input stack.  The
              angles are listed in order starting from view 1.  If no file is
              entered, the angles are assumed to be 0, or the value entered
              with the -single option.  In order to make the interface some-
              what usable, the views are assigned angles at 0.01 degree incre-
              ments, but all spectrum computation uses 0 or the value entered
              with -single.

       -single (-si) OR -SingleTiltAngle   Floating point
              Tilt angle to use when there is no angle file entered.  This
              option may not be entered with -angleFn.

       -invert (-inv) OR -InvertTiltAngles
              Invert the sign of the tilt angles.  See the section on Invert-
              ing Tilt Angles above for details.

       -taOffset (-ta) OR -TiltAngleOffset      Floating point
              Amount to add to entered tilt angles when adjusting off-center
              tile spectra for being at different heights before summing them.
              This entry should not duplicate the AngleOffset entry to Tiltal-
              ign if tilt angles from alignment are being used for the Angle-
              File entry here.  An offset does not affect the tilt angles
              shown in the angle dialog or saved to the defocus file.

       -aAngle (-aA) OR -AxisAngle    Floating point
              Specifies how much the tilt axis deviates from vertical (Y
              axis).  This angle is in degrees.  It follows the right hand
              rule and counter-clockwise is positive. This entry is required
              if a tilt angle file is entered or if the -single option is
              entered with a non-zero value.

       -defFn (-defF) OR -DefocusFile      File name
              File to store found defocuses, a required entry.  Each entry in
              the file will consist of the starting and ending view number of
              the range of views being fit to (numbered from 1), the starting
              and ending angle of the tilt angle range being fit to, and the
              defocus value in nanometers (underfocus positive).  The full
              specification for defocus files acceptable to Ctfphaseflip is
              given in a section at the end of that man page.  When Ctfplotter
              writes a new defocus file, it puts a version number (currently
              2) at the end of the first line.  If this file already exists
              when the program starts, it will be read in and the results dis-
              played in a table in the Angle Range and Tile Selection dialog.
              The previous version will become a backup file (with ~ added to
              its name) when new results are saved to this file.
                If you supply an initial defocus file with more than line, be
              sure to use the exact angles from the tilt angle file specified
              with -angleFn; do not round to one decimal place.  Alterna-
              tively, add the number "2" as an extra value at the end of the
              first line of the file; this will prevent the program from
              thinking that the view numbers might be off by one.  If you use
              the -invert option, you must do one of two things: 1) either
              invert all the tilt angles in this file, 2) or start the file
              with a line to indicate that it is a version 3 file in which the
              angles need to be inverted.  That line starts with a sum of
              flags for various options, where 16 is the flag that angles need
              to be inverted; if that is the only flag, then the line would be
              "16 0. 0. 0 3".  See Ctfphaseflip for a description of all
              flags.

       -pixelSize (-pi) OR -PixelSize      Floating point
              Image pixel size in nanometers.  If this option is not entered,
              the pixel size will be obtained from the header of the input
              image file.

       -crop (-cr) OR -CropToPixelSize     Floating point
              Crop power spectrum to the given pixel size in nanometers.  This
              option spreads out the low-frequency part of the power spectrum
              and throws away the highest frequencies; the new Nyquist fre-
              quency is 2 divided by the entered value.  Cropping may improve
              the fits to closely spaced zeros, but it will average less data
              in each frequency bin and thus make the power spectrum more
              noisy.  The entered pixel size must be larger than the actual
              size for this option to have any effect.

       -fitZeros (-fit) OR -FitZerosForPhase
              When finding phase, try to find and fit to zero positions in the
              spectrum instead of just fitting to the power spectrum.  Fitting
              to zero positions can prevent the first few zeros from dominat-
              ing the fit and may improve the fit to the higher zeros, but it
              may also result in the first zero being noticeably off.

       -volt (-vo) OR -Voltage   Integer
              Microscope voltage in kV, a required entry.

       -cs OR -SphericalAberration    Floating point
              Microscope spherical aberration in millimeters, a required
              entry.  A value of 0 can be entered; it will be made slightly
              larger to prevent division by 0 in the CTF equations.

       -ampContrast (-am) OR -AmplitudeContrast      Floating point
              The fraction of amplitude contrast. For cryo-EM, it should be
              between 0.07 and 0.14.  The default is 0.07.

       -degPhase (-deg) OR -PhaseShiftInDegrees      Floating point
              The expected value for the phase shift imposed by a phase plate,
              in degrees.  Equations relating the CTF and defocus will include
              this phase shift when phase is not solved for.  It can be
              entered with either positive or negative sign; the absolute
              value of the entered value will be subtracted when computing
              phase within the program.

       -phase (-pha) OR -PhasePlateShift   Floating point
              The expected value for the phase shift imposed by a phase plate,
              in radians.  See the -degPhase option, which should be used
              instead.  The two may not both be entered.

       -phRange (-phR) OR -PhaseRangeToSearch   Floating point
              Total range of phase shift to search around the expected shift,
              in degrees.  The default is 120.

       -cuton (-cu) OR -CutOnFrequency     Floating point
              A fixed value for cut-on frequency that attenuates phase at low
              frequency, in reciprocal nanometers.  With a cut-on frequency,
              the phase is modeled as rising exponentially from zero at zero
              frequency to its true value at high frequency.  The ratio of the
              first zero to the cut-on frequency is the rate constant of the
              exponential decay to the true value.  Whenever the cut-on fre-
              quency is non-zero, the phase shift displayed on the screen and
              stored in the defocus file is actually the phase at a fixed fre-
              quency of 0.3/nm rather than the shift at infinity.

       -maxCuton (-ma) OR -MaxCutOnToSearch     Floating point
              Maximum frequency to test when searching for cut-on frequency,
              in reciprocal nanometers.  The default is the frequency of the
              first zero at the expected defocus and phase shift.

       -skip (-sk) OR -ViewsToSkip    List of integer ranges
              List of views to leave out of the analysis; views are numbered
              from 1 and ranges can be entered.  The program will behave as if
              those views do not exist unless the option is set for skipping
              only for analysis of astigmatism or phase shift.  If it is,
              defocus can be found for every view, but astigmatism and phase
              will be solved from adjacent views to ones in the skip list.

       -bidir (-bi) OR -BidirectionalNumViews   Integer
              Number of views in the first half of a bidirectional tilt
              series.  Entering this option will turn on the checkbox "Break
              groups at view" to prevent combining of views for analysis
              across the two halves of the series.  Do not use this option for
              a tilt series taken with the Hagen scheme.  If the option is set
              for skipping and breaking only for analysis of astigmatism or
              phase shift, the program will still combine views for defocus
              fitting across the boundary.

       -onlyAP (-on) OR -SkipOnlyForAstigPhase
              Skip views in the list of ones to skip, or avoid combining views
              for analysis, only for analysis of astigmatism and phase shift.
              With this option set, the program will exclude views in the skip
              list and avoid combining views across the bidirectional boundary
              only when getting a combined spectrum for finding astigmatism
              and phase shift.

       -expDef (-exp) OR -ExpectedDefocus       Floating point
              Expected defocus at the tilt axis in nanometers, with a positive
              value for underfocus.  The frequency of the first zero of the
              CTF curve is first computed based on this expected defocus.  The
              initial fitting range is set based on the location of first and
              second zeros.

       -scan (-sc) OR -ScanDefocusRange    Two floats
              Lower and upper defocus values of range to scan, in nanometers.
              Scanning can be used in place of setting an expected defocus.
              An initial spectrum is computed and analyzed for a series of
              expected defocus values in this range.  The final defocus is
              taken from the fit with the lowest error and most consistency
              with defocus values from fits with nearby expected defocus val-
              ues. If the fitting range is set either in the options or in
              local settings, that range will be used; otherwise the program
              will use a fitting range up to 0.3/pixel with automatic weight-
              ing and truncation (see -truncate).  If spectrum cropping is set
              either in the options or the local settings, that cropping will
              be used; otherwise up to 2-fold cropping will be used for a
              pixel size less than 0.27 nm.  The scan is skipped if there is
              an expected defocus available from local settings and the defo-
              cus file is not empty.

       -tune (-tu) OR -TuneFittingAndSampling
              Adjust fitting range, spectrum cropping, and power spectrum res-
              olution automatically when starting, after a defocus scan if
              any.  This procedure happens after a scan of a defocus range, if
              any, and the spectrum cropping and fitting range are initially
              set just as described for -scan.  With a given spectrum, the
              program first refines the fitting range, shortening it if
              weights fell to zero before the end of the range, or trying
              longer ranges until weights do fall to zero.  Then it assesses
              whether a change in spectrum cropping or in the PS resolution is
              advisable to avoid either CTF aliasing or unnecessarily low SNR.
              A new spectrum is obtained after such a change and these two
              steps are repeated until no more significant changes in cropping
              or resolution are indicated.  After running autotuning via this
              option or interactively, the expected defocus is set from the
              initial focus, "Use current defocus" is turned on, and automatic
              weighting and truncation is turned on.  Also, the graph is
              scaled so that the first zero and peak after it occupy most of
              the range.  The procedure will not run if there are fewer than
              three zeros within the initial fitting range of 0.3/pixel, where
              spectrum cropping will be relaxed to achieve this if possible.
              Also, the procedure is skipped if -autofit and -range options
              are entered, there is a local settings file, and there are val-
              ues in the defocus file, since Ctfplotter is presumably being
              opened after being run with Batchruntomo.

       -assess (-ass) OR -AssessTiltAngleOffset
              Estimate the tilt angle offset on startup, after scanning for
              defocus and and tuning the fitting, if those steps are done.
              The defocus on left and right sides will be measured for up to 5
              sets of views near zero tilt, with at least 3 views in each set,
              to get multiple estimates of the offset.  These will be averaged
              and set as the offset, then the measurement will be iterated up
              to two more times until the change in offset is under 0.5.

       -testInv (-te) OR -TestInversionAndExit
              Enter 0 or a specific angle to make the program test for whether
              tilt angles need to be inverted, print a result, and exit.  This
              test occurs after defocus scanning, tuning of autofitting, and
              assessment of the tilt angle offset if any of these are speci-
              fied.  The details that would normally appear in a popup message
              are printed out, then a final line with:
                 Angle polarity needed: x  ratio: yy.yy
               where x is 1 if the tilt angles in the input file are correct,
              -1 if they need to be inverted, or 0 for an ambiguous or not
              convincing result.  The ratio (yy.yy) is the ratio between the
              bigger left-right difference in defocus over the smaller one,
              thus greater than 1.  The program's criterion for a clear result
              is 2.5.  If 0 or any value between -15 and 15 is entered, the
              program will pick an angle that is 2/3 of the way up to the
              highest tilt angle. At least 3 views will be included in the
              measurements.

       -fpOffset (-fp) OR -FocalPairDefocusOffset    Floating point
              Normally, ctfplotter processes a single stack whose name is
              given by InputStack. It can optionally process a pair of stacks
              with identical tilt angles and mutually aligned projections,
              taken with a constant defocus offset between them. If, for exam-
              ple, InputStack is myData.st, one could place a stack with 6 um
              underfocus in myData_1.st and a stack with 2.175 um underfocus
              in myData_2.st and specify an ExpectedDefocus of 6000 and a
              FocalPairDefocusOffset of -3825.  There is some possibility that
              this processing still works after the major changes in 2018, but
              using it will prevent some of the new features from being avail-
              able.

       -range (-ra) OR -AngleRange    Two floats
              When the -autoFit option is not entered, this entry sets the
              starting and ending tilt angles for the initial analysis and is
              a required entry when a tilt angle file is entered.  Views with
              a tilt angle within this range are used to compute the CTF
              curve.  When -autoFit is entered, this entry sets the whole
              extent over which steps will be taken in autofitting.

       -autoFit (-au) OR -AutoFitRangeAndStep   Two floats
              Do initial autofitting over the whole tilt series with the given
              range of angles in each fit and step size between ranges.  A
              value of zero for the step will make it fit to each single image
              separately, regardless of the value for the range.  The range
              entry can also be zero to fit to a single image.  This aut-
              ofitting differs from that invoked through the Angles dialog in
              several respects: 1) Fitting is done at each angle with the cur-
              rent defocus from the previous angle, if any, and the "Use cur-
              rent defocus" radio button is left selected at the end, unless
              the -useDef option is entered.  If phase is being found, it will
              also use current phase.  2) Three fitting iterations will be
              done.  3) The size of the range is determined by the parameter
              entered here, not by the starting and ending angles entered with
              the -range option.  This autofitting will not be done if there
              are already values in the defocus file and if the -range option
              is entered, in order to prevent an annoying message when opening
              Ctfplotter after processing with Batchruntomo.  Otherwise, if
              autofitting is specified and there are existing defocus values,
              the program will ask you to confirm whether to replace them.

       -more (-mo) OR -FitMoreViewsAboveAngle   Two integers
              Higher number of views to fit above a certain angle when aut-
              ofitting, and the angle above which to fit more views.  This
              option can be used if the CTF signal at high tilt degrades more
              than can be handled just by automatic truncation of the fitting
              range.  This entry affects the number of views included in each
              high-tilt view but not the step between views, which will still
              be 1 if that was specified by the -autofit option.  It has no
              effect if the number of views is not higher than the number
              being fit at lower tilt.

       -useDef (-use) OR -UseExpectedDefForAuto
              Use the expected defocus value at each angle instead of the cur-
              rent defocus when doing initial autofitting.  This is the behav-
              ior of the program before IMOD 4.10.18.  At each angle, the
              expected defocus is used the first time and the defocus estimate
              is used for the next two iterations.

       -frequency (-fr) OR -FrequencyRangeToFit      Two floats
              Starting and ending frequencies of range to fit in power spec-
              trum, in reciprocal pixels or in Angstroms, or -1 to use the
              default defocus-based frequency for either value.  The entry
              will be used to set the "Start fit at" and "End fit at" fields
              in the fitting dialog after the pixel size that governs the
              meaning of these frequencies has been adjusted for any cropping
              of the spectrum.  In other words, if you are also entering the
              -crop option and these values are in reciprocal pixels, enter
              the fitting range that works for the cropping specified by that
              option.  Entering the values as Angstroms avoids this issue
              because the same value applies before and after cropping.  If
              you using -tune without -fcrop, the starting value will be main-
              tained while the ending value will be replaced after successful
              tuning.  The main use for setting a starting value is to start
              the fit after the peak following the first zero, which may be
              necessary when fitting data taken with a phase plate.

       -extra (-ext) OR -ExtraZerosToFit   Floating point
              By default, the ending frequency of the fitting range is set
              midway between to the expected locations of the third and fourth
              zeroes.  With this entry, the range will be extended from the
              second zero (the original program default) by the given multiple
              of the interval between first and second zeros.  For example,
              entries of 1 or 2 will fit approximately to the third or fourth
              zeros, respectively, while the new default corresponds to an
              entry of 1.5.  An entry of more than 0.5 will trigger fitting to
              two exponentials, which is important for fitting multiple peaks
              between zeros.

       -truncate (-tr) OR -AutoTruncateAndWeight     Integer
              This option controls weighting of some frequencies in the fit
              and provides automatic truncation of the fitting range.  With a
              value of 1 or 3, the program does an initial fit, determines the
              local correlation between the power spectrum and the fitted
              curve, assigns reduced weights to frequencies where the correla-
              tion is low, and truncates the fitting range after the correla-
              tion falls to a very low level.  The start of the fitting range
              is also changed to exclude the region before the first zero
              where the curve is more than 1.5 times higher than the peak
              after the first zero, to keep the fit from being influenced by
              this much higher, but essentially irrelevant, signal.  Thus, one
              set can the fitting range at low tilt and use the same nominal
              range at higher tilts where the useful range is less.  With an
              entry of 3, the large-amplitude early parts of the spectrum are
              downweighted by up to a factor of 2 so that they do not dominate
              the error measurement of the fit.  Specifically, regions with an
              amplitude larger than half of the maximum amplitude are weighted
              by half of the maximum amplitude divided by the region's ampli-
              tude.  This weighting is experimental and its value is unknown.

       -vary (-va) OR -VaryExponentInFit
              Vary exponent of CTF function when fitting a CTF-like curve

       -baseline (-ba) OR -BaselineFittingOrder      Integer
              Baseline fitting is used to make the power spectrum be flat at
              high frequencies; this entry initializes the "Baseline fitting
              order" setting in the Fitting dialog.  For details, see above.
              The default is 4 unless the expected position of the first zero
              is 0.25 reciprocal pixels or higher, in which case it is set to
              1.

       -find (-fin) OR -FindAstigPhaseCuton     Three integers
              Enter 1 to find astigmatism or 0 not to, 1 to find phase shift
              or 0 not to, and 1 to find cut-on frequency also, or 0 not to.

       -sAstig (-sA) OR -SearchAstigmatism
              Search for astigmatism when fitting.  This option cannot be
              entered with -find.

       -sPhase (-sP) OR -SearchPhaseShift
              Search for phase shift when fitting.  This option cannot be
              entered with -find.

       -sCuton (-sC) OR -SearchCutonFrequency
              Search for cut-on frequency when finding phase shift.  This
              option cannot be entered with -find.

       -minViews (-mi) OR -MinViewsAstigAndPhase     Two integers
              Minimum number of views for finding astigmatism and phase shift;
              the default is 3 for astigmatism and 1 for phase.

       -save (-sa) OR -SaveAndExit
              Save defocus values to file and exit after autofitting.  The
              program will not ask for confirmation before removing existing
              entries in the defocus table.

       -png (-pn) OR -SavePNGsOfGraphs     Integer
              When saving and exiting after autofitting, also save a PNG of
              the graph for rows of the table at the specified interval.
              Enter 1 for all rows.  The saved file names will consist of the
              root name of the input stack, "_ctfp", and either the starting
              and ending angle of the fitting range or just one angle when a
              single view was fit.  With this option, the plotter window and
              its two dialogs must be opened, so a display must be accessible.
              The program will not run with this option in a situation where
              it could not be run interactively.

       -tiff (-tif) OR -SaveTIFFsOfGraphs       Integer
              When saving and exiting after autofitting, this option makes the
              program save a TIFF file of the graph for rows of the table at
              the specified interval.  Otherwise, the option switches the two
              PNG-saving buttons in the angle range dialog to save TIFF files
              instead.  The TIFF files will have ZIP compression and be compa-
              rable in size to PNGs.  The naming will be the same as for PNGs,
              with the extension ".tif" instead of ".png".  The program must
              be able to open dialogs, just as for -png.  This option and -png
              are mutually exclusive.

       -snap (-sn) OR -SnapshotFilename    File name
              Name of file saving graph when fitting a single image.  Either
              -png or -tiff must be entered.  This entry has no effect when
              the input image file has more than one image.  If the filename
              does not end in the appropriate extension for the file type,
              "tif" or "png" (or upper case variations of that), the extension
              will be added.

       -psRes (-ps) OR -PSResolution       Integer
              The number of points over which CTF will be computed.  The fre-
              quency range up to Nyquist is divided into equal intervals
              delineated by these points.  The default is 101.

       -tileSize (-til) OR -TileSize       Integer
              The tile size for computing spectra.  The size is in pixels and
              the tiles are square.  The whole image is divided into tiles
              that overlap by 50% in each direction.  For each view, these
              tiles are assigned to strips that are considered to have con-
              stant defocus.  The default is 256.

       -defTol (-defT) OR -DefocusTol      Integer
              Defocus tolerance in nanometers defining the strip width.  The
              center strips are taken from the central region of a view that
              has defocus difference less than this tolerance. Similarly, the
              off-center strips are defined to include tiles whose defocus
              range is less than this amount.  The default is 50.

       -leftTol (-lef) OR -LeftDefTol      Floating point
              Defocus tolerance in nanometers for strips to the left of the
              center strip.  When non-center strips are included in the aver-
              age, strips to the left of center are included if their defocus
              difference is less than the given value.  The default is 2000.

       -rightTol (-ri) OR -RightDefTol     Floating point
              Defocus tolerance in nanometers for strips to the right of the
              center strip.  When non-center strips are included in the aver-
              age, strips to the right of center are included if their defocus
              difference is less than the given value.  The default is 2000.

       -cache (-ca) OR -MaxCacheSize       Integer
              To speed up computation, ctfplotter uses a cache to hold the
              rotationally averaged power spectra of strips of tiles at 20
              times the final power spectrum resolution (or whatever is
              entered with the -hyper option).  It also caches the FFTs of
              tiles when possible, so that spectra of different resolutions
              can be extracted from them.  This entry in megabytes controls
              the cache size.  The default value is 1000 megabytes if the sys-
              tem physical memory cannot be determined; otherwise the size is
              the minimum of 15 GB, 3/4 of physical memory, and physical mem-
              ory minus 1 GB, for memory up to 30 GB, and half of physical
              memory above 30 GB; but in any case at least 400 MB.

       -hyper (-hy) OR -HyperResolutionFactor   Integer
              Ratio of points in cached spectra to ones in computed curves
              (default 20)

       -sectors (-se) OR -NumberOfSectors       Integer
              Number of sectors for astigmatism analysis.  A power spectrum is
              stored separately for each sector; spectra can then be computed
              fairly quickly for wedges of any size that is a multiple of the
              sector size.  The default is 36, giving 5 degree sectors.

       -wedge (-w) OR -WedgeRangeAndInterval    Two floats
              Initial value for the angular range and interval of wedges for
              astigmatism analysis.  The default is a range of 90 degrees and
              an interval equal to one sector.

       -astigMax (-ast) OR -MaximumAstigmatism       Floating point
              Maximum astigmatism, in microns.  During the fitting to wedge
              spectra, the defocus is allowed to vary from the global value by
              more than half of this amount.  The default is 1.2.

       -ignore (-ig) OR -IgnoreInfoFile
              Skip reading a "ctfplotter.info" file in the current directory,
              left from a previous run.  This option is useful if the program
              runs poorly due to bad initial values and then stores some bad
              values in the ".info" file.

       -hideTest (-hi) OR -HideAngleTestAndOffset
              Hide the button to test left-right differences and the tilt
              angle offset fields by making them appear only when the "Tile &
              wedge parameters" section is opened.

       -colors (-col) OR -ChangeColors
              Switch to colors that are better for some forms of color-blind-
              ness; this option will turn on the checkbox for this change on
              the plotter window.  The power spectrum changes from magenta to
              white, a fitted curve changes from green to magenta, and the
              background is set to black.

       -legacy (-leg) OR -ShowLegacyFitting
              Include options for fitting a polynomial or two curves in the
              fitting dialog, the original methods in the program.

       -dump (-du) OR -DumpWedgeSpectra    List of integer ranges
              List of wedge spectra to print out, numbered from 0, or -1 for
              final spectra from complex fits, or -2 for spectra after aut-
              ofitting.  With a list of wedge spectra, these background-sub-
              tracted spectra will be printed for each iteration of the astig-
              matism fitting.  The frequency as fraction of Nyquist, actual
              spectrum value, and fitted value will be prefixed by a type
              value equal to 100 times the iteration number plus the wedge
              number.  Wedge spectra will be printed only if the option in the
              angle range dialog is set to show them.  If just -1 is entered,
              then final spectra will be printed instead, but only when doing
              complex fitting including astigmatism or phase through the mul-
              tipleSpectraAndFits routine.  When just -2 is entered, the last
              computed spectrum will be printed when a defocus is saved in the
              table during autofitting.  In the latter two cases, the type
              number at the beginning of each line is simply incremented each
              time a spectrum is printed.

       -debug (-deb) OR -DebugLevel   Integer
              Debug level, 0-3. 0: quiet.  1: user messages.  2: cache, tile
              iteration messages.  3: additional fitting messages. The default
              is 1.

       -param (-pa) OR -ParameterFile      Parameter file
              Read parameter entries from this file.

       -help (-he) OR -usage
              Print help output

       -StandardInput
              Read parameter entries from standard input


EXAMPLES
       The program can be run at the command line with relatively few entries
       for a single image or stack of untilted images.  With a standalone ver-
       sion built without Qt and untilted images, this command will find defo-
       cus and astigmatism after scanning for defocus in the range from 1 to 5
       microns, and running autotuning:

          ctfplotter -volt 300 -cs 2.700 -sAstig -scan 1000,5000 -tune
       -input test.mrc -defFn test.defocus

       where "-find 1,0,0" can be used instead of "-sAstig". Autofitting and
       exiting is automatic with the no-Qt version, but if you are running a
       full version, these options are also needed:

          -save -autoFit 0,0

       With a single tilted image, you need to add the tilt angle and tilt
       axis rotation angle relative to the Y axis, for example

          -single 30.00 -aAngle 85.3

       To set a fixed phase shift or the initial shift when searching for
       phase, specify it in degrees with the "-degPhase" option.  To search
       for phase as well as astigmatism, add "-find 1,1,0" instead of
       "-sAstig".


AUTHORS
       Quanren Xiong
       David Mastronarde
       John Heumann

SEE ALSO
       ctfphaseflip, newstack

BUGS
       Prior to IMOD 4.0.29, Ctfplotter had a bug in which the view numbers
       written to the defocus file were numbered from 0, not 1.  When Ctfplot-
       ter reads in an existing defocus file, it will do its best to detect
       this situation and adjust all the view numbers up by 1.  If it does
       detect an inconsistency between view numbers and angular ranges, it
       will issue a warning.

       Email bug reports to mast at colorado dot edu.



IMOD                                 5.0.2                       ctfplotter(1)