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

Make RMSD calculations more robust to jumping crystals across periodic boundaries. #3

Open
mrshirts opened this issue Feb 3, 2022 · 3 comments

Comments

@mrshirts
Copy link

mrshirts commented Feb 3, 2022

Currently, if any molecules shift from one side of the box to the other during minimization, then the RMSD becomes incorrectly large, as the proper minimum image convention is not used.

We need to implement a better way to calculate RMSD that is robust to molecules hopping from one side of the cell to another.

Potentially implement a version of RSMD_20 in Mercury? I.e. "The small root–mean–squared deviation in atomic positions from a 20-molecule cluster from the crystal structure". It's hard to find this algorithm well documented! Basically, you want the closest 20 ( or some other N molecules) measured by distance of the centroids, with periodic boundaries accounted for, and then find the RMSD (again respecting periodic boundaries)

Alternatively, we could look just at a single cell, but make sure that the periodic boundaries are properly matched between two configurations.

@Yu-Tang-Lin
Copy link
Collaborator

Note for @Yu-Tang-Lin:
Still trying to find the source code for RMSD20. This method had been published 10 years ago, but there is no Github resource for that. Maybe try to send some email to the research group who published before and ask for the code?

@mrshirts
Copy link
Author

GitHub did not exist when the code was written. This: http://scripts.iucr.org/cgi-bin/paper?S0021889804027074 is the paper, but it is not very clear.

OpenEye has a version of this, and although they cannot describe the code, Caitlin Bannan can probably summarize it.

@mrshirts
Copy link
Author

OK, here's my summary for RMSD(N) from what I can piece together.

  1. For each molecule, compute the center of geometry.
  2. Find the N closest molecular centers of geometry, MAKING SURE that periodic boundaries are included. If N is large enough, it might include some periodic copies of the molecules.
  3. All atomic locations are with respect to the center of geometry of the center molecue.
  4. Calculate the RMSD between these N molecules (including potentially periodic copies?) in the two crystal structures (with center of geometries aligned).
  • One thing that I am unclear on; if there are multiple copies of the molecule in the asymmetric unit cell, do you average the RMSD over all of the molecular copies?
  • The other thing I am not clear on; this seems like it might be not be symmetric, because the 20 closest molecules in one structure might not be the 20 closest molecules in the other structure, thus RMSD(N) 1->2 might not be equal to RMSD(N) 2->1. How is this addressed?

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

No branches or pull requests

2 participants