Ab initio model looks better than refinement


I have been recently testing cryoSPARC, and am very happy with the results so far. Particularly, ab initio gave very good results with a dataset that with other software resulted mostly in reconstructions with the approximate good general shape but very noisy.
However, when I run refinement of these data, even though it gives a rather good GSFSC resolution estimate (around 10-12 angstroms) the shape of the model itself looks worse than the starting ab initio model, as it develops some strange small spikey protrusions (still the general shape is good and the model itself does not look too noisy).
I was wondering if anyone has encountered simmilar problems? I have tried setting the resolution at which dynamic masking starts to a lower resolution, as suggested in a previous issue, but it did not make a very big difference (although it improved the estimate of resolution).

Thanks a lot in advance!

I have observed this with small proteins that are relatively featureless at low resolution - in such cases changing the resolution to lowpass filter the model before refinement may help. The spiky protrusions you mention are usually indicative of overfitting, but I am not sure what parameter to tune in cryoSPARC to avoid this.


Hi Rafael-Ayala,

I was having a very similar issue. I had a very good result with an ab-initio model, but refinements would never go past ~15 ‎Å (which was still better than any other software I tried). Changing the starting resolution for dynamic masking didn’t help me either.

Here is what I would humbly suggest:

  1. Classify more. Try 3, 5, 10 classes for ab-initio classification and see if you can find heterogeneity - then combine similar classes and refine separately. Also pay attention to class similarity - you may want to set it to a higher value, especially with more classes.

  2. Set the “Number of extra final passes” to at least 5 or more in advanced parameters in refinement. This helped me dramatically with one of the datasets. cryoSPARC stops refinement as soon as it sees no increase in GSFSC resolution. This change forces it to behave more like relion.

  3. If you think that your initial model is correct - provide it as a mask to begin with.

Hope this helps.

Good luck!


Thanks a lot for the suggestion, I will definitely try a stronger lowpass filter before refinement.

My protein is however not too small and should have quite distinctive features even at low resolution, but indeed I am concerned about overfitting. I am having somehow better results, which look quite less overfitted by making the dynamic mask much tighter by changing the dynamic far mask and dynamic near mask parameters (from the description I understood that these determine to what extend you extend the dynamic mask after binarization with the initial threshold, but I’m not sure…), as well as increasing the binarization threshold for the dynamic mask. My idea was to restrain the variation in the orientations of the particles so that they are forced to match more closely the initial ab initio model (which does not look overfitted), but I’m not sure if this is an effective way to do so…

Best wishes,


Hi MikeK,

Thanks a lot for the suggestions! I will definitely try all of these.

About providing a mask, do you mean using a static mask (generated by binarizing my ab initio map and extending) instead of dynamic mask?

Thanks in advance!

Yes, I would use your ab-inito model (if it looks “right”) as a static soft mask mask for the refinement. I haven’t tried providing a mask and using ‘dynamic’ masking option, not sure if it is intended to work this way.