Grant

This is typically done by calculating the inertia tensor
based on any coordinates you want to consider (usually CA,C,N)
[x.x x.y x.z]
[x.y y.y y.z]
[x.z y.z z.z]

Then "diagonalize" this using a standard eigen routing - many around,
sort the eigen vectors by eigen value and the longest scaled eigen vector
is the best line through your atoms.

There are many such code examples around if you don't want to cook your
own and if you get stuck I can send you
one of mine in fortran, C, Java.

There are a couple of catches that sometimes cause problems - beta-strands
can be a bit flat - and the 3rd eigen vector can be very short resulting in
instability of the method.  Using this method using the standard tensor
matrix can result in it blowing up (mathematically).  There is a cross term
method, I can send you the maths or code - though secondary structure is not normally
a problem.

If the secondary structure is a bit short then the tensor is not what a human
would think is a best line, though the maths is correct.  Bent strands are
also a problem.

The method also works for calculating planes (2 largest eigen vectors) for beta sheet.

Tom

On 03/02/14 23:06, GRANT MILLS wrote:
Dear all,

I'm wanting to simplify B-strands in a PDB and my idea was to create a vector which approximates the alpha carbons through the strand. I was thinking I could use some kind of least squares regression but it gets very complicated when extended into the 3rd dimension. Is there a simpler way to do this, am I over thinking the problem?

This was helpful http://en.wikipedia.org/wiki/User:Vossman/3D_Line_Regression <http://en.wikipedia.org/wiki/User:Vossman/3D_Line_Regression> but I'm still struggling

Thanks,
Grant

--
Tom Oldfield , PhD
Team Leader
Head of PDBe Databases and Services
Protein Databank in Europe
European Bioinformatics Institute (EMBL-EBI)
European Molecular Biology Laboratory
Wellcome Trust Gemome Campus
Hinxton
Cambridge  CB10 1SD
United Kingdom
Tel : ++44 (0) 1223 492526

Reply via email to