Hello all  I'm trying to calculate the elbow angle of an Fab locally (i.e. without uploading to a server) and decided to try it in PyMOL. I got stuck, and thought maybe someone much wiser than I might be able to shed some light on the error(s) of my ways.
I've been trying to use some of the functions in transformations.py by Christoph Gohlke (quite a thorough toolset!); what I have so far is the following .pml script:
run transformations.py
import numpy
import transformations
fetch 3ghe, async=0
# break the fab into 4 pieces
create vl, chain L and resi 1107
create vh, chain H and resi 1113
create cl, chain L and !vl
create ch, chain H and !vh
# align the pieces
super vl,vh
super cl,ch
python
# get the transformation matrices
mat_v = cmd.get_object_matrix("vl")
mat_c = cmd.get_object_matrix("cl")
# turns Pymol's output into a 4x4 python array
def mat_to_R(mat):
R = [[mat[0],mat[1],mat[2],mat[3]],
[mat[4],mat[5],mat[6],mat[7]],
[mat[8],mat[9],mat[10],mat[11]],
[mat[12],mat[13],mat[14],mat[15]]]
return R
Rv = mat_to_R(mat_v)
Rc = mat_to_R(mat_c)
# calculate the axis & angle
angle_v,direction_v,point_v = transformations.rotation_from_matrix(Rv)
angle_c,direction_c,point_c = transformations.rotation_from_matrix(Rc)
# calculate the elbow angle
elbow = numpy.degrees(numpy.dot(direction_v,direction_c))
print "Elbow angle:",elbow
python end
I'm getting the following error, but I'm not sure how to address it:
Traceback (most recent call last):
File "/sw64/lib/pymolpy26/modules/pymol/parser.py", line 155, in parse
exec(py_block,self.pymol_names,self.pymol_names)
File "<string>", line 19, in <module>
File "transformations.py", line 348, in rotation_from_matrix
raise ValueError("no unit eigenvector corresponding to eigenvalue 1")
ValueError: no unit eigenvector corresponding to eigenvalue 1
Any help would be greatly appreciated!
Thanks,
Jared

Jared Sampson
Xiangpeng Kong Lab
NYU Langone Medical Center
New York, NY 10016
2122637898

This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain information that is proprietary, confidential, and exempt from disclosure under applicable law. Any unauthorized review, use, disclosure, or distribution is prohibited. If you have received this email in error please notify the sender by return email and delete the original message. Please note, the recipient should check this email and any attachments for the presence of viruses. The organization accepts no liability for any damage caused by any virus transmitted by this email.
=================================
