This is reporting the same problem discussed in the post entitled “The ab initio reconstructions generated wrong initial models” (The ab initio reconstructions generated wrong initial models)
I didn’t get any response to my recent question in this thread so I wondered if it was still “live” - hence the new post. Anyway, I have datasets from two different icosahedral viruses that both generate nice 2D classes but give a squashed ab initio model. I have tried all the tricks discussed in the above post i.e. using an increased resolution range e.g. 15 to 8 Ang and setting initial and final minibatch sizes to 1000. I even resorted to setting the symmetry to I1 (which I know is not recommended), which unsurprisingly gave a more virus-shaped volume, but it looked highly dubious!
Here are some 2D classes from ~2.5k particles:
and here is the output from an ab initio reconstruction run with default parameters:
Any advice much appreciated.
This type of failure mode is (as you’ve seen) unfortunately common for the ab-initio reconstruction algorithm. The algorithm finds that the “squashed” model is locally optimal and explains images better than any other nearby model, and therefore does not explore far enough to find the correct symmetric model.
Generally, tweaking the parameters that you already mentioned (initial/final resolution, minibatch size, etc) can help the algorithm explore farther before locking in to an incorrect solution. However, this is also not guaranteed to work for highly symmetric particles, since the problem really is just non-convex and has many local optima.
What makes you feel that the result with symmetry directly enforced was dubious? In our hands, we have generally got good results with symmetry enforced for virus particles, and octahedral symmetry, but not for high-degree C or D symmetry.
Thanks for your comments. As it happens, yesterday I had a tip from another cryoSPARC user who had experience with icosahedral virus processing. He had seen the same thing with generating the ab initio model in C1, but then found that refinement in I1 was able to sort it out (i.e. “re-inflate” the volume). So, I tried the same thing and actually ended up with something sensible. The structure is already known and docks nicely into the map.
Regarding the “dubious” ab initio models produced by enforcing I1, they looked too featureless with no hint of the prominent projections on the 5-fold axes that were clearly visible in the 2D classes (in fact there were holes on the 5-folds!). For a fair comparison I also did a refinement job with this ab initio model, but it didn’t recover the projections.
Just in case the problem covered in this thread is still relevant, I’d like to share the solution that works fine for most of our icosahedral virus particles. An alternative to generating the ab initio model directly from the dataset is to draw an icosahedron with an approximate size manually, e.g. in chimera. (First the “shape icosahedron” command, followed by “mask ones” and finally “resample” the icosahedron on the “squashed” ab-initio volume from cryosparc just to get right pixel/box size). Then you perform the icosahedral Homogeneous Refinement with very strong initial lowpass, e.g 50 to 100A - and in most of our cases this leads to the correct refinement, revealing the structural details of the actual particles.
This is a good tip - also useful for generating decoy classes for heterogeneous refinement, e.g. empty nanodisc/micelle classes (shape cylinder height 30 radius 50, for example)
Hey everyone – bumping this after some time. We did some investigation into this behaviour (thank you @twg for helping out with some data) and we have a potential (simple) fix for this type of ‘collapsing’ or ‘squashing’ behaviour in ab-initio:
Set the parameter
Enforce non-negativity to False.
We’re still investigating the root cause but it seems that this constraint biases SGD to ‘collapsed’ states in high symmetry structures. You may also need to set the parameter
Center structures in real space to False if the automatic centre-of-mass adjustment results in wonky behaviour with negative density values (we found this latter change to be useful for helical structures).
Let us know if this works in your case!
I just tried this and got the attached error after the first iteration - is this the recentering-related wonky behaviour you mentioned?
Traceback (most recent call last):
File "cryosparc_master/cryosparc_compute/run.py", line 96, in cryosparc_compute.run.main
File "cryosparc_master/cryosparc_compute/jobs/abinit/run.py", line 226, in cryosparc_compute.jobs.abinit.run.run_homo_abinit
File "/home/exx/cryosparc/cryosparc_worker/cryosparc_compute/sigproc.py", line 457, in align_density
Hmm – no, the ‘wonky’ behaviour we’ve seen is a translation of the density towards the edges of the box. We’ve never seen that error, looks like the density might be full of NaNs. Was this with the re-centering turned off?
This was with the recentering turned on, but I get the same error turning it off… It is a fairly clean particle set, refines to 2.7Å so shouldn’t be full of NaNs…
I will say with another high symmetry case it definitely seems to help though - gave one good model out of three, where before they were all garbage…
I wonder if it will help for other ab initio artefacts at lower symmetry? E.g. quite often we see “squashed” membrane proteins, where oblique views end up assigned as side views