mailr8943 - in /branches/bmrb/bmrblib: tag_category.py thermodynamics/order_parameters.py thermodynamics/order_parameters_v3_1.py


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

Header


Content

Posted by edward on March 09, 2009 - 19:44:
Author: bugman
Date: Mon Mar  9 19:44:09 2009
New Revision: 8943

URL: http://svn.gna.org/viewcvs/relax?rev=8943&view=rev
Log:
Support for all model-free parameters has been added to the BMRB library.


Modified:
    branches/bmrb/bmrblib/tag_category.py
    branches/bmrb/bmrblib/thermodynamics/order_parameters.py
    branches/bmrb/bmrblib/thermodynamics/order_parameters_v3_1.py

Modified: branches/bmrb/bmrblib/tag_category.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/bmrb/bmrblib/tag_category.py?rev=8943&r1=8942&r2=8943&view=diff
==============================================================================
--- branches/bmrb/bmrblib/tag_category.py (original)
+++ branches/bmrb/bmrblib/tag_category.py Mon Mar  9 19:44:09 2009
@@ -22,6 +22,10 @@
 
 # Module docstring.
 """The TagCategory base class."""
+
+# relax module imports.
+from pystarlib.TagTable import TagTable
+
 
 class TagCategory:
     """The base class for tag category classes."""
@@ -62,6 +66,38 @@
         return self.tag_category_label_full + tag_name
 
 
+    def create_tag_table(self, info):
+        """Create and return a tag table based on the info structure.
+
+        @param info:    The key and object pair list.  This consists of the 
keys of
+                        self.tag_names being the first element and the names 
of the objects being
+                        the second element, both of the second dimension.  
The fist dimension are
+                        the different pairs.
+        @type info:     list of list of str
+        @return:        The tag table.
+        @rtype:         TagTable instance
+        """
+
+        # Init.
+        keys = self.tag_names.keys()
+        tag_names = []
+        tag_values = []
+
+        # Loop over the keys and object names of the info structure.
+        for key, name in info:
+            # Key check.
+            if key not in keys:
+                raise NameError, "The key '%s' is not located in the 
self.tag_names structure." % key
+
+            # The tag names and values (skipping empty entries in 
self.tag_names).
+            if self.tag_names[key] != None:
+                tag_names.append(self.tag_names_full[key])
+                tag_values.append(getattr(self.sf, name))
+
+        # Add the data and return the table.
+        return TagTable(tagnames=tag_names, tagvalues=tag_values)
+
+
     def tag_setup(self, tag_category_label=None, sep=None):
         """Setup the tag names.
 

Modified: branches/bmrb/bmrblib/thermodynamics/order_parameters.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/bmrb/bmrblib/thermodynamics/order_parameters.py?rev=8943&r1=8942&r2=8943&view=diff
==============================================================================
--- branches/bmrb/bmrblib/thermodynamics/order_parameters.py (original)
+++ branches/bmrb/bmrblib/thermodynamics/order_parameters.py Mon Mar  9 
19:44:09 2009
@@ -50,7 +50,7 @@
         self.add_tag_categories()
 
 
-    def add(self, res_nums=None, res_names=None, atom_names=None):
+    def add(self, res_nums=None, res_names=None, atom_names=None, s2=None, 
s2_err=None, s2f=None, s2f_err=None, s2s=None, s2s_err=None, te=None, 
te_err=None, tf=None, tf_err=None, ts=None, ts_err=None, rex=None, 
rex_err=None):
         """Add relaxation data to the data nodes.
 
         @keyword res_nums:      The residue number list.
@@ -59,6 +59,30 @@
         @type res_names:        list of str
         @keyword atom_names:    The atom name list.
         @type atom_names:       list of str
