From: Salvador H-V (chava09hv_at_gmail.com)
Date: Thu Sep 02 2010 - 12:59:38 CDT

Dear All,

Sorry to bother, but I am working with a made in home coarse grained (CG)
system.
I am trying to use the orient.tcl script to alignment a molecule to its
principal axes, but I am facing some troubles.
Running the suggested commands in:
http://www.ks.uiuc.edu/Research/vmd/script_library/scripts/orient/
At some point I got the following message:
missing operand at _@_in expression "_@_* - *"

I am not a very good at tcl, but loking inside the scritp it seems that the
problem arise in the procedure:
proc Orient::orient { sel vector1 vector2 {weights domass}}

when it tries to calculate a cross product
set rotvec [veccross $vec1 $vec2]

where some lines above these vector were defined as:
set vec1 [vecnorm $vector1]
set vec2 [vecnorm $vector2]

But looking inside the script vmd_plg.tcl this procedure obtains the
magnitud (norm) of a vector:
proc vecnorm {v} {
    return [expr sqrt([vecdot $v $v])]
}

Then the problem is because we are calling the procedure: proc veccross {b1
b2} which calculates the cross product with two scalars instead of two
vectors. What I believe is that we have to calculate the cross product
with:
rotvec [veccross $vector1 $vector2]

Is that right? or i got lost at some point?

Any help or suggestion will be greatly appreciated.,

Thanks a lot,

Salvador Herrera