Connecting masks as inputs in CLI for 3D classification fails

Dear all,

I’ve recently gotten into scripting via the cli to help spawn multiple jobs within cryoSPARC. I have prepared a few scripts that work, but now having tried to start a class 3D job using the cli.make_job() command, I run into unexpected issues.

class_3D = cli.make_job(
job_type = ‘class_3D’,
project_uid = puid,
workspace_uid = wuid,
user_id = uuid,
params = {‘class_3D_N_K’ : classes},
input_group_connects = {‘particles’: ‘J483.particles’,
‘mask’: ‘J548.mask’})

puid, wuid, uuid and classes are preset variables.

This springs up the following error:

AssertionError Traceback (most recent call last)
~/scripts/cs/cs_3Dclass/ in
41 params = {‘class_3D_N_K’ : classes},
42 input_group_connects = {‘particles’: ‘J483.particles’,
—> 43 ‘mask’: ‘J548.mask’})

/projappl/project_2004941/usrappl/kumpula/cryoSPARC/cryosparc_master/cryosparc_compute/ in func(*args, **kwargs)
62 else: raise
63 if ‘error’ in res:
—> 64 assert False, res[‘error’]
65 return res[‘result’]
66 return func

AssertionError: {‘code’: 500, ‘data’: None, ‘message’: “OtherError: Trying to set a parameter that doesn’t exist.”, ‘name’: ‘OtherError’}

I checked the benchmark workflow scripts for reference and there 3D class was used with similar parameters, so I think my script should be fine. Any clue as to what might be going on? My cryoSPARC version is 3.3.1.

This obviously works well in the GUI.


@kumpula welcome to the forum.

This looks like typo (additional “_”). The key is named "class3D_N_K".

Thanks for spotting that! I was too focused on the mask part from the error log to spot it myself it seems. Works well now.