From 44999c4231d9bf5bf7d167bf4b9b9212685e4857 Mon Sep 17 00:00:00 2001
From: Niklaus Johner <nij2003@med.cornell.edu>
Date: Wed, 28 Nov 2012 15:42:02 -0500
Subject: [PATCH] Added a function to calculate an Average Distance Matrix from
 a trajectory for an EntityView, i.e. the matrix of pairwise average
 distances.

---
 modules/mol/alg/pymod/trajectory_analysis.py | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/modules/mol/alg/pymod/trajectory_analysis.py b/modules/mol/alg/pymod/trajectory_analysis.py
index b445b0235..064135c32 100644
--- a/modules/mol/alg/pymod/trajectory_analysis.py
+++ b/modules/mol/alg/pymod/trajectory_analysis.py
@@ -196,4 +196,20 @@ def DistRMSDFromTraj(t,sele,ref_sele,radius=7.0,average=False,seq_sep=4,first=0,
     LogError("Function needs numpy, but I could not import it.")
     raise
     
+def AverageDistanceMatrixFromTraj(t,sele,first=0,last=-1):
+  try:
+    import numpy as npy
+  except ImportError:
+    LogError("Function needs numpy, but I could not import it.")
+    raise
+  n_atoms=sele.GetAtomCount()
+  M=npy.zeros([n_atoms,n_atoms])
+  for i,a1 in enumerate(sele.atoms):
+    for j,a2 in enumerate(sele.atoms):
+      d=ost.mol.alg.AnalyzeDistanceBetwAtoms(t,a1.GetHandle(),a2.GetHandle())[first:last]
+      M[i,j]=npy.mean(d)
+      M[j,i]=npy.mean(d)
+  return M
+
+
     
\ No newline at end of file
-- 
GitLab