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)