From b9a2b8559f45d7dcc1938a0cf4b86e2d3d85835b Mon Sep 17 00:00:00 2001 From: Florian Ingels <florian.ingels@inria.fr> Date: Tue, 16 Jun 2020 11:13:09 +0200 Subject: [PATCH] Refactor minor code --- src/geomtree/geomtree.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/geomtree/geomtree.py b/src/geomtree/geomtree.py index 69f429a..c6067b3 100644 --- a/src/geomtree/geomtree.py +++ b/src/geomtree/geomtree.py @@ -94,8 +94,7 @@ def align_centers(t1,t2,tree_type="unordered", rmsd=True): """ If the two trees are isomorphic, find the best alignment of centers of the two trees via Kabsch algorithm """ - if not t1.is_isomorphic_to(t2, tree_type): - raise Exception("Trees are not isomorphic") + assert t1.is_isomorphic_to(t2, tree_type), "Trees are not isomorphic" geom1 = t1.get_geometry() geom2 = t2.get_geometry() @@ -106,7 +105,7 @@ def align_centers(t1,t2,tree_type="unordered", rmsd=True): q = np.array([geom2[k].translation for k in geom2.keys()]) if rmsd: - print("RMSD before processing : ", np.linalg.norm(p - q) ** 2) + print("RMSD before processing : ", np.linalg.norm(p - q)/np.sqrt(len(p))) cp = t1.my_absolute_geometry.translation cq = t2.my_absolute_geometry.translation @@ -114,14 +113,14 @@ def align_centers(t1,t2,tree_type="unordered", rmsd=True): q = q - cq if rmsd: - print("RMSD after root alignment : ", np.linalg.norm(p - q) ** 2) + print("RMSD after root alignment : ", np.linalg.norm(p - q)/np.sqrt(len(p))) U, _, V = svd(p.transpose() @ q) R = U @ np.diag([1, 1, np.sign(det(U @ V))]) @ V q = np.transpose(R @ q.transpose()) if rmsd: - print("RMSD after optimal rotation : ", np.linalg.norm(p - q) ** 2) + print("RMSD after optimal rotation : ", np.linalg.norm(p - q)/np.sqrt(len(p))) tf = AffineTransform() tf.set_parameters(linear=R, translation=cp - R @ cq) @@ -129,8 +128,8 @@ def align_centers(t1,t2,tree_type="unordered", rmsd=True): return tf, np.linalg.norm(p - q) ** 2 def tree_hellinger_distance(t1,t2,tree_type="unordered",relative=[False,False]): - if not t1.is_isomorphic_to(t2, tree_type): - raise Exception("Trees are not isomorphic") + + assert t1.is_isomorphic_to(t2, tree_type), "Trees are not isomorphic" geomu = t1.get_geometry(relative=relative[0]) geomv = t2.get_geometry(relative=relative[1]) -- GitLab