mailRe: BMRB diffusion tensor saveframes.


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

Header


Content

Posted by Edward d'Auvergne on November 19, 2009 - 10:06:
Hi,

Yes, the PDB file could be rotated.  This is not done in relax yet,
but might in the future if molecular superimposition is implemented.
There is also the possibility that the PDB file is rotated by the
user, or that it is not actually deposited in the PDB (from an MD
simulation, etc.).  Therefore I could get relax (http://nmr-relax.com)
to dump atomic coordinate information, and add this support to bmrblib
(https://gna.org/svn/?group=bmrblib, again a homepage link because
this doesn't yet appear on the first Google search page!).  The
question is, what should I include.  I could add all atomic position
information, or maybe I could add just the atoms investigated.  The
nearby atoms causing dipolar relaxation could also be added, but this
information might already be contained in the other saveframes
(interatomic_dist, bond_vectors, etc.).  What do you think?

Cheers,

Edward



2009/11/18 Eldon Ulrich <elu@xxxxxxxxxxxxx>:
Hi,

One quick question; Is it possible that the coordinates from the PDB file
would be modified (two models superimposed, or some rotation carried out) so
that the coordinates used for the tensors would not be the original PDB
coordinates? Another possibility is that the original PDB entry might be
updated or obsoleted. If any of these, are possible (likely), then the
coordinates for the models should probably be included in the NMR-STAR file,
with a reference to the original PDB entry and model number, and a
description (software used, etc.) for carrying out the transformation.

Eldon


Edward d'Auvergne wrote:

Eldon,

Would you be able to help me with a few questions about the Tensor
save frame that I am about to create?  Sorry for the length :S  This
save frame, from memory, was a general save frame for all types of
rank-2 tensors, was it not?  It could therefore hold diffusion
tensors, alignment tensors, Saupe order matrices, CS tensors, etc.?
This appears to be an expansion of shielding tensor save frame.  Below
are a few suggestions for additions and some mock ups that I will code
relax (http://nmr-relax.com) and bmrblib
(http://gna.org/projects/bmrblib/) to produce.


_Tensor.Reduceable_matrix_1_1_val
_Tensor.Reduceable_matrix_1_2_val
_Tensor.Reduceable_matrix_1_3_val
_Tensor.Reduceable_matrix_2_1_val
_Tensor.Reduceable_matrix_2_2_val
_Tensor.Reduceable_matrix_2_3_val
_Tensor.Reduceable_matrix_3_1_val
_Tensor.Reduceable_matrix_3_2_val
_Tensor.Reduceable_matrix_3_3_val

Firstly, I'm guessing this matrix is in the structure frame (the PDB
frame).  But how should we specify the PDB frame?  For example I could
be analysing CaM using Ad Bax's high quality, yet different PDB
structures for each domain separately, i.e. model 2 of 1J7P and model
3 of 1J7O.  Should I specify PDBs and model numbers, or dump all
coordinate info of the structures?  This information is needed because
the diffusion tensor is attached to a structure and the structures are
in random orientations within the PDB frame.

One problem I see is how do we specify the tensor type?  Maybe a tag
such as _Tensor_list.Tensor_type with fixed enumerations such as
'diffusion', 'CS', 'shielding', and 'alignment'?  These tensors are
often described quite differently - though the
_Tensor.Reduceable_matrix_* form applies to all.  For example the
total information content of a spheroidal diffusion tensor from relax
in XML form looks like:

       <diff_tensor desc="Diffusion tensor" type="spheroid">
           <Da ieee_754_byte_array="[213, 118, 248, 246, 40, 53, 91, 65]">
               7132323.85892
           </Da>
           <fixed>
               False
           </fixed>
           <phi ieee_754_byte_array="[224, 227, 53, 166, 165, 212, 3,
64]">
               2.47883157589
           </phi>
           <spheroid_type>
               'prolate'
           </spheroid_type>
           <theta ieee_754_byte_array="[147, 6, 168, 205, 63, 251, 238,
63]">
               0.968170072243
           </theta>
           <tm ieee_754_byte_array="[78, 9, 5, 238, 170, 132, 67, 62]">
               9.08888558914e-09
           </tm>
       </diff_tensor>

Note that in this axially symmetric case there are, in fact, infinite
matrix forms.  Therefore just an axis and tm and Da are used to
specify this.  But multiple parameters can be used to specify a
diffusion tensor, and different definitions/equations of properties
such as rhombicity are used all over the place.  Therefore the _Tensor
save frame will require a little refinement, or that this is used as a
template for specific tensor save frames.

Below are some mock ups of diffusion tensors using the _Tensor save
frame, with a few additional tags.  I think I can use a separate save
frame for each diffusion tensor, so maybe 2 saveframes for a 2 domain
system?  It could probably all go into one frame, but might be nicer
to group these into individual frames, especially if tensors overlap!
I've added the _Tensor_list.*_val_type tags to handle different
definitions of anisotropy and rhombicity as these can be defined in
many different ways!  This is the minimal information I need to
deposit and then re-read the data.


# Spherical diffusion mock up (unused tags removed).

save_diff_tensor
  _Tensor_list.Sf_category tensor
  _Tensor_list.Sf_framecode spherical_tensor_1
  _Tensor_list.ID 1
  _Tensor_list.Tensor_type diffusion        # New.
  _Tensor_list.Matrix_val_units s-1        # New (this is the units
of the matrix form, and could be ppm for CS, etc.).
  _Tensor_list.Isotropic_val_type "Diso = 1/(6.tm)"        # New.
  _Tensor_list.Details "spherical diffusion"

  loop_
     _Tensor.ID
     _Tensor.Entity_ID
     _Tensor.Comp_index_ID
     _Tensor.Comp_ID
     _Tensor.Atom_ID
     _Tensor.Atom_type
     _Tensor.Atom_isotope_number
     _Tensor.Isotropic_val
     _Tensor.Anisotropic_val
     _Tensor.Rhombic_val
     _Tensor.Tensor_list_ID

