mailRe: Cool pictures of the Brownian rotational diffusion tensor in PyMOL.


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on October 31, 2006 - 16:27:
It would be better if Molmol simply recognised the CONECT records.
Maybe we can ask them to add the basic feature - I'm sure many people
would be happy if their organic molecules were correctly loaded into
Molmol without having to do any additional work.  The complexity of
stitching up the uniform distribution of vectors shouldn't need to be
repeated. However it could be made into a function that the
'molmol.tensor_pdb()' user function (in the 'tensor_pdb' branch) then
calls.

Edward



On 10/31/06, Gary S. Thompson <garyt@xxxxxxxxxxxxxxx> wrote:
Edward d'Auvergne wrote:

>I have implemented a user function for creating a PDB representation of
>the Brownian rotational diffusion tensor.  The changes have been made to
>the 'tensor_pdb' branch of the repository.  The user function is called
>'pdb.create_tensor_pdb()'.
>
>Unfortunately Molmol refuses to recognise PDB CONECT records.  The
>CalcBond function only calculates bonds when two atoms are within a
>certain distance.
>
>
>
This is not the complete story... There is an addBond function


AddBond

*NAME*

AddBond - add bond between two atoms

*SYNOPSIS*

AddBond

*DESCRIPTION*

Add a bond between the two selected atoms. Exactly two atoms must be
selected before this command is executed, an error message will be
issued otherwise.

*EXAMPLE*

AddBond

*SEE ALSO*

RemoveBond
<http://www.hhmi.umbc.edu/toolkit/structure/molmol/RemoveBond.html>

*DATE*

931126

url http://www.hhmi.umbc.edu/toolkit/structure/*molmol*/*AddBond*.html



However this function does require atoms...

you can also add drawing objetcs


AddDrawobj

*NAME*

AddDrawobj - add line, rectangle or circle

*SYNOPSIS*

AddDrawobj ( line | rect | circle ) ( 2D | 3D )

*DESCRIPTION*

Add a line, rectangle or circle for annotation. The first argument
selects the type of drawing object.

If the second argument is 2D, the object is placed at a default location
and can be moved to the desired place. It will always keep its screen
position and is not related to any atoms.

If the second argument is 3D, a label is added for each molecule that
has selected atoms. The initial position in space is calculated as the
average of the coordinates of all selected atoms of the molecule. The
positon relative to these atoms can be changed with the mouse or with
the MoveDrawobj
<http://hugin.ethz.ch/wuthrich/software/molmol/help/html/MoveDrawobj.html>
command.

The created primitives have the property "drawobj".

*EXAMPLES*

AddDrawobj line 3D

*SEE ALSO*

SelectAtom
<http://hugin.ethz.ch/wuthrich/software/molmol/help/html/SelectAtom.html>,
ColorPrim
<http://hugin.ethz.ch/wuthrich/software/molmol/help/html/ColorPrim.html>,
LinePrim
<http://hugin.ethz.ch/wuthrich/software/molmol/help/html/LinePrim.html>,
StyleDrawobj
<http://hugin.ethz.ch/wuthrich/software/molmol/help/html/StyleDrawobj.html>,
MoveDrawobj
<http://hugin.ethz.ch/wuthrich/software/molmol/help/html/MoveDrawobj.html>,
RemovePrim
<http://hugin.ethz.ch/wuthrich/software/molmol/help/html/RemovePrim.html>,
AddTitle
<http://hugin.ethz.ch/wuthrich/software/molmol/help/html/AddTitle.html>,
AddText
<http://hugin.ethz.ch/wuthrich/software/molmol/help/html/AddText.html>

*DATE
*

*http://hugin.ethz.ch/wuthrich/software/molmol/help/html/AddDrawobj.html
*


MoveDrawobj

*NAME*

MoveDrawobj - move draw object

*SYNOPSIS*

MoveDrawobj expr expr expr expr

*DESCRIPTION*

Move all selected draw objects (like lines or rectangles) by the given
amount. The first argument gives the index of the control point
(starting at 0) to be moved, the rest of the arguments give the amount
of movement in each direction.

Moving the control points of drawing objects is normally done
interactively by using the middle mouse button.

*EXAMPLE*

MoveDrawObj 0 0.3 0.1 0.2

*SEE ALSO*

AddDrawobj
<http://hugin.ethz.ch/wuthrich/software/molmol/help/html/AddDrawobj.html>,
SelectPrim
<http://hugin.ethz.ch/wuthrich/software/molmol/help/html/SelectPrim.html>

*DATE*

950618

http://hugin.ethz.ch/wuthrich/software/molmol/help/html/MoveDrawobj.html


* *

 which can be moved



