So yesterday I responded to this tweet:
and I am working with some data that needs patch-tracking, so I thought it might be beneficial to elaborate more on my experience comparing coarse whole-image alignment versus patch-tracking.
What we are talking about
For those unaware of the coarse whole-image alignment method you can find it starting here.
When it works
Sometimes this method works very well and is relatively fast and easy
This is an in vitro sample of tubules with no fiducials. In the center we see we get a nice symmetrical close to spherical cross-section which is indicative that our alignment is good; this was done using -CumulativeCorrelation and ** -AbsoluteCosineStretch to tiltxcorr. (the contrast here is lower than the following images but this is due to differences in reconstruction and binning)
When Coarse alignment fails
Sometimes though the coarse alignment fails in various levels of spectacularity. Here is another tilt-series from the same data set with the same options.
We can see from this position that cross-correlations have translated the tubes inconsistently with the translation caused by tilting about the tilt-axis and we get this characteristically bad reconstruction of crescent shapes.
What to try first
The first thing to try is to turn of -AbsoluteCosineStretch and run everything again. Sometimes sample has a tilt-angle offset and this will increasingly throw off the stretching, so we limit it back to the normal relative behaviour. The tomography guide says something similar in that there is not a definite better setting of absolute stretch on or off, but it is quick to check both.
Ok this is a little better, but far from ideal. It shows some more characteristic alignment artifacts, X-shapes and the bird (I think they look like those simplified drawings of birds ). However, I always prefer to use the coarse alignment if I can avoid patch tracking though, so next I tried:
- Cumulative Correlation with -NoCosineStretch
- No cumulative correlation
- No cumulative correlation with -NoCosineStretch
The last one is not terrible, but you can see at one half of the tilt-series the translations are incorrect and the right top of the tubule has a sort of cow-lick . Also the density is not centered with a noticeable shift up in Z, which is unwanted.
Patch tracking to the rescue
With very little effort
Now we finally reach the heart of the matter and the question asked. Does Patch-tracking offer an improvement and make a constructive difference to our results above?
If I just create a patch tracking model, quickly check that it didn’t obviously fail, and then pass this model as full length contours with robust fitting weighing for points and not contours (because I did not chop contours) to tiltalign solving for only translations, that is:
- No rotation (Tilt axis angle is assumed to be correct from the microscope calculated global rotation)
- Fixed Magnification
- Fixed tilt angles (*We trust the relative angle reported from the microscope goniometer)
- No distortion
I get the following
I think this is better than everything above, and it didn’t take any extra effort. Note that the coarse alignment used for the patch-tracking were the defaults for tiltxcorr, that is no -CumulativeCorrelation and no -AbsoluteCosineStretch. If I use the best coarse alignment from earlier (no cumulative, no cosine stretching) I get this:
It is worse to my eye than the default coarse alignment, but it is better than the coarse alignment itself as it is lacking the misaligned cow-lick structure.
With some elbow work
Now I think the best strength of patch-tracking is that it is much more conducive to tuning as a means to improve the alignment, which in general makes it much more robust than coarse alignment where you only have several on/off switches to try.
I created a new patch-tracking model using a boundary model of closed contours drawn around my tubules. I chopped those contours into overlapping sections, and ran the alignment with robust fitting weighing the chopped contours -WeightWholeTracks, solving again for just translations. Then I edited the patch-tracking model removing non-zero weighted contours that I felt were bad with respect to the tracks shown in the Model View in 3dmod.
This took a bit of time, but not much more than I would have spent if I had manually adjusted a fiducial alignment model, and in the end I have this:
Which I hope we can all agree is the best alignment so far.
So I hope this explains my position a little more completely and also convinces you that there is a place and benefit for patch-tracking alignments. There are many other aspects to consider with respect to how bad of an alignment you can get away with using software like M or emClarity, but just in terms of the tomogram quality itself as a whole, patch-tracking FTW