mailr5183 - /1.3/specific_fns/model_free/mf_minimise.py


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

Header


Content

Posted by edward on March 23, 2008 - 14:44:
Author: bugman
Date: Sun Mar 23 14:44:00 2008
New Revision: 5183

URL: http://svn.gna.org/viewcvs/relax?rev=5183&view=rev
Log:
A number of modifications to get the grid_search_config() method to work.


Modified:
    1.3/specific_fns/model_free/mf_minimise.py

Modified: 1.3/specific_fns/model_free/mf_minimise.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/specific_fns/model_free/mf_minimise.py?rev=5183&r1=5182&r2=5183&view=diff
==============================================================================
--- 1.3/specific_fns/model_free/mf_minimise.py (original)
+++ 1.3/specific_fns/model_free/mf_minimise.py Sun Mar 23 14:44:00 2008
@@ -463,27 +463,28 @@
         self.minimise(min_algor='grid', lower=lower, upper=upper, inc=inc, 
constraints=constraints, verbosity=verbosity, sim_index=sim_index)
 
 
-    def grid_search_config(self, index=None):
+    def grid_search_config(self, num_params, spin=None, spin_id=None):
         """Configure the grid search.
+
+        @param num_params:      The number of parameters in the model.
+        @type num_params:       int
+        @keyword spin:          The spin data container.
+        @type spin:             SpinContainer instance
+        @keyword spin_id:       The spin identification string.
+        @type spin_id:          str
         """
 
-        # Create the initial parameter vector.
-        param_vector = self.assemble_param_vector()
-
-        # The length of the parameter array.
-        n = len(param_vector)
-
         # Make sure that the length of the parameter array is > 0.
-        if n == 0:
+        if num_params == 0:
             print "Cannot run a grid search on a model with zero parameters, 
skipping the grid search."
 
         # Test the grid search options.
-        self.test_grid_ops(lower=lower, upper=upper, inc=inc, n=n)
+        self.test_grid_ops(lower=lower, upper=upper, inc=inc, n=num_params)
 
         # If inc is a single int, convert it into an array of that value.
         if type(inc) == int:
             temp = []
-            for j in xrange(n):
+            for i in xrange(num_params):
                 temp.append(inc)
             inc = temp
 
@@ -504,14 +505,16 @@
 
         # Model-free parameters (residue specific parameters).
         if param_set != 'diff':
-            # Spin loop.
-            for spin in spin_loop():
+            # The loop.
+            if spin:
+                loop = [spin]
+            else:
+                loop = spin_loop(spin_id)
+
+            # Loop over the spins.
+            for spin in loop:
                 # Skip deselected residues.
                 if not spin.select:
-                    continue
-
-                # Only add parameters for a single residue if index has a 
value.
-                if index != None and i != index:
                     continue
 
                 # Get the spin specific configuration.
@@ -855,14 +858,17 @@
                 # Create the initial parameter vector.
                 param_vector = self.assemble_param_vector(spin=spin, 
sim_index=sim_index)
 
+                # The number of parameters.
+                num_params = len(param_vector)
+
                 # Diagonal scaling.
-                scaling_matrix = 
self.assemble_scaling_matrix(len(param_vector), param_set=param_set, 
spin=spin, scaling=scaling)
+                scaling_matrix = self.assemble_scaling_matrix(num_params, 
param_set=param_set, spin=spin, scaling=scaling)
                 if len(scaling_matrix):
                     param_vector = dot(inv(scaling_matrix), param_vector)
 
             # Configure the grid search.
             if match('^[Gg]rid', min_algor):
-                min_options = self.grid_search_config(index=index)
+                min_options = self.grid_search_config(num_params, spin=spin)
 
             # Scaling of values for the set function.
             if match('^[Ss]et', min_algor):




Related Messages


Powered by MHonArc, Updated Sun Mar 23 15:00:31 2008