mailRe: r24323 - in /branches/disp_spin_speed: dep_check.py target_functions/relax_disp.py


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

Header


Content

Posted by Edward d'Auvergne on June 27, 2014 - 10:53:
Hi Troels,

This is ok.  If you would like to have the relax numpy dependency
increased to 1.6, then you'll just have to blacklist all system tests
that do not work, so they obtain a printout at the end that X number
of tests were skipped due to numpy < 1.6.  Then on the website and in
the manual, we tell users to use numpy < 1.6 at their own risk.  We
could even block the relaxation dispersion analysis in the pipe.create
user function via a RelaxError if numpy < 1.6, if all models are
affected.  But if this is the case, then maybe we make numpy >= 1.6 an
essential dependency which is checked in dep_check, calling sys.exit()
if not.

Regards,

Edward


On 27 June 2014 10:34, Troels Emtekær Linnet <tlinnet@xxxxxxxxxxxxx> wrote:
Hi ed.

I have already been looking at the systemtests.

Our server has numpy 1.4.1

But some of the analytical models fails as well, since 1.4.1 does not
recognise the 'out' keyword.

Sigh...

2014-06-26 17:26 GMT+02:00 Edward d'Auvergne <edward@xxxxxxxxxxxxx>:
Hi,

I can look at it later.  For requiring numpy 1.6, the following could be 
done:

- If you could delete the printout in dep_check, that would be good.
The printouts are only used for the essential packages before calling
sys.exit().  If you are interested in a message to the user, the
message needs to be modified to say something like "numpy >= 1.6 is
required for...", rather than "numpy einsum is not installed", and
this needs to be used like the C_module_exp_fn_mesg variable in the
dep_check and info modules rather than calling sys.stderr.write().

- Blacklist the system tests requiring this.  This is absolutely
essential for me to release the changes in a new relax version.  Maybe
you could tackle that one, as the problem is of your own doing ;)
It's just a simple duplication of code in the setUp() method.  Do you
have a system with numpy < 1.6 to test on?

- A RelaxError in the relax_disp.select_model user function for just
these models.  Could you give a list of these models, as I don't know
if all numeric models are affected, or if non-numeric models are
affected.  The best would be to create a new variable in
specific_analyses.relax_disp.variables for this model list.

- A GUI error blocking the execution of the analysis.  This would
require the model list in specific_analyses.relax_disp.variables to
identify the problem.  But I can look at this one.

Cheers,

Edward



On 25 June 2014 20:14, Troels Emtekær Linnet <tlinnet@xxxxxxxxxxxxx> wrote:
Hi Edward.

Do you fix this?

Thanks.

Best
Troels


2014-06-25 20:06 GMT+02:00 Edward d'Auvergne <edward@xxxxxxxxxxxxx>:

Hi Troels,

For this change, it might be better to not output a message to
sys.stderr.  For relax users who are not interested in a dispersion
analysis, there is no need to bother them.  What I would suggest for
safety is, in the backend for the relax_disp.select_model user
function, that we raise a RelaxError if one of these models are
selected but numpy.einsum does not exist.  The RelaxError message
could be that numpy version 1.6 or greater is required for the numeric
dispersion models.  A message could also appear in the GUI when the
execute button is clicked on, if these models have been selected.
That should be the best for the user experience when they have numpy <
1.6.

Regards,

Edward



On 25 June 2014 19:31,  <tlinnet@xxxxxxxxxxxxx> wrote:
Author: tlinnet
Date: Wed Jun 25 19:31:40 2014
New Revision: 24323

URL: http://svn.gna.org/viewcvs/relax?rev=24323&view=rev
Log:
Implemented a dependency check for numpy einsum, so relax can still
start.

Task #7807 (https://gna.org/task/index.php?7807): Speed-up of 
dispersion
models for Clustered analysis.

Modified:
    branches/disp_spin_speed/dep_check.py
    branches/disp_spin_speed/target_functions/relax_disp.py

Modified: branches/disp_spin_speed/dep_check.py
URL:
http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/dep_check.py?rev=24323&r1=24322&r2=24323&view=diff

==============================================================================
--- branches/disp_spin_speed/dep_check.py       (original)
+++ branches/disp_spin_speed/dep_check.py       Wed Jun 25 19:31:40 
2014
@@ -57,6 +57,14 @@

 # Optional packages.
 ####################
