mailr9631 - /1.3/generic_fns/sequence.py


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

Header


Content

Posted by edward on October 07, 2009 - 14:59:
Author: bugman
Date: Wed Oct  7 14:59:07 2009
New Revision: 9631

URL: http://svn.gna.org/viewcvs/relax?rev=9631&view=rev
Log:
Removed all dependence on write_body() and write_header() from the sequence 
module.


Modified:
    1.3/generic_fns/sequence.py

Modified: 1.3/generic_fns/sequence.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/generic_fns/sequence.py?rev=9631&r1=9630&r2=9631&view=diff
==============================================================================
--- 1.3/generic_fns/sequence.py (original)
+++ 1.3/generic_fns/sequence.py Wed Oct  7 14:59:07 2009
@@ -134,9 +134,9 @@
 
 
 def display(sep=None, mol_name_flag=False, res_num_flag=False, 
res_name_flag=False, spin_num_flag=False, spin_name_flag=False):
-    """Function for displaying the molecule, residue, and/or spin sequence 
data.
-
-    This calls the write_body() function to do most of the work.
+    """Display the molecule, residue, and/or spin sequence data.
+
+    This calls the write() function to do most of the work.
 
 
     @keyword sep:               The column seperator which, if None, 
defaults to whitespace.
@@ -163,7 +163,7 @@
         raise RelaxNoSequenceError
 
     # Write the data.
-    write_body(file=sys.stdout, sep=sep, mol_name_flag=mol_name_flag, 
res_num_flag=res_num_flag, res_name_flag=res_name_flag, 
spin_num_flag=spin_num_flag, spin_name_flag=spin_name_flag)
+    write(file=sys.stdout, sep=sep, mol_name_flag=mol_name_flag, 
res_num_flag=res_num_flag, res_name_flag=res_name_flag, 
spin_num_flag=spin_num_flag, spin_name_flag=spin_name_flag)
 
 
 def generate(mol_name=None, res_num=None, res_name=None, spin_num=None, 
spin_name=None, pipe=None, select=True, verbose=True):
@@ -218,6 +218,7 @@
     curr_spin = return_spin(generate_spin_id(mol_name=mol_name, 
res_num=res_num, res_name=res_name, spin_num=spin_num, spin_name=spin_name), 
pipe=pipe)
 
     # A new spin.
+    new_data = False
     if not curr_spin:
         # Add the spin.
         curr_res.spin.add_item(spin_name=spin_name, spin_num=spin_num)
@@ -225,12 +226,15 @@
         # Get the spin.
         curr_spin = return_spin(generate_spin_id(mol_name=mol_name, 
res_num=res_num, res_name=res_name, spin_num=spin_num, spin_name=spin_name), 
pipe=pipe)
 
+        # New data.
+        new_data = True
+
     # Set the selection flag.
     curr_spin.select = select
 
     # Print out of all the spins.
-    if verbose:
-        write_line(sys.stdout, mol_name, res_num, res_name, spin_num, 
spin_name, mol_name_flag=True, res_num_flag=True, res_name_flag=True, 
spin_num_flag=True, spin_name_flag=True)
+    if new_data:
+        return mol_name, res_num, res_name, spin_num, spin_name
 
 
 def read(file=None, dir=None, file_data=None, spin_id_col=None, 
mol_name_col=None, res_num_col=None, res_name_col=None, spin_num_col=None, 
spin_name_col=None, sep=None, spin_id=None):
@@ -278,13 +282,28 @@
     if exists_mol_res_spin_data():
         raise RelaxSequenceError
 
-    # Header print out.
-    write_header(sys.stdout, mol_name_flag=True, res_num_flag=True, 
res_name_flag=True, spin_num_flag=True, spin_name_flag=True)
+    # Init the data.
+    mol_names = []
+    res_nums = []
+    res_names = []
+    spin_nums = []
+    spin_names = []
 
     # Generate the sequence.
     for id in read_spin_data(file=file, dir=dir, file_data=file_data, 
spin_id_col=spin_id_col, 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, sep=sep, spin_id=spin_id):
         # Add the spin.
-        generate(*spin_id_to_data_list(id))
+        new_spin = generate(*spin_id_to_data_list(id))
+
+        # Append the new spin.
+        if new_spin:
+            mol_names.append(new_spin[0])
+            res_nums.append(new_spin[1])
+            res_names.append(new_spin[2])
+            spin_nums.append(new_spin[3])
+            spin_names.append(new_spin[4])
+
+    # Write the data.
+    write_spin_data(mol_names=mol_names, res_nums=res_nums, 
res_names=res_names, spin_nums=spin_nums, spin_names=spin_names)
 
 
 def validate_sequence(data, mol_name_col=None, res_num_col=None, 
res_name_col=None, spin_num_col=None, spin_name_col=None):
@@ -358,9 +377,9 @@
 
 
 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):
-    """Function for writing molecule, residue, and/or sequence data.
-
-    This calls the write_body() function to do most of the work.
+    """Write the molecule, residue, and/or sequence data.
+
+    This calls the relax_io.write_spin_data() function to do most of the 
work.
 
 
     @param file:                The name of the file to write the data to.
@@ -391,11 +410,32 @@
     if not count_spins():
         raise RelaxNoSequenceError
 
-    # Open the file for writing.
-    seq_file = open_write_file(file, dir, force)
+    # Init the data.
+    mol_names = []
+    res_nums = []
+    res_names = []
+    spin_nums = []
+    spin_names = []
+
+    # Spin loop.
+    for spin, mol_name, res_num, res_name in spin_loop(full_info=True):
+        mol_names.append(mol_name)
+        res_nums.append(res_num)
+        res_names.append(res_name)
+        spin_nums.append(spin.num)
+        spin_names.append(spin.name)
+
+    # Remove unwanted data.
+    if not mol_name_flag:
+        mol_names = None
+    if not res_num_flag:
+        res_nums = None
+    if not res_name_flag:
+        res_names = None
+    if not spin_num_flag:
+        spin_nums = None
+    if not spin_name_flag:
+        spin_names = None
 
     # Write the data.
-    write_body(file=seq_file, sep=sep, mol_name_flag=mol_name_flag, 
res_num_flag=res_num_flag, res_name_flag=res_name_flag, 
spin_num_flag=spin_num_flag, spin_name_flag=spin_name_flag)
-
-    # Close the results file.
-    seq_file.close()
+    write_spin_data(file=file, dir=dir, sep=sep, mol_names=mol_names, 
res_nums=res_nums, res_names=res_names, spin_nums=spin_nums, 
spin_names=spin_names)




Related Messages


Powered by MHonArc, Updated Wed Oct 07 15:20:04 2009