From: Peter Mawanga (peter.mawanga.lagos_at_gmail.com)
Date: Tue Mar 20 2018 - 13:22:18 CDT

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