Dear all
I am using PDBCUR (CCP4 6.5.020) to rotate a molecule around the origin
by issuing the following command:
rotate * 20 40 60 0 0 0
According to the PDBCUR documentation
(http://www.ccp4.ac.uk/dist/html/pdbcur.html), the rotate command should
correspond to:
"... Euler rotation OF SELECTED ATOMS through angles alpha, beta and
gamma (degrees) as applied to the initial Z-axis, new Y-axis and newest
Z-axis, correspondingly"
This is, to my knowledge, the definition of Eulerian angles that is
supposedly used by most (all?) CCP4 programs.
Hovever, it seems to me that PDBCUR actually applies the given rotation
to the reference AXES (not to atoms as stated in the documentation), and
the INVERSE rotation (-gamma, -beta, -alpha) = (-60, -40, -20) is
applied to the atomic coordinates.
I have checked this by superposing the input to the output PDB file
through LSQKAB (see script and output here below).
The same operation carried out by PDBSET through the command :
rotate euler <alpha> <beta> <gamma>
correctly rotates the atom coordinates by (alpha, beta, gamma) (also
checked through LSQKAB, see script and log here below).
By further looking at the CCP4 documentation about the Euler angle
convention, I found some confusing points.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
In "Rotation Matrices/Eulerian Angles"
(http://www.ccp4.ac.uk/dist/html/rotationmatrices.html#eulerian_angles)
it is said that:
"...(alpha,beta,gamma) are the Eulerian angles which rotate the
coordinates of crystal 2 (the model) first through gamma about the
initial Z-axis, then through beta about the new position of the Y-axis,
then through alpha about the final Z-axis. Positive rotation is
clockwise when looking along the axis from the origin."
It seems to me, however (on the basis of the given equations) that FIXED
Z and Y axes must be considered instead :
(alpha,beta,gamma) =
rotation by gamma around FIXED Z,
then rotation by beta around FIXED Y,
then rotation by alpha around (the initial) Z.
If "moving" axes are to be considered (as in the definition above), than
alpha and gamma must be swapped.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
In the same document, it is written :
"... This description of the rotation is equivalent to keeping the
coordinates fixed and rotating the AXES [I,J,K] first through alpha,
then through beta, then through gamma."
Shouldn't it be "-alpha", "-beta" and "-gamma" ?
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
In the ROTMAT documentation
(http://www.ccp4.ac.uk/dist/html/rotmat.html) the description (NOT THE
EQUATIONS) of rotations is different yet :
"... then it is obvious that rotation [R] can be seen either
as rotating the axes [I J K ] by ALPHA then BETA then GAMMA or
as rotating coordinates [X0] by -GAMMA then -BETA then -ALPHA"
Shouldn't ALL six signs in the above statement be inverted ?
Stefano Trapani
Maître de Conférences
http://www.cbs.cnrs.fr/index.php/fr/apropos/annuaire/personnel?PERS=Stefano%20Trapani
-------------------------------------
Centre de Biochimie Structurale (CBS)
29 rue de Navacelles
34090 MONTPELLIER Cedex, France
Tel : +33 (0)4 67 41 77 29
Fax : +33 (0)4 67 41 79 13
-------------------------------------
Université de Montpellier
CNRS UMR 5048
INSERM UMR 1054
-------------------------------------
###########################################################
STANDARD OUTPUT FROM SCRIPT (SEE BELOW)
lsqkab_after_PDBSET.log: CROWTHER (Euler) ALPHA BETA GAMMA 20.00296
39.99412 59.99450
lsqkab_after_PDBCUR.log: CROWTHER (Euler) ALPHA BETA GAMMA 119.99540
40.01139 159.97798
lsqkab_after_PDBSET.log: SPHERICAL POLARS OMEGA PHI CHI 29.51690
70.00430 87.91197
lsqkab_after_PDBCUR.log: SPHERICAL POLARS OMEGA PHI CHI 150.47926
-109.99136 87.94412
lsqkab_after_PDBSET.log: DIRECTION COSINES OF ROTATION AXIS
0.16847 0.46298 0.87021
lsqkab_after_PDBCUR.log: DIRECTION COSINES OF ROTATION AXIS
-0.16846 -0.46305 -0.87018
###########################################################
#!/bin/csh
set angles = (20 40 60)
cat > t.pdb <<EOF
ATOM 1 N GLY A 1 -8.442 -3.290 2.445 1.00 20.00
N
ATOM 2 CA GLY A 1 -7.846 -4.562 2.156 1.00 20.00
C
ATOM 3 C GLY A 1 -7.950 -5.191 0.743 1.00 20.00
C
ATOM 4 O GLY A 1 -8.935 -5.885 0.491 1.00 20.00
O
EOF
# ROTATE t.pdb by using PDBSET
pdbset xyzin t.pdb xyzout t_rot_by_pdbset.pdb <<EOF > pdbset.log
rotate euler ${angles}
end
EOF
# ROTATE t.pdb by using PDBCUR
pdbcur xyzin t.pdb xyzout t_rot_by_pdbcur.pdb <<EOF > pdbcur.log
write pdb
rotate * ${angles} 0 0 0
end
EOF
# CHECK the applied rotations (superpose t.pdb to rotated pdbs by using
LSQKAB)
lsqkab xyzinm t.pdb xyzinf t_rot_by_pdbset.pdb <<EOF >
lsqkab_after_PDBSET.log
fit residue all 1 to 1
match 1 to 1
end
EOF
lsqkab xyzinm t.pdb xyzinf t_rot_by_pdbcur.pdb <<EOF >
lsqkab_after_PDBCUR.log
fit residue all 1 to 1
match 1 to 1
end
EOF
# LOOK at log files
grep "Euler" lsqkab_after_PDBSET.log lsqkab_after_PDBCUR.log
grep "^ SPHERICAL" lsqkab_after_PDBSET.log lsqkab_after_PDBCUR.log
grep "^ DIRECTION" lsqkab_after_PDBSET.log lsqkab_after_PDBCUR.log
###########################################################
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
|