This is a read-only mirror of pymolwiki.org
Difference between revisions of "Transform odb.py"
Jump to navigation
Jump to search
m |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | <source lang="python"> | ||
from pymol import cmd | from pymol import cmd | ||
import pymol | import pymol | ||
import os | import os | ||
import re | import re | ||
− | |||
def __init__(self): | def __init__(self): | ||
Line 28: | Line 28: | ||
if (theCurrLine) and (theCurrLine[0] != '!') and (theCurrLine[0] != '.'): | if (theCurrLine) and (theCurrLine[0] != '!') and (theCurrLine[0] != '.'): | ||
# if the line isn't blank, make a list of items seperated by tabs | # if the line isn't blank, make a list of items seperated by tabs | ||
− | theNewRow = | + | theNewRow = theCurrLine.split () |
# add it in the matrix | # add it in the matrix | ||
theMatrix.extend ( theNewRow ) | theMatrix.extend ( theNewRow ) | ||
Line 51: | Line 51: | ||
cmd.extend('transform_odb', transform_odb) | cmd.extend('transform_odb', transform_odb) | ||
+ | </source> | ||
+ | [[Category:Script_Library|Transform_ODB]] | ||
+ | [[Category:Math_Scripts]] | ||
+ | [[Category:ThirdParty_Scripts]] |
Revision as of 08:16, 27 November 2009
from pymol import cmd
import pymol
import os
import re
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 <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 = theCurrLine.split ()
# 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)