Sometimes I encounter xyz files with slightly different coordinates, for example, before and after optimization.

What is the easiest way to compare how different are they?

In the first approximation, I would define the difference as a minimum of the sum of squares of differences between individual coordinates, where the minimum is taken over translations/rotations of one of the representations.

  • 2
    $\begingroup$ RMSD, or maybe TM-score. $\endgroup$
    – Mithoron
    Jan 18 '19 at 0:14
  • 1
    $\begingroup$ Try github.com/charnley/rmsd $\endgroup$ Jan 18 '19 at 1:25
  • 2
    $\begingroup$ The answer is also dependent on what you want to know / to compare. It is a different situation when you are interested in if two optimized geometries are the same, or if you try to compare different comforters. $\endgroup$
    – Greg
    Jan 18 '19 at 2:45

What you describe is to calculate the RMSD after superposition. It is not necessary to do a minimization, there is a classic algorithm to get the best superposition directly: Kabsch algorithm. Sometimes, only a subset of coordinates will be superimposed, either because coordinates are missing in one of the structure, or because some parts of the structure show larger differences and interfere with superimposing the similar parts of the structures.

In some cases, where the structures are very different from one another but there are domains of conserved structures, you could also compute differences of pairwise distances and plot them as a distance difference matrix. Distance differences within the conserved domains will be small, while distance differences from domain to domain will be large.

When you do a superposition and RMSD calculation for the first time, it is nice to be able to check the superposition. Many structure viewers have the capability to visualize the superposition while also calculating the RMSD, for example the "compare" command in jmol.


As Karsten Theis said there is the Kabsch algorithm for this purpose, but this algorithm claime to make pairs atoms in two structures (for minimization RMSD between structures via rotation and translation). However, sometimes this is not easy. Though if your order of atoms doesn't change it will not a problem, otherwise there is ICP ICP algorithm or global optima ICP, but both algorithms consider atoms as points and hence have a lots disadvantages, because global minima between two point clouds is not global minima between two molecules in common.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.