spyrmsd.rmsd module
- spyrmsd.rmsd.hrmsd(coords1: ndarray, coords2: ndarray, atomicn1: ndarray, atomicn2: ndarray, center=False)
Compute minimum RMSD using the Hungarian method.
- Parameters:
coords1 (np.ndarray) – Coordinate of molecule 1
coords2 (np.ndarray) – Coordinates of molecule 2
atomicn1 (np.ndarray) – Atomic numbers for molecule 1
atomicn2 (np.ndarray) – Atomic numbers for molecule 2
- Returns:
Minimum RMSD (after assignment)
- Return type:
float
Notes
The Hungarian algorithm is used to solve the linear assignment problem, which is a minimum weight matching of the molecular graphs (bipartite). [2]
The linear assignment problem is solved for every element separately.
- spyrmsd.rmsd.rmsd(coords1: ndarray, coords2: ndarray, atomicn1: ndarray, atomicn2: ndarray, center: bool = False, minimize: bool = False, atol: float = 1e-09) float
Compute RMSD
- Parameters:
coords1 (np.ndarray) – Coordinate of molecule 1
coords2 (np.ndarray) – Coordinates of molecule 2
atomicn1 (np.ndarray) – Atomic numbers for molecule 1
atomicn2 (np.ndarray) – Atomic numbers for molecule 2
center (bool) – Center molecules at origin
minimize (bool) – Compute minimum RMSD (with QCP method)
atol (float) – Absolute tolerance parameter for QCP method (see
qcp_rmsd())
- Returns:
RMSD
- Return type:
float
Notes
When minimize=True, the QCP method is used. [1] The molecules are centred at the origin according to the center of geometry and superimposed in order to minimize the RMSD.
[1] D. L. Theobald, Rapid calculation of RMSDs using a quaternion-based characteristic polynomial, Acta Crys. A 61, 478-480 (2005).
- spyrmsd.rmsd.rmsdwrapper(molref: Molecule, mols: Molecule | List[Molecule], symmetry: bool = True, center: bool = False, minimize: bool = False, strip: bool = True, cache: bool = True) Any
Compute RMSD between two molecules.
- Parameters:
molref (molecule.Molecule) – Reference molecule
mols (Union[molecule.Molecule, List[molecule.Molecule]]) – Molecules to compare to reference molecule
symmetry (bool, optional) – Symmetry-corrected RMSD (using graph isomorphism)
center (bool, optional) – Center molecules at origin
minimize (bool, optional) – Minimised RMSD (using the quaternion polynomial method)
strip (bool, optional) – Strip hydrogen atoms
- Returns:
RMSDs
- Return type:
List[float]
- spyrmsd.rmsd.symmrmsd(coordsref: ndarray, coords: ndarray | List[ndarray], apropsref: ndarray, aprops: ndarray, amref: ndarray, am: ndarray, center: bool = False, minimize: bool = False, cache: bool = True, atol: float = 1e-09, return_best_isomorphism: bool = False) Any
Compute RMSD using graph isomorphism for multiple coordinates.
- Parameters:
coordsref (np.ndarray) – Coordinate of reference molecule
coords (List[np.ndarray]) – Coordinates of other molecule
apropsref (np.ndarray) – Atomic properties for reference
aprops (np.ndarray) – Atomic properties for other molecule
amref (np.ndarray) – Adjacency matrix for reference molecule
am (np.ndarray) – Adjacency matrix for other molecule
center (bool) – Centering flag
minimize (bool) – Minimum RMSD
cache (bool) – Cache graph isomorphisms
atol (float) – Absolute tolerance parameter for QCP (see
qcp_rmsd())return_best_isomorphism (bool) – Return best isomorphism
- Returns:
Union[ – float, List[float], Tuple[float, Tuple[List[int], List[int]]], Tuple[List[float], List[Tuple[List[int], List[int]]]],
] – Symmetry-corrected RMSD(s) and optionally graph isomorphism(s)
Notes
Graph isomorphism is introduced for symmetry corrections. However, it is also useful when two molecules do not have the atoms in the same order since atom matching according to atomic numbers and the molecular connectivity is performed. If atoms are in the same order and there is no symmetry, use the rmsd function.