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