On 16/10/2011 6:12 AM, Broadbent, Richard wrote:
Have you thought about using the cross product. If you took the cross
product of the unit vector in the direction of every atom starting
from atom 1 then moved on to starting from atom 2 and so on you would
have a set of vectors normal to every group of three atoms. If you
then normalised them and defined one to be pointing upwards you could
then ensure using dot products that they all pointed the same way, a
condition like if a.b <0 b=-b would probably work you could then take
the mean of the vectors. This should give an average normal vector to
the plane of the molecule.
If you're going to be doing this a lot I would suggest removing the
inherent double counting (r12=-r21).
You could also think about weighting normal vectors in the averaging,
for instance you could do it based on the sine of the angle between
the vectors which generated them, or the mass of the atoms (H's will
more out of plane than carbons typically)
Calculating the principle axes of inertia is a better approach. There's
a GROMACS tool that does it.
Mark
Hope that's helpful
Richard
On 15/10/2011 15:45, "xiaodong huang" <[email protected]> wrote:
I send this message yesterday, but I myself donot see this
message, so, I send it again, very sorry for the spam.
Dear gmxer's
I am simulating a protein, want to calculate the normal of plane
for Tryptophan residue amino acid in that protein.
We need to take into account that, in simulation, atoms of TRP
vibrate all the time, and they are not always on the same plane:
If they were on the same plane in my simulation, to calculate the
normal would be rather straighforward.
As those atoms are not on the same plane, I think my calculation
should be something like least square fitting. I look at g_rms
command,
and plan to calculate the normal in following steps:
1. create a Tryptophan with ideal configuration, where all 8 C
atom and N atom (except CB atom) should be in the same plane,
I put these 9 atoms in xy plane, and the normal of this TRP
molecule is just z axis
2.I then calculate the rms between the TRP residue in my
simulation and that ideal TRP molecule
3.If I know the rotate matrix (e.g. how to rotate the TRP in my
simulation in the least-squares fitting of rms calculation), then I
just rotate z axis (0,0,1) back ( in other words, multiple z
axis (0,0,1) with the inverse of that rotate matrix) to get the
plane normal
for TRP in my simulation.
So, I am wondering how to know the the rotate matrix when g_rms do
the least-squares fitting? Is that in the comparison matrix
dumped by the -bin option? If so, how to read the rotate matrix
from that binary file produced by -bin option?
Or, if there is other way that I can calculate plane normal for TRP?
Thank you so much for your kind help.
yours
xiaodong
school of chem, ANU
------------------------------------------------------------------------
--
gmx-users mailing list [email protected]
http://lists.gromacs.org/mailman/listinfo/gmx-users
Please search the archive at
http://www.gromacs.org/Support/Mailing_Lists/Search before posting!
Please don't post (un)subscribe requests to the list. Use the
www interface or send it to [email protected].
Can't post? Read http://www.gromacs.org/Support/Mailing_Lists