Sometimes the results of bead tracking on the full-res .preali are less than desirable. This is frequently the case for tilt series acquired using the 8k x 8k camera from the 4000 #2. Luckily, good results can often be obtained by performing the tracking on a binned version of the .preali file.
(A) Preparing the .preali and .seed files
1. Bin the .preali file in two dimensions (X and Y). For data from the 8k x 8k camera, I've found that good results can be achieved using a binning factor of 8:
$ newstack -bin 8 basename.preali basename.bin8.preali
2. Scale the .seed file so it matches the coordinates of the binned .preali file:
$ imodtrans -i basename.bin8.preali basename.seed basename.bin8.seed
(B) Prepare the parameter file that will be used to run beadtrack
The next step is to run beadtrack using the binned .preali and .seed files. The cleanest way to do this is through the command line using an input parameter file. I have a template version of the parameter file in my home directory (/home/aperez/beadtrack/beadtrack.param). Copy this file to the directory you are performing the reconstruction in. Assuming you are currently in this directory:
$ scp /home/aperez/beadtrack/beadtrack.param .
The contents of the parameter file are listed below:
InputSeedModel base.bin8.seed OutputModel base.bin8.fid ImageFile base.bin8.preali RotationAngle -90 tiltfile base.rawtlt BeadDiameter 24 ImagesAreBinned 8 TiltDefaultGrouping 7 MagDefaultGrouping 5 BoxSizeXandY 10,10 RoundsOfTracking 4 LocalAreaTracking LocalAreaTargetSize 800 MinBeadsInArea 8 #SkipViews 1-2
The first seven lines of this file are specific to your data and NEED to be modified using a text editor (vi, emacs, nano, etc). Walking through the meaning of each of these lines:
InputSeedModel | Name of the binned seed model. If you have followed this tutorial verbatim, this will be named basename.bin8.seed. |
OutputModel | Name of the output binned and tracked fiducial model. |
ImageFile | Name of the binned preali file. If you have followed this tutorial verbatim, this will be named basename.bin8.preali. |
RotationAngle | The tilt axis angle for the tilt series. This is the value you entered into the 'Image rotation (degrees)' box when you started etomo. If you don't remember what you entered for this value, you can find it easily in the align.com file: $ grep -i RotationAngle align.com |
tiltfile | The name of the .rawtlt file for the tilt series. If you read in the angle information from the header, you will need to create a .rawtlt file. You can do this using a for loop at the command line: $ for ((i=-60; i<=60; i+=2)); do echo $i >> basename.rawtlt; done Here, the first value between the parentheses is your minimum tilt angle, the second value is your maximum tilt angle, and the third is the tilt increment. |
BeadDiameter | The diameter of your gold particles in pixels. This is obtained by dividing the size of your gold particles (in nm) by the pixel size of the image (in nm/pixel). |
ImagesAreBinned | The binning factor you used. In this tutorial, this will be 8. |
You may also need/want to edit some of the other lines to obtain optimal tracking. Walking through the meaning of each line that I've found can influence the quality of results:
RoundsOfTracking | Number of iterations to perform. More iterations can lead to better results, but I've found results rarely improve above 4 iterations. |
LocalAreaTracking | If this argument is present, local area tracking will be performed. To disable local area tracking, remove or comment out both of the LocalArea lines. |
LocalAreaTargetSize | Size for the local area. I've found that a value close to the size of the full volume works best. This is the parameter that will require the most tweaking. I like to run multiple runs with multiple values for this parameter to achieve the best tracking. Unfortunately, the optimal value seems to vary based on tilt series and I haven't found a reliable way to predict it. |
MinBeadsInArea | The minimum number of fiducials that must be present in a local area. If you decrease the local area target size, this parameter should also be reduced. |
SkipViews | The tilt angles to skip during tracking. By default, I have left this commented out. However, if you have some bad images you would still like to include in the final reconstruction, the tracking can often be improved by removing these tilt angles from bead tracking and filling them in manually afterwards. |
(C) Run beadtrack
1. Run beadtrack using your final parameter file:
$ beadtrack -param beadtrack.param
Ideally, this will run smoothly. If you see any output line that starts with 'Metro Error', this likely means that your tracking will not be good and you will need to tweak some of the optional parameters to obtain optimal tracking. After the beadtrack run is complete, you will see a printout of how many points are missing. For example:
Obj cont: Views on which points are missing 1 1: 57 1 3: 52-59 1 5: 45-46,57,59 1 6: 1-2 1 9: 45-46,50-52,54-59 1 10: 44-45,47-50,52-59 1 11: 58-59 1 13: 1-2 1 14: 52-59 1 15: 52-53,56-57 1 23: 57-59 1 29: 41,58-59 1 35: 31-33 1 43: 31 1 50: 58 1 53: 1-3 1 67: 54 1 70: 46 1 77: 41,49,54-55 1 78: 58 1 80: 54 1 81: 8 1 91: 1-3 1 92: 55,59 1 95: 54-56,58-59 1 104: 31-59 1 107: 55,57 1 108: 47 1 110: 43,49-50,56-59 1 113: 1 Total points missing = 129
Ideally, the number of missing points will be small. In the above example, I tracked 119 fiducials over 59 views, giving a total of 6962 points. Although 129 missing points may seem like a lot, it actually is quite good considering how many total points were needed. A number of this size can be quickly fixed manually.
2. If you are not satisfied with the results, tweak some of the optional parameters (particularly the local area box size) and re-run beadtrack.
(D) Upscale the Binned .fid File to Full Resolution
1. The final step is to scale the output tracked and binned fiducial file so it is back in the coordinate system of the original, unbinned .preali file:
$ imodtrans -i basename.preali basename.bin8.fid basename.fid
2. You can now proceed with fine alignment in etomo!