Non-Uniform Refinement crashes after several iterations


I have just started playing with the Non-Uniform Refinement tool in CryoSparc. I have used the default options, but it keeps crashing after 2-3 iterations depending on the mask I use. The error message I get is:

/home/angel/cryosparc2_worker/deps/anaconda/lib/python2.7/multiprocessing/ RuntimeWarning: divide by zero encountered in divide
  self._target(*self._args, **self._kwargs)
**** handle exception rc
set status to failed
Traceback (most recent call last):
  File "cryosparc2_worker/cryosparc2_compute/", line 78, in
  File "cryosparc2_worker/cryosparc2_compute/jobs/nonuniform_refine/", line 545, in
  File "cryosparc2_worker/cryosparc2_compute/jobs/local_filter/", line 292, in
  File "cryosparc2_worker/cryosparc2_compute/jobs/local_filter/", line 310, in
OverflowError: cannot convert float infinity to integer

Thanks in advance!!!



1 Like

Hi @Angel,

Thanks for your feedback!

I have never had this error before so there are a couple of things that I would like to check with you:

  1. Would you elaborate on details of mask you apply in this Non-Uniform Refinement job, i.e is this a static mask that wraps only an interested region?
  2. Could you please check if the local resolution estimate of refined map right before this error occurred is reasonable? If you can, a screenshot of the local resolution map is appreciated!
  3. Have you tried using a dynamic mask for Non-Uniform Refinement? Does this happen also?



I stop having that error when I changed the option “Type of masking to use” from dynamic to static.
The mask I was actually using was a mask that wraps only a region of interest, i.e. static, so that was
the reason for the error. The error did not happen immediately, it happened after several iterations of
improvements of the local resolution.


Hi @Angel,

That’s great to know :slight_smile:

So in CryoSPARC if you want to use a specified mask, you would need to change the “Type of masking to use” from dynamic to static. Otherwise CryoSPARC would generate a dynamic mask instead of using the one you provided.


I got a running error below when the NU-refinement tool was used. I have used the default parameters except for change the “Type of masking to use” from dynamic to static since a generated static mask was applied. It stopped after 4 iterations when start local processing, the error message and parameters were listed below.
Thank you.
Best wishes.

when change the “Type of masking to use” option from static to dynamic, there is also a running error appears

I am also getting same problem. Even changing the mask from dynamic to static doesn’t work.Can someone please provide suggestion?

@PRIYANKA Can you please paste the exact traceback that you received, and also let us know

  • number of particles
  • box size
  • which GPUs are you using

I am working with a protein which has stable core but it had flexible extensions.I am running refinement with 92000 particles with box size 220.Here,I have provided my own mask and changing dynamic to static mask parameter.Other parameter I have kept same.

Traceback (most recent call last):
File “cryosparc2_worker/cryosparc2_compute/”, line 78, in
File “cryosparc2_worker/cryosparc2_compute/jobs/nonuniform_refine/”, line 300, in
AssertionError: Must use dynamic masking in order to apply median filtering on partial volume.


@PRIYANKA which version of cryoSPARC are you running?
We had previously fixed this bug. We recommend using v3.1 (the latest version) if you are not already

I am using 2.12.4 version right now.My problem was resolved by creating mask through volume tool using dilation radius 15 and 20.

Thanks for the update @PRIYANKA and glad you found a workaround.

I am getting sharp dip around 14 in FSC.But map make sense to me.
1.Can I trust this map or not?
2.In heterogeneous refinement,My map shows 9 angstrom resolution but after non uniform refinement it started showing 4.2 angstrom resolution with huge dip around 14 ?

Can you please suggest something for the same?