I’m trying to run a “Sharpening Tool” job with a volume coming from an Homogeneous Reconstruction Only job. But when I drag the volume output from “Homogeneous Reconstruction Only” job into the input of “Sharpening Tool” job, it seems the mask cannot be accessed (the mask_fsc is in the passthrough of input volume):
[CPU: 444.0 MB] Traceback (most recent call last):
File “cryosparc_worker/cryosparc_compute/run.py”, line 85, in cryosparc_compute.run.main
File “/Share/THUDATA/Softwares/cryosparc/cryosparc2_worker/cryosparc_compute/jobs/utilities/run_volume_tools.py”, line 204, in run_sharpen
assert False, “Either set generate_new_mask to True or supply a mask as input.”
AssertionError: Either set generate_new_mask to True or supply a mask as input.
Can I sharpen the output of Homogeneous Reconstruction Only without setting generate_new_mask to True (cause this will lower the quality of the sharpened map, as I tried)?
BTW, in the Homogeneous Reconstruction Only job, when I set the parameter Override Filtering Bfactor to my value, it still estimate a new Bfactor for me.
Thanks for reporting the secondary issue about the Override Filtering BFactor parameter. For a brief explanation, the main use-case of these FSC filter and Sharpening override parameters (Override FSC Filtering and the parameters below it) is to enable apples-to-apples comparisons between two reconstructions. The normal filtering procedure in all Refinement and Reconstruction Only jobs involves: filtering the volume by applying the FSC calculated from the half-maps, and then sharpening with the estimated B-factor. Both of these steps depend on the reconstruction quality, which can make comparing two separate reconstructions difficult if you want to keep all of the filtering steps constant. The FSC filtering/sharpening override parameters allow one to bypass the FSC filtering step by manually specifying the lowpass filter resolution (Override Filtering Resolution), and the BFactor. However, these are really is only useful for developers who are carefully testing the effects of changing the reconstruction alignments – for most users in most cases, it makes sense to keep the filtering and sharpening behaviour as default.
Thus, the recommended way to independently test different sharpening B-factors is to run the Homogeneous Reconstruction Only job as normal, and then take the output unsharpened volume (map output) and run it through multiple Sharpening Tools jobs, each with different B-factors, as you have attempted. As @wtempel mentioned, newer versions of CryoSPARC allow a mask to be explicitly connected to the Sharpening Tools job. This fix was released in Patch 220518 on CryoSPARC v3.3.2, so updating to any version >= 3.3.2 + patch 220518 should allow for the desired behaviour.
I put the two half maps and the mask of Homogeneous Reconstruction Only job into relion_postprocess to get a sharp map, but the sharp map produced by RELION is worse than the map_sharp of cryoSPARC by naked eye or in EMRinger scores. I was wondering the reason of that.
You said, the normal filtering procedure in all Refinement and Reconstruction Only jobs involves: filtering the volume by applying the FSC calculated from the half-maps, and then sharpening with the estimated B-factor. The term filtering the volume by applying the FSC, does it means just lowpass or fsc weighting the raw volume?
And I have another quetsion, could I cancel the fsc weighting step in Sharpening Tools job, like in RELION:
relion_postprocess --skip_fsc_weighting
I am not too familiar with the exact details of relion_postprocess so I can’t comment on why it might produce different results than CryoSPARC’s sharpening tools.
Yes, “filtering the volume by applying the FSC” is the same as FSC weighting, and refers to using the FSC value at each Fourier Shell to weight the volume in Fourier space. This downweighs Fourier shells that have low correlation, which occurs at high resolutions, thus it acts as an ad hoc lowpass filter.
It’s not possible to skip FSC weighting in Sharpening Tools unfortunately. However, you can do this in Homogeneous Reconstruction given the above description. Here’s the parameters you need to set:
Override FSC Filtering: True
Override Filtering Resolution: Set this to a value much smaller than the nyquist frequency (e.g. 0.01 Å)
Override Filtering Order: Set this to a very large number (e.g. 100000)
Override Filtering Bfactor: Set this to your desired Bfactor
This will completely skip the FSC weighting, showing you the raw reconstructed map, which may be quite noisy. You can set the filtering order and resolution parameter to manually specify a lowpass filter if you’d like to do that instead.