Limiting number of 3D classes

Hi!
I am working with an approximately 300 kDa non-symmetrical protein complex that binds a nanobody. I am trying to use 3D classification to separate the dataset into classes that have the nanobody bound vs unbound.
I am working with a ~0.5 million particle data set from a homogeneous refinement job. I have also created a local focus mask using Chimera around the nanobody binding site. When building a 3D classification job, my inputs are the particle stack and solvent mask from the homogeneous refinement, and the focus mask from a volume tools job. I also reduce the classes from 10 (default) to 5 (I have also tried 2), and turn on hard classification. I also turn off the ability to cache particles on the SSD because I do not have enough space (my box size is large). The problem I keep running into is that every time I run the job, it automatically defaults back to 10 classes. Does anyone have any idea why or have any suggestions? Thanks!

Ilina

That should not happen. Can you perhaps show a screenshot of your inputs? Do you see 10 classes in the Class3D log, or only after heterogenous reconstruction?

Regarding particle stack size, have you considered downsampling your stack?’

For a compositional heterogeneity problem like this, we have had good experience dramatically limiting the target resolution, usually to ~15 Å. Much faster and cleaner classifications for this type of problem in our hands.

@Inko Please can you post the output of the following command, modified with the correct project and job UIDs

cryosparcm cli "get_job('P16', 'J39', 'version', 'job_type', 'params_spec')"

Hi @olibclarke,

I have attached screenshots of the inputs and parameters tab under the current job. I decided to let it run with the 10 classes just to get something going while I troubleshoot the problem. Under the outputs tab there are 10 classes. I have tried running this job multiple times with 2 or 5 classes, and each time it reverts to 10 classes as soon as I queue it. I am not sure what you mean by heterogeneous reconstruction (I am still relatively new to CryoSparc). Is this a final output of this job or a different job?

Regarding stack size and downsampling, this is something I have yet to try as I am not too sure of how to do it and worry it will cause potential problems later on?

Currently the target resolution is set to 6 A, which is the default parameter. Should I expand this to 15 A? The GSFSC resolution of the homogeneous refinement dataset that I fed into the 3D classification job is ~3.4

Thanks for your help. I appreciate all input!



Hi @wtempel,

This is the result of the command:

[spuser@spgpu ~]$ cryosparcm cli “get_job(‘P33’, ‘J405’, ‘version’, ‘job_type’, ‘params_spec’)”
{‘_id’: ‘65a9732a59aab44227230151’, ‘job_type’: ‘class_3D’, ‘params_spec’: {‘class3D_force_hard_class’: {‘value’: True}, ‘compute_use_ssd’: {‘value’: False}}, ‘project_uid’: ‘P33’, ‘uid’: ‘J405’, ‘version’: ‘v4.4.1’}

Thanks!
Ilina

Hi Ilina,

  1. Yes, I would try with a lower target resolution - both could work, but in our experience lower target res (12 or 15 Å) often works better for problems like this.

  2. You mentioned your particle stack doesn’t fit on the SSD because your box size is too big. How big is your box size, and are these particles binned/downsampled? If not, you might consider downsampling (using Downsample Particles) to 4 or 5Å per pixel, which may allow the stack to fit on your SSD and speed up calculations considerably.

  3. Yes Hetero reconstruct is a different job type, which you can use to reconstruct classes in the original input box size after classifying using a low target resolution (which uses a smaller box size on the fly during classification)

Not sure re the weird class number changing but I’m sure @wtempel will be able to help :slight_smile:

Cheers
Oli

The number reverting to the default could be due a bug with setting a value using the arrows. At least in Firefox, if you set any value with the arrows, it is not saved unless you after setting it first click inside the field (to place the cursor), and then click somewhere else.

Did you set the value to 2 or 5 using the arrows, @Inko ? If so, try writing the number instead and see if it works.

I haven’t seen the problem for exactly this setting, but it’s been discussed for other settings before and I think it’s general: 4.4.1 Only single GPU out of 4 is available to select in "run on specific GPU" in Queue - #10 by boggild

@boggild
Thank you! I just cloned the job and changed the number of classes by writing the number directly inside the box instead of using the arrows and it worked. I was not aware of this bug, so this is really good to know.

Thanks!
Inko

1 Like