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.
"transform_odb" transforms the coordinates of a selection and creates a new object with the transformed coordinates. The transformation matrix is read from a specified "O"-style tranformation matrix file (.odb) written by "O" or by any of the Uppsala Software Factory programs (from Gerard Klegweit) such as LSQMAN.
transform_odb name, (selection), matrix_file [, transpose]
- name = object to contain transformed coordinates
- selection = atoms to transform
- matrix_file = file name or path of .odb file containing a transformation matrix data block
- transpose (default 0]
transform moved_helix, ( mol1 and resi 200:220 ), move_helix.odb
- Download transform_odb.py
from pymol import cmd import pymol import os import re import string def __init__(self): cmd.extend('transform_odb', transform_odb) # Creates a new object name from selection after transforming it with O-style matrix # found in matrix_file # Author: Mark Saper <firstname.lastname@example.org> 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(): if (theCurrLine) and (theCurrLine != '!') and (theCurrLine != '.'): # 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, theMatrix, theMatrix, theMatrix, theMatrix, theMatrix, theMatrix, theMatrix, theMatrix , theMatrix , theMatrix, theMatrix, 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)