## [PyMOL] Re: PyMOL-users digest, Vol 1 #981 - 12 msgs

 [PyMOL] Re: PyMOL-users digest, Vol 1 #981 - 12 msgs From: tree - 2005-08-19 03:28:27 ```Nat, I'm working on a 'smart' alignment program, hence the rotation and translation part is a subset of the work. (The part that's written thus far is the Kabsch algorithm for optimal alignment of two sets of points of vectors). I've uploaded the complete script, but what you want is the part towards the end, which answers your question, summarized here. (I'll skip the lesson and just post the code.) Given a 3x3 matrix, U; and, the translation vector, T2; and, a vector of 3D points, v; do: stored.mol2 = map(lambda \ v:[T2[0]+((v[0]*U[0][0])+(v[1]*U[1][0])+(v[2]*U[2][0])), \ T2[1]+((v[0]*U[0][1])+(v[1]*U[1][1])+(v[2]*U[2][1])), \ T2[2]+((v[0]*U[0][2])+(v[1]*U[1][2])+(v[2]*U[2][2]))], \ stored.mol2) Or FinalPoint = TranslationVector + (3DVector * 3x3RotationMatrix). If I recall correctly, you need to rotate the points to origin to avoid an affine operation. The Kabsch algorithm in Python is at: http://www.pymolwiki.org/index.php/Kabsch HTH, -- Jason On Thu, 2005-08-18 at 18:26 -0700, pymol-users-request@... wrote: > Message: 4 > Date: Wed, 17 Aug 2005 18:03:09 -0700 (PDT) > From: Nat Echols > To: pymol-users@... > Subject: [PyMOL] applying matrices to objects > > > Is there a simple tool for taking a rotation and translation matrix - > in > this case, the BIOMT records from a PDB file - and applying it to an > object? Doesn't necessarily have to be in PyMOL; a simple > script/program > would do. > > thanks, > Nat -- Jason Vertrees (javertre@...) BSCB Graduate Student @ UTMB, Galveston http://www.bscb.utmb.edu :: BSCB @ UTMB http://best.utmb.edu :: B.E.S.T. @ UTMB http://pymolwiki.org :: PyMol Wiki ```

 [PyMOL] Re: PyMOL-users digest, Vol 1 #981 - 12 msgs From: tree - 2005-08-19 03:28:27 ```Nat, I'm working on a 'smart' alignment program, hence the rotation and translation part is a subset of the work. (The part that's written thus far is the Kabsch algorithm for optimal alignment of two sets of points of vectors). I've uploaded the complete script, but what you want is the part towards the end, which answers your question, summarized here. (I'll skip the lesson and just post the code.) Given a 3x3 matrix, U; and, the translation vector, T2; and, a vector of 3D points, v; do: stored.mol2 = map(lambda \ v:[T2[0]+((v[0]*U[0][0])+(v[1]*U[1][0])+(v[2]*U[2][0])), \ T2[1]+((v[0]*U[0][1])+(v[1]*U[1][1])+(v[2]*U[2][1])), \ T2[2]+((v[0]*U[0][2])+(v[1]*U[1][2])+(v[2]*U[2][2]))], \ stored.mol2) Or FinalPoint = TranslationVector + (3DVector * 3x3RotationMatrix). If I recall correctly, you need to rotate the points to origin to avoid an affine operation. The Kabsch algorithm in Python is at: http://www.pymolwiki.org/index.php/Kabsch HTH, -- Jason On Thu, 2005-08-18 at 18:26 -0700, pymol-users-request@... wrote: > Message: 4 > Date: Wed, 17 Aug 2005 18:03:09 -0700 (PDT) > From: Nat Echols > To: pymol-users@... > Subject: [PyMOL] applying matrices to objects > > > Is there a simple tool for taking a rotation and translation matrix - > in > this case, the BIOMT records from a PDB file - and applying it to an > object? Doesn't necessarily have to be in PyMOL; a simple > script/program > would do. > > thanks, > Nat -- Jason Vertrees (javertre@...) BSCB Graduate Student @ UTMB, Galveston http://www.bscb.utmb.edu :: BSCB @ UTMB http://best.utmb.edu :: B.E.S.T. @ UTMB http://pymolwiki.org :: PyMol Wiki ```