Hi James,

a hint: look how rotate/translate is implemented in :

in cctbx_project/mmtbx/pdbtools.py
look for
def _rb_shift(..)
and then follow the code.

This is just an example of a possible way of doing it. I guess there are many more.

Pavel

On 3/26/13 10:29 AM, James Stroud wrote:
Hello all,

I have a rotation + translation matrix. Let's say

py> mtx
array([[  0.88302225,   0.11697778,   0.45451948,   5. ],
       [  0.11697778,   0.88302225,  -0.45451948,  10. ],
       [ -0.45451948,   0.45451948,   0.76604444,  20. ],
       [  0.        ,   0.        ,   0.        ,   1. ]])

My usual way of transforming a set of coordinates with a 4x4 matrix is to use numpy:

py> xyz_1
array([[  5.,  10.,  15.,   1.],
       [ 20.,  15.,  10.,   1.]])

py> numpy.inner(xyz_1, mtx)
array([[ 17.40268126,  12.59731919,  33.76326397,   1. ],
       [ 28.9603065 ,  21.03969455,  25.38784698,   1. ]])

What is the equivalent in cctbx? Is there a way to avoid converting coordinates back and fourth between numpy arrays with atoms().extract_xyz() & .set_xyz() (as might be used from a iotbx_pdb_hierarchy_ext.root).

Thank you for any help.

James


_______________________________________________
cctbxbb mailing list
[email protected]
http://phenix-online.org/mailman/listinfo/cctbxbb