On Friday 22 October 2004 02:07, Milton H. Werner, Ph.D. wrote:
> I assume there is a way in pymol to read a DALI rotation/transformation
> matrix so that two dissimilar molecules can be intelligently aligned.
> Can someone tell me how it is done?
I have a simple Python script that extracts the transformation matrices from
the Dali report file. If someone has a way to use this matrix in PyMol, we'd
be set:
#!/usr/bin/env python
# Script to extract 3x4 transformation matrices from Dali report files
# Lieven Buts, 22-Oct-2004
import re,sys
dali = open(sys.argv[1],"r")
pattern = re.compile(r'^## MATRICES') # Find section with matrices
line = dali.readline()
while not pattern.match(line):
line = dali.readline()
dummy = dali.readline()
pattern = re.compile(r'^ *$')
line = dali.readline()
while not pattern.match(line): # Read matrices until first empty line
one = line.split()
two = dali.readline().split()
three = dali.readline().split()
code = one[2]
matrix = [ one[4],one[5],one[6],one[7],
two[4],two[5],two[6],two[7],
three[4],three[5],three[6],three[7] ]
matrix = tuple(map(float,matrix))
print code
print ("%8.3f %8.3f %8.3f %8.3f\n" * 3) % matrix
print
line = dali.readline()
Cheers,
--
Lieven Buts
Department of Ultrastructure
Vrije Universiteit Brussel