1 1 9 Gln N N 15 12985705.377075171 0.0 0.0 1
2 1 10 Gln N N 15 12985705.377075171 0.0 0.0 1

  stop_

save_



# Spheroidal diffusion mock up (unused tags removed).
# Note that _Tensor_list.Spheroid_type can be determined by the sign
of Da (_Tensor.Anisotropic_val) when using Da = Dpar - Dper.
# Also note that the polar (theta) and azimuthal angle (phi) are in
this example, as in most cases, defined as 0 <= theta <= pi; 0 <= phi
<= 2pi.

save_diff_tensor
  _Tensor_list.Sf_category tensor
  _Tensor_list.Sf_framecode spheroidal_tensor_1
  _Tensor_list.ID 1
  _Tensor_list.Tensor_type diffusion        # New.
  _Tensor_list.Matrix_val_units s-1        # New (this is the units
of the matrix form, and could be ppm for CS, etc.).
  _Tensor_list.Spheroid_type prolate        # New.
  _Tensor_list.Angle_units rad        # New (for polar and azimuthal
angles, as well as the 3 Euler angles).
  _Tensor_list.Isotropic_val_formula "Diso = 1/(6.tm)"        # New.
  _Tensor_list.Anisotropic_val_formula "Da = Dpar - Dper"       # New.
  _Tensor_list.Details "spheroidal diffusion"

  loop_
     _Tensor.ID
     _Tensor.Entity_ID
     _Tensor.Comp_index_ID
     _Tensor.Comp_ID
     _Tensor.Atom_ID
     _Tensor.Atom_type
     _Tensor.Atom_isotope_number
     _Tensor.Axial_sym_axis_polar_angle        # New.
     _Tensor.Axial_sym_axis_azimuthal_angle        # New.
     _Tensor.Isotropic_val
     _Tensor.Anisotropic_val
     _Tensor.Rhombic_val
     _Tensor.Tensor_list_ID

1 1 9 Gln N N 15 0.96817007224326956 2.4788315758892034
18337414.970415145 7132323.8589150626 0.0 1
2 1 10 Gln N N 15 0.96817007224326956 2.4788315758892034
18337414.970415145 7132323.8589150626 0.0 1

  stop_

save_



# Ellipsoidal diffusion mock up (unused tags removed).

save_diff_tensor
  _Tensor_list.Sf_category tensor
  _Tensor_list.Sf_framecode ellipsoidal_tensor_1
  _Tensor_list.ID 1
  _Tensor_list.Tensor_type diffusion        # New.
  _Tensor_list.Matrix_val_units s-1        # New (this is the units
of the matrix form, and could be ppm for CS, etc.).
  _Tensor_list.Angle_units rad        # New (for polar and azimuthal
angles, as well as the 3 Euler angles).
  _Tensor_list.Euler_angle_type zyz        # New.
  _Tensor_list.Isotropic_val_formula "Diso = 1/(6.tm)"        # New.
  _Tensor_list.Anisotropic_val_formula "Da = Dpar - Dper"       # New.
  _Tensor_list.Rhombic_val_formula "Dr = (Dy - Dx)/2Da"       # New.
  _Tensor_list.Details "ellipsoidal diffusion"

  loop_
     _Tensor.ID
     _Tensor.Entity_ID
     _Tensor.Comp_index_ID
     _Tensor.Comp_ID
     _Tensor.Atom_ID
     _Tensor.Atom_type
     _Tensor.Atom_isotope_number
     _Tensor.Euler_angle_alpha
     _Tensor.Euler_angle_beta
     _Tensor.Euler_angle_gamma
     _Tensor.Isotropic_val
     _Tensor.Anisotropic_val
     _Tensor.Rhombic_val
     _Tensor.Tensor_list_ID

1 1 9 Gln N N 15 1.22079138007 2.61076471643 0.632663091701
39314097.38005387 235884584.281 9.58992200396e-17 1
2 1 10 Gln N N 15  1.22079138007 2.61076471643 0.632663091701
39314097.38005387 235884584.281 9.58992200396e-17 1

  stop_

save_



Ok, that should be hopefully it for this save frame.  When I can work
on it, I'll get relax and bmrblib to produce these mock ups.

Cheers,

Edward




Related Messages


Powered by MHonArc, Updated Thu Nov 19 10:40:15 2009