Video Script: IMOD tutorial - Bead Helper - Features
This page represents the script I wrote to explain almost all the feature of the IMOD "Bead Helper" plugin (part of the standard release for a long time now) - a plugin which accelerates the task of "tracking gold fiducial" (or "fiducial alignment"). This process is used to properly align a "tilt-series" (a series of 2D images taken at various tilt increments around a specimen) prior to their final alignment and reconstruction into a 3D density distribution map called a "tomogram".
Script: IMOD tutorial - Bead Helper - Features
In this video I'm going to explain the main features of the bead helper plugin using the imod tutorial test dual axis dataset. When you start Bead Helper, make sure you leave Bead Fixer open.
One of the most useful features of Bead Helper is smart scroll which lets me use the mousewheel to scroll up and down slices (views) or, if I select a contour, scroll through these points instead. Now if I press "m" it will jump the seed view, by default this is the middle most view, but you can change this under "More Settings" if you need.
I'm starting however, by explaining Bead Helper's "Visual Aids". The first of these is "show estimated position" and when I tick this you'll see a little red crosshair where Bead Helper estimates the fiducial should be on the selected view. Now the calculation of this point is very crude, but it does help show an approximate position. It can be calculated in a number of different ways, "smart 2 points is probably my favorite as it uses the position of the nearest 2 points plus the tilt angle. Now if I press "e" on the keyboard the selected point will move to the estimated position, and also notice this crosshair shows up larger on views where the point (from the selected contour) is missing. The next item, is sphere size, this literally sets the sphere size for the object... it's hard to appreciate in this very small simple dataset, but this can be useful to see where adjacent points lie.
The next one is "line display". Currently I've set it to "all contours", which allows me to see at a glance, the trajectory of all contours, I can also opt to display only contours in the select object or selected contour. Now "missing points" is useful in that it only shows where missing points are based on their estimated positions. If I press "f" now it will fill in all missing gaps based on their estimated position and if I press capital "F" it will fill in all missing points including those past the ends, although I obviously recommend you go through and check these points.
"Point residual" is a neat way to see the big errors. "Line of best fit" and "smoothing" I don't use much, I find "all contours" is the most useful setting. In more complex dataset you can sometimes lose fiducials - especially at high tilts - so the idea of "tilt display" is to display straight lines as a reference. "Tilt axis" displays a line representing the tilt axis, and you can manually change the position and angle of this under "More Settings". "Tilt axis and seed" projects a third dotted line perpendicular to the tilt axis through the seed point. "Tilt axis and point" displays a third line through the selected point. " Tilt segments" shows four parallel lines that change around the tilt axis and "h grid" shows what I call the biggest hole grid, which I'll explain later. Now the downside of these visual aids is that they can crowd the screen, and so I very, very regularly use the shortcut "t" to tell all the contours to turn on and off. I also like to turn on "centering" so the point stays in the middle of the ZAP window.
What I'm doing here is scrolling through the contour, and after a few little corrections I decide the contours if finished. Now "u" is one of my favorite Bead Helper shortcuts, as it allows you to toggle contours between "checked" or "unchecked" shown as a stippled or unstippled line... the idea is that if I scroll through a contour and find that it's pretty prefect and its got no missing points, so I'll mark it as check so I don't waste time checking it again (and again) accidentally.
Next I should talk about these action buttons. "Delete point in ranges" is a button I can use in situations where one or two of my views are bad... so let's say my last two views haven't tracked very well, and so I'm going to select this and I'm going to choose to delete all points from view 60 and 61 from all my contours from 1 to 20. Notice however, that as long as I leave this option ticked, it won't delete any points from my checked contours. Now if I hit enter, you'll see in the output it has deleted 36 points.
Now if I press the shortcut key "d" what it does is quite different. By default "d" will truncate the contour by deleting all points after the selected point, in the direction away from the seed point - so this can be used to quickly to reduce contours down to only those points that track well, so as to better seed the model, ready to run "track fiducials" in eTomo again. If I hit "r" it will reduce the contour to its original seed. And, if I click this button ("Reduce to Seed") I can reduce all contours (or a range of them) to their original seed. "Move points to estimate position" is actually an interesting one, and there's a number of options here. This window effectively represents "smoothing options" and if I set these options, and hit uppercase "E" it will actually apply these smoothing options and move several points at once, which I'm about to show now. However, this can be quite dangerous. Typically cross-correlation does a good job, so if you see a really smooth line like this it typically means it has tracked well. However, sometimes there are deviations from smooth lines (and these deviations are "correct") and it's important to captivate these deviations, hence so you shouldn't rely on estimated position too much.
A better method for correcting contours is use the shortcut keys "y", "b" and "w" - each of these shortcuts is quite different. "b" searches all points and selected the biggest deviation from the expected position. "y" selects the biggest y jump - the distance in y from a point to its expected position. And "w" finds the biggest weighted deviation in the currently selected contour, taking into account the distance between adjacent points. Now by continually pressing "b" and "y" and correcting points, it's possible to improve contours before you even reach the fine alignment stage. "Fill missing points" can fill missing gaps over a range of contours. "Reorder contours" is an interesting one, it's got many options. By default it will sort the selected range of contours in ascending order of average "y" jump, and so the worse contours, the ones with the biggest y jumps will be moved to the end. We can also sort them by the biggest average deviation, average gray value of the seed in the middle and so on. Now if you get really bad tracking you can actually reduce all contours to seed, and just by reordering contour you might get a better result - it's worth a try. But let's say I don't want to reorder my contours, but I do want to dump the ones with the biggest average y jumps. To jump to this I can press "o". Each time I press "o" it will effectively jump to the "next worst contour" according to my selected criteria. I can also hit, if I want, another shortcut key "shift+m" and this lets me move this contour to a different position in the array of contours.
Let's look briefly now at "Mouse and Keyboard Settings". So here I can figure out what mouse wheel to do: scroll points, scroll views or smart scroll (recommended). This mouse wheel setting should always be set to 100 unless you have a dodgy mouse. And you can also change settings for shortcut keys, and many of the keys "y", "b", "w", "m" and so forth. "Enter" I find particularly useful key. By default I have set this to go to the previous unchecked contour, and so now I'll only select contour with between 60 and 61 points, and this allows me to iterate through and check contour until all of them are either checked or I've deleted the bad points from this. As I go I like to hit "shift i" and this prints me a current summary of how many contours I've checked and how many contour points are missing.
Under "more settings" we can change the "seed view". And you'll find that often in the B axis you'll want to reduce this by 1, because when you transfer fiducial from one axis to the other it seems to put them one slice below the middle, even though it's not necessarily the view with zero degree tilt. Here we can manually let change the "tilt increment". We can also set the "tilt axis angle" and offset to display. And below that is the "biggest hole grid" I was talking about before, and this represents a grid which helps us place evenly distributed seed points. And here, I can change several display options, so here I might change the expected position to display a large diamond (instead of a crosshair).
Now finally I'm going to show you some of the other actions I have tucked away under this "More Actions" button. The first one is "calculate tilt axis" - this calculates the tilt axis (so it has just changed it now) based on lines of best fit through all points. Now most people actually have fiducial particles on both sides of the section. Notice in this range here, about 30 to 33, we can see some fiducials are moving left and some are moving right. So if I go to "Show fiducials on top as purple" I can use this range of views to guess which points are on which side, and this can help me get a more even distribution of points on either sides. I can also if I want, "show grid", if that's your thing, but now I'm just going to "clear purple object". The next two options can help us split contours over multiple objects. I have this option because bead tracking can be very slow when you have more than, say, 120 fiducials in an object. If you have several objects, with say 20 to 40 fiducials each, they track more independently of each other and can yield a much better result. At the moment some of these buttons are a bit buggy, but I will fix that soon. "Verify contours" corrects occurrences when you add multiple points to a single view, or somehow draw a contour in the wrong direction, although Bead Fixer generally prevents you from doing that nowadays. "Mark contours as checked/unchecked" I use regularly, especially after I've transferred fiducials from A axis to B. You can also check individual points with "shift+u", but that's usually more trouble than it's worth. And "print contours" gives the same output as shift i. And that almost concludes the guide to Bead Helper, but there's one shortcut I haven't mentioned. If I press "h" this jumps to the point furthest away from all other seeds point on the seed view, and this can help ensure and even distribution of helps. Finally, don't forget I've listed all of these shortcuts and explained most of the Bead Helper functionality under "Help".