Transform odb.py

From PyMOLWiki
Revision as of 00:22, 2 August 2005 by Saper (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

from pymol import cmd import pymol import os import re import string

def __init__(self): cmd.extend('transform_odb', transform_odb)

  1. Creates a new object name from selection after transforming it with O-style matrix
  2. found in matrix_file
  3. Author: Mark Saper <saper@umich.edu>

def transform_odb( name, selection, matrix_file='matrix.odb', transpose=0):

# open the file for reading matrix_file = os.path.expanduser(matrix_file) matrix_file = os.path.expandvars(matrix_file) theInFile = open ( matrix_file,"r")

# what we'll store the results in theMatrix = []

# read every line in the file and ... for theCurrLine in theInFile.readlines():

#print theCurrLine[0] if (theCurrLine) and (theCurrLine[0] != '!') and (theCurrLine[0] != '.'): # if the line isn't blank, make a list of items seperated by tabs theNewRow = string.split (theCurrLine) # add it in the matrix theMatrix.extend ( theNewRow )

# change matrix to pymol unsupported format

theMatrix = [ theMatrix[0], theMatrix[3], theMatrix[6], theMatrix[9], theMatrix[1], theMatrix[4], theMatrix[7], theMatrix[10], theMatrix [2], theMatrix [5], theMatrix[8], theMatrix[11], 0.0, 0.0, 0.0, 0.0 ] theMatrix = [ float(x) for x in theMatrix]


# close the file theInFile.close () # r = cmd.create ( name, selection)

r = cmd.transform_object( name, theMatrix, transpose=transpose)

return r

cmd.extend('transform_odb', transform_odb)