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