• ## Outreach

From: Josh Vermaas (vermaas2_at_illinois.edu)
Date: Fri Oct 10 2014 - 08:19:20 CDT

Your v1 definition is backwards (at least when comparing it to the way
VMD computes it. If you don't mind looking at C source, its in
utilities.C). I think what you would find is that your implementation as
written would consistently give an opposite sign (not always give a
positive sign as you hinted at), and the reason is that instead of a
+v1, you are feeding a -v1 into the equations which propagates to
flipping the sign of the final result.
-Josh

On 10/09/2014 10:51 PM, Aiswarya Pawar wrote:
> Brian and Josh, Thank you so much for reply.
>
>
> Why am doing this instead of dihedral command is because i wanted to
> check individual values for cos and sin. So is there anyway i could
> rectify the signs it giving?
>
>
>
> Thank you,
> Aiswarya
>
> On Fri, Oct 10, 2014 at 12:02 AM, Aiswarya <aiswarya.pawar_at_gmail.com
> <mailto:aiswarya.pawar_at_gmail.com>> wrote:
>
> Dear Users,
> Am trying to calculate rotational angle for a given 4 atoms, am
> getting the value of angle correct but its not differentiating
> between +ve and -ve. Ie if the angle between 4 atoms is -177
> degrees am getting 177 degree, and there is no -ve sign to it.
> Below is the script i have used.
>
>
> > # Computes the dihedral angle of a bond
> >
> > set coord1 [lindex [[atomselect top "index 86" ] get {x y z}] 0]
> > set coord2 [lindex [[atomselect top "index 89" ] get {x y z}] 0]
> > set coord3 [lindex [[atomselect top "index 75" ] get {x y z}] 0]
> > set coord4 [lindex [[atomselect top "index 23"] get {x y z}] 0]
> > set v1 [vecsub \$coord1 \$coord2]
> > set v2 [vecsub \$coord3 \$coord2]
> > set v3 [vecsub \$coord4 \$coord3]
> >
> > set cross1 [vecnorm [veccross \$v2 \$v1]]
> > set cross2 [vecnorm [veccross \$v2 \$v3]]
> > set cos [vecdot \$cross1 \$cross2]
> > set rotvec [veccross \$cross1 \$cross2]
> > set sin [veclength \$rotvec]
> > set angle [expr atan2(\$sin,\$cos)*(180.0/3.14)]
> > return \$angle
>
> Please someone tell me were am going wrong.
>
>
> Thank you so much,
> Aiswarya
>
>