Symmetry relaxation in v4.4 - local refinement implementation?

Very excited to see symmetry relaxation in cryoSPARC 4.4!! :tada:

Looking forward to testing it out, but I see that there is no option to apply it in local refinement - this is an important use case for mixed symmetries, when applying symmetry relaxed refinement to a subparticle, or when one has some reason to suspect that a certain region of the map has broken symmetry, while the rest conforms to the apparent symmetry.

If there are technical challenges to implementing in local refinement, perhaps allowing users to provide a mask for use specifically during the symmetry relaxation step might be an intermediate workaround? (I would be happy to provide real-world data for testing if helpful!)

Also would be great to have symmetry relaxation implemented as an option in 3D-Classification and/or heterogeneous refinement, to allow for separation of symmetric & pseudosymmetric classes! :grinning:



  • After trying a couple of test refinements, I also wonder if some extra diagnostics might be handy in the log. E.g. the colored slices of difference maps used in 3D-classification could be useful here, to compare a symmetrized version of the current reconstruction with the map from symmetry relaxed refinement, highlighting deviations from the higher symmetry.

  • It might be useful to add a separate “Maximum alignment resolution” parameter specifically for the symmetry relaxed search. In cases where an asymmetric binding partner is binding to a symmetric framework in a poorly ordered manner, this may be lost in the noise at GS-FSC limiting resolution, but clearly evident at say 8 or 10 Ă….

  • Also I just tested this on some real world data that we were previously only able to untangle using symmetry expansion and classification without alignments, and it worked! Yay :grinning:

  • Are there any alterations to convergence criteria in the presence of symmetry relaxation? Should there be? In one test refinement, it only found the correct solution in the final iteration, which makes me wonder if it had really converged. Resolution improvement may not be an appropriate criterion to use in a symmetry relaxed refinement - convergence of density deviations at symmetry related positions may be better, or something else? Maybe convergence of the per-iteration pose difference after symmetry relaxation?

  • Is the pose difference after symmetry relaxation calculated with respect to the previous iteration (I think this is correct based on the output?), or the start of refinement?

  • In the tutorial, it is mentioned that “initialize noise model from images” should be switched on. Why is this important? And is this also important for the symmetry-enforced refinement that precedes symmetry relaxation?

  • Any thoughts about adding symmetry relaxation to helical refinement? Might be useful when one has an asymmetric binding partner binding to a symmetric helix… (also see this paper)


What a massive update, tremendous work cryoSPARC team! =D

I second Oli here. Can’t wait to soon start using all this improvements and new features!!

Thanks! =)

Edit. Sorry, I did not resist to this edit: Did you consider naming this cryoSPARC v5.0? You have just massively raised the bar :wink:


Servers are getting hammered - update is barely downloading… it was a pleasant surprise to wake up this morning to the announcement of so many features we’ve asked for. :slight_smile:


Yes it is a huge release!! :partying_face:


To add to this thread - I just tested on two real world datasets, and symmetry relaxation works fine without the initial “homogeneous reconstruction/break symmetry” step.

It still converges on the asymmetric solution starting from a higher symmetry consensus refinement :slight_smile:



Refinement with symmetry relaxation seems to often take a few iterations to show any asymmetry, then converges on the correct solution very rapidly. This seems largely independent of any asymmetry in the initial model.

Thinking about this, I wonder if it would be worth, after BnB completes at each iteration, rather than just performing a single round of symmetry relaxation, instead iterating symmetry relaxed search and reconstruction until convergence before starting a new round of BnB? Would this give faster convergence behavior?



Dear @olibclarke,

Thank you very much for the detailed feedback and suggestions! We’re excited that it’s been helpful for a few datasets. :slight_smile:

We have it noted that symmetry relaxation would be a useful feature for local refinement. Primarily we chose to implement this first in global refinement to obtain feedback on its utility in general, so it is good to know that it has been a useful step even in the homogeneous refinement case. I have also noted the other suggestions: to add symmetry relaxation to CryoSPARC’s other refinement and classification jobs, and to consider the use of a maximum alignment resolution specific to the relaxed search step.