+
+# numpy einsum import.
+try:
+    from numpy import einsum
+    einsum_module = True
+except ImportError:
+    sys.stderr.write("The dependency 'numpy einsum' has not been
installed.  Numerical models in dispersion analysis will not be
possible.\n")
+    einsum_module = False

 # Bmrblib python package check.
 try:

Modified: branches/disp_spin_speed/target_functions/relax_disp.py
URL:
http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/target_functions/relax_disp.py?rev=24323&r1=24322&r2=24323&view=diff

==============================================================================
--- branches/disp_spin_speed/target_functions/relax_disp.py
(original)
+++ branches/disp_spin_speed/target_functions/relax_disp.py     Wed Jun
25 19:31:40 2014
@@ -30,6 +30,7 @@
 from numpy.ma import masked_equal

 # relax module imports.
+import dep_check
 from lib.dispersion.b14 import r2eff_B14
 from lib.dispersion.cr72 import r2eff_CR72
 from lib.dispersion.dpl94 import r1rho_DPL94
@@ -40,13 +41,7 @@
 from lib.dispersion.m61b import r1rho_M61b
 from lib.dispersion.mp05 import r1rho_MP05
 from lib.dispersion.mmq_cr72 import r2eff_mmq_cr72
-from lib.dispersion.ns_cpmg_2site_3d import r2eff_ns_cpmg_2site_3D
 from lib.dispersion.ns_cpmg_2site_expanded import
r2eff_ns_cpmg_2site_expanded
-from lib.dispersion.ns_cpmg_2site_star import r2eff_ns_cpmg_2site_star
-from lib.dispersion.ns_mmq_3site import r2eff_ns_mmq_3site_mq,
r2eff_ns_mmq_3site_sq_dq_zq
-from lib.dispersion.ns_mmq_2site import r2eff_ns_mmq_2site_mq,
r2eff_ns_mmq_2site_sq_dq_zq
-from lib.dispersion.ns_r1rho_2site import ns_r1rho_2site
-from lib.dispersion.ns_r1rho_3site import ns_r1rho_3site
 from lib.dispersion.ns_matrices import r180x_3d
 from lib.dispersion.tp02 import r1rho_TP02
 from lib.dispersion.tap03 import r1rho_TAP03
@@ -56,6 +51,14 @@
 from target_functions.chi2 import chi2, chi2_rankN
 from specific_analyses.relax_disp.variables import EXP_TYPE_CPMG_DQ,
EXP_TYPE_CPMG_MQ, EXP_TYPE_CPMG_PROTON_MQ, EXP_TYPE_CPMG_PROTON_SQ,
EXP_TYPE_CPMG_SQ, EXP_TYPE_CPMG_ZQ, EXP_TYPE_LIST_CPMG, EXP_TYPE_R1RHO,
MODEL_B14, MODEL_B14_FULL, MODEL_CR72, MODEL_CR72_FULL, MODEL_DPL94,
MODEL_IT99, MODEL_LIST_CPMG, MODEL_LIST_CPMG_FULL, MODEL_LIST_FULL,
MODEL_LIST_MMQ, MODEL_LIST_MQ_CPMG, MODEL_LIST_R1RHO, 
MODEL_LIST_R1RHO_FULL,
MODEL_LM63, MODEL_LM63_3SITE, MODEL_M61, MODEL_M61B, MODEL_MP05,
MODEL_MMQ_CR72, MODEL_NOREX, 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_TAP03, 
MODEL_TP02,
MODEL_TSMFK01

+# Check if eisum is available for numerical models.
+if dep_check.einsum_module:
+    from lib.dispersion.ns_cpmg_2site_3d import r2eff_ns_cpmg_2site_3D
+    from lib.dispersion.ns_cpmg_2site_star import
r2eff_ns_cpmg_2site_star
+    from lib.dispersion.ns_mmq_3site import r2eff_ns_mmq_3site_mq,
r2eff_ns_mmq_3site_sq_dq_zq
+    from lib.dispersion.ns_mmq_2site import r2eff_ns_mmq_2site_mq,
r2eff_ns_mmq_2site_sq_dq_zq
+    from lib.dispersion.ns_r1rho_2site import ns_r1rho_2site
+    from lib.dispersion.ns_r1rho_3site import ns_r1rho_3site

 class Dispersion:
     def __init__(self, model=None, num_params=None, num_spins=None,
num_frq=None, exp_types=None, values=None, errors=None, missing=None,
frqs=None, frqs_H=None, cpmg_frqs=None, spin_lock_nu1=None,
chemical_shifts=None, offset=None, tilt_angles=None, r1=None,
relax_times=None, scaling_matrix=None, recalc_tau=True):


_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-commits mailing list
relax-commits@xxxxxxx

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits

_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
relax-devel@xxxxxxx


To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel





Related Messages


Powered by MHonArc, Updated Fri Jun 27 18:20:17 2014