spyrmsd.hungarian module
- spyrmsd.hungarian.cost_mtx(A: ndarray, B: ndarray)[source]
Compute the cost matrix for atom-atom assignment.
- Parameters:
A (numpy.ndarray) – Atomic coordinates of molecule A
B (numpy.ndarray) – Atomic coordinates of molecule B
- Returns:
Cost matrix of squared atomic distances between atoms of molecules A and B
- Return type:
np.ndarray
- spyrmsd.hungarian.hungarian_rmsd(A: ndarray, B: ndarray, apropsA: ndarray, apropsB: ndarray) float[source]
Solve the optimal assignment problems between atomic coordinates of molecules A and B.
- Parameters:
A (numpy.ndarray) – Atomic coordinates of molecule A
B (numpy.ndarray) – Atomic coordinates of molecule B
apropsA (numpy.ndarray) – Atomic properties of molecule A
apropsB (numpy.ndarray) – Atomic properties of molecule B
- Returns:
RMSD computed with the Hungarian method
- 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).
The linear assignment problem is solved for every element separately. [1]
- spyrmsd.hungarian.optimal_assignment(A: ndarray, B: ndarray)[source]
Solve the optimal assignment problems between atomic coordinates of molecules A and B.
- Parameters:
A (numpy.ndarray) – Atomic coordinates of molecule A
B (numpy.ndarray) – Atomic coordinates of molecule B
- Returns:
Cost of the optimal assignment, together with the row and column indices of said assignment
- Return type:
Tuple[float, nd.array, nd.array]