Re: [AMBER] Rodrigues' rotation about a specified vector

From: Vaibhav Dixit <>
Date: Thu, 12 Aug 2021 14:35:05 +0900

Dear David,
I wrote the following nab script but I think my usage of the trans4
function is not correct.
I tried using "matrix trans4", but I'm not sure how to define string
tail/head. I'm guessing that for float I should write 0.0 since I want the
FE atom to be translated to the origin.
Just to make things clearer, I want the translation to work such that all
the other atoms retain their relative positions (distances, angles and
torsions w.r.t Fe).
Then, the rotation should keep the FE fixed at the origin and move other
atoms such that FeS vector points in the negative z-direction. For this,
the unit rotation vector is 0.245 -0.969 0.000 and the angle is 50.37
degrees (these I have calculated these using the cross product of the FeS
vector and the unit -z vector).
molecule m;
m = getpdb( "test3.pdb" );
matrix trans4 ( m, "::FE’", 0.0 );
putpdb( "nab-test3.pdb", m );

I'm calling it "nab" and then doing ../a.out on the
Nothing gets printed on the terminal and no file is written.
The input test3.pdb is attached which contains a truncated heme and axial
residue to keep things simple. nap-script.c file is also attached herewith.
Once this works, then I will use the full protein+heme pdb file to get the
final translated+rotated structure for further modeling.
I'm guessing that these commands work on selected atoms residues only, thus
I'll have to loop through all the atoms or residues for getting the
expected result, right?
Please do give your valuable suggestions and insightful comments on these
Thank you very much for the same.
Best regards.


Dr. Vaibhav A. Dixit,

Visiting Scientist at the Manchester Institute of Biotechnology (MIB), The
University of Manchester, 131 Princess Street, Manchester M1 7DN, UK.
Assistant Professor,
Department of Pharmacy,
Birla Institute of Technology and Sciences Pilani (BITS-Pilani),
VidyaVihar Campus, street number 41, Pilani, Rajasthan 333031.
Phone No. +91 1596 255652, Mob. No. +91-7709129400,


NCBI bibliography:

P Please consider the environment before printing this e-mail

On Wed, Aug 11, 2021 at 4:10 AM David A Case <>

> On Wed, Aug 11, 2021, Vaibhav Dixit wrote:
> >I am trying to translate a specific atom to the origin and then perform
> >Rodrigues' rotation about a specific axis (vector) by a specific angle.
> >Thus am curious to know if this can be performed using ambertools?
> >Also it would be great if one could directly use a pdb for this thus
> >avoiding the need to create parameter and topology file.
> This is exactly the sort of thing NAB was originally designed to do.
> Grab the Amber16 Reference manual (from,
> and look at Sections 36.11 and 37.15. In brief, you would write a script
> something like this:
> getpdb (load a pdb file)
> trans4 (to translate some atom to the origin)
> rot4 (to rotate about some vector by some amount)
> trans4 (optional, to undo the first translation)
> putpdb (output the modified coordinates)
> [Note: the NAB code is still in AmberTools21, but one has to visit the old
> Manual to get the instructions.]
> ...good luck....dac
> _______________________________________________
> AMBER mailing list

AMBER mailing list

Received on Wed Aug 11 2021 - 23:00:02 PDT
Custom Search