Local refinement - option to cap changes on per iteration basis?


Currently, as far as I can tell from the output plots, the search range for angles and shifts in local refinement represents a hard cap for the overall job (is this correct?). By contrast, local search in other programs such as Relion is reset at each iteration, allowing for slow progression towards a nearby minimum without explicitly capping the amount that angles/shifts can change by.

Would it be possible to add an option whereby changes are capped per iteration, rather than for the job as a whole?

The reason I ask is that in several cases with small masks I have got the best results using a very small search range - e.g. 1 pixel for shifts, 2 degrees for angles. I expect this is because using a larger search range particles get stuck in local minima of some sort at early iterations, where the map is relatively featureless, but it seems like capping the allowed changes may be preventing some particles from finding their optimal orientations.


Hi @olibclarke this makes sense - got it in the tracker.
Relatedly, how small masks are you finding are workable?

Depends on quality of data @apunjani. In some case, as small as a single 7-TM bundle gives real density improvements, but often with massive overfitting (over-estimation of resolution and spikiness around the edges. If that aspect could be improved map interpretation and combination would be a lot easier.

Would it also be possible to add an option to calculate the corrected FSC at each iteration, rather than just the last, and use it for setting the res limits for refinement in the next cycle? This is not the case now, and I suspect it may contribute to the spiral of over-refinement and over-estimation of resolution we see with small masks.

I’d also like an option to set the res limits for refinement based on a custom FSC threshold (I’d use 0.5 to be conservative), rather than 0.143 which I believe is what is used now?