How to calculate dihedral (not torsion) angles?
Antonio
osrisfol at ssmain.uniss.it
Wed Mar 17 06:29:17 EST 1999
We know how to calculate a torsion angle about an axis, for example
if we have 4 points in 3-D (for example, a butane molecule)
A D
r1 \ / r3
B- - - -C
r2
in which the points A, B, C and D are connected by the vectors
r1, r2 and r3, we can obtain the torsion angle phi about r2 by applying:
p1= r1 x r2
p2= r2 x r3
p1 . p2 = |p1| |p2| cos (phi)
r2 . (p2 x p1) = |p1| |p2| |r2| sin(phi)
and finally phi=atan[sin(phi)/cos(phi)] through a function like ATAN2
in Fortran. Phi is obviously also the angle between the A-B-C and B-C-D
planes.
The problem is, how to calculate a dihedral angle when the four centers
defining the two planes are
not directly connected? For example, if we have a six ring
molecule:
1 ---2
/ \
6 3
\ /
5 -- 4
and we need the angle between the 1-3-5 and 1-2-3 planes, now there isn't
a common bond, as r2 in the previous case (indeed now we can't
speak of 'torsion' angle, but more generally of 'dihedral', even if both are
angles between planes). Therefore, the previous expressions
aren't directly applicable. I tried to define a 'dummy' common bond, e.g
1--3, in order to apply the above expressions to a system like:
5 2
\ /
1--------3
actually, with this trick we should obtain the angle between planes
5-1-3 and 1-3-2, which should be the same as that between 1-3-5
and 1-2-3 planes. However, this doesn't seem to work well. Maybe
the last assumption (dihedral 513/132= dihedral 135/123) is not
correct, or some adjustment are needed in the above expressions, to make
them valid in this case? Or do you know of a
different method to evaluate such dihedral (not torsion) angles?
Thanks in advance
Antonio
e-mail
osrisfol at ssmain.uniss.it
More information about the Molmodel
mailing list