Video Script: IMOD tutorial - Drawing Tools and Interpolation - Overview
This page represents the script I wrote to give a quick overview of the IMOD "Drawing Tools" plugin (part of the standard release for a long time now) - a plugin which accelerates the task of tracing in 2D and 3D interpolation.
Script: IMOD tutorial - Drawing Tools and Interpolation - Overview
In this video I'm going to explain the main features of the BeadHelper plugin using the IMOD tutorial tilt series dataset.
When you start BeadHelper, make sure you leave Bead Tracker open.
One of the most useful features of BeadHelper is "smart scroll" which lets me use the mousewheel to scroll up and down slices.... or if I select a contour, it scrolls these points instead. If I press 'm' it will jump to the seed view... and by default this is set to the middle-most view - but you can change this under more settings if you need.
I'm start, however, by explaining Bead Helper's visual aids. The first one is "show estimated position", when I tick this you'll see a little red crosshair where BeadHelper estimates the fiducial should be on the selected view. The calculation of this point is very crude, but it does help show an approximate position. This poisiton can be calculated a number of different ways, my favourite is probably smart points, as it uses the position of the nearest 2 points plus the tile angle. If I press [e] , the select point will move to its eximated position. Also notice, this crosshair shows up larger on views where a point is missing.
The next button is called sphere size, and this literally sets the sphere size for this object.... and its hard to appreciate in this very small and simple dataset, but this can be useful to work out where adjacent points lie.
The next one is line display. Currently I have this set to all contour, and it allows me to see, at a glance, the trajectory of all contours. I can also set it to display only those in the selected object or the selected contour only. Missing points is useful in that it shows where the missing points are, based on their estimated position. If I press 'f' it will actually fill in these missing gaps between the two ends, and if I press capital F (i.e. [shift f]) it will fill in the missing gaps, including those past the ends... though when you do this I'd obviously recommend you then go scroll through and check these points. Pt residual, can be a neat way to try and see big jumps. Line of best fit and result smooth I don't use much anymore... I find "all contours" is the most useful setting.
- zoom out*
In more complex data sets you can sometimes lose fiducial, especially at high tilt, and so the idea of tilt display is to display staight lines to use as a reference. Tilt axis displays a line representing the tilt axis; you can manually change the angle and position of this line under more settings. Tilt axis and seed projects a dotted line perpendicular through the seed point and tilt axis and point, projects a third line through the selected point. Tilt segments shows four parallel lines that change with the angle and [h] grid shows what I call the biggest hole grid, I'll explain that later.
One downside of these visual aids is it can crowd the screen, and so I very, very regularly use the IMOD shortcut [t] to toggle the contour display on and off. As a preference, I always like to turn on centering so the point stays in the middle of the Zap window. What I'm doing here is scrolling through this contour, and after a few little corrections, I've decided this contour is finished. Now [u] is one of my favorite shortcuts as it allows you to toggle contours as checked, as shown by a stippled line, or unchecked... as shown by a un-stippled line. The idea is, if I scroll through a contour and find it's pretty perfect, and has no missing points, I mark it as checked, to make sure I don't wast time by checking it again.
Next I should talk about these action buttons. Delete points in range is button I can use in situations where one or two of my views are bad. So lets say the last two views, haven't tracked very well, and so I'm going to hit this... and chose to delete all points on views 60 and 61 from all my contours - 1 through to 40... notice however notice that, as long as I lave this ticked, it won't delete any points from my checked contours.
And in the output we see it deletes X number of points. Now if I just press the shortcut key [d] what it does is slightly different, by default it will delete all the point in the current contour which occur after the selected point.... in the opposite direction of the seed point. So this can be a quick way to reduce a contour down to only those points which tracked 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, I can reduce all my contours to seed.
Move points to estimated position is actually an interesting one.... there are a number of options here. This window effectively represents smoothing options.... and if I update these options and hit uppercase [E] it will apply those smoothing options and shift several points at once. As I said this can be dangerous. Typically cross-correlation does a good job, and if you see a really smooth line like this one it means it has tracked well. HOWEVER, these deviations from a smooth line as often correct... and it's important you capture these deviations, hence you shouldn't rely too heavily on the estimated position.
A better methods of correcting contour is using the shortcut keys [y], [b] and [w]. Each of these keys is fairly similar:
- [b] searches all points and selects the one with biggest distance to its estimated position
- [y] selects the one with the biggest "y jump" - the distance in Y between a point and its expected position.
- and [w] finds the biggest weighted deviation in the currently selected contour taking into account the distance between adjacent points.
By continually pressing [b] and [y] and correcting points, it's possible to quickly improve your contours before you even reach the fine alignment stage.
Continuing our list of actions. Fill missing points, can fill gaps over a range of contours.
Reorder contours, is an interesting one, and has many options. By default it will sort the selected range of contours in ascending order by y jumps, and thus the worst contours, the ones with the biggest y jumps will be moved to the end. We can also sort them by biggest average deviation, average grey value, the distance of the seed from the middle, the number of missing points and so on. Now if you get really bad tracking, what you can do here, is reduce all contours to seed; and just by reordering contours, say by distance from middle and then tracking the same points in a different order, you may get a better result. Definitely something worth trying. However, lets say I don't want to reorder my contours, but I do want to jump to the one with the biggest y jumps. To do that I simply press [o].... and each time it will jump to what I like to all the "next worse" contour according to that criteria. And [shift M] is a shortcut I provide to let you quickly move a contour to a different position in the array of contours.
Lets now look briefly at the mouse and keyboard settings options. So here I can figure what I want the mouse wheel to do.. scroll points, scroll views or smart scroll. This mouse-wheel setting should always be set to 100, unless you have a dodgy mouse wheel. We can change many of the settings for some of the shortcut keys here.... including the behavior of [y] [b] [w] [m] and so forth. Now [Enter] I find a particularly useful key, by default I set this to go to "the previous unchecked contour".... and it will only select contours with between 60 and 61 points and this allows me to iterate through all unchecked contours until all of them are either or I've deleted all the bad point from them. And as I go I like to hit [shift I] as this prints me a current summary of how many contours I've checked, and how many points are missing. Under more settings, we can change the seed view.... and you'll find that often on the B axis, you'll want to reduce this number by one, because when you transfer fiducials from the other axis, it seems to put them one slice below the middle even though it's not the view with zero degree tilt. Here we can manually let Bead Helper know the tilt increment. We can set the tilt axis angle and x offset to display. And here is the biggest hole grid I was talking about before... and this represent a grid which can hep us place evenly distributed seed points. And here I can change several display options. So here I might change the estimated position to display as a big diamond.
Finally I'll show you some of the other actions I've tucked away behind this "more actions" button. The first one is calculate tilt axis.... this will use the line of best fit through all my contours to help estimate a better tilt axis... and so we'll accept this, and the angle of the line has changed. Most people use particles both side of the sections... and like to try getting an even distribution of points either side. Notice that in about this range.. 40 - 43, we can see some fiducials are moving left, and some moving right. If I go to "show fiducials on top as purple", and enter this range of views... it can use this to guess which points are on which side.... and this can help us get a more even distribution either side.
Another option is to display a grid.
But now I will clear this purple object.
These next two options can help us split contours over multiple objects. I have these two options, because bead tracking can be very slow when you have more than say 120 fiducials in the one object. If you have several object each with, say 20 or 40 fiducials, they track more independently of each other and can often yield much better results. At the moment these buttons are still a little buggy, but I hope to fix that.
Verify contours corrects occurrences where you accidently added multiple points to a single view or somehow drawn a contour in the wrong direction.... although Bead-Helper generally prevents you from doing this nowadays. Mark contours as checked/unchecked is a option I use regularly, especially after I've transferred fiducials across from the A axis... as I mentioned, you can use [u] to toggle individual contours as checked, but this lets me check or uncheck a range. You can also mark points as checked with [shift+u] but this is usually more trouble than it's worth. Print contour info.... this gives the same output as [shift+I] and load tilt increments... lets ignore that, because I plan to get rid of it.
And that almost concludes this guided tour of Bead Helper, except there is one more shortcut key I haven't mentioned. If you remember that biggest hole grid, pressing [h] allows you to jump to the spot furthest away from other seeds, on the seed view. This can be useful to help ensure you get an even distribution of points.
Finally, don't forget I have listed all these shortcut keys, and explained most of Bead Helpers functionality under help.