Mac binaries
[jabaws.git] / website / archive / binaries / mac / src / globplot / biopython-1.50 / Bio / distance.py
diff --git a/website/archive/binaries/mac/src/globplot/biopython-1.50/Bio/distance.py b/website/archive/binaries/mac/src/globplot/biopython-1.50/Bio/distance.py
new file mode 100644 (file)
index 0000000..4bec5cb
--- /dev/null
@@ -0,0 +1,35 @@
+"""
+This module provides code for various distance measures.
+
+Functions:
+euclidean       Euclidean distance between two points
+euclidean_py    Pure Python implementation of euclidean.
+
+"""
+# XXX cosine distance
+
+import warnings
+warnings.warn("Bio.distance is deprecated. If you use this module, please notify the Biopython developers at biopython-dev@biopython.org", DeprecationWarning)
+
+from numpy import *
+
+def euclidean(x, y):
+    """euclidean(x, y) -> euclidean distance between x and y"""
+    if len(x) != len(y):
+        raise ValueError("vectors must be same length")
+    #return sqrt(sum((x-y)**2))
+    # Optimization by John Corradi (JCorradi@msn.com)
+    d = x-y
+    return sqrt(dot(d, d))
+
+def euclidean_py(x, y):
+    """euclidean_py(x, y) -> euclidean distance between x and y"""
+    # lightly modified from implementation by Thomas Sicheritz-Ponten.
+    # This works faster than the Numeric implementation on shorter
+    # vectors.
+    if len(x) != len(y):
+        raise ValueError("vectors must be same length")
+    sum = 0
+    for i in range(len(x)):
+        sum += (x[i]-y[i])**2
+    return sqrt(sum)