Error for NU Refinement with static mask

Hi All, I got this error when running NU Refinement with a static mask using CryoSPARC v2.13.2. Changed the Mask parameter from dynamic to static and other parameters were default. No problem with dynamic mask.

Iteration 3
Using Full Dataset (split 42847 in A, 42847 in B)
Using Max Alignment Radius 24.645 (7.514A)
Start local processing...
Traceback (most recent call last):
  File "cryosparc2_worker/cryosparc2_compute/run.py", line 78, in cryosparc2_compute.run.main
  File "cryosparc2_worker/cryosparc2_compute/jobs/nonuniform_refine/run.py", line 300, in cryosparc2_compute.jobs.nonuniform_refine.run.run_non_uni_refine
AssertionError: Must use dynamic masking in order to apply median filtering on partial volume.

Hi @donghuachen, the workaround for this is:

  • connect your desired mask as input to the mask input of non-uniform refinement
  • do not change the mask type to “static”
  • change the “Dynamic mask start resolution (A)” parameter to something very small like 1.0 A

Now, the job will only use your static mask.

I tried this workaround. However, I got this error during Iteration 3:

– Iteration 3
Using Full Dataset (split 42847 in A, 42847 in B)
Using Max Alignment Radius 25.529 (7.254A)
Start local processing…
Traceback (most recent call last):
File “cryosparc2_worker/cryosparc2_compute/run.py”, line 78, in cryosparc2_compute.run.main
File “cryosparc2_worker/cryosparc2_compute/jobs/nonuniform_refine/run.py”, line 305, in cryosparc2_compute.jobs.nonuniform_refine.run.run_non_uni_refine
UnboundLocalError: local variable ‘color’ referenced before assignment

Hi @donghuachen,
Shoot, you’re right. This workaround will not work. We will fix this properly in the next release, unfortunately there probably isn’t any way to get the job done until then!

@apunjani, Is this static mask issue solved in new version 2.15.0? Thanks.

@apunjani, I still got this error for NU Refinement (v2.15.0+200728) with a static mask.

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

@apunjani,
Can I do NU refinement (Legacy) in v3.1.0 with a static mask? Thanks.

Hi @donghuachen,

Apologies for the delay; unfortunately, I believe that the legacy job does not support static masking. As an alternative, the “Non-Uniform Refinement (NEW!)” job should support static masking, as well as some other features such as adaptive marginalization.

Best,
Michael

Hi @mmclean - does NU-refine new support static masking? I can’t see an option to switch from dynamic to static - does it just ignore dynamic masking params and use a static mask if a mask is connected?

Cheers
Oli

EDIT: by running the job and looking at the log I see this is indeed what it does, never mind! Perhaps graying out the dynamic masking params if a static mask is supplied would make this clearer?

Hi - do I understand correctly, that in version 2.13.2 one cannot run a NU refinement job using a static masking ? thanks !

Correct - but this version is old now in any case, it would be worth upgrading

Oli

@olibclarke thank you. By now there should be a feeling for how risky is to upgrade to the latest version. Are people still reporting serious issues with that, and how likely is that someone can still loose everything ?
Cheers

I am not aware of people losing everything. I would suggest upgrading to the latest release - many bugs have been fixed since 2.13

Hi @mmclean, Is it possible to use “static” mask to do Local Refinement (Legacy) with NU refinement turned on? I have tried Local Refinement (New! BETA) but the map got worse.