3D reference based sorting using 3 helical volumes

Dear cryoSPARC team

I have a question about the 3D sorting/classification method in cryoSparc.

So now I have good reconstructions for 3 different helical volumes: they have a subtle difference in diameter (let’s say 250Å vs 255 Å vs 260Å) and they have different helical symmetries. I have a particle subset that contains all 3 classes and I want to do reference-based soring using this subset. Can this be done in “Heterogeneous Refinement”? Ideally, I want to keep the volumes at a high resolution ~4Å for this sorting and assign all the particles into those 3 classes in 1 iteration. Is this possible?

Many thanks!
Regards,
Jerry

2 Likes

Dear @Jerry,

Apologies for the delay in my response. I believe you could accomplish something similar to this using Heterogeneous Refinement. Currently cryoSPARC isn’t aware of differing symmetries per class, but given that you have high-resolution starting references, you could use it for this purpose to classify particles amongst the three initial references.

You would want to set the Initial resolution (A) to 4Å and then make sure that the Refinement box size is large enough such that the nyquist frequency is beyond 4Å. You’d also want to turn the Batch size per class way up, so that all the particles are seen in the first iteration, which could be done by setting it equal to the number of input particles.

After the first iteration completes and you see the outputs being populated, you can kill the job, mark it as completed, and then take the particles_class_x outputs from each class and use those downstream. Let me know how it goes or if you have any questions!

Best,
Michael

Many thanks, Michael!

I tried something quite similar to what you suggested. (I did 1.5x bin on the particles due to memory issue) And after sorting, I got rid of ~50% of particles that aligned to the adjacent two symmetries. And using the rest of 50% particles, I indeed saw an obvious improvement of the map. I have 1 quick question: I already set the final iteration to 1, but why the job is still going through multiple iterations?

[CPU: 7.81 GB]       Done in 98.750s.

[CPU: 7.81 GB]     Outputting files..

[CPU: 7.75 GB]       Done in 3.398s.

[CPU: 7.75 GB]   Done iteration 0 in 47001.432s. Total time so far 47001.432s

[CPU: 7.75 GB]   -- Iteration 1

[CPU: 7.75 GB]     Batch size 448464 

[CPU: 7.75 GB]     Using Alignment Radius 122.500 (4.023A)

[CPU: 7.75 GB]     Using Reconstruction Radius 127.000 (3.880A)

[CPU: 7.75 GB]     Number of BnB iterations 5

[CPU: 7.75 GB]      DEV 0 THR 1 NUM 112232 TOTAL 5403576.3 ELAPSED 19194.576 --

[CPU: 8.31 GB]      Processed 224232.000 images with 3 models in 19197.597s.

[CPU: 8.31 GB]      DEV 0 THR 0 NUM 112732 TOTAL 1395521.2 ELAPSED 10422.875 --

[CPU: 8.87 GB]      Processed 224232.000 images with 3 models in 10426.865s.

[CPU: 8.87 GB]     -- Effective number of classes per image: min 1.00 | 25-pct 1.00 | median 1.00 | 75-pct 1.00 | max 2.99 

[CPU: 8.87 GB]     -- Class  0:  52.00%

[CPU: 8.87 GB]     -- Class  1:  25.36%

[CPU: 8.87 GB]     -- Class  2:  22.65%

[CPU: 8.31 GB]     Learning rate 0.099

[CPU: 7.76 GB]   Done iteration 1 in 29637.734s. Total time so far 76639.168s

[CPU: 7.76 GB]   -- Iteration 2

[CPU: 7.76 GB]     Batch size 448464 

[CPU: 7.76 GB]     Using Alignment Radius 122.500 (4.023A)

[CPU: 7.76 GB]     Using Reconstruction Radius 127.000 (3.880A)

[CPU: 7.76 GB]     Number of BnB iterations 5

[CPU: 7.76 GB]      DEV 0 THR 1 NUM 111232 TOTAL 1246060.2 ELAPSED 3497.0010 --

[CPU: 8.32 GB]      Processed 224232.000 images with 3 models in 3499.311s.

[CPU: 8.32 GB]      DEV 0 THR 1 NUM 112000 TOTAL 191005.91 ELAPSED 843.96815 --

[CPU: 8.88 GB]      Processed 224232.000 images with 3 models in 847.741s.

[CPU: 8.88 GB]     -- Effective number of classes per image: min 1.00 | 25-pct 1.00 | median 1.00 | 75-pct 1.00 | max 3.00 

[CPU: 8.88 GB]     -- Class  0:  53.21%

[CPU: 8.88 GB]     -- Class  1:  24.46%

[CPU: 8.88 GB]     -- Class  2:  22.33%

[CPU: 8.32 GB]     Learning rate 0.097

[CPU: 7.69 GB]   Done iteration 2 in 4360.349s. Total time so far 80999.521s

[CPU: 7.69 GB]   -- Iteration 3

[CPU: 7.69 GB]     Batch size 448464 

[CPU: 7.69 GB]     Using Alignment Radius 122.500 (4.023A)

[CPU: 7.69 GB]     Using Reconstruction Radius 127.000 (3.880A)

[CPU: 7.69 GB]     Number of BnB iterations 5

[CPU: 7.69 GB]      DEV 0 THR 0 NUM 112000 TOTAL 181275.80 ELAPSED 806.29895 --

[CPU: 8.26 GB]      Processed 224232.000 images with 3 models in 808.795s.

[CPU: 8.26 GB]      DEV 0 THR 0 NUM 112232 TOTAL 176156.32 ELAPSED 787.15083 --

[CPU: 8.82 GB]      Processed 224232.000 images with 3 models in 789.901s.

[CPU: 8.82 GB]     -- Effective number of classes per image: min 1.00 | 25-pct 1.00 | median 1.00 | 75-pct 1.00 | max 2.99 

[CPU: 8.82 GB]     -- Class  0:  54.01%

[CPU: 8.82 GB]     -- Class  1:  23.83%

[CPU: 8.82 GB]     -- Class  2:  22.17% 

Regards,
Jerry

The Number of final full iterations controls the number of iterations done at the end of the refinement, during which the whole dataset is seen. This doesn’t actually set the number of online-EM iterations before that point, which is determined by the convergence criteria. So here, the job will iterate until the classes are no longer changing, and then it will do one last iteration over the full dataset.

This should still work well though – basically just using heterogeneous refinement to classify particles normally. The only thing to note is that the job isn’t aware of the helical symmetry per each class, so all of the reconstructions after the first iteration won’t be able to take advantage of that. I’m glad to hear that this helped too!

Best,
Michael