## VMD-L Mailing List

**From:** Ashar Malik (*asharjm_at_gmail.com*)

**Date:** Wed Mar 21 2018 - 13:34:12 CDT

**Next message:**Ashar Malik: "Re: Decompose Transformation Matrix to Rotations and Translations along XYZ axes"**Previous message:**Peter Mawanga: "Decompose Transformation Matrix to Rotations and Translations along XYZ axes"**In reply to:**Peter Mawanga: "Re: Propagating PDB coordinates using Quaternion matrix"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ] [ attachment ]

I will have a play with these files and get back to you at some point later

today. Meanwhile I have added some thoughts on your other query. Hopefully

that will give you another angle to look at things (pun intended).

On Mar 22, 2018 06:27, "Peter Mawanga" <peter.mawanga.lagos_at_gmail.com>

wrote:

*> Hello Ashar
*

*>
*

*> I think this problem (M^2=I) could be overcome if the rotations and
*

*> translations are done individually? I have posted another query in this
*

*> forum regarding the same. Please have a look as feasible.
*

*>
*

*> On Wed, Mar 21, 2018 at 2:06 PM, Peter Mawanga <
*

*> peter.mawanga.lagos_at_gmail.com> wrote:
*

*>
*

*>> Hello Ashar
*

*>>
*

*>> I was running the tests with "LFcin P-20" peptide. This time I used Hex
*

*>> program instead and docked the peptide to itself (i.e. both ligand and
*

*>> receptor are the same peptide with same conformation).
*

*>>
*

*>> The transformation matrix for ligand (receptor is fixed/stationary):
*

*>>
*

*>> -8.055069e-01 1.664229e-01 5.687372e-01 6.593901e+01
*

*>> 2.020147e-01 9.793824e-01 -4.700835e-04 -1.096723e+01
*

*>> -5.570895e-01 1.145146e-01 -8.225191e-01 -3.810996e+00
*

*>> 0.000000e+00 0.000000e+00 0.000000e+00 1.000000e+00
*

*>>
*

*>> This matrix could be obtained from VMD too with "measure fit" command and
*

*>> with backbones of the receptor and ligand selected.
*

*>>
*

*>> I would like to add the next monomer to the complex (after ligand) such
*

*>> that the receptor-ligand docking pattern propagates further, as shown in
*

*>> the paper. Most probably it would form a ring structure, as per the current
*

*>> docking observation.
*

*>>
*

*>> Please find the receptor, ligand and complex PDB coordinate files
*

*>> attached below.
*

*>>
*

*>> On Wed, Mar 21, 2018 at 11:46 AM, Ashar Malik <asharjm_at_gmail.com> wrote:
*

*>>
*

*>>> Hi Peter,
*

*>>>
*

*>>> I originally thought of writing a very long reply, but decided that it
*

*>>> would be easier to just ask you if you could give me the structure that you
*

*>>> are working with and how you want to "propagate" it and I will do it for
*

*>>> you and explain how I did it. The process is quite trivial and explaining
*

*>>> it is just going to exchange a lot of emails between us. So if you give me
*

*>>> the structure it will save time.
*

*>>>
*

*>>> Best,
*

*>>> /A
*

*>>>
*

*>>>
*

*>>> On Wed, Mar 21, 2018 at 7:22 AM, Peter Mawanga <
*

*>>> peter.mawanga.lagos_at_gmail.com> wrote:
*

*>>>
*

*>>>> Hello Ashar
*

*>>>>
*

*>>>> After docking the same peptide conformer to itself, the authors of the
*

*>>>> paper tried to add more copies of the conformer using the same (not sure
*

*>>>> about that!) rotational and translation parameters represented by the 3D
*

*>>>> matrix. I am getting the same exact values upon using "measure fit" command
*

*>>>> in VMD. The slight difference after second transformation might be an
*

*>>>> artefact of decimal precision (in my opinion).
*

*>>>>
*

*>>>> My aim was to get propagating amyloid fibrils as mentioned in the
*

*>>>> study. Maybe I am missing some matrix operation in between.
*

*>>>>
*

*>>>> On Tue, Mar 20, 2018 at 10:45 PM, Ashar Malik <asharjm_at_gmail.com>
*

*>>>> wrote:
*

*>>>>
*

*>>>>> So I did a quick test with the matrix you have provided. It turns out
*

