{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": ".. image:: https://travis-ci.org/charnley/rmsd.svg?branch=master\n :target: https://travis-ci.org/charnley/rmsd\n\n\n.. image:: https://badge.fury.io/py/rmsd.svg\n :target: https://badge.fury.io/py/rmsd\n\n\nCalculate Root-mean-square deviation (RMSD) of Two Molecules Using Rotation\n===========================================================================\n\nThe root-mean-square deviation (RMSD) is calculated, using Kabsch algorithm\n(1976) or Quaternion algorithm (1991) for rotation, between two Cartesian\ncoordinates in either ``.xyz`` or ``.pdb`` format, resulting in the minimal\nRMSD.\n\nFor more information please read RMSD_ and `Kabsch algorithm`_.\n\n.. _RMSD: http://en.wikipedia.org/wiki/Root-mean-square_deviation\n.. _Kabsch algorithm: http://en.wikipedia.org/wiki/Kabsch_algorithm\n\nMotivation\n----------\n\nYou have molecule A and B and want to calculate the structural difference\nbetween those two. If you just calculate the RMSD_ straight-forward you might\nget a too big of a value as seen below. You would need to first recenter the\ntwo molecules and then rotate them unto each other to get the true minimal\nRMSD. This is what this script does.\n\n========== =========== ==========\nNo Changes Re-centered Rotated\n---------- ----------- ----------\n|begin| |translate| |rotate|\n========== =========== ==========\nRMSD 2.50 RMSD 1.07 RMSD 0.25\n========== =========== ==========\n\n.. |begin| image:: https://raw.githubusercontent.com/charnley/rmsd/master/img/plot_beginning.png\n.. |translate| image:: https://raw.githubusercontent.com/charnley/rmsd/master/img/plot_translated.png\n.. |rotate| image:: https://raw.githubusercontent.com/charnley/rmsd/master/img/plot_rotated.png\n\n\nCitation\n--------\n\n- **Implementation**:\n Calculate Root-mean-square deviation (RMSD) of Two Molecules Using Rotation, GitHub,\n http://github.com/charnley/rmsd, \n\n- **Kabsch algorithm**:\n Kabsch W., 1976,\n A solution for the best rotation to relate two sets of vectors,\n Acta Crystallographica, A32:922-923,\n doi: http://dx.doi.org/10.1107/S0567739476001873\n\n- **Quaternion algorithm**:\n Michael W. Walker and Lejun Shao and Richard A. Volz, 1991,\n Estimating 3-D location parameters using dual number quaternions, CVGIP: Image Understanding, 54:358-367,\n doi: http://dx.doi.org/10.1016/1049-9660(91)90036-o\n\nPlease cite this project when using it for scientific publications.\n\n\nInstallation\n------------\n\nEasiest is to get the program vis PyPi under the package name ``rmsd``,\n\n.. code-block:: bash\n\n pip install rmsd\n\n\nor download the project from GitHub via\n\n.. code-block:: bash\n\n git clone https://github.com/charnley/rmsd\n\n\nThere is only one Python file, so you can also download `calculate_rmsd.py` and\nput it in your bin folder.\n\n.. code-block:: bash\n\n wget -O calculate_rmsd https://raw.githubusercontent.com/charnley/rmsd/master/rmsd/calculate_rmsd.py\n chmod +x calculate_rmsd\n\nUsage examples\n--------------\n\nUse ``calculate_rmsd --help`` to see all the features. Usage is pretty straight\nforward, call ``calculate_rmsd`` with two structures in either ``.xyz`` or\n``.pdb``. In this example Ethane has the exact same structure, but is\ntranslated in space, so the RMSD should be zero.\n\n.. code-block:: bash\n\n calculate_rmsd tests/ethane.xyz tests/ethane_translate.xyz\n\nIt is also possible to ignore all hydrogens (useful for larger molecules where\nhydrogens move around indistinguishable) and print the rotated structure for\nvisual comparison. The output will be in XYZ format.\n\n.. code-block:: bash\n\n calculate_rmsd --no-hydrogen --print tests/ethane.xyz tests/ethane_mini.xyz\n\nIf the atoms are scrambled and not aligned you can use the ``--reorder``\nargument which will align the atoms from structure B unto A. Use\n``--reorder-method`` to select what method for reordering. Choose between\nHungarian_ (default), distance (very approximate) and brute force (slow).\n\n.. _Hungarian: https://en.wikipedia.org/wiki/Hungarian_algorithm\n\n.. code-block:: bash\n\n calculate_rmsd --reorder tests/water_16.xyz tests/water_16_idx.xyz\n\n\nIt is also possible to use RMSD as a library in other scripts, see `example.py` for example usage.\n\n\nProblems?\n---------\n\nSubmit issues or pull requests on GitHub.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/charnley/rmsd", "keywords": "", "license": "BSD-2-Clause", "maintainer": "Jimmy Kromann", "maintainer_email": "jimmy@charnley.dk", "name": "rmsd", "package_url": "https://pypi.org/project/rmsd/", "platform": "", "project_url": "https://pypi.org/project/rmsd/", "project_urls": { "Homepage": "https://github.com/charnley/rmsd" }, "release_url": "https://pypi.org/project/rmsd/1.3.2/", "requires_dist": null, "requires_python": "", "summary": "Calculate root-mean-square deviation (RMSD) between two sets of cartesian coordinates (XYZ or PDB format), using rotation (fx. Kabsch algorithm), atom reordering (fx. Hungarian algorithm), and axis reflections, resulting in the minimal RMSD.", "version": "1.3.2" }, "last_serial": 4656273, "releases": { "1.2.2": [], "1.2.5": [ { "comment_text": "", "digests": { "md5": "62aaa0294cd8932db96c6315d25a5fb5", "sha256": "cab3ddb7325a26f130b2b593634ac40dbfdeb28c982ec68890542cd1cc9c5809" }, "downloads": -1, "filename": "rmsd-1.2.5.tar.gz", "has_sig": false, "md5_digest": "62aaa0294cd8932db96c6315d25a5fb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8341, "upload_time": "2017-05-22T19:53:51", "url": "https://files.pythonhosted.org/packages/b4/42/793539d63fdc803754985d3e817862489c6b5d99f4fe278907eb8e65cdb1/rmsd-1.2.5.tar.gz" } ], "1.2.6": [ { "comment_text": "", "digests": { "md5": "49932a7276422361978eb435f49e6441", "sha256": "b4e7cdbecbf16153c10b6db33abb1300430d4efede6ff6e980c9b3347ac51b85" }, "downloads": -1, "filename": "rmsd-1.2.6.tar.gz", "has_sig": false, "md5_digest": "49932a7276422361978eb435f49e6441", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7854, "upload_time": "2018-02-10T15:22:18", "url": "https://files.pythonhosted.org/packages/35/d0/849b181a50c810ba2b0b68804526934762f8df0735082f010d00f5327997/rmsd-1.2.6.tar.gz" } ], "1.2.7": [ { "comment_text": "", "digests": { "md5": "e48a7d3ee085ea979fdfa2612604c0c2", "sha256": "b4842a4cbb76c607d097dd16171d2fb3936c012759d6c51999f1b43b1350a152" }, "downloads": -1, "filename": "rmsd-1.2.7.tar.gz", "has_sig": false, "md5_digest": "e48a7d3ee085ea979fdfa2612604c0c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7836, "upload_time": "2018-05-22T14:33:29", "url": "https://files.pythonhosted.org/packages/4d/06/5791276cff25eb95d5913b57c2466406e16f856a2fb31642cae5e7beb032/rmsd-1.2.7.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "54c663a2371c0fa13b722dd089697c7a", "sha256": "a5731c94989cddb78eb06d4524068ef19cf4a9eae9d84bc6f654c258c0deba59" }, "downloads": -1, "filename": "rmsd-1.3.0.tar.gz", "has_sig": false, "md5_digest": "54c663a2371c0fa13b722dd089697c7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11665, "upload_time": "2018-11-21T12:57:39", "url": "https://files.pythonhosted.org/packages/73/83/ad8d89ab2c99e3ac23272a95627cf28f95b635487eda471050da3bde388b/rmsd-1.3.0.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "2b9a61380aedb447a5fab0ca6ec52538", "sha256": "21c7f16a3f90e036663456f52585e83791eb8566cf1111302c1a8c3465328367" }, "downloads": -1, "filename": "rmsd-1.3.2.tar.gz", "has_sig": false, "md5_digest": "2b9a61380aedb447a5fab0ca6ec52538", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11843, "upload_time": "2019-01-03T12:54:54", "url": "https://files.pythonhosted.org/packages/33/39/23b7d6f276db1d937d270ade3bd267746cb407cba346ce739355e166990b/rmsd-1.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2b9a61380aedb447a5fab0ca6ec52538", "sha256": "21c7f16a3f90e036663456f52585e83791eb8566cf1111302c1a8c3465328367" }, "downloads": -1, "filename": "rmsd-1.3.2.tar.gz", "has_sig": false, "md5_digest": "2b9a61380aedb447a5fab0ca6ec52538", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11843, "upload_time": "2019-01-03T12:54:54", "url": "https://files.pythonhosted.org/packages/33/39/23b7d6f276db1d937d270ade3bd267746cb407cba346ce739355e166990b/rmsd-1.3.2.tar.gz" } ] }