This is a read-only mirror of pymolwiki.org
Quick dist
Jump to navigation
Jump to search
quick_dist will quickly find and write out the pairwise distances between two selections in PyMOL. On my machine this will write about 80,000 distance measures/second.
#
# quick_dist.py
#
def quick_dist(s1, s2, inFile=None):
import math
m1 = cmd.get_model(s1)
m2 = cmd.get_model(s2)
if inFile!=None:
f = open(inFile, 'w')
f.write("ATOM1\tATOM2\tDIST\n")
s=""
for c1 in range(len(m1.atom)):
for c2 in range(len(m2.atom)):
s+="%s/%d\t%s/%d\t%3.2f\n" % (m1.atom[c1].name, m1.atom[c1].index,\
m2.atom[c2].name, m2.atom[c2].index,\
math.sqrt(sum(map(lambda f: (f[0]-f[1])**2, zip(a1.coord,a2.coord)))))
if inFile!=None:
f.write(s)
f.close()
else:
print s
cmd.extend("quick_dist", quick_dist)