• ## Outreach

From: Castro Martinez, Camila (camila.castro_at_tu-dortmund.de)
Date: Wed Sep 20 2023 - 02:53:52 CDT

Dear all

I'm looking to calculate the angle between a vector and a plane over a trajectory using tcl script. The code I've been using is the following:

set outfile [open output.dat w]
set nf [molinfo top get numframes]

#for the vector
set v1 [atomselect top "residue 1"]
set v2 [atomselect top "residue 2"]

#for the plane
set n1 [atomselect top "residue 1"]
set n2 [atomselect top "residue 2"]
set n3 [atomselect top "residue 3"]

for { set i 0 } { \$i < \$nf } { incr i } {

\$v1 frame \$i
\$v2 frame \$i
set com1 [measure center \$v1]
set com2 [measure center \$v2]
set m2 [vecsub \$com2 \$com1]
set m2mag [veclength \$m2]

\$n1 frame \$i
\$n2 frame \$i
\$n3 frame \$i
set com3 [measure center \$n1]
set com4 [measure center \$n2]
set com5 [measure center \$n3]
set p1 [vecsub \$com4 \$com3]
set p2 [vecsub \$com5 \$com4]
set cn [veccross \$p1 \$p2]
set cnmag [veclength \$cn]

set dotp [vecdot \$m2 \$cn]
set theta [expr \$conv * acos(\$dotp / (\$m2mag * \$cnmag))]
if { \$theta > 90.0 } {
set theta [expr 180.0 - \$theta]
}

puts \$outfile "[expr (\$i + 1)] \$theta"
}

close \$outfile

This commands actually worked, but the results are not what I expected. When I checked in Chimera for example the angle should be 70°, and the angle calculated with this script was 10°. This is clearly not correct. Where have I gone wrong in the code? or am I missing something? Thanks in advance--_000_092405a8be5346ea8ba47fcc50853f16tudortmundde_--