NOTES ON PROCESSING OF TUBULAR CRYSTALS AND OTHER HELICAL PARTICLES 30.7.96 INTRODUCTION Many of the programs described here originate from David DeRosier, Linda Amos, Tony Crowther, Chikashi Toyoshima and Nigel Unwin. The refinement procedure is based on comparisons of individual images with a reference dataset. It divides the image up into subrepeat lengths to correct for bending, variable twisting, stretching, tilting etc.; developed by Rameen Beroukhim. A difference from the earlier MRC helical package is that interpolation is done on the digitized image first and not in the Fourier transform afterwards. The purpose of the real space interpolation is to make the layer-lines come exactly on the sampling points in the transform. They will thus be as sharp as possible, and closely spaced layer-lines cannot merge into one another. To achieve the correct interpolation, the repeat distance and the rotation angle of the tube first need to be worked out from the image; these and other parameters are then refined later. Many files are displayed and explained in the "sheets" enclosed by stars within the text. Unless otherwise indicated, all files are located in the ~/emc directory. SUMMARY OF STEPS 1. SCAN THE FILM 2. PRINT IT OUT 3. DETERMINE THE CONTRAST TRANSFER FUNCTION, DEFOCUS and ASTIGMATISM Done on boxed-off lengths of helical particles using pltctfx 4. FIND THE REPEAT DISTANCE Done by cross-correlating different regions of the image using correl.com 5. IDENTIFY THE BEST PARTS OF THE TUBE This is done by examining the Fourier transform of sections along the image. hfts.com Calculates Fourier transform of section given in the 5064.box file. Produces 5064.fft. hftout Takes 5064.fft and produces output (e.g. 5064.out) which contains the FT in a format which can be displayed or printed. 6. SELECT DATA locate region of tube to be processed divide into appropriate number of segments (Normally, each segment is one repeat distance long, but sometimes multiple repeat distances are used. The analysis of multiple repeats is similar to the analysis of single repeats, except the parameter llfact (which appears in the *.box file (sheet 1), the hlxmk.com file (sheet 5), and elsewhere) should be changed from 1 to the number of repeats used) Make .box files 7. RELATE LAYER-LINES TO LATTICE nltable create table with the positions of the layer lines edit hlxs.com insert positions of strongest layer lines (selected from nltable output) so hlxs can (later) extract data from F.T. hlxmk.com creates .hlx files from nltable output (after the header has been removed). These contain the lattice positions in a format the computer can use. 8. FIND APPROXIMATE VALUES FOR X TILT PHI Z RSCALE Run search.com -this runs the following: hfts.com hlxs.com srch.com (and srch1.com) hlxfl.com hlxfit.com hlxfitx.com 9. REFINE WHOLE REPEATS AND DIVIDE INTO SIXTHS refine runs.. search.com rotx.com repeat.com chop.com 10. PLOT PATH OF TUBE THROUGH ICE (CURVES) AND DIVIDE REPEATS INTO THIRDS tubecurve.com (plots path of tube through ice) create .box file for thirds run search.com on the thirds 11. REFINE THIRDS hlxfl500.com extract data hlxavg.com average data from thirds h2fld.com find two-fold residual change parameters of thirds by hand to minimise two-fold residual 12. EXTRACT DATA, APPLY CTF AND BACKGROUND CORRECTIONS hlxfl500.com extract data hlxavg.com average thirds ctfplot.com refine ctf and apply to data icefft.com calculate FT of ice hbkg.com determine background amplitude at each point 13. MERGE AND FILTER DATA nfadd.com add near- and far- side files with ctf hreindex.com reindex to common selection rule hlxadd.com merge different images divctf.com apply final corrections for CTF and background hlxlim.com cut out noisy parts of layer-lines 14. CALCULATE MAPS ltlg.com get little g's hsec.com & hhor.com calculate maps from little g's DETAILS OF PROCEDURES ********************* 1. SCAN THE FILM Scanning is done with the Joyce-Loebl, with the scanning raster parallel to the tube axis. Some programs assume the pictures are taken at around 34880x and are scanned at 5um (=1.43A). Conventions are: a. emulsion side up b. gain is set to 2 c. scanning aperture is set to "E" for 5.0um spot size (5 um step too). d. speed setting 5 r JLTEST: to check stability and set ODs. OD reading should be about 40 on a clear area of the film. r JL95: (or JL95i for more than 7500 pixels length)to scan film. Remember to reset scan x,y origins to 0000. In setting up area to be scanned, it is important to check that the whole area will stay in focus during the scanning. This should happen if the area is near the centre of the glass plate (slightly to the left rather than to the right). Typical scan parameters for ACh receptor tubes : NX,2000,2,5,1, Output file: *.SCN 2. DISPLAY SCANNED DATA Transfer the image file from the densitometer to the alpha using jlcopy: jlcopy VH4:5064.SCN /nb0/cs1/images/5064.img (to copy the file 5064.SCN from disk VH4: on the densitometer to the directory /nb0/cs1/images/, renaming it 5064.img). This file is too large to display easily so label or rlabel reduces the size of the image by averaging adjacent pixels (rlabel can handle larger files than label). The convention is to add an "l" to the output filename, e.g. l5064.img so... cd /nb0/cs1/images rlabel 5064.img 4 l5064.img 6,6 (averages over 6 data points in both X and Y directions to reduce size of file 36 times) Then to display the image run Ximdisp using the labelled file.... Ximdisp & l5064.img [default] [carriage return] 425,455 (use 10 below mean, 20 above mean density) / Alternatively, just run Ximdisp on the original file: Ximdisp & 5064.img [default] 6 6 (to average over 6 data points in each direction) 425,455 (still 10 below, 20 above) / To print out the image, the reduced (using rlabel) image is required. Then type: axchgmrc l5064.img l5064r.img to flip the image axes (landscape to portrait view), and print it using: printtone -lower=425 -upper=455 l5064r.img Upper and lower refer to the density limits; again, enter 20 above and 10 below the mean density. printtone asks for the limits of the image you want to print; use the default values (enter a slash: /). The origin is at the bottom left of the printed image. On the printout, the distance in g.u. = distance in mm * 2.63 (multiply this by 3 for normal g.u.). 3. DETERMINE THE CONTRAST TRANSFER FUNCTION The form of the CTF is obtained by rotationally averaging sectors in the Fourier transform of a stretch of the tube. The radial amplitude distributions are collected in 5 sectors between 0 and 180 deg., with radius in g.u. The results are then filtered for noise and fitted with theoretical CTF's (plotted as a function of resolution squared) to determine the defocus and astigmatism. To run the CTF program the image needs to be reduced in size with rlabel. 3 adjacent pixels in each direction are averaged. *.box files are then set up (see sheet 1) (make sure the first line contains the name of the labelled image file, not the original image) so that the whole length of the tube is covered--i.e. Y centre is in the middle of the (labelled) tube and Y length is equal to or less than the Y dimension of the transform for each stretch. The width is 1/3 of the normal width because of the averaging, and the final dimensions should be 1024x2048. Obtain the Fourier transform.... hfts.com 0 < 5064x.box The zero tells hfts.com to write the output to /scr0. Use sctravgft, avgctffl, and pltctfx, written by Chikashi Toyoshima, to divide each FT into sectors, average the sectors, and fit them to theoretical ctf's. Chikashi's notes on the use of these ctf fitting programs are in Appendix A. 4. FIND THE REPEAT DISTANCE The repeat distance is estimated by correlation of two separate stretches along the length of a tube. The output also gives the rotation angle of the tube. The values obtained are approximate only, and are refined later. The program works by taking a small box of the tube ('test file') and finding the best correlation with a larger box of the tube situated some distance away ('reference file'). The sizes and locations of these boxes are given in the *.corr file (SHEET 8). The smaller box should not include the edges of the tube because correlations between the edges overwhelm all other correlations and give false repeats. In order to find the true repeat distance a range of distances separating the two boxes may be tried. To activate the program on tube 5064, first create a 5064.corr file and then type: correl.com 0 3 < 5064.corr & The 0 means use /scr0, the 3 means reduce the image size by a factor of three in each direction before processing. The image should be reduced by a large enough factor so that the reference and test regions will each fit within a 512 x 2048 rectangle. correl.com writes to a log file, e.g. 5064corr.log. This file contains the positions (in the reduced image) of the vertices of the reference and test regions. At the end of the file is a list of the top ten cross-correlation peaks, including the x- and y- positions at in the reference region where the test region correlates best, the calculated rotation angle theta, the calculated repeat distance, and the amplitude of the cross-correlation peak. If the values are right the rotation angle will be close to 0 (if the tube was straight on the scanner). One needs to check which peak represents the true repeat by doing Fourier transforms with BOX dimensions corresponding to the putative repeats and checking that the layer lines fall on appropriate cooordinates. It is a good idea to try all the best values obtained by the program, trying different separation distances between the test and reference regions. correl.com also writes out the cross-correlation map, e.g. /scr0/cs1/5064corr.img (if run on /scr0), which can be viewed using Ximdisp (above). Only the top cross-correlation peaks can be viewed by selecting high min and max density limits--near the maximum density of the map. The locations of these peaks can be identified by using the option "enable pointer tracking" or "display coordinates". Remember that the image has been reduced by the factor given to correl.com (e.g. 3 above), so the coordinates must be multiplied by that factor. 5. IDENTIFY THE BEST PARTS OF THE TUBE Having determined the repeat distance, a stretch of tube needs to be found which will give good FT data. To do this, one-repeat-long segments along the tube (i.e. with different Y centre values) are Fourier transformed. The FT data is then studied carefully to ensure that the layer lines are thin, straight and symmetrical across the meridian. Bad signs.... Blurring into several lines lines short (suggests a flattened tube) a pattern like this across the meridian... @@@@@ | | @@@@@ | | @@@@@ | @@@@@ | | _____________|_______________ | | ...where lines on the left are sometimes above and sometimes below their counterparts on the right is a bad sign - one should give up on that segment. So determine the center of the tube by eye and specify box parameters in the file: *.BOX (Described in SHEET 1). The parameters to be specified are XCEN, YCEN, YLEN, ROTX, title and image file name. The box width (XWIDTH) equals the maximum diameter of the tube (594 g.u for 5.0um step size of a (-16,6) ACh receptor tube). To Fourier transform.... hfts.com 0 < 5064.box (The 0 instructs the program to write the output to /scr0) When complete, the Fourier transform file can be put into a readable form with hftout.... hftout /scr0/cs1/5064.fft f 5064.out {or whatever is convenient} 111 or 121 {default} Default values are usually fine for the parameters, but just need amplitude output, rather than amp and phase together, so type 111 (or 121 for more extended output) here. Then one can view the output .... m 5064.out (use a window which takes up the whole screen) It can be printed on the line printer with.... lprint 5064.out If the layer lines are too weak change the default parameters to 4,9. If the noise is too great try 5,7.5. 6. SELECT DATA Once a good region of tube has been identified, it is divided into a set of (possibly overlapping) repeats and a *.box file is made for each. Generally 1 to 4 repeats will cover the distance. XCEN is likely to be about 1000.0 for a scanned image width of 2000; YCEN must be determined for each repeat. Other values are as given in SHEET 1. It is likely that the values for ROTX, phi, z, rscal, xshift and tilt are unknown. If so, these should be set to zero, with the exception of rscal, which should be 1.0. For ROTX one can also use the estimate obtained from correl.com. Each repeat is given a title reflecting its position along the tube. "a" refers to the first repeat (usually nearest to 0), "b" to the one following etc. The titles of 3 repeats along tube 5064 are therefore 5064a, 5064b and 5064c. The *.box file relating to each repeat will be called 5064a.box, 5064b.box etc. Once the *.box files have been made it is useful to do a Fourier transform with each .... hfts.com 0 < 5064a.box & ... and then display the FT using Ximdisp (X/Y limits 300,300; density range 10,200; amplitudes) to check that the rotation angle is approximately correct (within ~0.4 degrees). If it is not correct then change ROTX in the *.box file and try again. It is a good idea use hftout (above) and keep a paper copy of the best FT for each stretch. 7. RELATE DATA TO LATTICE Next a set of files are edited and created so that the layer-lines can be extracted from the Fourier transform. First obtain a list of the positions of the layer-lines, their relation to (h,k) indices, etc. by creating an n,l table. For this one needs to run nltable... nltable image id sampling raster (e.g. 1.43A) X dimension of transform (e.g. 2048) Bessel order (n = -16) and layer-line no. (l) for (1,0) layer-line Bessel order (n = 6) and layer-line no. (l) for (0,1) layer-line box width in g.u. (594 for 1.43A sampling raster) repeat distance in g.u. ctf cut-off (i.e. to 1st zero in ctf, or out to 500 g.u.) maximum bessel order to consider (e.g. 500) where to write (e.g. nltable.5064 if going to first zero in ctf or nltabl.5064 if out to 500 g.u.) Output includes selection rule determined for tube, Rmin (closest position of layer-line to meridian, calculated from |n|+1=2*pi*rR) and Rmax. nltable is usually run twice to produce two files: one which extends only to the first CTF zero and one which extends to 500 g.u. (for ACh receptor tubes). The program hlxs is used for extracting some of the layer-lines identified in nltable output (e.g. to check equatorial data to see if the tube is centrally boxed; see below). Edit the command file hlxs.com (see SHEET 3) to include the layer-lines listed in SHEET 3; the layer-line numbers change and are listed in the nltable output (SHEET 4) but the Bessel orders remain constant. Then we need to reindex the layer-line numbers in the reference dataset (m26s2a.lim) to conform with the selection rule of the new tube. So, .... edit hreindex.com (SHEET 2) Changes: 1st line = old ref file (m26s2a.lim) 2nd line = new ref file (e.g. m26s2a5064.lim) 4th line = -16 6 (Bessel orders of basis layer-lines) 5th line = 38 25 (Layer-line numbers of basis lines in m26s2a) 6th line = 17 11 (e.g.in 5064) (layer-line numbers of basis lines in the new tube) And run it..... hreindex.com For the next bit we need to remove the headers (everything before the first layer-line listed, usually the equator) from the nltabl(e).5064 (SHEET 4) files so that they can be converted by hlxmk.com into *.hlx files. These are used by hlxfl to extract layer-lines from the FT. Call the new nltable files, without headers, nltabl(e).dat Edit hlxmk.com (SHEET 5); the input file should be nltable.dat. nltable.dat extends to the first ctf zero. e.g. 170 g.u.. so it is converted to e.g. 5064170.hlx. Do this one first say, then run hlxmk.com... hlxmk.com Then go back and edit hlxmk.com to convert nltabl.dat (which extends to 500 g.u.) into e.g. 5064500.hlx, and run hlxmk.com again. 8. FIND APPROXIMATE VALUES FOR X, TILT, PHI, Z, RSCALE We want these values to be close enough to the true values so that the automated sequence, refine, will not be trapped in false minima during the iteration process. search.com begins by running hfts.com to calculate the FT. It then runs hlxs.com to extract strong layer-lines and srch.com (and srch1.com) to determine, from these, the x-shift and tilt values. With these, it makes the file 5064a170.hlx (if we are using repeat "a" of image 5064), allowing it to run hlxfl.com to extract all the layer-lines out to 170 g.u. search.com also creates 5064a.hfit which is used by hlxfit.com to determine phi, z and rscal. search.com then creates 5064a.hfx which is used by hfitx.com to refine x-shift. search.com then iterates back to srch.com to refine the tilt and continues until the x-shift no longer changes by more than 0.1 g.u. Then it alters the *.box file to include the new values for x, tilt, phi, z and rscal. If x-shift was > 0.20 g.u. on a whole repeat search.com runs again after changing XCEN to account for x-shift. srch.com Compares the phases (and amplitudes) of strong peaks equidistant across the meridian. These arise from different sides of the tube. Finds x-shift tilt hlxfit Determines amplitude and phase residuals against reference data. Minimises the phase residual to find: phi z rscale hlxfitx Determines x-shift by minimising the phase residual against reference data Also calculates an amplitude residual. ______________________________________ / | phase residual = / [sum (|Fref|*(phase difference)**2] / ___________________________________ / \/ sum(|Fref|) and amplitude residual (R-factor) = sum(||Fref| - |Ftest||) ______________________ sum (|Fref|) where the summations only include terms higher than a cut-off level (we usually use 0). The first difficulty one encounters is that, unless XCEN is within ~8 g.u. of the true value, srch.com tends to find false minima before reaching the true value is reached. To get to within 8 g.u. of XCEN by hand, one runs search.com... search.com 1 < 5064a.box search.com command 1 use scratchdisk 1 < use following data file 5064a.box data file and waits until the first F.T. has been completed This happens when you see the line .... Overall min max mean values are...... on the output screen. hlxs.com immediately begins to run and only takes a few seconds to complete. It is best to stop search.com when this happens (a minute, say, after the F.T. comples; type ctrl-c) so that it doesn't go to completion and write incorrect values to the *.box file. hlxs.log (in the ~/log directory) contains the output. The first layer-line hlxs extracts should be the equator. Phases are shown on the right-hand side of the display with @ symbols. A gradient in the equator's phases means that XCEN is wrong. XCEN should be changed and search.com re-run until the phases on the equator are 0 or 180 degrees (allowing for noise), with no gradient. The gradient will follow the following rule. Taking dx = 2 * Rpeak, where Rpeak is the distance of the peak from the meridian in g.u., the change in phi from the proper value will be: dp = dx*360/2048 = 0.176 * dx (degrees) for a 2048 x nz transform. Another useful formula when comparing individual peaks across the meridian to establish the correct helical family: Rpeak = 2048*1.43*(1.1*n+0.9)/(2*Pi*rc) = 466.11*(1.1*n+1)/rc where rc is the radius in Angstroms for the centre of mass that contributes that particular layer-line and 1.43 is the number of Angstroms per grid unit. If search.com is allowed to run for a couple of minutes after finishing the transform, it will get through srch.com and srch1.com. (Again it is best to stop search.com before it runs to completion). The results are printed in the *.rr file (SHEET 6) in the ~/log directory. If the srch.com residual is >70 (70000 as written in the *.rr file) it is likely to be in a false minimum. Change XCEN (noting the hlxs.com output and trying to minimise the equatorial phase gradient) and try again. Sometimes the problem is that the tilt angle is too great (e.g. >800 or <-800 as written in *.rr); it can be useful to rerun search.com trying different tilt angles (e.g. 800 or -800) in the *.box file. After srch.com and srch1.com have run to completion, search.com runs hlxfl.com and then creates 5064a.hfit and runs hlxfit.com. Once hlxfit.com has started (check if it has begun to write output to ~/log/hlxfit.log), stop search.com. Edit 5064a.hfit (SHEET 7) : phi should be searched in 1 degree steps and z in 10 Angstrom steps. Then run hlxfit.com: hlxfit.com 5064a and check the output to ensure that it found a global minimum: the phase residual should be <80, preferably <70. If it is not, edit 5064a.hfit to try other starting values for phi and z: start phi at either 6, 0, or -6, and z at 50, 0, or -50 (use different combinations). Continue to use 1 degree and 10 Angstrom steps. Once the global minimum has been found, the phi, z, and rscal values can be entered into the *.box file, and search.com can be allowed to run to completion. Check the ~/log/*.rr file (sheet 6) to ensure that the final srch.com residual is reasonable (<70; 70000 in *.rr) and the final hlxfit.com residual is reasonable (<70 or 80; 70000 or 80000 in *.rr). 9. REFINE WHOLE REPEATS AND DIVIDE INTO SIXTHS Each section of a tube (e.g. 5064a) that has been processed as in 8 can now be refined by typing: refine 0 5064a > /dev/null & [refine on scratch disk 0 the repeat 5064a with no output to screen; do the whole thing in the background] Refine runs search.com, and then iterates through the sequence rotx.com, repeat.com, search.com until the parameters stop changing significantly. Then, having aligned the whole repeat with the reference data set, refine splits the repeat into sixths and runs search.com on each of these. The purpose of this is to get xshift and z values for each of the sixths, which will allow us to determine the rotation angle (theta) and repeat distance for each third of the repeat. At present refine takes around 2 hours to complete. Keep printouts of ~/log/5064a.rr and 5064a.box. Sometimes refine gets caught in a loop and the values for the entire repeat do not converge. refine stops after 8 iterations. If that happens, changing YCEN by a few grid units in the *.box file usually solves the problem. refine can be then re-run. 10. PLOT PATH OF TUBE THROUGH ICE (CURVES) AND DIVIDE REPEATS INTO THIRDS refine produces *.box files for each sixth of the repeat: e.g. 5064a11.box, 5064a12.box, 5064a21.box, etc. These files contain all the information about the path of the tube through the ice, but the format of the *.box files is such that the position and orientation of each segment of a repeat is only described in relation to the position and orientation of the whole repeat (which is also described in the *.box file). refine assembles that information from each of the six *.box files, and writes it to the file 5064acurve.in (sheet 9), which contains the position and orientation of the whole repeat and the position and orientation of each sixth in relation to the repeat. tubecurve.com combines the information from the different repeats to make the file 5064curve.in (sheet 10), and then forms the file 5064.curves (sheet 11), which lists the absolute positions and orientations of each sixth. tubecurve.com also uses the differences between x and z values of neighboring sixths to determine the rotation angles and repeat distances at points midway between those sixths--i.e. the centre-points of thirds of a repeat that we use later. These calculated values are put into the file 5064.calc (sheet *). To run tubecurve.com, type (e.g.): tubecurve.com 5064 6 a b c d where "5064" refers to the image, "6" refers to the number of segments each repeat has been divided into, and "a b c d" tells the program to use information from repeats a, b, c, and d. tubecurve.com also writes out gnucomp, a command file for the GNU plotting utility gnuplot. To plot some of the data in 5064.curves and 5064.calc, just type... gnuplot gnucomp (makes file of plots) laser1 plot.plt (prints graphs) Also, it's good to keep a record of the text files: lasertxt 5064curve.in lasertxt 5064.curves lasertxt 5064.calc 5064.calc contains rotation angles and repeat distances calculated for points midway between the sixths--i.e. at the centre-points of thirds and midway between thirds. These values tend to be noisy; to reduce noise, the value taken for each third is the value at its centre averaged with the values midway between it and its neighbors. So, using 5064.calc: # calcy calctheta calcrepeat tclctheta 1350.40 0.28 1131.20 # 1619.00 -0.30 1123.22 # 1887.60 -0.20 1130.69 # 2156.20 -0.57 1127.29 # 2424.80 -0.56 1136.10 # 2465.55 -0.38 # 0.70 2506.79 -0.35 1138.38 # 2776.35 0.32 1128.82 # 3045.90 -0.76 1139.06 # 3315.45 0.81 1126.43 # 3585.01 -0.02 1142.58 # 3595.56 -0.02 # -0.20 3606.46 -0.21 1139.16 # 3876.73 -0.75 1127.79 # 4147.00 0.49 1137.73 # 4417.27 0.12 1133.62 # 4687.54 -0.28 1138.45 # 4739.85 -0.03 # -0.03 4792.41 0.44 1136.38 # 5063.15 0.25 1142.38 # 5333.90 -0.48 1138.14 # 5604.65 -0.84 1128.53 # 5875.39 0.35 1130.38 # theta for the first third of the first repeat (5064a1; it is centred at calcz=1350.40) can be calculated as: (0.28 + -0.30)/2 = -0.01. The repeat distance is (1131.20 + 1123.22)/2 = 1127 (to the nearest integer). For 5064a2 (centred at 1887.60), these values are (-0.30 + 2 * -0.20 + -0.57)/4 = -0.32, and (1123.22 + 2 * 1130.69 + 1127.29)/4 = 1128. For 5064c3 (centred at 4687.54), they are (0.12 + 2 * -0.28 + -0.03)/4 = -0.12, and (1133.62 + 1138.45)/2 = 1136. If neighbouring repeats overlap enough, "calcy" will be smaller midway between, e.g. a3 and b1, than at a3, and larger than at b1. In this case, neglect the midway point in the theta calculations (it is already neglected in the repeat distance calculations). Once theta and repeat distance have been determined for each third, *.box files are created for each. For 5064a1.box (representing the first third of the first repeat of 5064), use 5064a.box as a template. Change "5064a" to "5064a1" everywhere it appears in the file. Also change the number of segments per repeat from 1 to 3 (leave the number of the current segment as 1), change DROTX so that ROTX + DROTX = the true theta (-0.01 as calculated above; note that DROTX, as it appears in the file, is in 1/100's of a degree, so it appears 100x as big as calculated, and is an integer), and change DYLENGTH so that YLENGTH + DYLENGTH = the true repeat distance (1127 as calculated above). Do the same for 5064a2.box (using "5064a2" and changing the number of the current segment to 2), and so on. 5064b.box should be used as the template for 5064b1.box, 5064b2.box, and 5064b3.box. Run search to determine tilt, xshift, phi, z, and rscal for each third: search.com 0 < 5064a1.box & search.com 1 < 5064a2.box & search.com 0 < 5064a3.box & search.com 1 < 5064b1.box & etc. When this is finished print out the *.box and *.rr files for each third (one may concatenate the *.rr files of each repeat to save paper). 11. REFINE THIRDS All the parameters have now been determined for each of the thirds. At this point it is important to check them by hand to make sure no errors have occurred. Check the srch and hlxfit residuals for thirds to ensure they are all similar. Residuals which are very poor may indicate that the refinements went wrong or the tube is disordered in that segment. Check that no obvious errors were made (e.g. having a 2 for the segment number in the *b3.box file). Then make graphs of the path of the tube through the ice using values given by the thirds. To do this edit the *curve.in file for each repeat (sheet 9), removing the six lines of parameters for the sixths and inserting in their place three lines of parameters taken from the *.box files of the thirds. Run tubecurve.com: tubecurve.com 5064 3 a b c d The "3" indicates the repeats have been divided into thirds. Plot and print the results: gnuplot gnucomp lasertxt 5064curve.in lasertxt 5064.curves lasertxt 5064.calc The rscal measurements tend to be noisy, and are averaged (as theta and repeat distance were) to improve them. Taking the new 5064.curves which lists parameters of the thirds: # calcy x tilt theta repeat phi rscale tottheta 1350.41 1436.00 -2.31 0.01 1127.00 -4.23 1.020 -0.32 1887.60 1433.92 -5.39 -0.32 1128.00 -4.18 1.024 -0.32 2424.79 1430.35 -7.14 -0.58 1132.00 -4.50 1.028 -0.32 2506.79 1429.02 -7.08 -0.22 1134.00 0.71 1.029 0.08 3045.90 1428.23 -7.93 0.08 1133.00 0.90 1.031 0.08 3585.01 1429.52 -8.61 0.25 1135.00 0.83 1.033 0.08 3649.36 1429.11 -8.08 0.20 1136.00 6.06 1.036 0.07 4189.90 1426.14 -6.95 0.61 1133.00 6.06 1.041 0.07 4730.44 1428.13 -9.49 0.17 1135.00 6.05 1.044 0.07 4792.41 1428.20 -9.46 0.39 1139.00 11.25 1.045 -0.13 5333.90 1429.41 -8.67 -0.39 1137.00 12.05 1.046 -0.13 5875.39 1425.67 -8.18 -0.25 1129.00 10.86 1.047 -0.13 rscal is calculated as follows. For 5064a1, it is (1.020 + 1.024)/2 = 1.022; for 5064a2, it is (1.020 + 2 * 1.024 + 1.028)/4 = 1.024, etc. Again, when averaging a segment's rscal values with its neighbors', make sure its previous neighbor has a smaller calcy value and its subsequent neighbor has a larger calcy value. If neighboring repeats overlap so strongly that this is not the case, discard the inappropriate neighbor. edit 5064.curves file and put in the averaged values. Edit rscalgnu: set term postscript set output "plot.plt" set title "corrected rscale" plot '5064.curves' using 1:7 w linespoints to insert the appropriate image name ('image.curves'), and plot only the new rscal values: gnuplot rscalgnu ; laser1 plot.plt It is now possible to extract the data to 500 g.u. Create the file 5064a1500.hlx, using 5064a1170.hlx (SHEET 13) as a template. Change all the 170's to 500's, remove all the layer-line positions (which extend only to the 170 g.u. cutoff) after the header, and insert in their place the file 5064500.hlx (which lists the positions of all layer-lines out to 500 g.u.). Check that the tilt and xshift values are correct. Use the new 5064a1500.hlx file as a template for 5064a2500.hlx; change all the a1's to a2's, and change the tilt and xshift values to those of 5064a2. Do the same for each third of each repeat. Extract the data: hlxfl500.com 0 5064a1 & hlxfl500.com 0 5064a2 & etc. The zero tells hlxfl500.com to write the layer-line data to /scr0; this should be the same scratch disk listed in the headers of the *.hlx files. The names of the layer-line output files (on, e.g., /scr0/cs1) for segment a1 are 5064a1500.nea and 5064a1500.far for the near and far sides, and 5064a1500.avg for the averaged dataset. The averaged datasets from the three thirds of each repeat are then added together using hlxavg.com to form one dataset for each repeat. To do this, a control file (sheet 14) has to be created for each repeat, e.g. hlxavg.5064ac for repeat "a" of image 5064. Parameters of particular note in the control file are the title (5064ac500) and file name (5064ac500.avg, in /scr0) of the average file, (n,l) parameters of the (1,0) and (0,1) layer-lines, repeat distance in Angstroms (can be read from the any of the *.box files; use the repeat distance of the whole repeat), number of files to average (3), and the file names (use the *.avg files) and phi, z, and rscal values for each of these files to be averaged. Use the corrected rscal values--the ones which have been averaged with their neighbors. Once the control files have been set up, run hlxavg.com: hlxavg.com 5064ac & hlxavg.com 5064bc & etc. Now the data files just produced for the whole repeats are summed up, again using hlxavg.com. Another control file is made (called, e.g., hlxavg.5064abcdc if repeats a, b, c, and d are to be summed), using hlxavg.5064ac as a template. The new title will be, e.g., 5064abcdc; the data should be written to 5064abcdc500.avg (again on /scr0). The (n,l) values remain the same, the repeat distance should be that of any one of the repeats, and the number of files to be averaged should equal the number of repeats (in this case, four). The file name for each repeat (e.g. /scr0/cs1/5064ac500.avg) should be listed, along with its phi, z, and rscal values (always 0.0, 0.0, and 1.0--the repeats were brought to a common origin when the thirds were summed). Once the control file has been set up, run hlxavg.com: hlxavg.com 5064abcdc & Once this has run to completion, one can find the twofold phase residuals of the repeats and combined dataset to get an indication of the quality of the data. It is best to use only the data to the first zero of the ctf; use hcut.com (SHEET 15) to remove the data past this resolution. Edit hcut.com: the input file should be the file including the data to 500 g.u. (e.g. 5064ac500.avg or 5064abcdc500.avg, both on /scr0); the output file should have a 170 instead of a 500 in the filename (if the first ctf zero lies at 170 g.u.; e.g. 5064ac170.avg or 5064abcdc170.avg). zfact must be changed to equal 4096 divided by the repeat distance in grid units and resmax should be the location of the first ctf zero (170 in this case). Then run the program: hcut.com Do the same for each repeat and then the combined dataset. Then determine the twofold residual (amplitude-weighted mean phase deviation from the ideal values of 0 or 180 degrees) for each of these: edit the h2fld.cnt file (sheet 16) and insert the correct title (e.g. 5064ac170.avg) and input file name (e.g. /scr0/cs1/5064ac170.avg). The repeat distance can be anything; the amplitude cutoff is probably best at 0.0. This program can search phi and z for the minimum residual, but we only want to know its value at phi = z = 0.0, so set the minimum and maximum values of both phi and z to 0.0, with a search increment of 0.01 for each. Run the program: h2fld.com and find the output in ~/log/h2fld.log. This lists the overall phase residual, as well as residuals for the individual layer-lines. Keep a printout of the output for each repeat and for the combined dataset. To improve the twofold residual, one must improve the alignments. Errors (e.g. due to noise) may have been made in calculating the parameters describing the positions and orientations of the thirds of the repeats. It is now important to look over all the plots of the parameters for the thirds (the "corrected rscale" plot supersedes the "rscale" plot), with the aim to identify parameters which may be wrong. The first places to look are the plots of "calctheta" and "calcrepeat". In these, the actual theta and repeat values which were used are plotted with diamonds and the values calculated by tubecurve.com using relative locations of neighboring segments are plotted with plus signs. Discrepancies of between the actual and calculated values may be a sign of error (look for discrepancies of > 0.1 or 0.2 degrees in theta and 2-3 g.u. in repeat distance). Also check the srch and hlxfit residuals listed in the *.rr file for each third; abnormally high residuals may indicate misaligned segments. If a value for theta or repeat distance looks suspicious, change drotx or dylength in the *.box file of that segment to make the total theta or repeat accord with intuitive expectations or line up with the calculated values. Remove the *.rr file for that segment, and run search.com on it again. Once search.com has run, enter the new tilt and xshift values it determined into the header of the appropriate *500.hlx file, and run hlxfl500.com. Then enter the new phi and z values into the appropriate hlxavg.com control file (e.g. hlxavg.5064bc) and run hlxavg.com twice more: first to recombine the thirds in the appropriate repeat, and then to recombine all the repeats in the image. Run hcut.com and h2fld.com on the appropriate repeat and on the combined datasets. If the phase residuals (particularly the one from the combined dataset) have improved, keep the new values and print out the new results (*.rr from search.com and h2fld.log from h2fld.com). If they have not improved, return to the old values (replace tilt, xshift, phi, z, rscal, drotx, and dylength in the *.box file, tilt and xshift in the *500.hlx file, and phi and z in the hlxavg.com control file), rerun hlxfl500.com on the appropriate third, and then rerun hlxavg.com on the appropriate repeat and then on the combined dataset. Try the next suspicious theta or repeat distance value. Once all of these theta and repeat distance values have been checked, update the *curve.in files for each repeat and re-run tubecurve.com and print *curve.in, *.curves, and *.calc. Plot the output and print it out with gnuplot. Re-average neighboring rscal values, replace them in *.curves and the hlxavg.com control files, and rerun gnuplot rscalgnu. Look over the other plots to see if any other errors may have occurred. These usually look reasonable, but rscal and tilt especially may exhibit possible errors (only consider corrected rscal here). If a parameter looks suspicious, change it in its *.box file and either the *500.hlx file or hlxavg.com control file (wherever it is present). Rerun hlxfl500.com, hlxavg.com, and h2fld.com. If the twofold phase residual has improved, keep the changes and print out the new *.box files; if not, return to the previous values and rerun hlxfl500.com and hlxavg.com (twice: once on the appropriate repeat and once on the combined dataset). Once all possibly wrong values have been checked and the twofold residual minimized, update the *curve.in files once again, re-run tubecurve.com, and print the *curve.in, *.curves, and *.calc output and plots. Keep a note of the new corrected rscal values (on the *.curves printout) and copies of the changed *.box files. Also keep copies of the hlxavg.com control files and final h2fld.log files. All the parameters and twofold residuals in these files are final. 12. EXTRACT DATA, APPLY CTF AND BACKGROUND CORRECTIONS Make sure that the *500.hlx and *.box files for each third of each repeat contain the correct parameters. Then extract the data to 500 g.u. for each third: hlxfl500.com 0 5064a1 & hlxfl500.com 0 5064a2 & etc. (as before). Once this is done, one should average all the near-side data files from all the thirds to make a combined near-side data file, and all the far-side data files to make a combined far-side file. First the thirds are combined to form repeats. For each repeat, make a hlxavg.com control file (SHEET 14) to average the near-side data files and another to average the far-side data files. Use the hlxavg.com control file (e.g. hlxavg.5064ac, shown in sheet 14) produced above to combine the *.avg files as a template. Check that the repeat distance, phi, z, and rscal values are correct. Then copy the file and rename it, e.g. hlxavg.5064anc for the near side. Change the first (title) line to 5064anc500 (but don't make this change in any other line) and change .avg to .nea in every instance. Then copy the file again, using the new name hlxavg.5064afc; change the title line to 5064afc500 and change .nea to .far in every instance. Do the same for the other repeats. Then run hlxavg.com twice on each repeat--once each of the near and far sides: hlxavg.com 5064anc & hlxavg.com 5064afc & hlxavg.com 5064bnc & etc. Then combine the different repeats, again as done above, but this time keeping the near and far sides separate. Edit the hlxavg.com control file produced above to combine separate repeats' *.avg files (e.g. hlxavg.5064abcdc) as a template. Copy it, using the new name hlxavg.5064abcdnc for the near side. Change the title line to 5064abcdnc500, and then change .avg to .nea in every instance. Copy the file again, using the new name hlxavg.5064abcdfc, and change the title line to 5064abcdfc500 and .nea to .far in every instance. Average the repeats: hlxavg.com 5064abcdnc & hlxavg.com 5064abcdfc & (Make sure the previous jobs--hlxavg.com 5064anc, etc.--have finished first.) The combined datasets, 5064abcdc500.nea and 5064abcdc500.far, should be stored. Using them, the contrast transfer function can be refined using ctfplotr.com. Edit the control file ctfplot.cnt (SHEET 17). For rscal, repeat distance, and zfact, use representative values from the image. The maximum and minimum defocus values and angle of astigmatism should be those determined by pltctfx; the defocus values are starting points only and are now refined. The names of the output files are the same as those of the input files, but with a "ctf" added to the beginning (SHEET 17). The ctfplot programs assume the near and far sides are separated by 400 Angstroms, so the ctf values it actually applies to the near-side data are different by 400 Angstroms from those it applies to the far-side data. Run ctfplotr.com; the log file ctfplot.log is written to ~/log. This can be printed out, and contains the calculated image qualities for the near and far sides, as well as the overall image quality. To search for better defocus values, change the maximum and minimum defocus values in the body of ctfplot.cnt (leave the values listed in the title line at the top alone to record the initial estimates) by 100 Angstrom increments and rerun ctfplotr.com; keep the defocus values which maximize the overall image quality. Then run ctfplot.com to produce the output files ctf5064abcdc500.nea and 5064abcdc500.far as well as plots of the layer-lines which are automatically printed. There are four plots: CTF+ NEA, CTF- NEA, CTF+ FAR, and CTF- FAR. The NEA and FAR plots represent the near- and far-side data sets. The CTF+ plots include all the data with phases within 90 degrees of the reference phases (which have been two-fold refined to be 0 or 180 degrees); the CTF- plots include the rest of the data (indicating noise). These plots show which regions of the FT are noisy and which are not, and should be kept along with a printout of ctfplot.log. To be able to estimate the signal-to-noise ratio for each term in each layer-line, the background amplitude associated with each term is determined by obtaining Fourier transforms of ice near the tube. To reduce the noise in the background measurement, as much ice as possible is used--ideally segments on either side of each repeat are transformed and added together. Use Ximdisp to display the image and check the ice on either side of each repeat; this should be clean and free from carbon, tubes, scratches on the film, or anything else which would alter its FT; the image should be wide enough to include regions of ice on either side of the tube, which are as wide as the tube is. To obtain the summed transform of all these regions of ice, run icefft.com: icefft.com 0 5064 a b d & where 0 indicates /scr0, 5064 is the image, and a, b, and d are the repeats to be used (here the ice on either side of repeat c contained bits of carbon). The final summed FT is written to 5064abdi.fft on /scr0. If the ice is spoiled on only one side of any of the repeats, one can use only the other side by altering the icefft.com shell-script. icefft.com runs icefft1r.com, which makes use of the *.box files for each repeat used to determine the sizes and locations of the regions of ice to be used. Once the output has been obtained, hbkg.com is run to determine a representative amplitude at each point in the ice FT, obtained by averaging over 50 values near that point on either side of the meridian. Edit hbkg.cnt (SHEET 18) and insert the correct title, file names, and rscal value; the scale factor should be 1. Run hbkg.com. Look at the output (~/log/hbkg.log) and determine the background-to-amplitude ratio: Background sum (near side + far side) ------------------------------------- Amplitude sum (near side + far side) Enter that as the new scale factor in hbkg.cnt and re-run hbkg.com. The background sums in the log file should now add up to equal the amplitude sums. 13. MERGE AND FILTER DATA nfadd.com adds the data from the two sides of the tube together after the ctf and background columns have been added: nfadd.com 5064abcdc500 0.218 0.241 & where 0.218 and 0.241 are relative weighting factors applied to the near and far sides respectively, and represent the image quality values obtained by ctfplot. The output is ctfb5064abcdc500.avg. To emphasize the differences between the relative weighting factors, a third value in nfadd.com (now set to zero) can be raised; this is subtracted from each of the relative weighting factors. To get an idea of how good the data is in different regions of the FT, run hstat.com (SHEET 19). The program divides the data into a Z-sector that includes all the data within 45 degrees of the meridian and an R-sector which includes all the data within 45 degrees of the equator. The data is further divided into annular rings: the first includes low-resolution data (64-128 g.u. from the origin), the second slightly higher-resolution data (128-192 g.u.), and so on up to the highest-resolution data (448-512 g.u. from the origin). In each annulus in each sector, the 50 points with the highest amplitudes are collected and from them the maximum and average amplitudes are calculated along with a figure of merit score which represents: sum|F*cos(phi)| / sum(F) and a signal score which represents: sum(F*(cos**2(phi)-sin**2(phi)))/sum(F). These are listed, along with the total number and percentage of points above alim (SHEET 19) in each annulus, and the maximum and average amplitude for points in the sector, in the top two rows of output. The next two rows contain the same values calculated with the strongest 1000 points, and the last two with the strongest 20000 points. Random data should give a figure of merit score of 0.64 and a signal score of 0.0; data with perfect two-fold symmetry will have foms and sigs of 1.0. Before merging data from different tubes they have to be reindexed to a common selection rule, usually that of the reference m26 (38 and 25 for the basis layer-lines with the J-16 and J6 respectively). Use hreindex1.com (sheet 26) to do this. hreindex1 is a variant of hreindex that also removes parts of layer-lines which overlap with the strong parts of other layer-lines. Merge the data using hlxadd.com after creating a control file (e.g. hlxadd.1t2, SHEET 20): hlxadd.com 1t2 & One may want to vary sfact8 (SHEET 20) to find an optimum where the maps are best, or try different weighting schemes. A maximum of nine files can be merged at a time with hlxadd. If one wants to merge, e.g., twelve files, one may merge nine into one file and three into another, and then merge the two resultant files, giving each equal weights (sfact1-7 = 1.0 for each file and sfact8 = 0.0). Final ctf corrections are applied by divctf.com (SHEET 21), which divides all amplitudes by the ctf**2 (summed over all the images). This program also calculates the PQ value: sqrt(2 F**2 cos**2(phi))/sqrt(background**2) for each point, and all points with low PQ values (e.g. less than 1.0) may be removed (reduced to zero amplitude). One can also specify a minimum ctf**2 value; all points with ctf**2 less than that will be be corrected as though the minimum was their true ctf**2 value. One can also subtract a constant amplitude from the whole dataset at this point. Lastly, one can specify a minimum cos**2 value; all points with cos**2 less than that (not centrosymmetric) will be removed. hstat.com (SHEET 19; see above) can again be run on the resultant dataset; hcut.com (SHEET 15; see above) can be used to limit it to the resolution desired. Finally, hlxlim.com (SHEET 22) is used to remove all the noisy portions of the layer-lines. It sets the minimum start point to (1.0 + 1.03*n) / (2 pi rmax), a more accurate start point, especially for high values of n, than that determined by nltable. It aso calculates a running figure of merit along each of the layer-lines, searching for the most centrosymmetric parts. The window width for layer-line evaluation (in g.u.) is: lw1 + n/lw2 The log file maps the character of each layer-line in terms of departures from ideal values. The layer-line output data contain only the centrosymmetric parts, defined according to the cutoff parameters supplied (SHEET 22). 14. CALCULATE MAPS To produce maps, one must calculate the little g's, which represent the electron density provided by each Bessel order as a function of radial distance from the tube axis. This calculation is done by ltlg.com (SHEET 23), which accesses a proven algorithm (BESLRI.FOR) from the U.S. National Bureau of Standards for the Bessel function calculation. The output from ltlg.com can be read by the Fourier synthesis programs hsec.com (SHEET 24), which calculates sections parallel to the tube axis, and hhor.com (SHEET 25), which calculates sections perpendicular to the tube axis. When these are run, they create multilayered map files which can be viewed by Ximdisp or, after some format conversions, by O, AVS, or other display packages. These command files also direct PLUTO to make contour maps which can be either displayed on screen (using x84) or printed out (using laserplot). ********************LISTS OF 'SHEETS' DESCRIBED IN TEXT************************ ****SHEET 1**** a) *.box file (in this case 5064a.box) /nb0/cs1/images/5064.img 5064a -.32 #ROTX 1002.42 594 #XCEN XWIDTH 1320 1127 #YCEN YLENGTH 2048 4096 #FINAL DIMENSIONS 1 1 #Number of segments, number of segment 0 0 #100 DROTX,DYLENGTH 0 #Use original cell dimensions? 6 1.6 #Number of apodized columns, sigma of Gaussian 5064a170 /nb0/cs1/emc/m26s2a5064.lim 1 1611 0.000454213 0.000341455 0 0 0 /scr0/cs1/5064a170.avg 0 0 -4.30 0.01 8 31.84 0.01 11 1.0210 0.001 8 0 -509 -11 15596 1.43 1.43 170 5064 b)*.box file explained /nb0/cs1/images/5064.img [name of image file]**This line is used by hfts. 5064a [title of segment described in this .box file]**This line is used by hfts. -.32 #ROTX [theta in degrees]**This line is used by hfts. 1002.42 594 #XCEN XWIDTH [centre of repeat in x-direction, width of tube in g.u.]**This line is used by hfts. 1320 1127 #YCEN YLENGTH [centre of repeat in y-direction, repeat length in g.u]**This line is used by hfts. 2048 4096 #FINAL DIMENSIONS [X- and Y-dimensions of Fourier transform]**This line is used by hfts. 1 1 #Number of segments, number of segment [number of segments to split repeat into, which of those segments this .box file describes]**This line is used by hfts. 0 0 #100 DROTX,DYLENGTH [difference in theta (in hundredths of a degree; integers only) between this this segment and the whole repeat (amount of bend); difference in repeat distance (in g.u.; integers only) (stretch)]**This line is used by hfts. 0 #Use original cell dimensions? [0 for yes, 1 for no (this is not important)]**This line is used by hfts. 6 1.6 #Number of apodized columns, sigma of Gaussian [Before transforming , the selected region is boxed out and the edges are smoothed to background by adding extra columns (6 here) of pixels. The densities of these are apodized so that the edges are no longer square but take the form of a Gaussian function e^((x^2)/sigma) where x is the distance from the edge and sigma is defined here]**This line is used by hfts. 5064a170 [title of file containing all extracted layer-lines to the CTF cutoff of 170 g.u.)]**This line is used by hlxfit. /nb0/cs1/emc/m26s2a5064.lim [name of file containing reference layer-lines reindexed to selection rule of current image]**This line is used by hlxfit. 1 1611 0.000454213 0.000341455 [Number of repeats represented by ylength in the *.box file, ylength in Angstroms, grid unit spacing of reference file m26 in 1/A, grid unit spacing of data file in 1/A]**This line is used by hlxfit. 0 [cutoff amplitude to be used by hlxfit expressed as a percentage of the maximum off-equatorial amplitude. Amplitudes smaller than this value are not included in the calculation.]**This line is used by hlxfit. 0 0 [layer-lines to be weighted specially by hlxfit, weights of these layer-lines. Here the equator has no weight and is not included in the fitting calculation]**This line is used by hlxfit. /scr0/cs1/5064a170.avg [name of data file created by hlxfl.com after hfts.com has completed, containing layer-lines extracted from this segment]**This line is used by hlxfit. 0 0 [Side (0=near, 1=far) of tube, polarity of tube (a 1 here rotates it by 180 degrees. Both sides of the tube are used but the data from the far side is transformed to look like the data from the near side, and the two sides averaged (hence .avg in the filename above).]**This line is used by hlxfit. -4.30 0.01 8 [estimated phi for this segment, increment in phi for hlxfit to use in its search, number of points in phi for hlxfit to search over when trying to minimize its phase residual]**This line is used by hlxfit. 31.84 0.01 11 [estimated z for this segment, increment in z for hlxfit to use in its search, number of points in z for hlxfit to search over when trying to minimize its phase residual]**This line is used by hlxfit. 1.0210 0.001 8 [estimated rscale for this segment, increment in rscale for hlxfit to use in its search, number of points in rscale for hlxfit to search over when trying to minimize its phase residual]**This line is used by hlxfit. 0 [Should hlxfit write an output file in which the input has been transformed so that phi, z and rscale match those of the reference? (0=no, 1=yes)]**This line is used by hlxfit. -509 -11 15596 [tilt angle (nominally, hundredths of a degree; integers only), x-shift in hundredths of a grid unit (integers only) (this value is added to XCEN {above} to obtain the true x-position of the centre of the repeat, as extrapolated from the position and orientation of the segment this .box file describes), srch1.com residual x1000]**This line is produced by srch and used by hlxfl. 1.43 1.43 [grid unit spacing of image in X and Y (Angstroms)]**This line is used by hlxfl. 170 [location of first zero in contrast transfer function (g.u. from origin)]**This line is used by hlxfl. 5064 [title of image] ****************************************************** **********************SHEET 2************************* a) hreindex.com file #!/bin/csh -f # #hreindex.com # #Version 1.0 9-Jan-96 RB # # setenv IN ~/emc/m26s2a.lim setenv OUT ~/emc/m26s2a5064.lim hreindex << 'eot' > ~/log/reindex.log -16 6 38 25 ! l10,l01 - old values 17 11 ! l10,l01 - new values 'eot' b) hreindex.com file explained #!/bin/csh -f # #hreindex.com # #Version 1.0 9-Jan-96 RB # # [header] setenv IN ~/emc/m26s2a.lim [input file name is ~/emc/m26s2a.lim; this is a reference file containing layer-lines combining data from 26 images. The "s" means a 180 degree phase shift has been applied, the "2" means the data has been twofold enforced (only phases of 0 or 180 degrees), and the "a" means the dataset has been altered--in this case, two layer-lines have been removed] setenv OUT ~/emc/m26s2a5064.lim [output file name; the reference file has been reindexed to the selection rule of 5064 (defined below)] hreindex << 'eot' > ~/log/reindex.log [runs the program hreindex using the following lines (until 'eot') as input, and writing to the log file ~/log/reindex.log] -16 6 [the Bessel orders (n) of the (1,0) and (0,1) layer-lines are -16 and 6 respectively] 38 25 ! l10,l01 - old values [the layer-line numbers (l) of the (1,0) and (0,1) layer-lines of the input file are 38 and 25 respectively] 17 11 ! l10,l01 - new values [these layer-line numbers are to be changed, in the output file, to 17 and 11] 'eot' [end of input] *************** ****SHEET 3**** a) hlxs.com #!/bin/csh -f # #hlxs.com # #Data cards: #$1 - 0 for /scr0, 1 for /scr1 #$2 - image title #$3 - amplitude threshold, above which peaks are written to $2.src # #Version 1.0 10-Jan-96 NU # # hlxs << hlxs-eof > ~/log/hlxs.log /scr$1/cs1/$2.fft $2.src 1.43 1.43 0.0 0.0 0 0 #omega, xshift 18 200 1 #no. lines, display width, 1=display right only 780.0 450.0 #outer, inner width $3 50 #thresh, min. ll length for SRCH 0 0 0 1 -50 1 5 28 5 10 56 10 12 -44 12 17 -16 17 22 12 22 27 40 27 33 18 33 34 -32 34 39 -4 39 44 24 44 50 2 50 55 30 55 72 14 72 78 -8 78 83 20 83 89 -2 89 hlxs-eof b) hlxs.com explained #!/bin/csh -f # #hlxs.com # #Data cards: #$1 - 0 for /scr0, 1 for /scr1 #$2 - image title #$3 - amplitude threshold, above which peaks are written to $2.src # #Version 1.0 10-Jan-96 NU # # [header] hlxs << hlxs-eof > ~/log/hlxs.log [Run program hlxs using following lines as input, ~/log/hlxs.log as log file.] /scr$1/cs1/$2.fft [Name of FT file. $1 and $2 refer to the command line, where the particular FT file is denoted, so this line usually does not need to be changed] $2.src [Name of output file containing strongest peaks, formatted as input to srch. Again, this line is not usually changed] 1.43 1.43 [Angstroms per grid unit in image] 0.0 0.0 0 0 #omega, xshift [estimated tilt and xshift values--usually left as zero] 18 200 1 #no. lines, display width, 1=display right only [no. of layer-lines to extract, number of grid units to extract in each, 1 is usually alone] 780.0 450.0 #outer, inner width [outer and inner diameters of tube in Angstroms] $3 50 #thresh, min. ll length for SRCH [minimum amplitude cutoff, above which peaks are listed as input to srch ($3 refers to the command line, where this value is set); minimum length of layer-line. Layer-lines with small Bessel orders might be calculated by the program to have strong peaks only for, say, 20 grid units, and the rest would be assumed to be noise. In fact, the strong peaks tend to extend relatively further for layer-lines with small Bessel orders than those with large ones (for which the program's calculations are valid), so a minimum layer-line length of 50 is set] 0 0 0 [layer line number (l), Bessel order (n), and distance (Z) of layer-line from equator (in grid units) in transform (e.g. twice the layer-line number if two repeats were transformed; usually set to be equal to the layer-line number] 1 -50 1 [l, n, z of second layer-line] 5 28 5 [etc.] 10 56 10 12 -44 12 17 -16 17 22 12 22 27 40 27 33 18 33 34 -32 34 39 -4 39 44 24 44 50 2 50 55 30 55 72 14 72 78 -8 78 83 20 83 89 -2 89 hlxs-eof ************************************************************************* **************************SHEET 4**************************************** image id : 5064 (n,l) for (1,0) : -16, 17 (n,l) for (0,1) : 6, 11 selection rule : 25n + 139m maximum radius : 297.00 g.u. ( 424.7 Angstrom) repeat distance : 1137.00 g.u. ( 1625.9 Angstrom) first ctf zero : 170.00 g.u. max layer-line #: 104 max Bessel order: 1000 max (h,k) : 62,166 values are for image scanned at 1.43 Angstrom interval and transformed in 2048 x 4096 frame --------------------------------------- l n Rmin Rmax Z ( h, k) --------------------------------------- 0 0 1 170 0.0 ( 0, 0) 1 -50 53 169 1.8 ( 2, -3) 2 -100 108 169 3.6 ( 4, -6) 3 128 141 169 5.4 ( -5, 8) 4 78 86 169 7.2 ( -3, 5) 5 28 31 169 9.0 ( -1, 2) 6 -22 23 169 10.8 ( 1, -1) 7 -72 77 169 12.6 ( 3, -4) 8 -122 132 169 14.4 ( 5, -7) 9 106 117 169 16.2 ( -4, 7) 10 56 62 169 18.0 ( -2, 4) etc. b) nltable output explained image id : 5064 (n,l) for (1,0) : -16, 17 (n,l) for (0,1) : 6, 11 selection rule : 25n + 139m maximum radius : 297.00 g.u. ( 424.7 Angstrom) repeat distance : 1137.00 g.u. ( 1625.9 Angstrom) first ctf zero : 170.00 g.u. max layer-line #: 104 max Bessel order: 1000 max (h,k) : 62,166 values are for image scanned at 1.43 Angstrom interval and transformed in 2048 x 4096 frame [header, self-explanatory] --------------------------------------- l n Rmin Rmax Z ( h, k) --------------------------------------- 0 0 1 170 0.0 ( 0, 0) [layer-line number, Bessel order, closest position of layer-line to meridian, furthest distance from meridian layer-line extends to, height of layer-line in radial grid units (1/(2048*1.43) inverse Angstroms, and h and k indices] 1 -50 53 169 1.8 ( 2, -3) 2 -100 108 169 3.6 ( 4, -6) 3 128 141 169 5.4 ( -5, 8) 4 78 86 169 7.2 ( -3, 5) 5 28 31 169 9.0 ( -1, 2) 6 -22 23 169 10.8 ( 1, -1) 7 -72 77 169 12.6 ( 3, -4) 8 -122 132 169 14.4 ( 5, -7) 9 106 117 169 16.2 ( -4, 7) 10 56 62 169 18.0 ( -2, 4) etc. ***************************************************************************** *************************SHEET 5******************************************* a) hlxmk.com file #!/bin/csh -f # #hlxmk.com # #Version 1.0 9-Jan-96 RB # # hlxmk << hlxmk-eof > ~/log/hlxmk.log nltabl.dat 5064500.hlx 1,50,1000 hlxmk-eof b) hlxmk.com file explained #!/bin/csh -f # #hlxmk.com # #Version 1.0 9-Jan-96 RB # # [header] hlxmk << hlxmk-eof > ~/log/hlxmk.log [run program hlxmk using following lines as input and ~/log/hlxmk.log as log file] nltabl.dat [name of input file; convention is that nltabl.dat extends to 500 g.u. and nltable.dat extends to first zero of ctf (e.g. 170 g.u.)] 5064500.hlx [name of output file: 5064 is the image, the data will extend to 500 g.u.] 1,50,1000 [number of repeats in Fourier transform, minimum difference in start points of overlapping layer-lines for them to be included, maximum distance (in grid units) allowed from meridian (R cutoff).] hlxmk-eof [end of input] ***************************************************************************** ******************************SHEET 6**************************************** a) *.rr file (in this case, obtained by running refine) 5064a170 Search -509 -11 15596 -534 46 48874 -528 25 17383 2967 -4.27 31.78 1.0240 57172 -19098 -37 1.0240 62574 -528 -12 17383 -516 -12 49343 -510 -12 15593 2656 -4.30 31.84 1.0210 57210 -19209 1 1.0210 62633 -510 -11 15593 5064a170 Rotation angle round 15 0 0 -4.30 31.84 1.0210 1 0 0 2665 -4.31 32.04 1.0210 57232 2 15 15 2816 -4.33 31.56 1.0230 57432 3 -15 -15 3529 -4.29 32.39 1.0240 57255 1 0 0 2665 round 7 1 0 0 2665 -4.31 32.04 1.0210 2 7 7 2773 -4.29 31.80 1.0240 57193 3 -7 -7 2916 -4.29 32.02 1.0220 57013 1 0 0 2665 round 3 1 0 0 2665 -4.31 32.04 1.0210 2 3 3 2720 -4.28 31.78 1.0240 57143 3 -3 -3 2887 -4.30 32.01 1.0230 57134 1 0 0 2665 round 1 1 0 0 2665 -4.31 32.04 1.0210 2 1 1 2643 -4.30 31.84 1.0210 57213 3 2 2 2677 -4.30 31.81 1.0210 57242 2 1 1 2643 5064a170 Repeat distance round 3 0 0 1 0 0 1326924 2 3 3 1322388 3 -3 -3 1321815 1 0 0 1326924 round 1 1 0 0 1326924 2 1 1 1325921 3 -1 -1 1326443 1 0 0 1326924 5064a170 Search -510 -11 15593 -535 49 49022 -523 27 17126 2948 -4.27 31.84 1.0240 57170 -19110 -39 1.0240 62552 -523 -12 17126 -516 -12 49521 -510 -12 15432 2645 -4.30 31.83 1.0210 57215 -19221 1 1.0210 62641 -510 -11 15432 5064a11 5064a11170 Search -510 -11 15432 -133 -321 63031 -196 -304 22312 16911 -3.80 33.51 1.0180 68993 -9190 145 1.0180 73504 -196 -159 22312 -189 -159 66952 -213 -159 20164 16924 -3.70 33.28 1.0180 68431 -9186 9 1.0180 73558 -213 -150 20164 5064a12 5064a12170 Search -510 -11 15432 -170 11 62947 -173 10 22572 14516 -4.73 32.36 1.0170 69363 -10524 31 1.0170 74269 -173 41 22572 -160 40 63055 -161 39 22375 14619 -4.70 32.28 1.0170 69391 -10525 3 1.0170 74300 -161 42 22375 5064a21 5064a21170 Search -510 -11 15432 -472 77 71295 -487 43 19337 16759 -4.20 33.18 1.0120 70097 -9331 3 1.0120 76331 -487 46 19337 5064a22 5064a22170 Search -510 -11 15432 -652 117 64715 -654 116 23091 18731 -4.14 32.40 1.0320 70342 -8492 -39 1.0320 76648 -654 77 23091 -641 76 65525 -605 75 23113 18819 -4.14 32.30 1.0310 70147 -8507 7 1.0310 76649 -605 82 23113 5064a31 5064a31170 Search -510 -11 15432 -633 125 68567 -633 126 23161 17271 -4.34 32.20 1.0260 67436 -8931 -117 1.0260 72815 -633 9 23161 -563 8 70242 -563 8 21020 17249 -4.30 32.22 1.0280 67344 -8949 -11 1.0280 72676 -563 -3 21020 -563 -3 70583 -570 -3 20586 17225 -4.29 32.23 1.0280 67290 -8946 0 1.0280 72653 -570 -3 20586 5064a32 5064a32170 Search -510 -11 15432 -750 -136 73699 -774 -133 20163 15632 -4.63 30.02 1.0300 69494 -9422 39 1.0300 75529 -774 -94 20163 -754 -94 74119 -756 -94 20438 15444 -4.64 30.05 1.0300 69440 -9421 13 1.0300 75469 -756 -81 20438 -756 -81 74301 -757 -81 20598 15385 -4.65 30.06 1.0290 69405 -9412 -4 1.0290 75462 -757 -85 20598 b) *.rr file explained 5064a170 [title: image 5064, repeat a, using data to first zero in ctf (170 g.u.)] Search [search.com is beginning] -509 -11 15596 [estimated tilt and xshift values read from 5064a.box, along with srch1 residual when those values were calculated] -534 46 48874 [results of srch: tilt is -534 (-5.34 "degrees" as calculated by srch), xshift is 46 (0.46 g.u.), and srch residual is 48874 (48.874 degrees). This srch residual is important; if it is greater than 70000 (really 70.0) on a full repeat, that repeat may be improperly aligned in x and tilt] -528 25 17383 [results of srch1 (srch on only the good peaks with low phase errors identified in previous srch): tilt has refined to -528, xshift has refined to 25, residual has come down to 17383 (mostly because only low-residual peaks were selected)] 2967 -4.27 31.78 1.0240 57172 [results of hlxfit: Rfactor x 100000 (amplitude residual), phi, z, rscal, phase residual x 1000. If the phase residual is greater than 70-80 degrees (70000-80000 as listed here), it is possible the wrong origin has been selected.] -19098 -37 1.0240 62574 [results of hlxfitx: Rfactor x 100000, change in xshift against srch1 result (-0.37 g.u.), rscal (read from hlxfit output), phase residual x 1000. If xshift has changed by 10 or more (0.1 g.u.), search.com runs through another iteration] -528 -12 17383 [estimated tilt (from previous srch1), estimated xshift (previous srch1 result + hlxfitx result), previous srch1 phase residual] -516 -12 49343 [results of srch: tilt has changed to -516, xshift is not allowed to be changed by srch after the first iteration, the srch residual has increased to 49343] -510 -12 15593 [results of srch1: tilt has refined further to -510, xshift was not allowed to be changed, srch phase residual is 15593] 2656 -4.30 31.84 1.0210 57210 [new hlxfit results: Rfactor has improved to 2656 (from 2967 above), phi has changed to -4.30, z changed to 31.84, rscal has decreased to 1.0210, phase residual has increased slightly to 57.210 degrees] -19209 1 1.0210 62633 [new hlxfitx results: new Rfactor, new change in xshift against the -12 determined previously, new rscal from hlxfit, new phase residual. xshift has changed by less than 10, so search.com does not run through anotherr iteration] -510 -11 15593 [final tilt and xshift values, along with latest srch1 residual. search.com writes out an updated .box file here; if |xshift| is > 29 on a full repeat, search.com adds xshift to xcen (moves box), resets xshift to 0, and runs itself again.] 5064a170 [title] Rotation angle [rotx.com is beginning] round 15 [rotx.com begins by incrementing dtheta (meaning DROTX) by 0.15 degrees to minimize the hlxfit amplitude residual] 0 0 -4.30 31.84 1.0210 [The zeroth iteration this round lists the starting values in the .box file: dtheta is zero, phi is -4.30 degrees, z is 31.84 Angstroms, and rscal is 1.021. The last three values were written to the .box file by search.com (above), and determined by the last run of hlxfit in search.com (also above).] 1 0 0 2665 -4.31 32.04 1.0210 57232 [The first iteration gives hlxfit results when dtheta is left at its starting value. 1 means first iteration, 0 means no change to dtheta from value at beginning of round, next 0 mean dtheta is zero, then the Rfactor, phi, z, rscal, and the phase residual from hlxfit are listed. These differ from the values hlxfit determined in search.com because rotx.com uses 2048x2048 transforms (for speed), instead of the normal 2048x4096 transforms] 2 15 15 2816 -4.33 31.56 1.0230 57432 [Second iteration, change to dtheta is 15 (0.15 degrees), dtheta is 15 (0.15 degrees), Rfactor, phi, z, rscal, and phase residual at this dtheta. Rfactor has increased (gotten worse), so rotx.com no longer searches in this direction, but tries the other] 3 -15 -15 3529 -4.29 32.39 1.0240 57255 [Third iteration, change to dtheta is -15, dtheta is -15, Rfactor, phi, z, rscal, and phase residual at this dtheta. Again, Rfactor has increased, so rotx.com ends the round] 1 0 0 2665 [Results: the lowest Rfactor of the round came on the first iteration; the change to dtheta was 0, dtheta was 0, and the Rfactor was 2665] round 7 [Now rotx.com minimizes the Rfactor over 0.07 degree steps] 1 0 0 2665 -4.31 32.04 1.0210 [first iteration of this round] 2 7 7 2773 -4.29 31.80 1.0240 57193 [second iteration] 3 -7 -7 2916 -4.29 32.02 1.0220 57013 [etc.] 1 0 0 2665 round 3 1 0 0 2665 -4.31 32.04 1.0210 2 3 3 2720 -4.28 31.78 1.0240 57143 3 -3 -3 2887 -4.30 32.01 1.0230 57134 1 0 0 2665 round 1 [Final round: rotx.com minimizes the Rfactor over 0.01 degree steps.] 1 0 0 2665 -4.31 32.04 1.0210 [First iteration of round] 2 1 1 2643 -4.30 31.84 1.0210 57213 [In this second iteration, the Rfactor has decreased compared to the first iteration, so rotx.com continues searching in this direction.] 3 2 2 2677 -4.30 31.81 1.0210 57242 [The Rfactor increased again, so rotx.com ends this round.] 2 1 1 2643 [Final results for rotx.com: the second iteration of round 1, where the change in dtheta for the round was 1 and dtheta was 1 (0.01 degrees), gave the smallest Rfactor: 2643] 5064a170 [title] Repeat distance [repeat.com beginning] round 3 [repeat.com begins by incrementing dylength by 3 grid units to maximize the total amplitude on layer-lines far from the equator.] 0 0 [zeroth iteration: no change to dylength, which was read in from the .box file as 0] 1 0 0 1326924 [first iteration, no change to dylength, dylength is zero, total amplitude on high layer-lines times 10] 2 3 3 1322388 [second iteration, 3 added to dylength, dylength is 3, total amplitude on high layer-lines decreases, so repeat.com switches to other direction] 3 -3 -3 1321815 [third iteration, -3 added to dylength, dylength is -3, total amplitude on high layer-lines decreases, so repeat.com ends this round.] 1 0 0 1326924 [summary of round: the greatest total amplitude was found on the first iteration, with no change to dylength over its value at the beginning of the round; dylength was zero, and the total amplitude was 1326924 (really 132692.4)] round 1 [In the last round, repeat.com increments dylength by 1 grid unit] 1 0 0 1326924 [first iteration] 2 1 1 1325921 [etc.] 3 -1 -1 1326443 1 0 0 1326924 [Summary of final round. No change to dylength, which remains zero.] 5064a170 [title] Search [search.com is beginning again] -510 -11 15593 -535 49 49022 -523 27 17126 2948 -4.27 31.84 1.0240 57170 -19110 -39 1.0240 62552 -523 -12 17126 -516 -12 49521 -510 -12 15432 2645 -4.30 31.83 1.0210 57215 -19221 1 1.0210 62641 -510 -11 15432 [search.com ends. Neither rotx.com, repeat.com, nor this run through search.com significantly changed any of the parameters, so refine considers the repeat to be aligned. refine divides the repeat into sixths and runs search.com on each, below] 5064a11 [First sixth of repeat a] 5064a11170 [title] Search [search.com is beginning] -510 -11 15432 [tilt, xshift, and srch1 residual values from .box file of whole repeat] -133 -321 63031 [srch results: tilt, xshift, and srch residual values for this segment] -196 -304 22312 [srch1 results] 16911 -3.80 33.51 1.0180 68993 [hlxfit results on this segment] -9190 145 1.0180 73504 [hlxfitx results on this segment] -196 -159 22312 [etc.] -189 -159 66952 -213 -159 20164 16924 -3.70 33.28 1.0180 68431 [final run of hlxfit on this segment; note the phase residual. Abnormally high phase residuals for individual segments may indicate incorrect alignments. Also note the phi, z, and rscal values, which are the final ones determined for this segment] -9186 9 1.0180 73558 [hlxfitx does not change xshift significantly, so search.com ends on this segment] -213 -150 20164 [final tilt, xshift, and srch1 residual for this segment] 5064a12 [Second sixth] 5064a12170 [title] Search [etc.] ****************************************************************************** **************************SHEET 7********************************************* a) 5064a.hfit file (control file for hlxfit.com) 5064a170 /nb0/cs1/emc/m26s2a5064.lim 1 1611 0.000454213 0.000341455 0 0 0 /scr1/cs1/5064a170.avg 0 0 -4.27 0.01 8 31.78 0.01 11 1.0240 0.001 8 0 b) 5064a.hfit file explained 5064a170 [title] /nb0/cs1/emc/m26s2a5064.lim [name of reference file] 1 1611 0.000454213 0.000341455 [number of repeats in FT, repeat distance (of whole repeat) in Angstroms, grid unit spacing (1/A) of reference data, grid unit spacing of data file] 0 [amplitude cutoff as percentage of maximum off-equatorial amplitude--amplitudes below this are neglected] 0 0 [special layer-lines and weights--here, the equator is given no weight] /scr1/cs1/5064a170.avg [name of data file, containing layer-line data from image 5064, repeat a, extending to 170 g.u. resolution] 0 0 [iside (0 for near, 1 for far side), ipole (1 to rotate test helix by 180 degrees)] -4.27 0.01 8 [estimated phi (degrees), increment in phi for hlxfit to begin searching with, number of steps in phi for hlxfit to search over. hlxfit automatically increases the phi increment (to a maximum of 1 degree) if it misses the minimum phase residual, and continues searching until it finds the minimum. Then it decreases the phi increment until it has found the minimum to within 0.01 degrees] 31.78 0.01 11 [estimated z (Angstroms), increment in z for search, number of steps. hlxfit searches for the best z in the same way as it searches for the best phi, except the maximum increment in z is 10.0 Angstroms] 1.0240 0.001 8 [estimated rscal, increment in rscal, number of steps. hlxfit.com never changes the rscal increment it is given, but continues searching until it finds the minimum] 0 [1 to write an output file in which the test data have been rotated in phi, translated in z, and magnified in rscal so that it lines up with the reference] ******************************************************************************* ********************** SHEET 8 *********************************************** a) *.corr file (5064.corr here) /nb0/cs1/images/5064.img 5064 699 1296 4200 7197 759 1236 3150 3447 b) *.corr file explained /nb0/cs1/images/5064.img [name of image file] 5064 [title] 700 1300 [min and max x limits of reference region--should be wider than the tube] 4200 7200 [min and max y limits of reference region--should be much longer than the test region] 760 1240 [min and max x limits of test region. For ACh receptor tubes, do not include the tube edges. (-16,6) tube test regions should be 480 g.u. wide for 1.43 angstrom step size and centred on the tube centre.] 3150 3450 [min and max y limits of test region. For (-16,6) ACh receptor tubes, use 300 g.u. in y] ***************************************************************************** ***************************SHEET 9******************************************* a)5064acurve.in 1002.42 -.31 1127 1320 -11 -213 -150 0 0 -3.70 33.28 1.0180 -161 42 0 0 -4.70 32.28 1.0170 -487 46 0 0 -4.20 33.18 1.0120 -605 82 0 0 -4.14 32.30 1.0310 -570 -3 0 0 -4.29 32.23 1.0280 -757 -85 0 0 -4.65 30.06 1.0290 b)5064acurve.in explained 1002.42 -.31 1127 1320 -11 [xcen, theta, ylength, ycen, xshift of whole repeat (as they appear in the .box file] -213 -150 0 0 -3.70 33.28 1.0180 [first segment (5064a11): tilt, xshift, dtheta, dylength, phi, z, rscal (all as they appear in the .box file)] -161 42 0 0 -4.70 32.28 1.0170 [second segment] -487 46 0 0 -4.20 33.18 1.0120 [third segment] -605 82 0 0 -4.14 32.30 1.0310 [etc.] ***************************************************************************** ***************************SHEET 10****************************************** a) 5064curve.in 5064.curves 5064.calc 4 6 1002.42 -.31 1127 1320 -11 -213 -150 0 0 -3.70 33.28 1.0180 -161 42 0 0 -4.70 32.28 1.0170 -487 46 0 0 -4.20 33.18 1.0120 -605 82 0 0 -4.14 32.30 1.0310 -570 -3 0 0 -4.29 32.23 1.0280 -757 -85 0 0 -4.65 30.06 1.0290 999.27 .08 1131 2130 2 -651 128 0 0 0.66 29.07 1.0300 -790 -13 0 0 0.65 27.31 1.0310 -738 65 0 0 0.62 27.83 1.0340 -927 -211 0 0 1.34 25.91 1.0300 -721 28 0 0 1.06 27.00 1.0270 -898 -6 0 0 0.67 24.24 1.0380 998.65 .04 1134 2900 0 -718 161 0 0 6.16 -37.87 1.0280 -814 78 0 0 5.98 -39.10 1.0360 -925 -181 0 0 5.87 -37.62 1.0390 -793 -32 0 0 6.22 -38.51 1.0390 -818 -7 0 0 6.05 -38.42 1.0430 -908 -111 0 0 6.17 -39.48 1.0470 998.26 -.13 1136 3730 0 -760 -140 0 0 11.27 -18.84 1.0520 -983 49 0 0 11.23 -18.93 1.0430 -1006 175 0 0 11.85 -20.45 1.0470 -785 58 0 0 12.10 -20.96 1.0500 -637 -176 0 0 11.16 -19.18 1.0450 -888 -18 0 0 10.86 -17.84 1.0490 b) 5064curve.in explained (note: make sure, when running tubecurve, that the parameter "gua"--Angstroms per grid unit--in the Fortran code is correct). 5064.curves [name of output file containing actual locations and orientations of all the segments] 5064.calc [name of output file containing calculated orientations--the orientations the tube should have midway between each set of actual segments, to account for the relative locations of those segments.] 4 6 [this file contains info. about 4 repeats, with 6 segments per repeat] 1002.42 -.31 1127 1320 -11 | -213 -150 0 0 -3.70 33.28 1.0180 | -161 42 0 0 -4.70 32.28 1.0170 | -487 46 0 0 -4.20 33.18 1.0120 | 5064acurve.in -605 82 0 0 -4.14 32.30 1.0310 | -570 -3 0 0 -4.29 32.23 1.0280 | -757 -85 0 0 -4.65 30.06 1.0290 | 999.27 .08 1131 2130 2 | -651 128 0 0 0.66 29.07 1.0300 | -790 -13 0 0 0.65 27.31 1.0310 | -738 65 0 0 0.62 27.83 1.0340 | 5064bcurve.in -927 -211 0 0 1.34 25.91 1.0300 | -721 28 0 0 1.06 27.00 1.0270 | -898 -6 0 0 0.67 24.24 1.0380 | 998.65 .04 1134 2900 0 | -718 161 0 0 6.16 -37.87 1.0280 | -814 78 0 0 5.98 -39.10 1.0360 | -925 -181 0 0 5.87 -37.62 1.0390 | 5064ccurve.in -793 -32 0 0 6.22 -38.51 1.0390 | -818 -7 0 0 6.05 -38.42 1.0430 | -908 -111 0 0 6.17 -39.48 1.0470 | 998.26 -.13 1136 3730 0 | -760 -140 0 0 11.27 -18.84 1.0520 | -983 49 0 0 11.23 -18.93 1.0430 | -1006 175 0 0 11.85 -20.45 1.0470 | 5064dcurve.in -785 58 0 0 12.10 -20.96 1.0500 | -637 -176 0 0 11.16 -19.18 1.0450 | -888 -18 0 0 10.86 -17.84 1.0490 | ***************************************************************************** *************************SHEET 11******************************************** a) *.curves file # calcy x tilt theta repeat phi rscale tottheta 1216.11 1434.95 -2.13 -0.31 1127.00 -3.70 1.018 -0.31 1484.70 1436.24 -1.61 -0.31 1127.00 -4.70 1.017 -0.31 1753.30 1434.85 -4.87 -0.31 1127.00 -4.20 1.012 -0.31 etc. b) *.curves file explained # calcy x tilt theta repeat phi rscale tottheta [header] 1216.11 1434.95 -2.13 -0.31 1127.00 -3.70 1.018 -0.31 [first segment: centre in y, centre in x, tilt, theta, repeat distance, phi, rscale, theta of repeat it is a part of] 1484.70 1436.24 -1.61 -0.31 1127.00 -4.70 1.017 -0.31 [second segment] 1753.30 1434.85 -4.87 -0.31 1127.00 -4.20 1.012 -0.31 [third segment] etc. ***************************************************************************** *************************SHEET 12******************************************** c) *.calc file # calcy calctheta calcrepeat tclctheta 1350.40 0.28 1131.20 # 1619.00 -0.30 1123.22 # 1887.60 -0.20 1130.69 # 2156.20 -0.57 1127.29 # 2424.80 -0.56 1136.10 # 2465.55 -0.38 # 0.70 2506.79 -0.35 1138.38 # 2776.35 0.32 1128.82 # 3045.90 -0.76 1139.06 # 3315.45 0.81 1126.43 # 3585.01 -0.02 1142.58 # 3595.56 -0.02 # -0.20 3606.46 -0.21 1139.16 # 3876.73 -0.75 1127.79 # 4147.00 0.49 1137.73 # 4417.27 0.12 1133.62 # 4687.54 -0.28 1138.45 # 4739.85 -0.03 # -0.03 4792.41 0.44 1136.38 # 5063.15 0.25 1142.38 # 5333.90 -0.48 1138.14 # 5604.65 -0.84 1128.53 # 5875.39 0.35 1130.38 # b) *.calc file explained # calcy calctheta calcrepeat tclctheta [header] 1350.40 0.28 1131.20 # [y-location halfway between the centres of the first two segments in *.curves; theta calculated at this location; and repeat distance] 1619.00 -0.30 1123.22 # [y-location halfway between the centres of the second and third segments; theta; repeat distance] 1887.60 -0.20 1130.69 # 2156.20 -0.57 1127.29 # 2424.80 -0.56 1136.10 # 2465.55 -0.38 # 0.70 [y-location halfway between the centres of the sixth and seventh segments (i.e. the last segment of the first repeat and the first segment of the second repeat); theta calculated at this location; the repeat distance cannot be calculated at this location because in general z values can only be compared within a repeat, not between repeats; the theta calculated at this location by comparing the x values of the first and second whole repeats] 2506.79 -0.35 1138.38 # [etc.] ***************************************************************************** *************************SHEET 13******************************************** a) *.hlx file (5064a1170.hlx) /scr0/cs1/5064a1.fft /scr0/cs1/5064a1170.nea /scr0/cs1/5064a1170.far 5064a1170 1.43 1.43 -231 -32 0 0 170 0 0 0 0 170 0 170 1 -50 1 48 169 48 169 2 -100 2 103 169 103 169 3 128 3 136 169 136 169 4 78 4 81 169 81 169 5 28 5 26 169 26 169 etc. b) *.hlx file explained /scr0/cs1/5064a1.fft [name of FT file] /scr0/cs1/5064a1170.nea [name of near-side output file containing layer-line data] /scr0/cs1/5064a1170.far [name of file containing layer-line data from far side] 5064a1170 [title] 1.43 1.43 [Angstroms per g.u. in image] -231 -32 0 0 [tilt (as in .box file), xshift (hundredths of a g.u., as in .box file), yshift (normally 0), extra rotation to apply about axes (normally 0)] 170 [maximum extent of layer-lines in grid units] 0 0 0 [First layer-line:layer-line number (l), Bessel order (n), distance from equator (g.u., normally equal to l--unless, e.g., using two repeats; then it's twice l)] 0 170 0 170 [First layer-line:start point of layer-line on left side of FT (g.u.), end point; start point on right side, end point)] 1 -50 1 [Second layer-line:l, n, distance from equator] 48 169 48 169 [Second layer-line:start point on left, end point on left, start on right, end on right] 2 -100 2 [Third layer-line] 103 169 103 169 [etc.] 3 128 3 136 169 136 169 4 78 4 81 169 81 169 5 28 5 26 169 26 169 etc. ***************************************************************************** *************************SHEET 14******************************************** a) hlxavg.com control file (called hlxavg.5064ac in this case) 5064ac500 /scr0/cs1/5064ac500.avg -16 17 6 11 594. 500 1 0.000341455 1611 2048 3 ! delr,ylength (A),isize,nfiles /scr0/cs1/5064a1500.avg -4.23 32.9 1.020 1.0 ! phi,z,rscal,sfact /scr0/cs1/5064a2500.avg -4.18 32.19 1.024 1.0 ! phi,z,rscal,sfact /scr0/cs1/5064a3500.avg -4.5 31.09 1.028 1.0 ! phi,z,rscal,sfact b) hlxavg.5064ac explained 5064ac500 [title] /scr0/cs1/5064ac500.avg [name of averaged output file] -16 17 6 11 594. 500 1 [Bessel order (n, = -16) and layer-line number (l, = 17, differs for each tube) of (1,0) layer-line; Bessel order (n, = 6) and layer-line number (l, = 11, differs for each tube) of (0,1) layer-line; width of tube in grid units, maximum resolution in grid units, multiplication factor for phi and z (normally 1)] 0.000341455 1611 2048 3 ! delr,ylength (A),isize,nfiles [layer-line sampling interval (1/A), ylength in Angstroms (read from *.box file), X dimension of FT, number of files to average] /scr0/cs1/5064a1500.avg [name of first file to be averaged] -4.23 32.9 1.020 1.0 ! phi,z,rscal,sfact [phi, z, rscal, weight to apply to this file in average] /scr0/cs1/5064a2500.avg [name of second file] -4.18 32.19 1.024 1.0 ! phi,z,rscal,sfact [etc.] /scr0/cs1/5064a3500.avg -4.5 31.09 1.028 1.0 ! phi,z,rscal,sfact ***************************************************************************** *************************SHEET 15******************************************** a) hcut.com #!/bin/csh -f # #hcut.com # #Version 1.0 10-Jan-96 NU # # setenv IN /scr0/cs1/5064abcdc500.avg setenv OUT /scr0/cs1/5064abcdc170.avg hcut << 'eot' > ~/log/hcut.log 1 3.6571 0.000341455 0 170 # llfact,zfact,resmin,resmax(grid units) 'eot' b) hcut.com explained #!/bin/csh -f # #hcut.com # #Version 1.0 10-Jan-96 NU # # [header] setenv IN /scr0/cs1/5064abcdc500.avg [the input file is on /scr0/cs1, and is called 5064abcdc500.avg] setenv OUT /scr0/cs1/5064abcdc170.avg [the output file is on /scr0/cs1, and is called 5064abcdc170.avg] hcut << 'eot' > ~/log/hcut.log [run hcut, using the following line as input, and writing to the log file ~/log/hcut.log] 1 3.6571 0.000341455 0 170 # llfact,zfact,resmin,resmax(grid units) [number of repeats in FT, NY of FT (usually 4096) divided by the repeat distance in g.u., layer-line sampling interval (1/A), minimum resolution kept in output file (g.u.), maximum resolution kept in output file (g.u.)] 'eot' [end of input] ***************************************************************************** *************************SHEET 16******************************************** a) h2fld.cnt 5064abcdc170.avg ! title /scr0/cs1/5064abcdc170.avg 0 3655 ! no lls (0 for all) & rep. dist. (A) 0 ! amp cutoff (% of max.) 0 0 ! list of special lls (L & wt) 0.0 0.0 0.01 ! azimuthal rotation 0.0 0.0 0.01 ! shift along helix axis 0 ! 2fd file? (1 for file; 0 for none) b) h2fld.cnt explained 5064abcdc170.avg ! title [title] /scr0/cs1/5064abcdc170.avg [name of input file containing layer-line data] 0 3655 ! no lls (0 for all) & rep. dist. (A) [number of layer-lines (0 for all), repeat distance (A)] 0 ! amp cutoff (% of max.) [minimum amplitude to use in calculation (as a % of the maximum off-equatorial amplitude] 0 0 ! list of special lls (L & wt) [list of special layer-lines and the weights to apply to them in the calculation--here, the equator is given no weight] 0.0 0.0 0.01 ! azimuthal rotation [minimum and maximum phi to search over, search increment (degrees)--here, only looking at phi=0.0] 0.0 0.0 0.01 ! shift along helix axis [minimum and maximum z to search over, search increment (Angstroms)--here, only looking at z=0.0] 0 ! 2fd file? (1 for file; 0 for none) [Write out a file with the layer-line data with twofold symmetry imposed (i.e. all phases are0 or 180 degrees)? (1=yes, 0=no)] ***************************************************************************** *************************SHEET 17******************************************** a) ctfplot.cnt (used for image 5301) 1.020/2245/1.9613/0.0/34880; 8500 8106 14.59 m26s2a5301.lim /scr0/rb1/5301abcdc500.nea /scr0/rb1/5301abcdc500.far 0.0 0.0 1.020 2245 ! phi,z,rscal,rep_dis 1 1.9613 1024 0.0 ! llfact,zfact,isize,alim 0.000454215 0.000341455 ! delr1,delr2 341455 8600 8106 14.59 ! dfmid1,dfmid2,angast 7.5 34880 2.0 120 7 ! 34880dstep,xmag,cs,kv,ampc 0 ! iplot /scr0/rb1/ctf5301abcdc500.nea /scr0/rb1/ctf5301abcdc500.far b) ctfplot.cnt explained 1.020/2245/1.9613/0.0/34880; 8500 8106 14.59 [title line: rscal is 1.020; repeat distance is 2245 Angstroms; 1.9613 is zfact (equal to 2048*2.15/2245); amplitude cutoff is zero; magnification is 34880; maximum defocus given by pltctfx is 8500 Angstroms; minimum defocus given by pltctfx is 8106; angle of astigmatism given by pltctfx is 14.59] m26s2a5301.lim [name of file containing reference layer-lines] /scr0/rb1/5301abcdc500.nea [name of file containing near-side layer-line data] /scr0/rb1/5301abcdc500.far [name of file containing far-side layer-line data] 0.0 0.0 1.020 2245 ! phi,z,rscal,rep_dis [phi (degrees) to be applied to test layer-lines, z (A) to be applied, rscal that was applied, repeat distance (A); phi and z are normally zero] 1 1.9613 1024 0.0 ! llfact,zfact,isize,alim [number of repeats in FT; zfact (see title line): y-direction length of FT used to produce reference data set divided by repeat distance of test data; x-direction size of FT used to produce reference data set (g.u.); minimum amplitude of data considered in ctfplot's calculation of the image quality] 0.000454215 0.000341455 ! delr1,delr2 341455 [layer-line sampling intervals (1/A) for reference and test data, respectively] 8600 8106 14.59 ! dfmid1,dfmid2,angast [defocus along direction of maximum defocus as determined by pltctfx; defocus in other direction; angle of astigmatism] 7.5 34880 2.0 120 7 ! 34880dstep,xmag,cs,kv,ampc [scanning interval in microns for reference data; magnification of reference dataset; spherical aberration for test; number of kilovolts test image was taken at; percent amplitude contrast] 0 ! iplot [plot the ctf zeros? 0 = no, 1 = yes] /scr0/rb1/ctf5301abcdc500.nea [near-side output, containing layer-lines with corrected phases and an extra column listing the ctf value at each point] /scr0/rb1/ctf5301abcdc500.far [far-side output] ***************************************************************************** *************************SHEET 18******************************************** a) hbkg.cnt ctfb5064abcdc500 /scr0/cs1/5064abdi.fft /scr0/cs1/ctf5064abcdc500.nea /scr0/cs1/ctf5064abcdc500.far /scr1/cs1/dat/ctfb5064abcdc500.nea /scr1/cs1/dat/ctfb5064abcdc500.far 1 0.000341455 1.020 50 67.7 ! llfact,delr,rscale,istrip,scale b) hbkg.cnt explained ctfb5064abcdc500 [title: "ctf" = ctf column and phases corrected; "b" = background column; "5064" = image; "abcd" = repeats used; "c" = repeats combined from thirds; "500" = layer-line data extends to 500 g.u. in FT.] /scr0/cs1/5064abdi.fft [name of input file containing ice FT] /scr0/cs1/ctf5064abcdc500.nea [name of input file containing near-side layer-lines with added ctf column] /scr0/cs1/ctf5064abcdc500.far [name of input file containing far-side layer-lines] /scr1/cs1/dat/ctfb5064abcdc500.nea [name of output file containing near-side layer-lines with added ctf and background columns] /scr1/cs1/dat/ctfb5064abcdc500.far [name of output file containing far-side layer-lines] 1 0.000341455 1.020 50 67.7 ! llfact,delr,rscale,istrip,scale [y-length of FT in repeats; layer-line sampling interval (1/A); representative rscal for tube; length over which layer-line amplitudes are averaged beginning from each point on the layer-line; scale factor to divide background amplitudes by before adding the background column] ****************************************************************************** *************************SHEET 19********************************************* a) hstat.com #!/bin/csh -f # #hstat.com # #Version 1.0 10-Jan-96 NU # 1.1 20-Jul-96 NU # # setenv IN /scr13/rb1/call28.avg setenv OUT ~/log/call28.sta hlxstat << 'eot' > ~/log/hlxstat.log call28 1 1.603 220 50 ! llfact,zfact,llmax,N 0.000341455 385 0.1 'eot' b) hstat.com explained #!/bin/csh -f # #hstat.com # #Version 1.0 10-Jan-96 NU # # [header] setenv IN /scr13/rb1/call28.avg [/scr13/rb1/call28.avg is the input file with the layer-line data] setenv OUT ~/log/call28.sta [write the results to ~/log/call28.sta] hlxstat << 'eot' > ~/log/hlxstat.log [run hlxstat using the following lines as input, using ~/log/hlxstat.log as the log file.] call28 [title of data] 1 1.603 220 50 ! llfact,zfact,llmax,N [number of repeats in FT; y-length of FT divided by repeat distance in g.u.; maximum number of grid units along each layer-line; number of points evaluated in each sector] 0.000341455 385 0.1 [FT grid spacing in inverse angstroms; maximum radius of tube density, minimum amplitude cutoff for term to be considered] 'eot' [end of input] ****************************************************************************** *************************SHEET 20********************************************* a) hlxadd.com control file (called hlxadd.1t2 in this case) 1t2 /scr1/rb1/1t2.avg -16 38 6 25 594. 500 1 0.0 0.000341455 3655 1.603 2048 2 ! delr,rep_dis,zfact,isize,nfiles /scr10/rb1/ctfb1200abcc500r.avg 0.0 0.0 1.000 ! phi,z,rscal 1.5 0.82 0.65 0.65 0.78 0.67 0.68 ! sfact1-7 /scr10/rb1/ctfb1689abcc500r.avg 0.0 0.0 1.000 ! phi,z,rscal 1.8 0.79 0.63 0.55 0.72 0.62 0.57 ! sfact1-7 b) hlxadd.1t2 explained 1t2 [title of merged file] /scr1/rb1/1t2.avg [name of file with merged layer-line data] -16 38 6 25 594. 500 1 0.0 [Bessel order and layer line number of (1,0) and (0,1) layer-lines; width of tube in g.u.; maximum radius in FT in g.u.; nd to multiply phi and z (normally 1); sfact8, which is subtracted from each of sfact2-7 for each file to merge (below) to emphasize differences between them.] 0.000341455 3655 1.603 2048 2 ! delr,rep_dis,zfact,isize,nfiles [layer-line sampling interval (1/A); repeat distance (A); y-length of transform divided by repeat distance in g.u.; number of files to merge] /scr10/rb1/ctfb1200abcc500r.avg [name of first file with layer-line data to be merged] 0.0 0.0 1.000 ! phi,z,rscal [phi, z, and rscal (normally 0.0 0.0 and 1.0 by this point)] 1.5 0.82 0.65 0.65 0.78 0.67 0.68 ! sfact1-7 [weight to apply to entire file; weights to apply to low, medium, and high resolution data along the meridian (Z-sector); weights to apply to low, medium, and high resolution data along the equator (R-sector). sfact1 for individual tubes is normally equal to the length of tube. sfact2 is equal to the average fom from hstat.com of the first two annuli in the Z-sector; sfact3 is the average of the next two annuli; and sfact4 is the average of the fifth and sixth annuli. sfact5-7 are obtained in the same way from the R-sector.] /scr10/rb1/ctfb1689abcc500r.avg [name of second file with layer-line data to be merged] 0.0 0.0 1.000 ! phi,z,rscal [etc.] 1.8 0.79 0.63 0.55 0.72 0.62 0.57 ! sfact1-7 ****************************************************************************** *************************SHEET 21********************************************* a) divctf.com #!/bin/csh -f # #divctf.com # #Version 1.0 10-Jan-96 RB # 1.1 22-Jan-96 RB # # setenv IN /scr13/rb1/all28.avg setenv OUT /scr13/rb1/call28.avg divctf << divctf-eof > ~/log/divctf.log 0.0,1.0,0.0,0.0 divctf-eof b) divctf.com explained #!/bin/csh -f # #divctf.com # #Version 1.0 10-Jan-96 RB # 1.1 22-Jan-96 RB # # [header] setenv IN /scr13/rb1/all28.avg [name of file with input layer-line data is /scr13/rb1/all28.avg] setenv OUT /scr13/rb1/call28.avg [name of file with output layer-line data is /scr13/rb1/call28.avg; the added "c" means "ctf-corrected"] divctf << divctf-eof > ~/log/divctf.log [run divctf with the following lines as input, writing the log file to ~/log/divctf.log] 0.0,1.0,0.0,0.0 [factor to be subtracted from each amplitude; minimum PQ value accepted; minimum ctf**2 value allowed--lower values are raised to this; minimum cos**2 value accepted.] divctf-eof [end of input] ****************************************************************************** *************************SHEET 22********************************************* a) hlxlim.com #!/bin/csh -f # #hlxlim.com # #Version 1.0 10-Jan-96 NU # # setenv IN /scr13/rb1/call28450.avg setenv OUT /scr13/rb1/call28450.lim hlxlim << hlxlim-eof > ~/log/hlxlim.log 385.,14,19,0.0,0.0,220,0.1 hlxlim-eof b) hlxlim.com explained #!/bin/csh -f # #hlxlim.com # #Version 1.0 10-Jan-96 NU # # [header] setenv IN /scr13/rb1/call28450.avg [name of input file containing layer-line data is /scr13/rb1/call28450.avg] setenv OUT /scr13/rb1/call28450.lim [name of output file containing layer-line data is /scr13/rb1/call28450.lim] hlxlim << hlxlim-eof > ~/log/hlxlim.log [run hlxlim using following lines as input and ~/log/hlxlim.log as the log file] 385.,14,19,0.0,0.0,220,0.1 [maximum radius of tube (A), window length parameters lw1 and lw2, minimum running figure of merit value for point to be accepted, minimum PQ' value for point to be accepted, maximum layer-line length (g.u.), amplitude scaling factor for use in writing to the log file] hlxlim-eof [end of input] ****************************************************************************** *************************SHEET 23********************************************* a) ltlg.com #!/bin/csh -f # #ltlg.com # #Version 1.0 10-Jan-96 NU # # setenv IN /scr13/rb1/call28450.lim setenv OUT /scr13/rb1/call28450.lg2 ltlg << 'eot' > ~/log/ltlg.log call28450 2 0 500 0.000341455 512 0.05 0.000001 # delsr,rmin,rmax,DELR,IRMAX,SCALE,GMIN 'eot' b) ltlg.com explained #!/bin/csh -f # #ltlg.com # #Version 1.0 10-Jan-96 NU # # [header] setenv IN /scr13/rb1/call28450.lim [name of file containing input layer-line data is /scr13/rb1/call28450.lim] setenv OUT /scr13/rb1/call28450.lg2 [name of file containing output little g's is /scr13/rb1/call28450.lg2] ltlg << 'eot' > ~/log/ltlg.log [run ltlg, using the following lines as input and ~/log/ltlg.log as the log file] call28450 [title of data] 2 0 500 0.000341455 512 0.05 0.000001 # delsr,rmin,rmax,DELR,IRMAX,SCALE,GMIN [radial increment (A), minimum radius to be calculated (A), maximum radius to be calculated (A), layer-line sampling interval (1/A), maximum number of grid points in layer-line, scale factor to multiply little g's by, minimum layer-line amplitude used] 'eot' [end of input] ****************************************************************************** *************************SHEET 24********************************************* a) hsec.com # # #hsec.com # #Version 1.0 10-Jan-96 NU # # setenv IN /scr13/rb1/call28450.lg2 hlxsec << 'eot' > ~/log/hsec.log call28450.lg2 0 500 2 ! 280 320 4 ! rmin,rmax,delsr 268 300 2 ! 278 292 2 !280 314 2 ! xmin,xmax,delx 122 228 1 ! zmin,zmax,delz 26.8 122 ! pmin,ystep 3655.0 5. 0.0 ! 3513.12.5 0.08 repeat,scale,equ weight (0=none) /scr13/rb1/call28450lg2.sec 'eot' PLUT0: echo '-------------------------------------PLUTO:' npo mapin /scr13/rb1/call28450lg2.sec plot plot.plt <<'EOF-PLUTO' GO TITLE call28450lg2 MAP INVERT SCALE 1.72 CONTRS -36 -33 -30 -27 -24 -21 -18 -15 -12 -9 -6 -3 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 MODE BELOW 0 DASHED 2 0.2 SECTNS 134 150 PLOT Y 'EOF-PLUTO' x84 plot.plt #laserplot plot.plt #laser1 plot.ps b) hsec.com explained # # #hsec.com # #Version 1.0 10-Jan-96 NU # # [header] setenv IN /scr13/rb1/call28450.lg2 [name of file with input little g's data] hlxsec << 'eot' > ~/log/hsec.log [run hlxsec using the following lines as input and ~/log/hsec.log as the log file] call28450.lg2 [title] 0 500 2 ! 280 320 4 ! rmin,rmax,delsr [minimum and maximum real-space radii calculated by ltlg, radial increment (all in A)] 268 300 2 ! 278 292 2 !280 314 2 ! xmin,xmax,delx [minimum and maximum radii (A) at centres of sections to be calculated, radial increment (must be a multiple of delsr)] 122 228 1 ! zmin,zmax,delz [minimum and maximum distances and increment (A) along helix axis in sections to be calculated] 26.8 122 ! pmin,ystep [azimuthal position of centres of sections to be calculated, increment in y (degrees)] 3655.0 5. 0.0 ! 3513.12.5 0.08 repeat,scale,equ weight (0=none) [repeat distance (A), scale factor for output densities, weight applied to little g's calculated for equatorial layer-line] /scr13/rb1/call28450lg2.sec [name of output map file] 'eot' [end of input] PLUT0: [program to make contour maps] echo '-------------------------------------PLUTO:' [write stuff in quotes to screen] npo mapin /scr13/rb1/call28450lg2.sec plot plot.plt <<'EOF-PLUTO' [name of input map file is /scr13/rb1/call28450lg2.sec; name of output plot file is plot.plt; use following lines as input for PLUTO] GO [start!] TITLE call28450lg2 [title is call28450lg2] MAP INVERT SCALE 1.72 [map scale is 1.72 mm/A] CONTRS -36 -33 -30 -27 -24 -21 -18 -15 -12 -9 -6 -3 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 [contours are plotted at the density levels listed] MODE BELOW 0 DASHED 2 0.2 [contours at less than 0 density are dashed] SECTNS 134 150 [sections to plot range from 134 to 150 (xmin/delx, xmax/delx from above] PLOT Y 'EOF-PLUTO' [end of input] x84 plot.plt [display contour maps on screen] #laserplot plot.plt #laser1 plot.ps [print contour maps out; these lines have been commented out with the hash marks] ****************************************************************************** *************************SHEET 25********************************************* a) hhor.com # #hhor.com # #Version 1.0 10-Jan-96 NU # # setenv IN /scr13/rb1/call28450.lg2 hlxhor << 'eot' > ~/log/hhor.log call28450.lg2 0 500 2 ! rmin,rmax,delsr 390 390 ! xmax,ymax 184 184 2 ! zmin,zmax,delz -20 70 ! pmin,pmax 3655 2.5 0.0 ! repeat,scale,equ wt (0=none) /scr13/rb1/call28450lg2.hor 'eot' PLUTO: echo '------------------------------PLUTO:' npo mapin /scr13/rb1/call28450lg2.hor plot plot.plt <<'EOF-PLUTO' GO TITLE call28450.lg2 MAP INVERT SCALE 0.46 CONTRS -32 -28 -24 -20 -16 -12 -8 -4 0 4 8 12 16 20 24 28 32 MODE BELOW 1 DASHED 1 0.1 SECTNS 92 92 PLOT Y 'EOF-PLUTO' #x84 plot.plt laserplot plot.plt laser1 plot.ps b)hhor.com explained # # #hhor.com # #Version 1.0 10-Jan-96 NU # # [header] setenv IN /scr13/rb1/call28450.lg2 [name of file with input little g's data] hlxhor << 'eot' > ~/log/hhor.log [run hlxhor using the following lines as input and ~/log/hhor.log as the log file] call28450.lg2 [title] 0 500 2 ! rmin,rmax,delsr [minimum and maximum real-space radii calculated by ltlg, radial increment (all in A)] 390 390 ! xmax,ymax [length in x and y (A, dimensions perpendicular to tube axis) of sections to be calculated] 184 184 2 ! zmin,zmax,delz [minimum and maximum distances (A) along helix axis of sections to be calculated, increment] -20 70 ! pmin,pmax [azimuthal limits of sections to be calculated (degrees)] 3655 2.5 0.0 ! repeat,scale,equ wt (0=none) [repeat distance (A), scale factor for output densities, weight applied to little g's calculated for equatorial layer-line] /scr13/rb1/call28450lg2.hor [name of output map file] 'eot' [end of input] PLUTO: [program to make contour maps] echo '------------------------------PLUTO:' [write stuff in quotes to screen] npo mapin /scr13/rb1/call28450lg2.hor plot plot.plt <<'EOF-PLUTO' [name of input map file is /scr13/rb1/call28450lg2.hor; name of output plot file is plot.plt; use following lines as input for PLUTO] GO [start!] TITLE call28450.lg2 [title is call28450lg2] MAP INVERT SCALE 0.46 [map scale is 0.46 mm/A] CONTRS -32 -28 -24 -20 -16 -12 -8 -4 0 4 8 12 16 20 24 28 32 [contours are plotted at the density levels listed] MODE BELOW 1 DASHED 1 0.1 [contours at less than 1 density are dashed] SECTNS 92 92 [sections to plot range from 92 to 92 (zmin/delz, zmax/delz from above] PLOT Y 'EOF-PLUTO' [end of input] #x84 plot.plt [display contour maps on screen; commented out with the hash mark] laserplot plot.plt laser1 plot.ps [print contour plots out; can be commented out with hash marks] ****************************************************************************** **********************SHEET 26************************* a) hreindex1.com file #!/bin/csh -f # #hreindex1.com # #Version 1.0 19-Jul-96 RB # # setenv IN /ss1/rb1/dat/ctfb1200abcc500.avg setenv OUT /ss1/rb1/dat/ctfb1200abcc500r.avg hreindex1 << 'eot' > ~/log/reindex.log -16 6 300 380 23 15 ! l10,l01 - old values 38 25 ! l10,l01 - new values 'eot' b) hreindex.com file explained #!/bin/csh -f # #hreindex.com # #Version 1.0 19-Jul-96 RB # # [header] setenv IN /ss1/rb1/dat/ctfb1200abcc500.avg [input file name is /ss1/rb1/dat/ctfb1200abcc500.avg] setenv OUT /ss1/rb1/dat/ctfb1200abcc500r.avg [output file name] hreindex1 << 'eot' > ~/log/reindex.log [runs the program hreindex1 using the following lines (until 'eot') as input, and writing to the log file ~/log/reindex.log] -16 6 300 380 [the Bessel orders (n) of the (1,0) and (0,1) layer-lines are -16 and 6 respectively; mass to worry about in forming overlapping layer-lines lies between radii of 300 and 380 angstroms in the tubes] 23 15 ! l10,l01 - old values [the layer-line numbers (l) of the (1,0) and (0,1) layer-lines of the input file are 23 and 15 respectively] 38 25 ! l10,l01 - new values [these layer-line numbers are to be changed, in the output file, to 38 and 25] 'eot' [end of input] ***************************************************************************** ***********************CTF DETERMINATION**************************************** ****** Minimal documentation for PLTCTFX ***** 0. Parameter file: You must have a file "pltctf.def" in your current directory; it may be specified by the environmental variable CTFDEF. This file consists of two lines (plus comment lines) and should look like this. ! accelerating voltage; Cs; amplitude contrast 120 2 0.07 ! interval (micron); magnification(X) 15 34100 =========================================================================== I. sctravgft (/nb0/ct2/bin/sctravgft) This program does sector-averaging. There are several options. Reduce table size [y/n def: n] --- you probably never use this option. Use astigmatism information [y/n def: n] --- to average the points with the same CTF values. Parameter file [def. pltctf.def] --- described above mean defocus, astigmatism and angle for max defocus --- These values are provided by CTFFIT. The mean defocus and astigmatism should be in Angstrom, and the angle in degrees. Astigmatism here refers to a half of focus difference due to astigmatism (following the definition of Born & Wolf; often astigmatic focus difference is used as "astigmatism constant" in EM litterature). Make the data apparently no astigmatic [Y/N def. N]: --- This option is useful to check if the values you supplied for defocus parameters are accurate, because all the sector- averages must have the CTF zeros and maxima at the same positions. The current version of SCTRAVGFT was made to cope with Rameen's version of HLXBOX/FFT program; difference in dimensions of Fourier transform and interpolation by HLXBOX are automatically taken care of. ***Our note: Chikashi's program AVGCTFFL will average the output (*.ctf files) from SCTRAVGFT obtained from Fourier transforms of different stretches of tube. ============================================================================ II. pltctfx (/nb0/ct2/bin/pltctfx) Prerequisite: you must have CTFFIT in your directory path. Input file: sector averaged Fourier Transform prepared by SCTRAVGFT. normally it has 5 sectors; PLTCTFX consists of 7 panels (steps). 1. Symbols: sector-averaged amplitudes plotted as a function of q-square; Lines: smooth background curves a. Initialisation of a PS file (for hardcopy): A postscript file may be made for print outs; the name is hardcoded ("ctf.ps"). Therefore, if you want to keep an old one, you have to rename it. You can look at them on an X-terminal using 'gs' (ghost script). b. conversion into q-square plot; The dimension of the original Fourier transform does not matter but should be larger than 512x512. If the dimensions are larger than 512, running average is calculated. c. drawing smooth background curves: least-squares approximating spline functions are used, neglecting the modulation due to CTF. Default smoothing parameter of 10 seems to be all right in our experience; adjust this parameter so that you get 8 for the number of knots (again an empirical value). Specify a larger number to decrease the number of knots. To do so, press "Smooth" button and specify the sector number. Then program asks you a new smoothing parameter. Hit C/R without any parameters to quit this routine. If the fitting is poor, you might have to change the start and/or end radii. This can be done by choosing either the "Start R" or "End R". Then specify new parameters. c. press "Next" button to proceed, or "Quit" button to get out. 2. Symbols: sector-averaged amplitudes corrected for background; Lines: running average a. backgrouond subtraction: smooth curves drawn in the step 1 are subtracted from the sector-averaged amplitude curves. The resultant data will have both negative and positive parts. b. amplitude scaling correction for display: If background-corrected curves appear too weak, choose the "Magnify" button and type in an appropriate factor. c. Specify the range to be used for Fourier filtering: It is probably the best to choose the points where the running-averaged amplitudes becomes 0; to do so, click the left mouse button near the horizontal (i.e. zero-level) axis to specify start and end radii (must be in this order). If you want to change afterwards, specify the position again and choose either "start R" or "end R" button. When you have specified two radii for each sector, choose the "Next" button. d. Specify the defocus range to be searched. The default range of 3000 to 30000 seems too large. 3. Symbols: amplitude part of Fourier transform (2048 points) of sector-averaged amplitudes; Lines: amplitude part of the Fourier transorm to be used for Fourier filtering a. Since CTF as a function of q-square is essentially a sine function when the amount of defocus is large, its Fourier transform has amplitudes within a very much limited range. Therefore, if an appropriate threshold value is set, it is possible to limit the range of (a kind of) frequency that is consistent with the amount of defocus specified. To avoid the effect of abrupt termination of Fourier terms, those near the inner and outer edges are reduced exponentially. 4. Symbols : sector-averaged amplitudes Lines : Fourier filtered amplitudes a. Specify the start and end radii of the Fourier filtered amplitudes to be used for correlation calculation. In q-square plots, you can find the area where positive and negative peaks appear consistent (comes at a constant interval). Here, start and end radii specified for Fourier filtering are already stored as the default values. Therefore, always specify only one position and choose either the "start R" or the "end R" button. 5. Symbols : running averages of sector-averaged amplitudes Lines : best fitting CTFs a. Weight gradient: Pressing "W Gradient" button allows you to specify weight gradient for correlation calculation. This is a simple linear gradient; at radius 0, the weight is one; at the radius you specify the weight becomes 0. About 200 seems to be a reasonable value. Again, hit C/R without any numbers to quit this loop. 6. Symbols : sector-averaged and Fourier-filtered amplitudes Lines : best fitting CTFS a. Table of defocus and correlation coefficient for each sector determined independently is provided. Correlation coefficients are given in two ways. First, they are calculated using the range of data specified in step 4 and unnormlised. This value corresponds to that in the parentheses. Then, this coefficient is further normalised by how much fraction of points are actually used. This number is also given in the table and used as the weight for CTFFIT. b. There are 3 buttons in this panel. "Quit", "CTFFIT", and "Change". Choose "CTFFIT" button to run the CTFFIT program. The program makes a control data file, and then calls system() function to run CTFFIT internally. If you choose "Change", the program puts you back to the Step 3d and asks the range of defocus to be searched. 7. Symbols : sector-averaged and Fourier-filtered amplitudes Lines : best fitting CTFs determined by CTFFIT a. CTFFIT uses positions of CTF zeros and peaks as input data and determines overall (astigmatic) CTF by non-linear least squares fitting. Two output files, "temptemp.out" and "ctffit.log", are made. The first one is used for easier access to the defocus amount for each sector. The latter is a normal output of the CTFFIT program. The program reads "temptemp.out" and calculates the CTFs and correlation coefficients again. Output of the CTFFIT provides the table showing the position of |CTF| zeros and maxima. In this table, the position of the 1st max, 1st zero, 2nd max and 2nd zero etc. are given in this order. The rows marked by "gu" refer to the positions measured in grid unit in the transform. The rows marked by "sqgu" refer to those measured in q-square, thus directly related to the q-square plots you have been working with. The residual provided by the CTFFIT may not be the good measure for the quality of fitting, because different weighting for different sectors will give you a different figure. You may get a worse residual when you put astigmatic information in the SCTRAVG. b. Choose the "Hardcopy" button for normal exit. Choose "Change" if you are not satisfied. 8. The postscript file ("ctf.ps") contains panels 1, 3, modification of 6 (symbols: running average) and 7. =========================================================================== III. pltctfxfl (/nb0/ct2/bin/pltctfxfl) This version of PLTCTFX uses Fourier filtered CTFs. You must have a file contatining Fourier filtered theoretical CTFs (default "ctf.ref") prepared by MKCTFREF. NOTE: Due to a bug in the program, you must specify smaller range for the defocus values to be searched. Otherwise, Floating point exception occurs. Sorry for this trouble. =========================================================================== IV. mkctfref (/nb0/ct2/bin/mkctfref) This program prepares a file containing Fourier filtered theoretical CTFs. The defaults provided by the program will be all right. However, if you want to have accuracy better than 100 Angstrom, specify as such for the interval. The file made is an MRC image foramt file, so that you can view it. ******************************************************************************** ************************ PROGRAM INFORMATION *********************************** 1. Description of commands used in processing ********************************************* PROGRAM NAME FUNCTION rlabel various image modifications. In particular, we use it to average adjacent pixels in the image to reduce its size. axchgmrc Flips image axes (i.e. rotates axes by 90 degrees) printtone Lineprinter output of image correl.com Boxes out two regions of the image, cross-correlates one with the other, lists top cross-correlation peaks. hreindex.com Changes layer-line numbers so that they correspond to the new selection rule given in hreindex.com. hreindex1.com Like hreindex.com, but also removes parts of layer-lines where they overlap with strong peaks of other layer-lines nltable Given selection rule, length of tube, etc., determine locations of layer-lines hlxs.com Extract and display individual, strong layer-lines from FT (layer-line locations listed in hlxs.com) hlxmk.com Use (modified) nltable output to create list of layer-line positions for computer to use in extracting data. search.com Determine X, tilt, phi, z and rscale for a given segments of tube Runs .... hfts.com Box and transform selected region of image hlxs.com described above srch.com Uses highest peaks from hlxs output to determine x-shift, tilt hlxfl.com Extracts layer-lines from FT (layer-line locations listed in .hlx file hlxfit.com Determines phi, z, rscale by fitting data to reference (minimising phase residual based on difference phi(ref)-phi(test)) hlxfitx.com Determines x-shift by fitting data to reference tubecurve.com Uses locations, orientations, etc. of individual segments to determine path of tube through ice. Plotted by "gnuplot gnucomp". gnuplot Plotting utility hlxfl500.com Extract layer lines out to 500 g.u. from given segment (layer-line locations listed in *500.hlx file.) hlxavg.com Averages data files after changing phi, z and rscale in each hcut.com Cuts out all the high resolution data past the point specified (e.g 170 g.u.) h2fld.com Determines 2-fold phase residual of data and minimise over range of phi and z values. Write 2-fold corrected data if requested. repeat.com Determine best repeat distance by maximising total amplitude on layer-lines far from the equator totalamp.com Determine total amplitude on layer-lines far from equator (minimum distance from equator taken as input and set in repeat.com?*.) rotx.com Determine rotation angle theta by minimizing hlxfit amplitude residual (Rf factor). i.e. by fitting the amplitudes in the data to reference data) refine Run search.com, rotx.com and repeat.com on whole repeat to align it as a whole. Then divide the repeat into 6ths, run search.com on each of these 6ths to determine x-shift, tilt, phi, z, and rscale for each one. hstat.com Calculates a figure of merit and signal strength for the data in successive annuli in the axial and radial directions ctfplot.com Corrects phases of near and far -side files for ctf and compares them to the reference file. If requested, writes phase-corrected datasets to files with an added column listing the ctf weighting of the amplitude. hbkg.com Determines background value at each point along each layer-line. nfadd.com Adds near- and far- side files, weighting amplitudes by the ctf and carrying ctf and column files over. hlxadd.com Adds datasets from different images, taking care of the columns devoted to the ctf and background and weighting them appropriately. divctf.com Divides amplitudes by (ctf)^2 and removes Fourier terms with low PQ values. hlxlim.com Removes stretches of the layer lines that contain no signal, and sets accurate start points on each layer-line ltlg.com Calculates the "little g's" from the centrosymmetric components of the data. (Also ltlgab.com for non- centrosymmetric structures). hsec.com Calculates maps of sections parallel to the tube axis from the little g's. hhor.com Calculates maps of sections perpendicular to the tube axis from the little g's. (Also hhorab.com for non- centrosymmetric structures). icefft.com takes FT's of ice next to tube and adds them together. 2. Files supporting and produced by processing programs ******************************************************** The table below uses image 5064 as an example. a,b,c,d following image number refers to the section of the tube being processed. "IMAGE" refers to the directory where you keep the image files (e.g. /nb1/cs1); "SCRATCH" refers to the scratch-disk directory being used (e.g. /scr0/cs1). COMMAND FILE PROGRAM NAME FILE(S) USED OUTPUT FILE(S) rlabel IMAGE/5064.img IMAGE/l5064.img axchgmrc IMAGE/l5064.img IMAGE/l5064r.img hreindex.com reindex e.g.m26s2a.lim e.g. m26s2a5064.lim ~/log/reindex.log nltable none e.g. nltable.5064 correl.com rlabel e.g. 5064.corr ~/log/5064corr.log axchgmrc IMAGE/5064.img SCRATCH/5064corr.img boxim.exe fftrans twofile.exe peaksearch hlxs.com hlxs e.g. SCRATCH/5064a.fft ~/log/hlxs.log (Fourier transform 5064a.src file) hlxmk.com hlxmk nltable.dat 5064170.hlx or nltabl.dat 5064500.hlx ~/log/hlxmk.log search.com hfts.com e.g. 5064a.box ~/log/5064a.rr hlxs.com IMAGE/5064.img SCRATCH/5064a170.avg srch.com SCRATCH/5064a.fft srch1.com 5064a.box (modified) hlxfl.com ~/log/hlxs.log hlxfit.com ~/log/hlxfit.log hlxfitx.com 5064a.hfit 5064a.hfx other log files refine search.com e.g. 5064a.box ~/log/5064a.rr rotx.com IMAGE/5064.img 5064a.box (modified) repeat.com 5064a11.box-5064a32.box chop.com (sixths) hfts.com hfts 5064a.box SCRATCH/5064a.fft IMAGE/5064.img srch.com srch 5064a.src ~/log/srch.log 5064a1.src srch1.com srch 5064a1.src ~/log/srch2.log 5064a2.src hlxfl.com hlxfl 5064a170.hlx SCRATCH/5064a170.nea nfavg SCRATCH/5064a.fft SCRATCH/5064a170.far SCRATCH/5064a170.avg ~/log/hlxfl.log hlxfit.com hlxfit SCRATCH/5064a170.avg ~/log/hlxfit.log m26s2a5064.lim 5064a.hfx hlxfitx.com hlxfitx SCRATCH/5064a170.avg ~/log/hlxfitx.log m26s2a5064.lim tubecurve.com tubecurve e.g. 5064acurve.in 5064curve.in 5064bcurve.in 5064.calc 5064ccurve.in 5064.curves 5064dcurve.in gnucomp ~/log/tubecurve.log gnuplot gnucomp plot.plt 5064.curves 5064.calc hlxfl500.com hlxfl 5064a500.hlx SCRATCH/5064a500.nea nfavg SCRATCH/5064a500.far SCRATCH/5064a500.avg ~/log/hlxfl.log hlxavg.com hlxavg hlxavg.5064ac SCRATCH/5064ac500.avg SCRATCH/5064a1500.avg ~/log/hlxavg.log SCRATCH/5064a2500.avg SCRATCH/5064a3500.avg hcut.com hcut SCRATCH/5064a500.avg SCRATCH/5064a170.avg h2fld.com hlx2fld h2fld.cnt ~/log/h2fld.log SCRATCH/5064a170.avg 5064a170.2fd (if requested in h2fld.cnt, h2fld.com) hstat.com hlxstat SCRATCH/5064ac500.avg ~/log/5064ac.sta ctfplot.com ctfplot SCRATCH/5064ac500.nea SCRATCH/ctf5064ac500.nea SCRATCH/5064ac500.far SCRATCH/ctf5064ac500.far ctfplot.cnt ~/log/ctfplot.log (plus plot files which are printed out) ctfplotr.com ctfplot SCRATCH/5064ac500.nea ~/log/ctfplot.log SCRATCH/5064ac500.far (plus plot files which ctfplot.cnt may be printed out) icefft.com icefftlr.com 5064a.box SCRATCH/5064ai.fft twofilei IMAGE/5064.img icefftlr.com hfts SCRATCH/5064.img SCRATCH/5064ax.fft 5064a.box hbkg.com hlxbkg SCRATCH/ctf5064ac500.nea SCRATCH/ctfb5064ac500.nea SCRATCH/ctf5064ac500.far SCRATCHctfb5064ac500.far SCRATCH/5064ai.fft ~/log/hbkg.log hbkg.cnt nfadd.com nfadd SCRATCH/ctfb5064ac500.nea SCRATCH/ctfb5064ac500.avg SCRATCH/ctfb5064ac500.far ~/log/nfadd.log hlxadd.com hlxadd hlxadd.1t9 ~/log/hlxavg.log SCRATCH/ctfb5064ac500.avg SCRATCH/1t9.avg SCRATCH/ctfb814abcc500.avg etc. divctf.com divctf SCRATCH/all28.avg SCRATCH/call28.avg ~/log/divctf.log hlxlim.com hlxlim SCRATCH/call28450.avg SCRATCH/call28450.lim ~/log/hlxlim.log ltlg.com ltlg SCRATCH/call28450.lim SCRATCH/call28450.lg2 ~/log/ltlg.log ltlgab.com ltlgab SCRATCH/call28450.lim SCRATCH/call28450.lg2 ~/log/ltlg.log hsec.com hlxsec SCRATCH/call28450.lg2 SCRATCH/call28450lg2.sec PLUTO ~/log/hsec.log plot.plt (to be displayed by x84 or printed) hhor.com hlxhor SCRATCH/call28450.lg2 SCRATCH/call28450lg2.hor ~/log/hhor.log plot.plt (to be displayed or printed) hhorab.com hlxhorab SCRATCH/call28450.lg2 SCRATCH/call28450lg2.hor ~/log/hhor.log plot.plt (to be displayed or printed) *********************************************************************************** 3. Examples of command statements commonly used ************************************************ hfts.com 0 < 5064a.box & (uses control file 5064a.box) search.com 0 < 5064a.box & (uses control file 5064a.box) hlxfit.com 5064a & (uses control file 5064a.hfit) hlxfl.com 0 5064a170 1.0 & (uses control file 5064a170.hlx) hlxs.com 0 5064a 500 & (uses control file hlxs.com) srch.com 5064a 180 -21 20 & (where 180 and -21 are the tilt and xshift estimates) refine 0 5064a > /dev/null & (uses control file 5064a.box) tubecurve.com 5064 6 a b c d & gnuplot gnucomp (uses command file gnucomp) hlxfl500.com 0 5064a1 & (uses control file 5064a1500.hlx) hlxavg.com 5064abcd & (uses control file hlxavg.5064abcd) icefft.com 0 5064 a b c d & (uses control files 5064a.box, 5064b.box, 5064c.box, and 5064d.box) hbkg.com & (uses control file hbkg.cnt) nfadd.com 5064abcd500 0.218 0.241 & hlxadd.com 1t9 & (uses control file hlxadd.1t9)