mailr6749 - /1.3/generic_fns/fix.py


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

Header


Content

Posted by edward on July 05, 2008 - 16:01:
Author: bugman
Date: Sat Jul  5 16:01:52 2008
New Revision: 6749

URL: http://svn.gna.org/viewcvs/relax?rev=6749&view=rev
Log:
Converted the fix() function to the new design.


Modified:
    1.3/generic_fns/fix.py

Modified: 1.3/generic_fns/fix.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/generic_fns/fix.py?rev=6749&r1=6748&r2=6749&view=diff
==============================================================================
--- 1.3/generic_fns/fix.py (original)
+++ 1.3/generic_fns/fix.py Sat Jul  5 16:01:52 2008
@@ -31,52 +31,48 @@
 from relax_errors import RelaxError, RelaxNoPipeError, RelaxNoSequenceError, 
RelaxNoTensorError
 
 
-def fix(self, run, element, fixed):
-    """Function for fixing or allowing parameter values to change."""
+def fix(element, fixed):
+    """Fix or allow certain model components values to vary during 
optimisation.
 
-    # Test if the run exists.
-    if not run in ds.run_names:
-        raise RelaxNoPipeError, run
+    @param element:     The model component to fix or unfix.  If set to 
'diff', then the diffusion
+                        parameters can be toggled.  If set to 'all_spins', 
then all spins can be
+                        toggled.  If set to 'all', then all model components 
are toggled.
+    @type element:      str.
+    """
+
+    # Test if the current data pipe exists.
+    if not ds.current_pipe:
+        raise RelaxNoPipeError
+
+    # Alias the current data pipe.
+    cdp = ds[ds.current_pipe]
 
     # Diffusion tensor.
-    if element == 'diff':
+    if element == 'diff' or element == 'all':
         # Test if the diffusion tensor data is loaded.
-        if not ds.diff.has_key(run):
+        if not hasattr(cdp, 'diff_tensor'):
             raise RelaxNoTensorError, 'diffusion'
 
         # Set the fixed flag.
-        ds.diff[run].fixed = fixed
+        cdp.diff_tensor.fixed = fixed
 
 
-    # All residues.
-    elif element == 'all_res':
-        # Test if sequence data is loaded.
-        if not ds.res.has_key(run):
-            raise RelaxNoSequenceError, run
+    # All spins.
+    elif element == 'all_spins' or element == 'all':
+        # Test if sequence data exists.
+        if not exists_mol_res_spin_data():
+            raise RelaxNoSequenceError
 
         # Loop over the sequence and set the fixed flag.
-        for i in xrange(len(ds.res[run])):
-            ds.res[run][i].fixed = fixed
+        for spin in spin_loop():
+            # Skip deselected spins.
+            if not spin.select:
+                continue
 
-
-    # All parameters.
-    elif element == 'all':
-        # Test if sequence data is loaded.
-        if not ds.res.has_key(run):
-            raise RelaxNoSequenceError, run
-
-        # Test if the diffusion tensor data is loaded.
-        if not ds.diff.has_key(run):
-            raise RelaxNoTensorError, 'diffusion'
-
-        # Set the fixed flag for the diffusion tensor.
-        ds.diff[run].fixed = fixed
-
-        # Loop over the sequence and set the fixed flag.
-        for i in xrange(len(ds.res[run])):
-            ds.res[run][i].fixed = fixed
+            # Set the flag.
+            spin.fixed = fixed
 
 
     # Unknown.
-    else:
+    if element not in ['diff', 'all_spins', 'all']:
         raise RelaxError, "The 'element' argument " + `element` + " is 
unknown."




Related Messages


Powered by MHonArc, Updated Sat Jul 05 16:20:12 2008