Package bmrblib :: Package kinetics :: Module auto_relaxation
[hide private]
[frames] | no frames]

Source Code for Module bmrblib.kinetics.auto_relaxation

  1  ############################################################################# 
  2  #                                                                           # 
  3  # The BMRB library.                                                         # 
  4  #                                                                           # 
  5  # Copyright (C) 2009-2011 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 Auto relaxation data saveframe category. 
 24   
 25  For example, see http://www.bmrb.wisc.edu/dictionary/3.1html/SaveFramePage.html#auto_relaxation. 
 26  """ 
 27   
 28  # relax module imports. 
 29  from bmrblib.base_classes import BaseSaveframe, TagCategory, TagCategoryFree 
 30   
 31   
32 -class AutoRelaxationSaveframe(BaseSaveframe):
33 """The Auto relaxation data saveframe class.""" 34 35 # Class variables. 36 name = 'auto' 37 sf_label = 'auto_relaxation' 38
39 - def add_tag_categories(self):
40 """Create the tag categories.""" 41 42 # The tag category objects. 43 self.tag_categories.append(AutoRelaxationList(self)) 44 self.tag_categories.append(AutoRelaxationExperiment(self)) 45 self.tag_categories.append(AutoRelaxationSoftware(self)) 46 self.tag_categories.append(AutoRelaxation(self))
47 48
49 - def pre_ops(self):
50 """Perform some saveframe specific operations prior to XML creation.""" 51 52 # The operators of the relaxation superoperator. 53 if self.data_type == 'R1': 54 self.coherence = 'Iz' 55 self.coherence_common_name = 'R1' 56 elif self.data_type == 'R2': 57 self.coherence = 'I+' 58 self.coherence_common_name = 'R2' 59 else: 60 raise NameError("The data type '%s' is not one of ['R1', 'R2']." % data_type) 61 62 # The saveframe description. 63 self.sf_framecode = '%s MHz %s relaxation %s' % (self.frq, self.data_type, self.count)
64 65
66 -class AutoRelaxationList(TagCategoryFree):
67 """Base class for the AutoRelaxationList tag category.""" 68
69 - def __init__(self, sf):
70 """Setup the AutoRelaxationList tag category. 71 72 @param sf: The saveframe object. 73 @type sf: saveframe instance 74 """ 75 76 # Initialise the baseclass. 77 super(AutoRelaxationList, self).__init__(sf) 78 79 # The category name. 80 self.tag_category_label = 'Auto_relaxation_list' 81 82 # Add the tag info. 83 self.add(key='EntryID', var_name='entry_id', format='str') 84 self.add(key='AutoRelaxationListID', var_name='count_str', format='int') 85 self.add(key='DataFileName', var_name='data_file_name', format='str') 86 self.add(key='SampleConditionListID', var_name='sample_cond_list_id', format='int') 87 self.add(key='SampleConditionListLabel', var_name='sample_cond_list_label', format='str', default='$conditions_1') 88 self.add(key='TempCalibrationMethod', var_name='temp_calibration', format='str', missing=False) 89 self.add(key='TempControlMethod', var_name='temp_control', format='str', missing=False) 90 self.add(key='SpectrometerFrequency1H', var_name='frq', format='float') 91 self.add(key='CommonRelaxationTypeName', var_name='coherence_common_name', format='str') 92 self.add(key='RelaxationCoherenceType', var_name='coherence', format='str') 93 self.add(key='RelaxationValUnits', var_name='units', format='str', default='s-1') 94 self.add(key='RelaxationValType', var_name='peak_intensity_type', format='str', missing=False) 95 self.add(key='RexUnits', var_name='rex_units', format='str') 96 self.add(key='Details', var_name='details', format='str') 97 self.add(key='TextDataFormat', var_name='text_data_format', format='str') 98 self.add(key='TextData', var_name='text_data', format='str')
99 100 101
102 -class AutoRelaxationExperiment(TagCategory):
103 """Base class for the AutoRelaxationExperiment tag category.""" 104
105 - def __init__(self, sf):
106 """Setup the AutoRelaxationExperiment tag category. 107 108 @param sf: The saveframe object. 109 @type sf: saveframe instance 110 """ 111 112 # Initialise the baseclass. 113 super(AutoRelaxationExperiment, self).__init__(sf) 114 115 # The category name. 116 self.tag_category_label = 'Auto_relaxation_experiment' 117 118 # Add the tag info. 119 self.add(key='ExperimentID', var_name='experiment_id', format='int') 120 self.add(key='ExperimentName', var_name='experiment_name', format='str') 121 self.add(key='SampleID', var_name='sample_id', format='int') 122 self.add(key='SampleLabel', var_name='sample_label', format='str', default='$sample_1') 123 self.add(key='SampleState', var_name='sample_state', format='str') 124 self.add(key='EntryID', var_name='entry_id', format='str') 125 self.add(key='AutoRelaxationListID', var_name='heteronucl_t1_list_id', format='int')
126 127 128
129 -class AutoRelaxationSoftware(TagCategory):
130 """Base class for the AutoRelaxationSoftware tag category.""" 131
132 - def __init__(self, sf):
133 """Setup the AutoRelaxationSoftware tag category. 134 135 @param sf: The saveframe object. 136 @type sf: saveframe instance 137 """ 138 139 # Initialise the baseclass. 140 super(AutoRelaxationSoftware, self).__init__(sf) 141 142 # The category name. 143 self.tag_category_label = 'Auto_relaxation_software' 144 145 # Add the tag info. 146 self.add(key='SoftwareID', var_name='software_id', format='int') 147 self.add(key='SoftwareLabel', var_name='software_label', format='str') 148 self.add(key='MethodID', var_name='method_id', format='int') 149 self.add(key='MethodLabel', var_name='method_label', format='str') 150 self.add(key='EntryID', var_name='entry_id', format='str') 151 self.add(key='AutoRelaxationListID', var_name='heteronucl_t1_list_id', format='int')
152 153 154
155 -class AutoRelaxation(TagCategory):
156 """Base class for the AutoRelaxation tag category.""" 157
158 - def __init__(self, sf):
159 """Setup the AutoRelaxation tag category. 160 161 @param sf: The saveframe object. 162 @type sf: saveframe instance 163 """ 164 165 # Initialise the baseclass. 166 super(AutoRelaxation, self).__init__(sf) 167 168 # The category name. 169 self.tag_category_label = 'Auto_relaxation' 170 171 # Add the tag info. 172 self.add(key='AutoRelaxationID', var_name='data_ids', format='int') 173 self.add(key='AssemblyID', var_name='assembly_ids', format='int') 174 self.add(key='AssemblyAtomID', var_name='assembly_atom_ids', format='int') 175 self.add(key='EntityAssemblyID', var_name='entity_assembly_ids', format='int') 176 self.add(key='EntityID', var_name='entity_ids', format='int', missing=False) 177 self.add(key='CompIndexID', var_name='res_nums', format='int', missing=False) 178 self.add(key='SeqID', var_name='seq_id', format='int') 179 self.add(key='CompID', var_name='res_names', format='str', missing=False) 180 self.add(key='AtomID', var_name='atom_names', format='str', missing=False) 181 self.add(key='AtomType', var_name='atom_types', format='str') 182 self.add(key='AtomIsotopeNumber', var_name='isotope', format='int') 183 self.add(key='Val', var_name='data', format='float') 184 self.add(key='ValErr', var_name='errors', format='float') 185 self.add(key='RexVal', var_name='rex_val', format='float') 186 self.add(key='RexErr', var_name='rex_err', format='float') 187 self.add(key='ResonanceID', var_name='resonance_id', format='int') 188 self.add(key='AuthEntityAssemblyID', var_name='auth_entity_assembly_id', format='str') 189 self.add(key='AuthSeqID', var_name='auth_seq_id', format='str') 190 self.add(key='AuthCompID', var_name='auth_atom_id', format='str') 191 self.add(key='AuthAtomID', var_name='auth_atom_id', format='str') 192 self.add(key='EntryID', var_name='entry_id', format='str') 193 self.add(key='AutoRelaxationListID', var_name='count_str', format='int')
194