mailr9583 - in /1.3: generic_fns/sequence.py relax_io.py


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

Header


Content

Posted by edward on October 06, 2009 - 15:46:
Author: bugman
Date: Tue Oct  6 15:46:25 2009
New Revision: 9583

URL: http://svn.gna.org/viewcvs/relax?rev=9583&view=rev
Log:
The relax_io.read_spin_data_file() function now calls 
generic_fns.sequence.validate_sequence().

This is a more advanced check of the sequence information.  The 
validate_sequence() function has
also been modified to handle single data lines.


Modified:
    1.3/generic_fns/sequence.py
    1.3/relax_io.py

Modified: 1.3/generic_fns/sequence.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/generic_fns/sequence.py?rev=9583&r1=9582&r2=9583&view=diff
==============================================================================
--- 1.3/generic_fns/sequence.py (original)
+++ 1.3/generic_fns/sequence.py Tue Oct  6 15:46:25 2009
@@ -323,7 +323,7 @@
 
 
 def validate_sequence(data, mol_name_col=None, res_num_col=None, 
res_name_col=None, spin_num_col=None, spin_name_col=None):
-    """Function for testing if the sequence data is valid.
+    """Test if the sequence data is valid.
 
     The only function this performs is to raise a RelaxError if the data is 
invalid.
 
@@ -342,56 +342,54 @@
     @type spin_num_col:     int or None
     """
 
-    # Loop over the data.
-    for i in xrange(len(data)):
-        # Molecule name data.
-        if mol_name_col != None:
-            try:
-                data[i][mol_name_col]
-            except IndexError:
-                raise RelaxInvalidSeqError(data[i])
-
-        # Residue number data.
-        if res_num_col != None:
-            # No data in column.
-            try:
-                data[i][res_num_col]
-            except IndexError:
-                raise RelaxInvalidSeqError(data[i])
-
-            # Bad data in column.
-            try:
-                int(data[i][res_num_col])
-            except ValueError:
-                raise RelaxInvalidSeqError(data[i])
-
-        # Residue name data.
-        if res_name_col != None:
-            try:
-                data[i][res_name_col]
-            except IndexError:
-                raise RelaxInvalidSeqError(data[i])
-
-        # Spin number data.
-        if spin_num_col != None:
-            # No data in column.
-            try:
-                data[i][spin_num_col]
-            except IndexError:
-                raise RelaxInvalidSeqError(data[i])
-
-            # Bad data in column.
-            try:
-                int(data[i][spin_num_col])
-            except ValueError:
-                raise RelaxInvalidSeqError(data[i])
-
-        # Spin name data.
-        if spin_name_col != None:
-            try:
-                data[i][spin_name_col]
-            except IndexError:
-                raise RelaxInvalidSeqError(data[i])
+    # Molecule name data.
+    if mol_name_col:
+        try:
+            data[mol_name_col]
+        except IndexError:
+            raise RelaxInvalidSeqError(data)
+
+    # Residue number data.
+    if res_num_col:
+        # No data in column.
+        try:
+            data[res_num_col]
+        except IndexError:
+            raise RelaxInvalidSeqError(data)
+
+        # Bad data in column.
+        try:
+            int(data[res_num_col])
+        except ValueError:
+            raise RelaxInvalidSeqError(data)
+
+    # Residue name data.
+    if res_name_col:
+        try:
+            data[res_name_col]
+        except IndexError:
+            raise RelaxInvalidSeqError(data)
+
+    # Spin number data.
+    if spin_num_col:
+        # No data in column.
+        try:
+            data[spin_num_col]
+        except IndexError:
+            raise RelaxInvalidSeqError(data)
+
+        # Bad data in column.
+        try:
+            int(data[spin_num_col])
+        except ValueError:
+            raise RelaxInvalidSeqError(data)
+
+    # Spin name data.
+    if spin_name_col:
+        try:
+            data[spin_name_col]
+        except IndexError:
+            raise RelaxInvalidSeqError(data)
 
 
 def write(file, dir=None, sep=None, mol_name_flag=False, res_num_flag=False, 
res_name_flag=False, spin_num_flag=False, spin_name_flag=False, force=False):

Modified: 1.3/relax_io.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/relax_io.py?rev=9583&r1=9582&r2=9583&view=diff
==============================================================================
--- 1.3/relax_io.py (original)
+++ 1.3/relax_io.py Tue Oct  6 15:46:25 2009
@@ -45,6 +45,7 @@
 from sys import stdin, stdout, stderr
 
 # relax module imports.
+import generic_fns
 from generic_fns.mol_res_spin import generate_spin_id_data_array
 from relax_errors import RelaxError, RelaxFileError, RelaxFileEmptyError, 
RelaxFileOverwriteError, RelaxMissingBinaryError, RelaxNoInPathError, 
RelaxNonExecError
 from relax_warnings import RelaxWarning
@@ -544,27 +545,17 @@
     # Test the validity of the data.
     if data_col or error_col:
         missing = True
-        for i in xrange(len(file_data)):
+        for line in file_data:
             # Skip missing data.
-            if len(file_data[i]) < min_col_num:
+            if len(line) < min_col_num:
                 continue
-            elif data_col and file_data[i][data_col-1] == 'None':
+            elif data_col and line[data_col-1] == 'None':
                 continue
-            elif error_col and file_data[i][error_col-1] == 'None':
+            elif error_col and line[error_col-1] == 'None':
                 continue
 
-            # Test that the data are numbers.
-            try:
-                if res_num_col:
-                    int(file_data[i][res_num_col-1])
-                if spin_num_col:
-                    int(file_data[i][spin_num_col-1])
-                if data_col:
-                    float(file_data[i][data_col-1])
-                if error_col:
-                    float(file_data[i][error_col-1])
-            except ValueError:
-                raise RelaxError("The data in the line " + 
repr(file_data[i]) + " is invalid.")
+            # Validate the sequence.
+            generic_fns.sequence.validate_sequence(line, 
mol_name_col=mol_name_col, res_num_col=res_num_col, 
res_name_col=res_name_col, spin_num_col=spin_num_col, 
spin_name_col=spin_name_col)
 
             # Right, data is OK and exists.
             missing = False




Related Messages


Powered by MHonArc, Updated Tue Oct 06 16:20:02 2009