mailr25327 - in /trunk: pipe_control/minimise.py specific_analyses/model_free/api.py


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

Header


Content

Posted by edward on August 27, 2014 - 10:45:
Author: bugman
Date: Wed Aug 27 10:45:28 2014
New Revision: 25327

URL: http://svn.gna.org/viewcvs/relax?rev=25327&view=rev
Log:
The minimisation statistics are now being reset for all analysis types.

The minimise.calcululate, minimise.grid_search, and minimise.execute user 
functions now all reset
the minimisation statistics for either the model or the Monte Carlo 
simulations prior to performing
any optimisation.  This is required for both parallelised grid searches and 
repetitive optimisation
schemes to allow the result to overwrite an old result in all situations, as 
sometimes the original
chi-squared value is lower and the new result hence is rejected.

The equivalent functionality from the model-free minimise() API method has 
been removed.


Modified:
    trunk/pipe_control/minimise.py
    trunk/specific_analyses/model_free/api.py

Modified: trunk/pipe_control/minimise.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/pipe_control/minimise.py?rev=25327&r1=25326&r2=25327&view=diff
==============================================================================
--- trunk/pipe_control/minimise.py      (original)
+++ trunk/pipe_control/minimise.py      Wed Aug 27 10:45:28 2014
@@ -94,6 +94,9 @@
     # Test if the current data pipe exists.
     pipes.test()
 
+    # Reset the minimisation statistics.
+    reset_min_stats()
+
     # The specific analysis API object.
     api = return_api()
 
@@ -178,6 +181,9 @@
     if hasattr(cdp, 'sim_state') and cdp.sim_state == 1:
         # Loop over the simulations.
         for i in range(cdp.sim_number):
+            # Reset the minimisation statistics.
+            reset_min_stats(sim_index=i)
+
             # Status.
             if status.current_analysis:
                 status.auto_analysis[status.current_analysis].mc_number = i
@@ -199,6 +205,10 @@
 
     # Grid search.
     else:
+        # Reset the minimisation statistics.
+        reset_min_stats()
+
+        # Optimise.
         api.grid_search(lower=model_lower, upper=model_upper, inc=model_inc, 
scaling_matrix=scaling_matrix, constraints=constraints, verbosity=verbosity)
 
     # Execute any queued commands.
@@ -477,11 +487,18 @@
 
     # Single Monte Carlo simulation.
     if sim_index != None:
+        # Reset the minimisation statistics.
+        reset_min_stats(sim_index=sim_index)
+
+        # Optimise.
         api.minimise(min_algor=min_algor, min_options=min_options, 
func_tol=func_tol, grad_tol=grad_tol, max_iterations=max_iter, 
constraints=constraints, scaling_matrix=scaling_matrix, verbosity=verbosity, 
sim_index=sim_index)
 
     # Monte Carlo simulation minimisation.
     elif hasattr(cdp, 'sim_state') and cdp.sim_state == 1:
         for i in range(cdp.sim_number):
+            # Reset the minimisation statistics.
+            reset_min_stats(sim_index=i)
+
             # Status.
             if status.current_analysis:
                 status.auto_analysis[status.current_analysis].mc_number = i
@@ -503,6 +520,10 @@
 
     # Standard minimisation.
     else:
+        # Reset the minimisation statistics.
+        reset_min_stats()
+
+        # Optimise.
         api.minimise(min_algor=min_algor, min_options=min_options, 
func_tol=func_tol, grad_tol=grad_tol, max_iterations=max_iter, 
constraints=constraints, scaling_matrix=scaling_matrix, verbosity=verbosity)
 
     # Execute any queued commands.
@@ -536,6 +557,7 @@
     ]
 
     # Loop over the objects.
+    flag = False
     for name in names:
         # The simulation name.
         sim_name = name + '_sim'
@@ -545,6 +567,7 @@
             # Reset the object to None if it exists.
             if hasattr(dp, name):
                 setattr(dp, name, None)
+                flag = False
 
         # Global MC minimisation statistics.
         else:
@@ -563,6 +586,7 @@
                 # Reset the object to None if it exists.
                 if hasattr(spin, name):
                     setattr(spin, name, None)
+                    flag = True
 
             # The MC minimisation statistics.
             else:
@@ -573,6 +597,10 @@
                     # Reset the object to None if possible.
                     if sim_index < len(sim_obj):
                         sim_obj[sim_index] = None
+
+    # Printout.
+    if flag and sim_index == None:
+        print("Resetting the minimisation statistics.")
 
 
 def set(val=None, error=None, param=None, scaling=None, spin_id=None):

Modified: trunk/specific_analyses/model_free/api.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/model_free/api.py?rev=25327&r1=25326&r2=25327&view=diff
==============================================================================
--- trunk/specific_analyses/model_free/api.py   (original)
+++ trunk/specific_analyses/model_free/api.py   Wed Aug 27 10:45:28 2014
@@ -50,7 +50,6 @@
 from pipe_control.exp_info import bmrb_write_citations, bmrb_write_methods, 
bmrb_write_software
 from pipe_control.interatomic import return_interatom_list
 from pipe_control.mol_res_spin import count_spins, exists_mol_res_spin_data, 
find_index, get_molecule_names, return_spin, return_spin_from_index, 
return_spin_indices, spin_loop
-from pipe_control.minimise import reset_min_stats
 from specific_analyses.api_base import API_base
 from specific_analyses.api_common import API_common
 from specific_analyses.model_free.bmrb import sf_csa_read, 
sf_model_free_read, to_bmrb_model
@@ -1124,10 +1123,6 @@
             if not hasattr(spin, 'isotope'):
                 raise RelaxSpinTypeError
 
-        # Reset the minimisation statistics.
-        if min_algor != 'back_calc':
-            reset_min_stats(sim_index=sim_index)
-
         # Containers for the model-free data and optimisation parameters.
         data_store = Data_container()
         opt_params = Data_container()




Related Messages


Powered by MHonArc, Updated Wed Aug 27 11:00:04 2014