Package bmrblib :: Package structure :: Module tensor
[hide private]
[frames] | no frames]

Source Code for Module bmrblib.structure.tensor

  1  ############################################################################# 
  2  #                                                                           # 
  3  # The BMRB library.                                                         # 
  4  #                                                                           # 
  5  # Copyright (C) 2009-2013 Edward d'Auvergne                                 # 
  6  #                                                                           # 
  7  # This program is free software: you can redistribute it and/or modify      # 
  8  # it under the terms of the GNU General Public License as published by      # 
  9  # the Free Software Foundation, either version 3 of the License, or         # 
 10  # (at your option) any later version.                                       # 
 11  #                                                                           # 
 12  # This program is distributed in the hope that it will be useful,           # 
 13  # but WITHOUT ANY WARRANTY; without even the implied warranty of            # 
 14  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             # 
 15  # GNU General Public License for more details.                              # 
 16  #                                                                           # 
 17  # You should have received a copy of the GNU General Public License         # 
 18  # along with this program.  If not, see <http://www.gnu.org/licenses/>.     # 
 19  #                                                                           # 
 20  ############################################################################# 
 21   
 22  # Module docstring. 
 23  """The tensor saveframe category. 
 24   
 25  This file is part of the U{BMRB library<https://sourceforge.net/projects/bmrblib>}. 
 26   
 27  For example, see http://www.bmrb.wisc.edu/dictionary/3.1html_frame/frame_SaveFramePage.html#tensor 
 28  """ 
 29   
 30  # Python module imports. 
 31  from numpy import array 
 32   
 33  # relax module imports. 
 34  from bmrblib.base_classes import BaseSaveframe, TagCategory, TagCategoryFree 
 35   
 36   
