I would like to calculate the rmsd between re-docked complex and co-crystallized complex for docking validation. How do I calculate the rmsd using Pymol? I tried the following command

align re-docked_complex, co-crystallized_complex

But the above command gives the rmsd of two proteins. I would like to get the rmsd of re-docked and co-crystallized ligand. How can I achieve this using pymol?


1 Answer 1



The Protein-Ligand-complex is the complete protein with Ligand!

If you only want to compare the two ligands, you can delete the rest of the proteins, or specify the input so only the ligand is choosen. (select Ligand and save selection. then use the function on that selections)

But be aware that for Docking comparison you probably don't want to align! but rather calculate the RMSD directly (because the absolute position and not the relative position is of interest?)

Maybe use: "rms_cur" (https://pymolwiki.org/index.php/Rms_cur)

  • $\begingroup$ Yup, spot on. rsm_cur is the correct command. One can pass the ligand w/o deleting: rsm_cur redocked and resn LIG and not element H, original and resn LIG if the residue name is LIG say, while the not element H is against hydrogens that were added for docking. However, one big caveat worth mentioning is... $\endgroup$ Commented Jun 1, 2021 at 9:11
  • $\begingroup$ ... is that the RMSD is segi, chain, resi, resn and name based (i.e.alter/sort operations may be required to make them match), has an isomorphism problem: Take BHT, if you flip it's "arms" 180° around the hydroxy–methyl axis, you end up with a perfect fit, but the atom names differ. So, one must make sure this is not an issue (or use RDKit). $\endgroup$ Commented Jun 1, 2021 at 9:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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