*>>>>> that the matrix you have provided is supposed to give the result you are
*

*>>>>> getting.
*

*>>>>>
*

*>>>>> So the first time you multiply it, it will generate a transformation
*

*>>>>> ds1 and the second time it will take you back to the parent structure
*

*>>>>> (almost). It doesn't recover the exact structure but it is quite close.
*

*>>>>>
*

*>>>>> It is very likely that the program that generated this transformation
*

*>>>>> matrix did this on purpose (or it just happened by chance???) so the
*

*>>>>> operation would become order free (this is my thought and might be
*

*>>>>> completely wrong). Meaning it didn't matter which structure you applied the
*

*>>>>> matrix to, you would get the other structure. So e.g. if you had applied it
*

*>>>>> to the initial conformation you obtain the final one and applying it to the
*

*>>>>> final would return the initial.
*

*>>>>>
*

*>>>>> If you want the parent structure to undergo a certain transformation
*

*>>>>> and for all subsequent iterations to be replicas of that - you should
*

*>>>>> perhaps compute the transformation that does that (which the current one
*

*>>>>> doesn't).
*

*>>>>>
*

*>>>>> However, I think that is not what you want to do. Having a quick skim
*

*>>>>> of the paper attached, they applied the transformation to a structure just
*

*>>>>> once. It appears (i think) that they used different conformers 1 selected
*

*>>>>> from each of the clusters and applied the transformation once so that it
*

*>>>>> comes to a position next to the dimer (i think).
*

*>>>>>
*

*>>>>> You however are applying the same transformation twice? Why?
*

*>>>>>
*

*>>>>> On Wed, Mar 21, 2018 at 4:17 AM, Peter Mawanga <
*

*>>>>> peter.mawanga.lagos_at_gmail.com> wrote:
*

*>>>>>
*

*>>>>>> Hello Ashar
*

*>>>>>>
*

*>>>>>> Thanks for the quick revert. I am first doing rotation along three
*

*>>>>>> Euler angles (denoted by 3 x 3 matrix excluding the 4th row and column) and
*

*>>>>>> then applying the translation along xyz axes (4th column entries). Please
*

*>>>>>> find the matrix below.
*

*>>>>>>
*

*>>>>>> -8.260116e-01 -3.044969e-01 -4.743274e-01 5.280182e+01
*

*>>>>>> -3.042386e-01 -4.675523e-01 8.299601e-01 8.201990e+00
*

*>>>>>> -4.744932e-01 8.298653e-01 2.935639e-01 1.421723e+01
*

*>>>>>> 0.000000e+00 0.000000e+00 0.000000e+00 1.000000e+00
*

*>>>>>>
*

*>>>>>> The structure is a small peptide (20 residues long) used as a test. I
*

*>>>>>> got the transformation matrix by comparing the initial and final
*

*>>>>>> coordinates obtained from a docking server.
*

*>>>>>>
*

*>>>>>> Yes, I am still trying to perform the same operation i.e. do multiple
*

*>>>>>> transformations. I have attached a representative image below that denotes
*

*>>>>>> my objective.
*

*>>>>>>
*

*>>>>>>
*

*>>>>>> On Tue, Mar 20, 2018 at 8:30 PM, Ashar Malik <asharjm_at_gmail.com>
*

*>>>>>> wrote:
*

*>>>>>>
*

*>>>>>>> Your transformation matrix was calculated for a certain angle of
*

*>>>>>>> rotation. Right? What is that angle?
*

*>>>>>>> If the angle was say 180 degrees than 2 rotations will bring the
*

*>>>>>>> structure back to its starting point.
*

*>>>>>>>
*

*>>>>>>> What is the structure that you are working with? Is it a protein?
*

*>>>>>>> something symmetric?
*

*>>>>>>>
*

*>>>>>>> Are you still trying to do the same thing as before? By before I
*

*>>>>>>> mean when you question was originally answered?
*

*>>>>>>>
*

*>>>>>>> On Wed, Mar 21, 2018 at 3:29 AM, Peter Mawanga <
*

*>>>>>>> peter.mawanga.lagos_at_gmail.com> wrote:
*

*>>>>>>>
*

*>>>>>>>> Hello VMD users
*

*>>>>>>>>
*

*>>>>>>>> I want to apply a 4*4 Quaternion Transformation Matrix "M" to a set
*

*>>>>>>>> of PDB coordinates to get propagating structures.
*

*>>>>>>>>
*

*>>>>>>>> Upon applying the matrix M successively to the PDB coordinates, I
*

*>>>>>>>> don't get propagating structures. But instead get back to the starting
*

*>>>>>>>> coordinates after second successive transformation.
*

*>>>>>>>>
*

*>>>>>>>> The first transformation works well and gives me a dataset "ds2".
*

*>>>>>>>> However, upon applying the transformation matrix M to ds2, I get back to
*

*>>>>>>>> the original dataset "ds1", instead of a distinct dataset "ds3".
*

*>>>>>>>>
*

*>>>>>>>> Is there any way of escaping this? Please check the text and link
*

*>>>>>>>> given below:
*

*>>>>>>>>
*

*>>>>>>>> "Then we consecutively docked to each of the dimers additional
*

*>>>>>>>> copies of the centroid (one at a time) with docking rotation and
*

*>>>>>>>> translation parameters, as were used in the initial docking complex
*

*>>>>>>>> configuration selected by the Hex program, to extend the dimers. This
*

*>>>>>>>> procedure used three-dimensional (3D) transformation matrices that were
*

*>>>>>>>> preliminarily calculated for each of the starting dimers."
*

*>>>>>>>>
*

*>>>>>>>> https://content.iospress.com/download/journal-of-alzheimers-
*

*>>>>>>>> disease/jad131589?id=journal-of-alzheimers-disease%2Fjad131589
*

*>>>>>>>>
*

*>>>>>>>>
*

*>>>>>>>> Forwarded conversation
*

*>>>>>>>> Subject: vmd-l: Writing all transformed coordinates into single
*

*>>>>>>>> file
*

*>>>>>>>> ------------------------
*

*>>>>>>>>
*

*>>>>>>>> From: Peter Mawanga <peter.mawanga.lagos_at_gmail.com>
*

*>>>>>>>> Date: Thu, Mar 15, 2018 at 12:53 AM
*

*>>>>>>>> To: Vmd l <vmd-l_at_ks.uiuc.edu>
*

*>>>>>>>>
*

*>>>>>>>>
*

*>>>>>>>> Dear VMD users
*

*>>>>>>>>
*

*>>>>>>>> I am trying to apply a transformation matrix successively to a set
*

*>>>>>>>> of pdb coordinates and save the coordinates after each transformation into
*

*>>>>>>>> a single pdb file. I have been able to write the coordinates separately to
*

*>>>>>>>> multiple files though. My code (attempt) is given below:
*

*>>>>>>>>
*

*>>>>>>>> set sel [atomselect top all]
*

*>>>>>>>> set matrix {<4 * 4 transformation matrix>}
*

*>>>>>>>> set n {10}
*

*>>>>>>>>
*

*>>>>>>>> for {set i 0} {$i < $n} {incr i} {
*

*>>>>>>>> animate write pdb $i.pdb
*

*>>>>>>>> $sel move $matrix
*

*>>>>>>>> $sel update
*

*>>>>>>>> }
*

*>>>>>>>>
*

*>>>>>>>> $sel delete
*

*>>>>>>>>
*

*>>>>>>>> The "beg <first frame> end <last frame>" could not be applied in
*

*>>>>>>>> this case, since only one frame is involved. Kindly let me know your
*

*>>>>>>>> suggestions.
*

*>>>>>>>>
*

*>>>>>>>> --
*

*>>>>>>>> Cheers
*

*>>>>>>>> Peter
*

*>>>>>>>>
*

*>>>>>>>> ----------
*

*>>>>>>>> From: Vermaas, Joshua <Joshua.Vermaas_at_nrel.gov>
*

*>>>>>>>> Date: Thu, Mar 15, 2018 at 2:21 AM
*

*>>>>>>>> To: Peter Mawanga <peter.mawanga.lagos_at_gmail.com>, Vmd l <
*

*>>>>>>>> vmd-l_at_ks.uiuc.edu>
*

*>>>>>>>>
*

*>>>>>>>>
*

*>>>>>>>> Hi Peter,
*

*>>>>>>>>
*

*>>>>>>>> If I understand this correctly, you start from one molecule loaded
*

*>>>>>>>> with a single frame, apply a single transformation matrix n times, and end
*

*>>>>>>>> up with n+1 total frames written out to some file. If so, you just need to
*

*>>>>>>>> call "animate dup" at the appropriate time, making your script look like
*

*>>>>>>>> this:
*

*>>>>>>>>
*

*>>>>>>>>
*

*>>>>>>>> set sel [atomselect top all]
*

*>>>>>>>> set matrix {<4 * 4 transformation matrix>}
*

*>>>>>>>> set n {10}
*

*>>>>>>>>
*

*>>>>>>>> for {set i 1} {$i <= $n} {incr i} {
*

*>>>>>>>> animate dup frame [expr {$i-1}] top
*

*>>>>>>>> $sel frame $i
*

*>>>>>>>> $sel move $matrix
*

*>>>>>>>> }
*

*>>>>>>>> animate write pdb $i.pdb
*

*>>>>>>>> $sel delete
*

*>>>>>>>>
*

*>>>>>>>>
*

*>>>>>>>> The other (slower) alternative is to load your initial pdb multiple
*

*>>>>>>>> times until you have as many frames as you need, and then apply your
*

*>>>>>>>> transformation successively.
*

*>>>>>>>>
*

*>>>>>>>> -Josh
*

*>>>>>>>>
*

*>>>>>>>> ----------
*

*>>>>>>>> From: Peter Mawanga <peter.mawanga.lagos_at_gmail.com>
*

*>>>>>>>> Date: Thu, Mar 15, 2018 at 6:05 PM
*

*>>>>>>>> To: "Vermaas, Joshua" <Joshua.Vermaas_at_nrel.gov>
*

*>>>>>>>> Cc: Vmd l <vmd-l_at_ks.uiuc.edu>
*

*>>>>>>>>
*

*>>>>>>>>
*

*>>>>>>>> Hello Josh
*

*>>>>>>>>
*

*>>>>>>>> Thanks a lot! Yes what you have written is the case. I had never
*

*>>>>>>>> used "dup" before. The above command works except:
*

*>>>>>>>>
*

*>>>>>>>> animate dup frame [expr {$i-1}] top
*

*>>>>>>>>
*

*>>>>>>>> Needs to be replaced with:
*

*>>>>>>>>
*

*>>>>>>>> animate dup frame [expr {$i-1}] <molID>
*

*>>>>>>>>
*

*>>>>>>>> I then replaced all the "END" keywords in the output PDB file with
*

*>>>>>>>> "TER"; as I want to view all of the transformations together.
*

*>>>>>>>>
*

*>>>>>>>> --
*

*>>>>>>>> Cheers
*

*>>>>>>>> Peter
*

*>>>>>>>>
*

*>>>>>>>>
*

*>>>>>>>>
*

*>>>>>>>>
*

*>>>>>>>> --
*

*>>>>>>>> Cheers
*

*>>>>>>>> Peter
*

*>>>>>>>>
*

*>>>>>>>
*

*>>>>>>>
*

*>>>>>>>
*

*>>>>>>> --
*

*>>>>>>> Best,
*

*>>>>>>> /A
*

*>>>>>>>
*

*>>>>>>
*

*>>>>>>
*

*>>>>>>
*

*>>>>>> --
*

*>>>>>> Cheers
*

*>>>>>> Peter
*

*>>>>>>
*

*>>>>>
*

*>>>>>
*

*>>>>>
*

*>>>>> --
*

*>>>>> Best,
*

*>>>>> /A
*

*>>>>>
*

*>>>>
*

*>>>>
*

*>>>>
*

*>>>> --
*

*>>>> Cheers
*

*>>>> Peter
*

*>>>>
*

*>>>
*

*>>>
*

*>>>
*

*>>> --
*

*>>> Best,
*

*>>> /A
*

*>>>
*

*>>
*

*>>
*

*>>
*

*>> --
*

*>> Cheers
*

*>> Peter
*

*>>
*

*>
*

*>
*

*>
*

*> --
*

*> Cheers
*

*> Peter
*

*>
*

**Next message:**Ashar Malik: "Re: Decompose Transformation Matrix to Rotations and Translations along XYZ axes"**Previous message:**Peter Mawanga: "Decompose Transformation Matrix to Rotations and Translations along XYZ axes"**In reply to:**Peter Mawanga: "Re: Propagating PDB coordinates using Quaternion matrix"**Messages sorted by:**[ date ] [ thread ] [ subject ] [ author ] [ attachment ]