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 17, 2009 - 17:30:
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 00:40:14 2009