Regarding the pose difference plots, what’s shown is actually the magnitude difference of the BnB optimal pose (i.e. the pose that BnB would have found without relaxation) and the optimal pose found by symmetry relaxation. The latter is what is used to reconstruct that iteration’s volume, but both of these poses are specific to the given iteration (in other words, it doesn’t compare poses from iteration n-1 to iteration n, or from iteration 0 to n). We thought this might be useful to see if symmetry relaxation is actually changing the pose or not, and at convergence we might hope that the symmetry is sufficiently broken that the pose difference moves closer to 0 for most particles.

This is a great point, we hadn’t yet thought of introducing difference maps but these could be very useful for precisely this reason. I have noted this, along with improved diagnostics to help discern how well symmetry relaxation is working.

Regarding convergence criteria, this is a great point and it is true that FSC resolution alone may not be sufficient to indicate convergence, especially when a symmetry broken and symmetric version of a molecule are very close in resolution. For the initial release, we chose to leave convergence criteria as is, because pose-based convergence criteria would require more investigation to get right. In particular, outliers (junk particles) can make pose-based convergence criteria difficult (e.g. in 3D classification, we’ve seen it can be the case that a small proportion of particles match equally poorly with each class, and these particles continue to switch between classes late into the classification which prevents class-switching-based convergence criteria from declaring the classification is done). But this is a worthwhile point and we have it noted to look into this for subsequent developments on symmetry relaxation.

As a manual way to ensure symmetry relaxation is given the best chance to find the optimal solution, you may manually force more extra iterations by increasing the “Number of final extra passes”. In our experiments with symmetry relaxation, this was a very useful parameter to increase even to 2 or 3 from the default of 0, and is hinted to in the tutorial (perhaps it should be more explicit…).

It was suggested to activate “initialize noise model from images” only when marginalization is enabled. This is because marginalization (moreso than maximization) is more sensitive to the relative posterior probabilities of different poses, since each of these poses is used in the reconstruction and weighted by its posterior probability. These probabilities are heavily influenced by the noise model. Having a slightly more accurate noise model from the start is often better than starting with a white noise model, which is the case by default. This applies to marginalization in symmetry relaxation, but may also be useful to “adaptive marginalization” in non-uniform refinement. It’s not a huge point though, since in all iterations after the first, the noise model will be estimated from the data in either case.

It is also interesting to know that symmetry relaxation works with a symmetric reference! We generally saw faster convergence when the symmetry is more strongly broken in the initial reference – which may happen if ab-initio correctly resolved the asymmetry, or if using the “break symmetry” param to reconstruct a density from only a small subset of the total number of particles. This seemed to be the case even if symmetry was broken in incoherent/wrong ways (hence how the “break symmetry” feature operates, which is to randomize particles amongst the N symmetry related poses). The asymmetric noise that this step injects in the volume helps stop the refinement from converging on the symmetric version of the structure, thus we suggest its use in the tutorial (if you don’t already have a symmetry-broken reference). Perhaps though, in some cases the symmetric version of the structure is unstable enough that this step is not always necessary.

This is very good to hear!! Our tutorial used synthetically generated particle projections from a real EMDB volume, which was useful to create pose difference plots between fit and ground truth poses, but also because it was challenging to find a real particle dataset where symmetry was broken enough so that it’s realistic for relaxed pose search to find the asymmetric solution, but not enough that ab-initio/standard asymmetric refinement (SAR) already found the unambiguously asymmetric solution (this was the case with EMPIAR-10256: TRPV5 with calmodulin bound, for example). It’s really great to hear that you have real-world data that falls in that medium valley of difficulty, and it could certainly be useful for further developments in this area!



Thanks @mmclean for the detailed reply, this all sounds great and is very helpful info! :tada:

In every real world case I have tried so far, I have got better or comparable results starting from a symmetric reference (e.g. from NU-refine with higher sym enforced), vs the broken symmetry reference, and in a number of cases the final resolution (and density quality) was significantly better when starting from a symmetric reference.

1 Like

Super interesting – This is very good to know!

1 Like