From: Peter Mawanga (peter.mawanga.lagos_at_gmail.com)
Date: Tue Mar 20 2018 - 09:29:06 CDT

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