>The representation in PyMOL is however impressive.  If you have
>diffusion tensor results, I recommend generating the tensor PDB
>representation and then loading the file into PyMOL together with the
>structure of the macromolecule.  Make sure to read the information in
>the docstring of the 'pdb.create_tensor_pdb()' user function about what
>the tensor PDB representation means.
>
>To create the tensor representation, I have added a number of algorithms
>to relax.  Firstly the centre of mass is calculated for the selected
>residues (represented by a C atom).  Then the axes of the diffusion are
>calculated, as unit vectors scaled to the appropriate length, and a C
>atom placed at the position of this vector plus the centre of mass.
>Finally a uniform distribution of vectors on a sphere is generated using
>spherical coordinates.  By incrementing the polar angle using an arccos
>distribution, a radial array of vectors representing latitude are
>created while incrementing the azimuthal angle evenly creates the
>longitudinal vectors.  These unit vectors, which are distributed within
>the PDB frame and are of 1 Angstrom in length, are first rotated into
>the diffusion frame using a rotation matrix (the spherical diffusion
>tensor is not rotated).  Then they are multiplied by the diffusion
>tensor matrix to extend the vector out to the correct length, and
>finally scaled by 1.8e-6 so that the vectors reasonably superimpose onto
>the macromolecular structure.  The last set of algorithms place all this
>information into a PDB file.  The distribution of vectors are
>represented by H atoms and are all connected using PDB CONECT records.
>Each H atom is connected to its two neighbours on the both the longitude
>and latitude.  This results in a representation with longitudinal and
>latitudinal lines.
>
>Edward
>
>
>P.S.  I will probably soon merge all this new code back into the 1.3
>line.  It appears to be bug free at the moment.
>
>
>On Thu, 2006-10-26 at 13:45 +1000, Edward d'Auvergne wrote:
>
>
>>During discussions with James Horne, James helped with a lot of
>>debugging of relax back in 2004 prior to relax being publicly
>>released, a few ideas were raised about how to represent the diffusion
>>tensor superimposed onto the 3D molecular structure.  This
>>representation would significantly help in the comparison of different
>>diffusion tensors.  To compare diffusion tensors, you really need to
>>compare the eigenvalues (Dx, Dy, and Dz, or Dpar and Dper).  However
>>because the corresponding eigenvectors, the axes of the tensor, may
>>not be the same between two tensors (they could be 90 degrees out),
>>you really need to orient the diffusion tensor with respect to the
>>molecule so that you can compare the correct eigenvalues.  I'll send
>>another post with a quick tutorial on diffusion tensors which may help
>>if there were parts of this paragraph which didn't make sense.
>>
>>At minimum you need to have the eigenvector representing the unique
>>axis of the spheroid tensors superimposed onto the structure in 3D, or
>>the three eigenvectors (axes) of the ellipsoid.  For the spheroids
>>this could possibly be done by adding two bonded atoms into a PDB
>>file, one at the center of mass, the other placed in the correct
>>orientation at a scaled distance away from the center atom.  Then you
>>could use the 'neon' representation for them in Molmol.
>>
>>Extending on the idea, it could be possible to create a picture of the
>>diffusion tensors in Molmol.  This would look similar to the contours
>>presented in Tensor.  By calculating the center of mass, adding atoms
>>to a PDB file, connecting them, and then using 'neon' or 'line' in
>>Molmol, a polygon representation of the tensor could be created.
>>This, combined with the new model-free analysis protocol encoded in
>>the 'full_analysis.py' sample script, could be the final nail in
>>Tensor's coffin ;)
>>
>>In the new PDB file, which by default could be called 'tensor.pdb',
>>the atoms could all be set to a new residue called 'TNS' (an abbrev.
>>of tensor).  The residue could be setup using the HET, HETNAM, and
>>FORMUL records, each atom could be represented by a HETATM record,
>>followed by the TER record, and then all the atoms joined up by CONECT
>>records.  The file could be terminated with the MASTER and END
>>records.  Would anyone know how to get Molmol 2K to recognise the
>>CONECT records as being bonds???
>>
>>I might try to implement these ideas into the 1.3 development line.
>>
>>Edward
>>
>>
>
>
>_______________________________________________
>relax (http://nmr-relax.com)
>
>This is the relax-devel mailing list
>relax-devel@xxxxxxx
>
>To unsubscribe from this list, get a password
>reminder, or change your subscription options,
>visit the list information page at
>https://mail.gna.org/listinfo/relax-devel
>
>.
>
>
>


-- ------------------------------------------------------------------- Dr Gary Thompson Astbury Centre for Structural Molecular Biology, University of Leeds, Astbury Building, Leeds, LS2 9JT, West-Yorkshire, UK Tel. +44-113-3433024 email: garyt@xxxxxxxxxxxxxxx Fax +44-113-2331407 -------------------------------------------------------------------






Related Messages


Powered by MHonArc, Updated Tue Oct 31 17:01:26 2006