37 -class TensorSaveframe(BaseSaveframe):
38 """The tensor saveframe class.""" 39 40 # Saveframe variables. 41 sf_label = 'tensor' 42
43 - def add_tag_categories(self):
44 """Create the tag categories.""" 45 46 # The tag category objects. 47 self.tag_categories.append(TensorList(self)) 48 self.tag_categories.append(Tensor(self))
49 50 51
52 -class TensorList(TagCategoryFree):
53 """Base class for the TensorList tag category.""" 54
55 - def __init__(self, sf):
56 """Setup the TensorList tag category. 57 58 @param sf: The saveframe object. 59 @type sf: saveframe instance 60 """ 61 62 # Initialise the baseclass. 63 super(TensorList, self).__init__(sf) 64 65 # The category name. 66 self.tag_category_label = 'Tensor_list' 67 68 # Add the tag info. 69 self.add(key='EntryID', tag_name='Entry_ID', var_name=None) 70 self.add(key='SfID', tag_name='Sf_ID', var_name=None) 71 self.add(key='TensorID', tag_name='ID', var_name='data_ids', format='str') 72 self.add(key='TensorType', tag_name='Tensor_type', var_name='tensor_type') 73 self.add(key='GeometricShape', tag_name='Geometric_shape', var_name='geometric_shape', allowed=['sphere', 'spheroid', 'oblate spheroid', 'prolate spheroid', 'ellipsoid']) 74 self.add(key='TensorSymmetry', tag_name='Tensor_symmetry', var_name='tensor_symmetry', allowed=['isotropic', 'anisotropic', 'axial symmetry', 'oblate axial symmetry', 'prolate axial symmetry', 'rhombic']) 75 self.add(key='MatrixValUnits', tag_name='Matrix_val_units', var_name='matrix_val_units') 76 self.add(key='AngleUnits', tag_name='Angle_units', var_name='angle_units', allowed=[None, 'deg', 'rad']) 77 self.add(key='IsotropicValFormula', tag_name='Isotropic_val_formula', var_name='iso_val_formula') 78 self.add(key='AnisotropicValFormula', tag_name='Anisotropic_val_formula', var_name='aniso_val_formula') 79 self.add(key='RhombicValFormula', tag_name='Rhombic_val_formula', var_name='rhomb_val_formula') 80 self.add(key='EulerAngleType', tag_name='Euler_angle_type', var_name='euler_type') 81 self.add(key='DataFileName', tag_name='Data_file_name', var_name='file_name') 82 self.add(key='Details', tag_name='Details', var_name='details') 83 84 # Change tag names. 85 self['SfCategory'].tag_name = 'Sf_category' 86 self['SfFramecode'].tag_name = 'Sf_framecode'
87 88 89
90 -class Tensor(TagCategory):
91 """Base class for the Tensor tag category.""" 92
93 - def __init__(self, sf):
94 """Setup the Tensor tag category. 95 96 @param sf: The saveframe object. 97 @type sf: saveframe instance 98 """ 99 100 # Initialise the baseclass. 101 super(Tensor, self).__init__(sf) 102 103 # The category name. 104 self.tag_category_label = 'Tensor' 105 106 # Add the tag info. 107 self.add(key='TensorID', tag_name='ID', var_name='data_ids') 108 self.add(key='InteratomicDistanceListID', tag_name='Interatomic_distance_list_ID', var_name=None) 109 self.add(key='InteratomicDistSetID', tag_name='Interatomic_dist_set_ID', var_name=None) 110 self.add(key='CalcTypeID', tag_name='Calc_type_ID', var_name=None) 111 self.add(key='AssemblyAtomID', tag_name='Assembly_atom_ID', var_name='assembly_atom_ids') 112 self.add(key='EntityAssemblyID', tag_name='Entity_assembly_ID', var_name='entity_assembly_ids') 113 self.add(key='EntityID', tag_name='Entity_ID', var_name='entity_ids', format='int', missing=False) 114 self.add(key='CompIndexID', tag_name='Comp_index_ID', var_name='res_nums', format='int', missing=False) 115 self.add(key='SeqID', tag_name='Seq_ID', var_name=None) 116 self.add(key='CompID', tag_name='Residue_label', var_name='res_names', missing=False) 117 self.add(key='AtomID', tag_name='Atom_name', var_name='atom_names', missing=False) 118 self.add(key='AtomType', tag_name='Atom_type', var_name='atom_types') 119 self.add(key='AtomIsotopeNumber', tag_name='Atom_isotope_number', var_name='isotope', format='int') 120 self.add(key='AxialSymAxisPolarAngle', tag_name='Axial_sym_axis_polar_angle', var_name='axial_sym_axis_polar_angle', format='float') 121 self.add(key='AxialSymAxisAzimuthalAngle', tag_name='Axial_sym_axis_azimuthal_angle', var_name='axial_sym_axis_azimuthal_angle', format='float') 122 self.add(key='IsotropicVal', tag_name='Isotropic_val', var_name='iso_val', format='float') 123 self.add(key='AnisotropicVal', tag_name='Anisotropic_val', var_name='aniso_val', format='float') 124 self.add(key='RhombicVal', tag_name='Rhombic_val', var_name='rhombic_val', format='float') 125 self.add(key='EulerAngleAlpha', tag_name='Euler_angle_alpha', var_name='euler_alpha', format='float') 126 self.add(key='EulerAngleBeta', tag_name='Euler_angle_beta', var_name='euler_beta', format='float') 127 self.add(key='EulerAngleGamma', tag_name='Euler_angle_gamma', var_name='euler_gamma', format='float') 128 self.add(key='IsotropicComp11Val', tag_name='Isotropic_comp_1_1_val', var_name='iso_comp_11', format='float') 129 self.add(key='IsotropicComp22Val', tag_name='Isotropic_comp_2_2_val', var_name='iso_comp_22', format='float') 130 self.add(key='IsotropicComp33Val', tag_name='Isotropic_comp_3_3_val', var_name='iso_comp_33', format='float') 131 self.add(key='AntiSymComp12Val', tag_name='Anti_sym_comp_1_2_val', var_name='antisym_comp_12', format='float') 132 self.add(key='AntiSymComp13Val', tag_name='Anti_sym_comp_1_3_val', var_name='antisym_comp_13', format='float') 133 self.add(key='AntiSymComp23Val', tag_name='Anti_sym_comp_2_3_val', var_name='antisym_comp_23', format='float') 134 self.add(key='SymTracelessComp11Val', tag_name='Sym_traceless_comp_1_1_val', var_name=None, format='float') 135 self.add(key='SymTracelessComp12Val', tag_name='Sym_traceless_comp_1_2_val', var_name=None, format='float') 136 self.add(key='SymTracelessComp13Val', tag_name='Sym_traceless_comp_1_3_val', var_name=None, format='float') 137 self.add(key='SymTracelessComp22Val', tag_name='Sym_traceless_comp_2_2_val', var_name=None, format='float') 138 self.add(key='SymTracelessComp23Val', tag_name='Sym_traceless_comp_2_3_val', var_name=None, format='float') 139 self.add(key='ReduceableMatrix11Val', tag_name='Reduceable_matrix_1_1_val', var_name='tensor_11', format='float') 140 self.add(key='ReduceableMatrix12Val', tag_name='Reduceable_matrix_1_2_val', var_name='tensor_12', format='float') 141 self.add(key='ReduceableMatrix13Val', tag_name='Reduceable_matrix_1_3_val', var_name='tensor_13', format='float') 142 self.add(key='ReduceableMatrix21Val', tag_name='Reduceable_matrix_2_1_val', var_name='tensor_21', format='float') 143 self.add(key='ReduceableMatrix22Val', tag_name='Reduceable_matrix_2_2_val', var_name='tensor_22', format='float') 144 self.add(key='ReduceableMatrix23Val', tag_name='Reduceable_matrix_2_3_val', var_name='tensor_23', format='float') 145 self.add(key='ReduceableMatrix31Val', tag_name='Reduceable_matrix_3_1_val', var_name='tensor_31', format='float') 146 self.add(key='ReduceableMatrix32Val', tag_name='Reduceable_matrix_3_2_val', var_name='tensor_32', format='float') 147 self.add(key='ReduceableMatrix33Val', tag_name='Reduceable_matrix_3_3_val', var_name='tensor_33', format='float') 148 self.add(key='AuthEntityAssemblyID', tag_name='Auth_entity_assembly_ID', var_name=None) 149 self.add(key='AuthSeqID', tag_name='Auth_seq_ID', var_name=None) 150 self.add(key='AuthCompID', tag_name='uth_comp_ID', var_name=None) 151 self.add(key='AuthAtomID', tag_name='Auth_atom_ID', var_name=None) 152 self.add(key='EntryID', tag_name='Entry_ID', var_name=None) 153 self.add(key='TensorListID', tag_name='Tensor_list_ID', var_name='count_str', format='float')
154