mailr7066 - /1.3/generic_fns/value.py


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

Header


Content

Posted by edward on August 01, 2008 - 14:19:
Author: bugman
Date: Fri Aug  1 14:19:47 2008
New Revision: 7066

URL: http://svn.gna.org/viewcvs/relax?rev=7066&view=rev
Log:
Converted the read() class method into a module function.

This completes the conversion of all class methods to functions.


Modified:
    1.3/generic_fns/value.py

Modified: 1.3/generic_fns/value.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/generic_fns/value.py?rev=7066&r1=7065&r2=7066&view=diff
==============================================================================
--- 1.3/generic_fns/value.py (original)
+++ 1.3/generic_fns/value.py Fri Aug  1 14:19:47 2008
@@ -199,6 +199,160 @@
     return spin_params, spin_values, other_params, other_values
 
 
+def read(param=None, scaling=1.0, file=None, num_col=0, name_col=1, 
data_col=2, error_col=3, sep=None):
+    """Function for reading residue specific data values from a file."""
+
+    # Arguments.
+    self.param = param
+    self.scaling = scaling
+
+    # Test if the current pipe exists.
+    if not ds.current_pipe:
+        raise RelaxNoPipeError
+
+    # Test if sequence data is loaded.
+    if not exists_mol_res_spin_data():
+        raise RelaxNoSequenceError
+
+    # Function type.
+    self.function_type = ds.run_types[ds.run_names.index(self.run)]
+
+    # Minimisation parameter.
+    if self.relax.generic.minimise.return_data_name(param):
+        # Minimisation statistic flag.
+        min_stat = 1
+
+        # Specific value and error returning function.
+        return_value = self.relax.generic.minimise.return_value
+
+        # Specific set function.
+        set = self.relax.generic.minimise.set
+
+    # Normal parameter.
+    else:
+        # Minimisation statistic flag.
+        min_stat = 0
+
+        # Specific value and error returning function.
+        return_value = self.relax.specific_setup.setup('return_value', 
self.function_type)
+
+        # Specific set function.
+        set = self.relax.specific_setup.setup('set', self.function_type)
+
+    # Test data corresponding to param already exists.
+    for i in xrange(len(ds.res[self.run])):
+        # Skip deselected residues.
+        if not ds.res[self.run][i].select:
+            continue
+
+        # Get the value and error.
+        value, error = return_value(self.run, i, self.param)
+
+        # Data exists.
+        if value != None or error != None:
+            raise RelaxValueError, (self.param, self.run)
+
+    # Extract the data from the file.
+    file_data = extract_data(file)
+
+    # Count the number of header lines.
+    header_lines = 0
+    for i in xrange(len(file_data)):
+        try:
+            int(file_data[i][num_col])
+        except:
+            header_lines = header_lines + 1
+        else:
+            break
+
+    # Remove the header.
+    file_data = file_data[header_lines:]
+
+    # Strip the data.
+    file_data = strip(file_data)
+
+    # Do nothing if the file does not exist.
+    if not file_data:
+        raise RelaxFileEmptyError
+
+    # Test the validity of the data.
+    for i in xrange(len(file_data)):
+        # Skip missing data.
+        if len(file_data[i]) <= data_col or len(file_data[i]) <= error_col:
+            continue
+
+        try:
+            # Number column.
+            int(file_data[i][num_col])
+
+            # Value column.
+            if file_data[i][data_col] != 'None':
+                float(file_data[i][data_col])
+
+            # Error column.
+            if error_col != None and file_data[i][error_col] != 'None':
+                float(file_data[i][error_col])
+
+        except ValueError:
+            if error_col != None:
+                if name_col != None:
+                    raise RelaxError, "The data is invalid (num=" + 
file_data[i][num_col] + ", name=" + file_data[i][name_col] + ", data=" + 
file_data[i][data_col] + ", error=" + file_data[i][error_col] + ")."
+                else:
+                    raise RelaxError, "The data is invalid (num=" + 
file_data[i][num_col] + ", data=" + file_data[i][data_col] + ", error=" + 
file_data[i][error_col] + ")."
+            else:
+                if name_col != None:
+                    raise RelaxError, "The data is invalid (num=" + 
file_data[i][num_col] + ", name=" + file_data[i][name_col] + ", data=" + 
file_data[i][data_col] + ")."
+                else:
+                    raise RelaxError, "The data is invalid (num=" + 
file_data[i][num_col] + ", data=" + file_data[i][data_col] + ")."
+
+    # Loop over the data.
+    for i in xrange(len(file_data)):
+        # Skip missing data.
+        if len(file_data[i]) <= data_col or len(file_data[i]) <= error_col:
+            continue
+
+        # Residue number.
+        spin_num = int(file_data[i][num_col])
+
+        # Residue name.
+        if name_col == None:
+            spin_name = None
+        else:
+            spin_name = file_data[i][name_col]
+
+        # Value.
+        if file_data[i][data_col] != 'None':
+            value = float(file_data[i][data_col])
+        else:
+            value = None
+
+        # Error.
+        if error_col != None and file_data[i][error_col] != 'None':
+            error = float(file_data[i][error_col])
+        else:
+            error = None
+
+        # Find the index of ds.res[self.run] which corresponds to the 
relaxation data set i.
+        index = None
+        for j in xrange(len(ds.res[self.run])):
+            if ds.res[self.run][j].num == spin_num and (spin_name == None or 
ds.res[self.run][j].name == spin_name):
+                index = j
+                break
+        if index == None:
+            raise RelaxNoResError, (spin_num, spin_name)
+
+        # Set the value.
+        set(run=run, value=value, error=error, param=self.param, 
scaling=scaling, index=index)
+
+        # Reset the residue specific minimisation statistics.
+        if not min_stat:
+            self.relax.generic.minimise.reset_min_stats(self.run, index)
+
+    # Reset the global minimisation statistics.
+    if not min_stat:
+        self.relax.generic.minimise.reset_min_stats(self.run)
+
+
 def set(val=None, param=None, spin_id=None, force=False):
     """Function for setting residue specific data values.
 
@@ -459,164 +613,3 @@
 
         # Write the data.
         write_line(file, mol_name, res_num, res_name, spin.num, spin.name, 
extra_format=format, extra_values=(`value`, `error`), mol_name_flag=True, 
res_num_flag=True, res_name_flag=True, spin_num_flag=True, 
spin_name_flag=True)
-
-
-class Value:
-    def __init__(self, relax):
-        """Class containing functions for the setting up of data 
structures."""
-
-        self.relax = relax
-
-
-    def read(self, param=None, scaling=1.0, file=None, num_col=0, 
name_col=1, data_col=2, error_col=3, sep=None):
-        """Function for reading residue specific data values from a file."""
-
-        # Arguments.
-        self.param = param
-        self.scaling = scaling
-
-        # Test if the current pipe exists.
-        if not ds.current_pipe:
-            raise RelaxNoPipeError
-
-        # Test if sequence data is loaded.
-        if not exists_mol_res_spin_data():
-            raise RelaxNoSequenceError
-
-        # Function type.
-        self.function_type = ds.run_types[ds.run_names.index(self.run)]
-
-        # Minimisation parameter.
-        if self.relax.generic.minimise.return_data_name(param):
-            # Minimisation statistic flag.
-            min_stat = 1
-
-            # Specific value and error returning function.
-            return_value = self.relax.generic.minimise.return_value
-
-            # Specific set function.
-            set = self.relax.generic.minimise.set
-
-        # Normal parameter.
-        else:
-            # Minimisation statistic flag.
-            min_stat = 0
-
-            # Specific value and error returning function.
-            return_value = self.relax.specific_setup.setup('return_value', 
self.function_type)
-
-            # Specific set function.
-            set = self.relax.specific_setup.setup('set', self.function_type)
-
-        # Test data corresponding to param already exists.
-        for i in xrange(len(ds.res[self.run])):
-            # Skip deselected residues.
-            if not ds.res[self.run][i].select:
-                continue
-
-            # Get the value and error.
-            value, error = return_value(self.run, i, self.param)
-
-            # Data exists.
-            if value != None or error != None:
-                raise RelaxValueError, (self.param, self.run)
-
-        # Extract the data from the file.
-        file_data = extract_data(file)
-
-        # Count the number of header lines.
-        header_lines = 0
-        for i in xrange(len(file_data)):
-            try:
-                int(file_data[i][num_col])
-            except:
-                header_lines = header_lines + 1
-            else:
-                break
-
-        # Remove the header.
-        file_data = file_data[header_lines:]
-
-        # Strip the data.
-        file_data = strip(file_data)
-
-        # Do nothing if the file does not exist.
-        if not file_data:
-            raise RelaxFileEmptyError
-
-        # Test the validity of the data.
-        for i in xrange(len(file_data)):
-            # Skip missing data.
-            if len(file_data[i]) <= data_col or len(file_data[i]) <= 
error_col:
-                continue
-
-            try:
-                # Number column.
-                int(file_data[i][num_col])
-
-                # Value column.
-                if file_data[i][data_col] != 'None':
-                    float(file_data[i][data_col])
-
-                # Error column.
-                if error_col != None and file_data[i][error_col] != 'None':
-                    float(file_data[i][error_col])
-
-            except ValueError:
-                if error_col != None:
-                    if name_col != None:
-                        raise RelaxError, "The data is invalid (num=" + 
file_data[i][num_col] + ", name=" + file_data[i][name_col] + ", data=" + 
file_data[i][data_col] + ", error=" + file_data[i][error_col] + ")."
-                    else:
-                        raise RelaxError, "The data is invalid (num=" + 
file_data[i][num_col] + ", data=" + file_data[i][data_col] + ", error=" + 
file_data[i][error_col] + ")."
-                else:
-                    if name_col != None:
-                        raise RelaxError, "The data is invalid (num=" + 
file_data[i][num_col] + ", name=" + file_data[i][name_col] + ", data=" + 
file_data[i][data_col] + ")."
-                    else:
-                        raise RelaxError, "The data is invalid (num=" + 
file_data[i][num_col] + ", data=" + file_data[i][data_col] + ")."
-
-        # Loop over the data.
-        for i in xrange(len(file_data)):
-            # Skip missing data.
-            if len(file_data[i]) <= data_col or len(file_data[i]) <= 
error_col:
-                continue
-
-            # Residue number.
-            spin_num = int(file_data[i][num_col])
-
-            # Residue name.
-            if name_col == None:
-                spin_name = None
-            else:
-                spin_name = file_data[i][name_col]
-
-            # Value.
-            if file_data[i][data_col] != 'None':
-                value = float(file_data[i][data_col])
-            else:
-                value = None
-
-            # Error.
-            if error_col != None and file_data[i][error_col] != 'None':
-                error = float(file_data[i][error_col])
-            else:
-                error = None
-
-            # Find the index of ds.res[self.run] which corresponds to the 
relaxation data set i.
-            index = None
-            for j in xrange(len(ds.res[self.run])):
-                if ds.res[self.run][j].num == spin_num and (spin_name == 
None or ds.res[self.run][j].name == spin_name):
-                    index = j
-                    break
-            if index == None:
-                raise RelaxNoResError, (spin_num, spin_name)
-
-            # Set the value.
-            set(run=run, value=value, error=error, param=self.param, 
scaling=scaling, index=index)
-
-            # Reset the residue specific minimisation statistics.
-            if not min_stat:
-                self.relax.generic.minimise.reset_min_stats(self.run, index)
-
-        # Reset the global minimisation statistics.
-        if not min_stat:
-            self.relax.generic.minimise.reset_min_stats(self.run)




Related Messages


Powered by MHonArc, Updated Fri Aug 01 15:00:29 2008