+        @keyword s2:            The S2 values.
+        @type s2:               list of float
+        @keyword s2_err:        The S2 errors.
+        @type s2_err:           list of float
+        @keyword s2f:           The S2f values.
+        @type s2f:              list of float
+        @keyword s2f_err:       The S2f errors.
+        @type s2f_err:          list of float
+        @keyword s2s:           The S2s values.
+        @type s2s:              list of float
+        @keyword s2s_err:       The S2s errors.
+        @type s2s_err:          list of float
+        @keyword te:            The te values.
+        @type te:               list of float
+        @keyword te_err:        The te errors.
+        @type te_err:           list of float
+        @keyword tf:            The tf values.
+        @type tf:               list of float
+        @keyword tf_err:        The tf errors.
+        @type tf_err:           list of float
+        @keyword ts:            The ts values.
+        @type ts:               list of float
+        @keyword ts_err:        The ts errors.
+        @type ts_err:           list of float
         """
 
         # Check the ID info.
@@ -66,10 +90,27 @@
         no_missing(res_names, 'residue names of the model-free data')
         no_missing(atom_names, 'atom names of the model-free data')
 
-        # Place the args into the namespace.
-        self.res_nums = translate(res_nums)
-        self.res_names = translate(res_names)
-        self.atom_names = translate(atom_names)
+        # Object names.
+        names = ['res_nums', 'res_names', 'atom_names', 's2', 's2_err', 
's2f', 's2f_err', 's2s', 's2s_err', 'te', 'te_err', 'tf', 'tf_err', 'ts', 
'ts_err', 'rex', 'rex_err']
+
+        # Number of elements.
+        N = len(res_nums)
+
+        # Loop over the objects.
+        for name in names:
+            # Get the object.
+            obj = locals()[name]
+
+            # None objects.
+            if obj == None:
+                obj = [None] * N
+
+            # Check the length.
+            if len(obj) != N:
+                raise NameError, "The number of elements in the '%s' arg 
does not match that of 'res_nums'." % name
+
+            # Place the args into the namespace, translating for BMRB.
+            setattr(self, name, translate(obj))
 
         # Initialise the save frame.
         self.frame = SaveFrame(title='order_parameters')
@@ -168,26 +209,29 @@
     def create(self):
         """Create the OrderParameter tag category."""
 
-        # The relaxation tag names.
-        tag_names = []
-        missing = []
-        for key in ['SeqID', 'CompID', 'AtomID']:
-            if not self.tag_names.has_key(key):
-                missing.append(key)
-            else:
-                tag_names.append(self.tag_names_full[key])
-
-        # The tag values.
-        tag_values = []
-        if 'SeqID' not in missing:
-            tag_values.append(self.sf.res_nums)
-        if 'CompID' not in missing:
-            tag_values.append(self.sf.res_names)
-        if 'AtomID' not in missing:
-            tag_values.append(self.sf.atom_names)
-
-        # Add the data.
-        table = TagTable(tagnames=tag_names, tagvalues=tag_values)
+        # Keys and objects.
+        info = [
+            ['SeqID',               'res_nums'],
+            ['CompID',              'res_names'],
+            ['AtomID',              'atom_names'],
+            ['OrderParamVal',       's2'],
+            ['OrderParamValErr',    's2_err'],
+            ['TauEVal',             'te'],
+            ['TauEValErr',          'te_err'],
+            ['TauFVal',             'tf'],
+            ['TauFValErr',          'tf_err'],
+            ['TauSVal',             'ts'],
+            ['TauSValErr',          'ts_err'],
+            ['RexVal',              'rex'],
+            ['RexValErr',           'rex_err'],
+            ['Sf2Val',              's2f'],
+            ['Sf2ValErr',           's2f_err'],
+            ['Ss2Val',              's2s'],
+            ['Ss2ValErr',           's2s_err']
+        ]
+
+        # Get the TabTable.
+        table = self.create_tag_table(info)
 
         # Add the tagtable to the save frame.
         self.sf.frame.tagtables.append(table)
@@ -209,3 +253,17 @@
         self.tag_names['SeqID'] = 'Residue_seq_code'
         self.tag_names['CompID'] = 'Residue_label'
         self.tag_names['AtomID'] = 'Atom_name'
+        self.tag_names['OrderParamVal'] = 'S2_value'
+        self.tag_names['OrderParamValErr'] = 'S2_value_fit_error'
+        self.tag_names['TauEVal'] = 'Tau_e_value'
+        self.tag_names['TauEValErr'] = 'Tau_e_value_fit_error'
+        self.tag_names['TauFVal'] = 'Tau_f_value'
+        self.tag_names['TauFValErr'] = 'Tau_f_value_fit_error'
+        self.tag_names['TauSVal'] = 'Tau_s_value'
+        self.tag_names['TauSValErr'] = 'Tau_s_value_fit_error'
+        self.tag_names['RexVal'] = None
+        self.tag_names['RexValErr'] = None
+        self.tag_names['Sf2Val'] = 'S2f_value'
+        self.tag_names['Sf2ValErr'] = 'S2f_value_fit_error'
+        self.tag_names['Ss2Val'] = 'S2s_value'
+        self.tag_names['Ss2ValErr'] = 'S2s_value_fit_error'

Modified: branches/bmrb/bmrblib/thermodynamics/order_parameters_v3_1.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/bmrb/bmrblib/thermodynamics/order_parameters_v3_1.py?rev=8943&r1=8942&r2=8943&view=diff
==============================================================================
--- branches/bmrb/bmrblib/thermodynamics/order_parameters_v3_1.py (original)
+++ branches/bmrb/bmrblib/thermodynamics/order_parameters_v3_1.py Mon Mar  9 
19:44:09 2009
@@ -83,3 +83,17 @@
         self.tag_names['SeqID'] = 'Seq_ID'
         self.tag_names['CompID'] = 'Comp_ID'
         self.tag_names['AtomID'] = 'Atom_ID'
+        self.tag_names['OrderParamVal'] = 'Order_param_val'
+        self.tag_names['OrderParamValErr'] = 'Order_param_val_fit_err'
+        self.tag_names['TauEVal'] = 'Tau_e_val'
+        self.tag_names['TauEValErr'] = 'Tau_e_val_fit_err'
+        self.tag_names['TauFVal'] = 'Tau_f_val'
+        self.tag_names['TauFValErr'] = 'Tau_f_val_fit_err'
+        self.tag_names['TauSVal'] = 'Tau_s_val'
+        self.tag_names['TauSValErr'] = 'Tau_s_val_fit_err'
+        self.tag_names['RexVal'] = 'Rex_val'
+        self.tag_names['RexValErr'] = 'Rex_val_fit_err'
+        self.tag_names['Sf2Val'] = 'S2f_val'
+        self.tag_names['Sf2ValErr'] = 'S2f_val_fit_err'
+        self.tag_names['Ss2Val'] = 'S2s_val'
+        self.tag_names['Ss2ValErr'] = 'S2s_val_fit_err'




Related Messages


Powered by MHonArc, Updated Mon Mar 09 20:00:10 2009