mailr24912 - /trunk/auto_analyses/relax_disp.py


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

Header


Content

Posted by tlinnet on August 01, 2014 - 18:09:
Author: tlinnet
Date: Fri Aug  1 18:09:41 2014
New Revision: 24912

URL: http://svn.gna.org/viewcvs/relax?rev=24912&view=rev
Log:
Added warning message to auto analysis in relax disp, if numpy is below 1.8 
and using numerical model.

This will make the analysis 5-6 times slower.

Modified:
    trunk/auto_analyses/relax_disp.py

Modified: trunk/auto_analyses/relax_disp.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/auto_analyses/relax_disp.py?rev=24912&r1=24911&r2=24912&view=diff
==============================================================================
--- trunk/auto_analyses/relax_disp.py   (original)
+++ trunk/auto_analyses/relax_disp.py   Fri Aug  1 18:09:41 2014
@@ -25,6 +25,7 @@
 # Python module imports.
 from copy import deepcopy
 from os import F_OK, access, getcwd, sep
+from numpy import version
 import sys
 from warnings import warn
 
@@ -37,7 +38,7 @@
 from prompt.interpreter import Interpreter
 from specific_analyses.relax_disp.data import has_exponential_exp_type, 
has_cpmg_exp_type, has_fixed_time_exp_type, has_r1rho_exp_type, loop_frq
 from specific_analyses.relax_disp.data import INTERPOLATE_DISP, 
INTERPOLATE_OFFSET, X_AXIS_DISP, X_AXIS_W_EFF, X_AXIS_THETA, Y_AXIS_R2_R1RHO, 
Y_AXIS_R2_EFF
-from specific_analyses.relax_disp.variables import MODEL_B14, 
MODEL_B14_FULL, MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94, MODEL_IT99, 
MODEL_LIST_ANALYTIC, MODEL_LIST_R1RHO, MODEL_LIST_R1RHO_FULL, MODEL_LM63, 
MODEL_LM63_3SITE, MODEL_M61, MODEL_M61B, MODEL_MP05, MODEL_MMQ_CR72, 
MODEL_NS_CPMG_2SITE_3D, MODEL_NS_CPMG_2SITE_3D_FULL, 
MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_CPMG_2SITE_STAR, 
MODEL_NS_CPMG_2SITE_STAR_FULL, MODEL_NS_MMQ_2SITE, MODEL_NS_MMQ_3SITE, 
MODEL_NS_MMQ_3SITE_LINEAR, MODEL_NS_R1RHO_2SITE, MODEL_NS_R1RHO_3SITE, 
MODEL_NS_R1RHO_3SITE_LINEAR, MODEL_PARAMS, MODEL_R2EFF, MODEL_TAP03, 
MODEL_TP02, MODEL_TSMFK01
+from specific_analyses.relax_disp.variables import MODEL_B14, 
MODEL_B14_FULL, MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94, MODEL_IT99, 
MODEL_LIST_ANALYTIC, MODEL_LIST_NUMERIC, MODEL_LIST_R1RHO, 
MODEL_LIST_R1RHO_FULL, MODEL_LM63, MODEL_LM63_3SITE, MODEL_M61, MODEL_M61B, 
MODEL_MP05, MODEL_MMQ_CR72, MODEL_NS_CPMG_2SITE_3D, 
MODEL_NS_CPMG_2SITE_3D_FULL, MODEL_NS_CPMG_2SITE_EXPANDED, 
MODEL_NS_CPMG_2SITE_STAR, MODEL_NS_CPMG_2SITE_STAR_FULL, MODEL_NS_MMQ_2SITE, 
MODEL_NS_MMQ_3SITE, MODEL_NS_MMQ_3SITE_LINEAR, MODEL_NS_R1RHO_2SITE, 
MODEL_NS_R1RHO_3SITE, MODEL_NS_R1RHO_3SITE_LINEAR, MODEL_PARAMS, MODEL_R2EFF, 
MODEL_TAP03, MODEL_TP02, MODEL_TSMFK01
 from status import Status; status = Status()
 
 
@@ -115,6 +116,10 @@
         # Data checks.
         self.check_vars()
 
+        # Check for numerical model using numpy version under 1.8.
+        # This will result in slow "for loop" calculation through data, 
making the analysis 5-6 times slower.
+        self.check_numpy_less_1_8_and_numerical_model()
+
         # Load the interpreter.
         self.interpreter = Interpreter(show_script=False, 
raise_relax_error=True)
         self.interpreter.populate_self()
@@ -181,6 +186,31 @@
 
         # Printout.
         print("The dispersion auto-analysis variables are OK.")
+
+
+    def check_numpy_less_1_8_and_numerical_model(self):
+        """Check for numerical model using numpy version under 1.8.  This 
will result in slow "for loop" calculation through data, making the analysis 
5-6 times slower."""
+
+        # Some warning for the user if the pure numeric solution is selected.
+        if float(version.version[:3]) < 1.8:
+            # Store which models are in numeric.
+            models = []
+
+            # Loop through models.
+            for model in self.models:
+                if model in MODEL_LIST_NUMERIC:
+                    models.append(model)
+
+            # Write system message if numerical models is present and numpy 
version is below 1.8.
+            if len(models) > 0:
+                # Printout.
+                section(file=sys.stdout, text="Numpy version checking for 
numerical models.", prespace=2)
+                warn(RelaxWarning("Your version of numpy is %s, and below 
the recommended version of 1.8 for numerical models." % (version.version)))
+                warn(RelaxWarning("Please consider upgrading your numpy 
version to 1.8."))
+
+                # Loop over models.
+                for model in models:
+                    warn(RelaxWarning("This could make the numerical 
analysis with model '%s', 5 to 6 times slower." % (model)))
 
 
     def error_analysis(self):




Related Messages


Powered by MHonArc, Updated Fri Aug 01 19:20:02 2014