Helical refinement : refine_limit_shifts

Dear Cryosparc team,

I have noticed an unwanted behavior of the shift search along helical axis during helical refinement. I’ve ticked the box for limiting the search to half the rise (as it should be), however noticed that in the first two iterations (although all particles were used) the found shifts were huge (up to 50A for a structure with 4.7A rise), see e.g. the plot for iteration 1 :

Shifts start to be as expected from iteration 3 :

There is indeed a difference in the log between those iterations. Starting at iteration 3, the log file explicitly says : Using Full Dataset (split 11248 in A, 11247 in B). In earlier iteration, I just know that all particles are used, since : Auto batchsize: 11248 in each split.

A few questions :

-what is the rationale of not limiting the shift search before all particles are being used ?

-are the shifts plots at each iteration “absolute shifts” or “relative shifts to the previous iteration” ? In the second case, then initial large shifts would be a big problem.

In any case, since all particles were used in my initial iterations, this could -I guess- be fixed for a scenario like mine.

Thanks

Ambroise

Dear @adesfosses ,

This is a good observation. It is true that this parameter only causes the shifts to be limited to +/- half of the rise at later iterations, and that the first few iterations do not have this constraint.

The reasoning for this is due to how pose and shift search are implemented in CryoSPARC. The TL;DR is that unconstrained alignment is much simpler from an implementation standpoint than alignment with a per-particle constraint.

In all refinements with global pose search (all refinement jobs except local refinement), alignment is first done as an unconstrained search over pose and shift. Shifts can be ~ 10% of the box size, possibly even larger. Once the best pose and shift is found, the particle is used to reconstruct the volume at that pose and all of the sym-related ones.

Once the increase in resolution begins to stall, the “limit shift” behaviour kicks in. An unconstrained pose/shift search is still done. The only change to the above is that for each particle, the pose/shift found to be optimal is then transformed (via the helical sym parameters) to the symmetry-related pose/shift with minimal shift. Since the sym parameters can drift slightly over iterations of helical refinement, this is only done toward the end of refinement to reduce the impact of mis-estimated twist and rise.

This is the most straightforward way to accomplish the limit shift behaviour while still doing unconstrained alignment. I hope this helps clear it up

The plotted shifts are always relative to the particle center i.e. they are absolute shifts – so you can be sure when their values fall to within +/- 5Å for e.g., that each extracted particle is only shifted by that much relative to their center.

Best,
Michael

1 Like

Hi @mmclean , thanks for your detailed answer, that’s pretty clear now. It is reassuring that the shifts are absolute. However, I understand now that the search is unconstrained and that the shifts are brought back to the limit range by using helical symmetry. This might have deleterious effects in some cases (should be tested in a number of different scenario - each helical project is “unique” in some sense), because the unconstrained search will not only cause a segment to be aligned with a symmetry-related view with a symmetry-related high shift, but sometimes just aligned wrongly…

Best

Ambroise