Tight, corrected and loose GSFSC curves


I was wondering how are the tight, corrected and loose FSC curves calculated? I suppose they use different masks, but I was wondering what type of masks each one uses?

Thanks a lot!


I also had a similar question. I was wondering what happens with a dip in the corrected FSC curve in the example below (Is ~7Å where phases randomisation starts in this case?):




Actually I have a dataset with a very simmilar case, just that the dip is much more pronounced (so much that it limits the resolution estimate!)

Hi All,

The dip is an artifact of the boundary where phases are randomization and where they are experimental. The same artifact is seen in Relion’s phase randomization for mask correction and extensive discussions about it can be seen in ccpem’s archive. It has been suggested that the ‘dip’ points be removed from the curve to make it look nicer, but I believe it is preferable to leave them in to show that correction has been done. If the corrected FSC is lower than the tight masked FSC then the correction is doing its job: it is showing that some of the correlation in the tight masked FSC is due to masking artifacts. The corrected FSC should always be used to interpret resolution.

I will leave it to @apunjani to comment on the details of the automasking approach that he implemented.

Best regards,


Here is a short explanation of the different FSC curves in cryoSPARC:

#FSC calculations in CryoSPARC
##No Mask:
This is the raw FSC calculated between two independent half-maps reconstructed from the data. There is no masking applied, so both the structure and solvent are included in this FSC.
This is the FSC calculated after applying a soft spherical mask to both half maps. The outer radius of the soft sphere is equal to half the volume box-size (i.e. the sphere extends to the faces of the box in all directions). The inner radius is 85 percent of the outer radius. Between inner and outer radii, a soft cosine edge transitions from a mask value of one to a value of zero.
This is the FSC calculated after applying a soft solvent mask to both half maps. The loose mask is calculated as follows. First, the density map is thresholded at 50% of the maximum density value. The resulting volume is dilated to create a soft mask. Voxels in the mask that are within 25 angstroms of the thresholded region receive a mask value of 1.0. Voxels between 25 and 40 angstroms fall off with a soft cosine edge, and voxels outside 40 angstroms receive a value of 0.0.
This is the same as the loose mask, except the dilation distances are 6 angstroms for the value 1.0 distance and 12 angstroms for the value 0.0 distance.
This is the FSC curve calculated using the tight mask with correction by noise substitution [1]. The two half maps have their phases randomized beyond a certain resolution, then the tight mask is applied to both, and an FSC is calculated. This FSC is used along with the original FSC before phase randomization to compute the corrected FSC as in [1]. This accounts for correlation effects induced by masking. The resolution at which phase randomization begins is the resolution at which the no-mask FSC drops below the FSC = 0.143 criterion.

  1. Chen, S. et al. High-resolution noise substitution to measure overfitting and validate resolution in 3D structure determination by single particle electron cryomicroscopy. Ultramicroscopy 135, 24–35 (2013).

Note also that each refinement job outputs the tight mask that was used for the FSC at each iteration. You can take this mask and the two half maps (output at each iteration) to compute FSC curves in other programs as well.

There is also an auto-tightening procedure done in the last iteration to tighten the tight mask further until the corrected FSC stops improving or becomes significantly worse than the tight FSC. We implemented this since people often do this by hand at the end of a refinement anyway but the automatic check makes it less likely that masks are tightened too far.


Thanks a lot! That made it very clear