AssertionError: No match for particles.pick_stats in 2D Classification

Hello,

I have some negative stain images and I did a manual pick job on them. I ended up with about 150 particles and I tried running a 2D classification on it. It failed with the following error. I was able to run 2D classification yesterday on another negative stain dataset 12hrs ago without any issues. Any help is appreciated.

[CPU: 1.35 GB]   Done Full Iteration 20 took 2.896s for 146 images

[CPU: 1.35 GB]   Full class2D run took 61.399s

[CPU: 1.28 GB]   --------------------------------------------------------------

[CPU: 1.28 GB]   Compiling job outputs...

[CPU: 1.28 GB]   Passing through outputs for output group particles from input group particles

[CPU: 1.28 GB]   This job outputted results ['blob', 'ctf', 'alignments2D']

[CPU: 1.28 GB]     Loaded output dset with 146 items

[CPU: 1.28 GB]   Passthrough results ['location', 'pick_stats']

[CPU: 1.28 GB]   Traceback (most recent call last):
  File "cryosparc2_worker/cryosparc2_compute/run.py", line 89, in cryosparc2_compute.run.main
  File "cryosparc2_compute/jobs/runcommon.py", line 884, in passthrough_outputs
    dset = load_input_group(input_group_name, passthrough_result_names, allow_passthrough=True)
  File "cryosparc2_compute/jobs/runcommon.py", line 553, in load_input_group
    dsets = [load_input_connection_slots(input_group_name, keep_slot_names, idx, allow_passthrough=allow_passthrough) for idx in range(num_connections)]
  File "cryosparc2_compute/jobs/runcommon.py", line 524, in load_input_connection_slots
    dsets = [load_input_connection_single_slot(input_group_name, slot_name, connection_idx, allow_passthrough=allow_passthrough) for slot_name in slot_names]
  File "cryosparc2_compute/jobs/runcommon.py", line 514, in load_input_connection_single_slot
    output_result = com.query(otherjob['output_results'], lambda r : r['group_name'] == slotconnection['group_name'] and r['name'] == slotconnection['result_name'], error='No match for %s.%s in job %s' % (slotconnection['group_name'], slotconnection['result_name'], job['uid']))
  File "cryosparc2_compute/jobs/common.py", line 357, in query
    assert res != default, error
AssertionError: No match for particles.pick_stats in job J175

Hi @vamsee, to help better troubleshoot this, could you please also paste the following?

@nfrasser - Here you go

I think I see the problem: the Manual Picker job actually extracts the particles after you select them interactively. The means you don’t need the intermediate “Extract from Micrographs” job. Try again by connecting the Manual picker’s “particles” output directly to the 2D Classification job.

Let me know how that goes.

@nfrasser Your suggestion worked but I’m a little confused about why. I have used manual picker before and I have always extracted particles post manual picking. The 2D classification has always followed the extraction process and it has worked. I wonder if that’s not what I was supposed to do.

Honestly, I’m also a bit confused as to why re-extracting would break 2D classification :sweat_smile:. We’ll keep an eye on this and let you know if we find anything.

1 Like