1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 """The tensor saveframe category.
24
25 This file is part of the U{BMRB library<https://gna.org/projects/bmrblib>}.
26
27 For example, see http://www.bmrb.wisc.edu/dictionary/3.1html_frame/frame_SaveFramePage.html#tensor
28 """
29
30
31 from numpy import array
32
33
34 from bmrblib.base_classes import BaseSaveframe, TagCategory, TagCategoryFree
35
36
38 """The tensor saveframe class."""
39
40
41 sf_label = 'tensor'
42
49
50
51
53 """Base class for the TensorList tag category."""
54
56 """Setup the TensorList tag category.
57
58 @param sf: The saveframe object.
59 @type sf: saveframe instance
60 """
61
62
63 super(TensorList, self).__init__(sf)
64
65
66 self.tag_category_label = 'Tensor_list'
67
68
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
85 self['SfCategory'].tag_name = 'Sf_category'
86 self['SfFramecode'].tag_name = 'Sf_framecode'
87
88
89
91 """Base class for the Tensor tag category."""
92
94 """Setup the Tensor tag category.
95
96 @param sf: The saveframe object.
97 @type sf: saveframe instance
98 """
99
100
101 super(Tensor, self).__init__(sf)
102
103
104 self.tag_category_label = 'Tensor'
105
106
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