3D classification crash ending with AssertionError


I’m running into an error during 3D classification that’s occurring fairly far into the jobs. The job as configured is in simple mode with only a few classes (4), D2 symmetry, reordering classes by size set to true and ~1.4M signal-subtracted particles that were aligned previously in a local refinement job. Other parameters are left at default. The error results around iteration 700 and is as follows:

Traceback (most recent call last):
  File "cryosparc_master/cryosparc_compute/run.py", line 115, in cryosparc_master.cryosparc_compute.run.main
  File "cryosparc_master/cryosparc_compute/jobs/class3D/run.py", line 974, in cryosparc_master.cryosparc_compute.jobs.class3D.run.run_class_3D
  File "cryosparc_worker/cryosparc_compute/plotutil.py", line 811, in plot_3D_classes
    assert len(class_ids) == N_K

Thank you,

@RussellM Please can you post the output of the command (replacing P99 and J123 with the job’s actual project and job IDs):

cryosparcm cli "get_job('P99', 'J123', 'job_type', 'version', 'params_spec')"

The output is:

  '_id': '6671d5b62a8475704efe6a9d',
  'job_type': 'class_3D',
  'params_spec': {
    'class3D_N_K': {'value': 4},
    'class3D_reorder_classes': {'value': True},
    'class3D_symmetry': {'value': 'D2'},
    'class3D_target_res': {'value': 2.5},
    'compute_use_ssd': {'value': False}
  'project_uid': 'P15',
  'uid': 'J484',
  'version': 'v4.5.1'

Hi there @RussellM,

Thanks for reporting this bug. This is a known issue with 3D Classification on CryoSPARC v4.5.1-3 and the workaround currently is to disable re-ordering based on class sizes. Do let us know if this workaround doesn’t resolve the bug for you.