Chimera simply calls numpy.linalg.svd (singular value decomposition) on an array of the xyz coordinate (after the centroid position has been subtracted from them).  The documentation for numpy.linalg.svd is here:

https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.svd.html

It looks like it in turn calls LAPACK routine_gesdd, which is documented, in general, here:

https://software.intel.com/en-us/mkl-developer-reference-c-singular-value-decomposition-lapack-computational-routines?language=es

It’s an implementation of singular value decomposition, described in general terms here:

https://en.wikipedia.org/wiki/Singular_value_decomposition#Relation_to_eigenvalue_decomposition

The math is pretty complicated.

—Eric

Eric Pettersen
UCSF Computer Graphics Lab




On Jun 30, 2017, at 10:09 AM, Catherine Jenifer Rajam Rajendran <catrajen@umail.iu.edu> wrote:

Hi Elaine,

Thank you for helping me understand it. Can you give me more details about how PDB file is decomposed to find the plane and normal. Like, how the eigenvectors are calculated from the atomic coordinates.

Thanks,
Catherine

On Thu, Jun 29, 2017 at 7:23 PM, Elaine Meng <meng@cgl.ucsf.edu> wrote:


> On Jun 29, 2017, at 2:14 PM, Catherine Jenifer Rajam Rajendran <catrajen@umail.iu.edu> wrote:
>
> Hi,
>
Hi Catherine,

> I am trying to understand how the plane is defined in chimera. Can you please help me with that?
>
> "Define a plane for the specified atoms. Eigenvectors/values are calculated from the atomic coordinates after subtracting the position of their non-mass-weighted centroid. The plane is anchored at the centroid and aligned with the first two eigenvectors (the third eigenvector is normal to the plane)."
>
> Define a plane for the specified atoms.
> - specified atoms, i use 'sel protein’

OK, so if using the graphical tool (Axes/Planes/Centroids) it uses the selected atoms, meaning all the protein atoms if you had used “sel protein.”  If using the “define” command, you can just specify “protein” directly in the command to use all the protein atoms, without making a selection.
>
> Eigenvectors/values are calculated from the atomic coordinates
> - atomic coordinates, so x,y,z coordinates of all atoms. (Can you please explain a bit more like how and what you read from PDB file to define plane).

For the atoms you specified, there are ATOM lines in the PDB file with X,Y,Z coordinates.  Each atom is a point in 3D (X,Y,Z).

>
> after subtracting the position of their non-mass-weighted centroid
> - how is non-mass-weighted centroid is calculated

It is the centroid of the points (atomic positions), not sure how else to say it.  The average position of all the atomic points is the centroid.  Non-mass-weighted just means all the atomic points are treated equally, instead of heavier atoms being treated as more important than lighter atoms.
>
> The plane is anchored at the centroid
> - which centroid is this? Is the protein moved to the origin(0,0,0) position?
>
The centroid is the same centroid as in your previous question. Nothing is moved.
>
> Thanks,
> Catherine

You’re welcome.  I hope this helps,
Elaine
----------
Elaine C. Meng, Ph.D.
UCSF Chimera(X) team
Department of Pharmaceutical Chemistry
University of California, San Francisco




_______________________________________________
Chimera-users mailing list: Chimera-users@cgl.ucsf.edu
Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users