Skip to main content

Python RMSD tool with symmetry correction.

Project description

sPyRMSD

Travis Build Status Build status codecov Language grade: Python Documentation Status

flake8 mypy

DOI Docs PyPI License

Python tool for symmetry-corrected RMSD calculations.

Installation

spyrmsd is available on PyPI and conda-forge and can be easily installed from source. See Dependencies for a description of all the dependencies.

Note: spyrmsd will install NetworkX (multi-platform). You can install graph-tool on macOS and Linux for higher performance.

PyPI

pip install spyrmsd

conda

conda install spyrmsd -c conda-forge

GitHub

git clone https://github.com/RMeli/spyrmsd.git
cd spyrmsd
pip install .

Dependencies

spyrmsd can be used both as a module or as a standalone tool.

Module

The following packages are required to use spyrmsd as a module:

Note: spyrmsd uses graph-tool by default but will fall back to NetworkX if the former is not installed (e.g. on Windows).

Standalone Tool

Additionally, one of the following packages is required to use spyrmsd as a standalone tool:

Note: RDKit has to be installed using conda (Why the RDKit isn't available on PyPi).

Usage

Standalone

python -m spyrmsd.spyrmsd -h
usage: spyrmsd.py [-h] [-m] [-c] [--hydrogens] [-n]
                  reference molecules [molecules ...]

Python RMSD tool.

positional arguments:
  reference       Reference file
  molecules       Input file(s)

optional arguments:
  -h, --help      show this help message and exit
  -m, --minimize  Minimize (fit)
  -c, --center    Center molecules at origin
  --hydrogens     Keep hydrogen atoms
  -n, --nosymm    No graph isomorphism

Module

from spyrmsd import rmsd

RMSD

The function rmsd.rmsd computes RMSD without symmetry correction. The atoms are expected to be in the same order for both molecules being compared (no atom matching is performed).

Symmetry-Corrected RMSD

The function rmsd.symmrmsd computes symmetry-corrected RMSD using molecular graph isomorphisms. Symmetry correction requires molecular adjacency matrices describing the connectivity but needs not the atoms to be in the same order.

Atom matching is performed according to the molecular graph. Therefore, this function should be used when atoms in the molecules being compared are not in the same order (even if there is not symmetry).

Development

To ensure code quality and consistency the following tools are used during development:

References

Method Reference DOI
QCP D. L. Theobald, Acta Crys. A61, 478-480 (2005) doi
Hungarian W. J. Allen and R. C. Rizzo, J. Chem. Inf. Model. 54, 518-529 (2014) doi
Connectivity E. C. Meng and R. A. Lewis, J. Comp. Chem. 12, 891-898 (1991) doi

Copyright

Copyright (c) 2019-2020, Rocco Meli.

Acknowledgements

Project based on the Computational Molecular Science Python Cookiecutter version 1.1.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spyrmsd-0.3.2.tar.gz (219.8 kB view hashes)

Uploaded Source

Built Distribution

spyrmsd-0.3.2-py3-none-any.whl (26.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page