The results of my local refinements look very strange. Although some real features of the molecule emerge (i.e. I can see the backbone better in certain locations), the map is really distorted and shows a lot of “spikes” and disconnected parts. Can anyone please explain the origin of this problem; I’m somewhat new to cryo-EM and cryoSparc. I have seen similarly strange results in the past, when running global homogenous refinements or NU-refinements. The GSFSC resolution gets much better, but the map looks like it “splashed”. Any help is greatly appreciated. The molecule that I am working with is relatively small < 200 kDa.
Thanks for reporting.
Over-refinement definitely is a phenomenon that can occur, especially in local refinements and with smaller particles/thicker ice (i.e. lower SNR). It is also most heavily affected by the presence of junk particles.
In 2D classification, do you also see streaks and signs of erroneous signal?
For local refinement, how soft is the mask that you are creating? it should ideally be quite soft especially when the particle is small.
I do not see streaks or signs of erroneous signal in the 2D classification. I have done several rounds of 2D classification and 3D heterogeneous refinements to get rid of junk particles. I have varied the ‘soft padding width’ of my mask in ‘Vol tools’ and have obtained the same results (see above, weird over refined map). The largest value I’ve used for ‘soft padding width’ is 10. Should I continue varying this and/or other parameters when generating my mask?
What are you using for the initial lowpass resolution in local refinement? The default of 20 can be a bit low in some cases, and it may be worth changing to just a bit lower res than the result out of homogeneous or non uniform (e.g. if homogeneous was going to 4 Å overall, I would often filter to 8 Å to start with for local).
You also might try limiting the maximum alignment resolution, and limiting the overall number of iterations (usually 5 is enough) - sometimes local refinement performs an excessive number of iterations, with the apparent resolution increasing at each stage, and the spikes you describe becoming more prominent.
I would also consider switching off non uniform during local refinement - there appears to be a bug in the masking params when non uniform is used, such that quite a sharp edged mask is used regardless of the user supplied dynamic masking params.
Hi @apunjani - currently, a corrected FSC is only calculated in the final iteration of local refinement. I think with small masks, this could be contributing to the overfitting issues, as an FSC which is biased by the mask used for refinement is being used to set the resolution limit for the next iteration. Is there a reason why the corrected FSC can’t be calculated at each iteration, and used to set res limits for refinement?
Is it true that there is a bug in the masking parameters when Use Non-Uniform Refinement is turned on for Local Refinement? Has this bug been fixed in the newest version 2.15? I also have some elongated densities on the edges from Local Refinement with the use of Non-Uniform Refinement option. Thanks.
@olibclarke@DanielAsarnow hi, do you have any advice from avoiding having “spikes” after refinement, in my case they are close to part of the volume which is poorly represented, so might arise from overfitting ? Would making a different mask help ? If so, what would you change in the mask made by default from cryosparc ? Many thanks for your help !
Limiting the resolution used for alignment can help in some cases, as can limiting the number of iterations (in local refinement). Limiting the search range in local refinement can also help. One colleague reported that using local deblur in scipion helped a lot, though I haven’t tested this. But yes overfitting is still certainly an issue in both non uniform and local refinement (the latter particularly)