3DFlex and Symmetry

Hi all, has anyone dealt with symmetrical complexes in 3DFlex? In the 3DFlex manuscript it was described that an initial rigid refinement of TRPV1 was done with C4 symmetry, and after 3D Flex reconstruction symmetrization was applied to the half-maps to compare with initial rigid refinement. How exactly do we apply symmetrization to half-maps? My complex has C3 symmetry which I specified in the NU-refinement, and I’m wondering if I need to apply symmetrization after 3DFlex to better calculate resolution to compare with NU. Thank you very much!


Hi @BruceWu,

The comment about symmetrization of the half-maps in 3D Flex reconstruction of TRPV1 was done via manual C4 symmetry-averaging of the half-maps (i.e. taking each half map, rotating it by 90, 180, and 270º, and adding these to the original); this was done in external software. In order to make your C3 3D Flex Reconstruction comparable to C3 non-uniform refinement, you may try something analogous in software like Chimera for example. Note we use the z-axis of the volume as the symmetry axis for Cn symmetries. You could do this averaging for each half-map and then re-import the new half-maps back into CryoSPARC and run a Validation (FSC) job.

One other option is to symmetry expand your particles via C3 symmetry before running 3D Flex Train. This will make training take longer of course, but will give the algorithm more signal to work with. The reasoning behind doing this is the same reasoning why we recommend using symmetry expansion prior to 3D Variability Analysis — you might find this previous discussion interesting. Note that even with symmetry expanded particles, the space of learned deformations and the canonical density too are not guaranteed to be C3-symmetric, for reasons discussed in the linked post.


Hi @mmclean, how does this play out when considering asymmetric motions in otherwise symmetric systems?

It would seem that one could either use a symmetry expanded set of particles (multiplying the training time n-fold for Cn symmetry), or use the original set of particles with n additional dimensions for each asymmetric motion expected.

Is there any smarter/more efficient way of doing this, given that the symmetrically related asymmetric motions are equivalent?

Can 3D-Flex reconstruct perhaps be run on a symmetry-expanded set of particles, using a model trained on the non-expanded set? Or is a one-to-one correspondence required?

Or is there any way of applying symmetry expansion to the 3D-flex model itself, to generate the n dimensions/modes that are exclusively related by a rotation of the flow field about the symmetry axis?


1 Like

I think directly symmetrizing a map with e.g. relion_image_handler --sym C3 is equivalent to symmetrizing during reconstruction via multiple insertions due to the linearity of the Fourier transform?

PS would be a nice addition to Volume Tools.

1 Like

Yes - I’m more wondering about asymmetric deformation modes of a symmetric entity (& incorporating that info in flex reconstruct), not so much symmetrizing the map

EDIT: sorry @DanielAsarnow that was probably a reply to the OP! & agreed, relion is the easiest way but would be convenient to have in vol tools

1 Like

To expand on this a little more - think about a highly symmetric entity like a viral capsid, that has been refined with icosahedral symmetry.

Now imagine that there is a degree of “squish” in the capsid - a linear expansion/contraction in one direction. Because of symmetry applied during refinement (often essential for high resolution and refinement stability), the direction of this expansion/contraction will be scrambled - effectively there will be one mode for each symmetry related direction on the sphere.

How would one efficiently model/correct for such a situation using 3d flex?

1 Like

Maybe some kind of symmetry relaxation, rather than expansion which is so expensive?

1 Like

Hi all,

It definitely makes sense to add a map symmetrization option to volume tools, thanks both for the suggestion.

Just to reply to @olibclarke’s questions…

We talked about this a bit and so far, to our knowledge, the current implementation of 3D Flex doesn’t natively have a way to do this. The deformation field has essentially no knowledge of symmetry so to do what you’re suggesting – “unscramble” (i.e. resolve the pseudosymmetry) that exists in the deformation itself (not just in the 3D map) is something we’ve never attempted. If there was a method that could do this, then it would be certainly useful to do before training 3D flex (so that the particles’ alignments contain flexing along the same direction). But currently not a way to do this within the 3D Flex training/reconstruction algorithm itself. In principle it could be possible though…

Though running training on the expanded set would be computationally expensive, this might be the best option. Increasing the number of dimensions (in theory, by a factor of N, although in practice this may be impractical) seems intuitive to me in any case where you have pseudosymmetry, regardless of whether the particles are expanded or not. This would obviously be prohibitive in the case of high-symmetry particles like icosahedrally-symmetric viruses…

Doing so would be problematic as it would mean using the latent coordinates for a particle in the non-expanded set for every symmetry related copy in the expanded set. But given the aforementioned (that 3D flex deformation field doesn’t have knowledge of the symmetry of the dataset), we should expect different latent coordinates from the same particle image viewed from different symmetry-related views.

This is definitely an area we’re thinking about – virtually all of the same nuances apply to 3D Variability, as well. Let me know if there are parts of this that don’t quite make sense



In other words, a robust symmetry relaxation solution of some kind.