Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Symmetry detection fails for long twisted assemblies #795

Open
biocryst opened this issue Aug 25, 2018 · 4 comments
Open

Symmetry detection fails for long twisted assemblies #795

biocryst opened this issue Aug 25, 2018 · 4 comments
Labels
bug Bugs and bugfixes

Comments

@biocryst
Copy link
Member

biocryst commented Aug 25, 2018

For examples look at 6CL5, 6GAO, 5JXC.

The problem, I believe, is in the following:

  1. Subunits are represented via their centers:
  2. Permutation of the centers is used to derive transformations:
    Quat4d quat = UnitQuaternions.relativeOrientation(
    originalCoords, transformedCoords);
    ...
  3. The transformations are applied to the whole subunits
    QuatSymmetryScores scores = QuatSuperpositionScorer.calcScores(subunits, transformation, permutation);
  4. The centers of long twisted chains are not representative well enough. E.g., in 6CL5 the centers are within ~1A of each other. Since the chains are not perfectly symmetrical, the transformations derived from the centers are essentially random.

There may also a potential problem in generating permutations for such structures. The "closest neighbor" center would not necessarily represent the chain that's being superposed, which may affect validity of the permutations. Although at the moment I do not fully understand how this part of the code works, it's around here:

If we replace the centers with the full list coordinates, it will fix the problem, but obviously affect the performance by quite a bit. So I suggest doing something in-between, i.e., splitting the chains into several segments of consecutive residues and calculating centers for those segments. The number of segments can be a parameter in the QuatSymmetryParameters class.

Any thoughts, suggestions? Thank you!

@biocryst biocryst added the bug Bugs and bugfixes label Aug 25, 2018
@pwrose
Copy link
Member

pwrose commented Aug 25, 2018 via email

@lafita
Copy link
Member

lafita commented Sep 5, 2018

These assemblies have very elongated subunits and large interfaces, so this might be another property to identify them and switch to the all-atom comparison.

@sbliven
Copy link
Member

sbliven commented Oct 5, 2018

All-atom is probably overkill if we're worried about performance. We could get by with some small set of atoms that preserves the orientation. The principal axes might work, or even a small random sample (say, 10 atoms).

The centroid method fails to account for orientation, so it would also fail for globular asymmetric complexes if their centroids happened to fall on a circle. We've been fortunate so far in that the vast majority of homooligomers really do have symmetry so the centroid heuristic works well.

@sbliven
Copy link
Member

sbliven commented Oct 5, 2018

This might improve helix visualization too (#306)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Bugs and bugfixes
Projects
None yet
Development

No branches or pull requests

4 participants