mailr25482 - /trunk/test_suite/system_tests/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 31, 2014 - 14:33:
Author: tlinnet
Date: Sun Aug 31 14:33:31 2014
New Revision: 25482

URL: http://svn.gna.org/viewcvs/relax?rev=25482&view=rev
Log:
Inserted extra tests in systemtest Relax_disp.test_estimate_r2eff_err_methods 
to test that all values of R and i0 are positive, and the standard deviation 
from Monte-Carlo simulations
are equal.

task #7822(https://gna.org/task/index.php?7822): Implement user function to 
estimate R2eff and associated errors for exponential curve fitting.

Modified:
    trunk/test_suite/system_tests/relax_disp.py

Modified: trunk/test_suite/system_tests/relax_disp.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/test_suite/system_tests/relax_disp.py?rev=25482&r1=25481&r2=25482&view=diff
==============================================================================
--- trunk/test_suite/system_tests/relax_disp.py (original)
+++ trunk/test_suite/system_tests/relax_disp.py Sun Aug 31 14:33:31 2014
@@ -23,7 +23,7 @@
 
 # Python module imports.
 from os import F_OK, access, getcwd, path, sep
-from numpy import array, exp, median, log, save, sum, zeros
+from numpy import array, asarray, exp, median, inf, log, save, std, sum, 
zeros
 import re, math
 from tempfile import mkdtemp, NamedTemporaryFile
 
@@ -3112,16 +3112,49 @@
         my_dic = {}
         param_key_list = []
 
+        # First check sim values.
         for cur_spin, mol_name, resi, resn, spin_id in 
spin_loop(full_info=True, return_id=True, skip_desel=True):
             # Add key to dic.
             my_dic[spin_id] = {}
 
+            # Loop over sim.
+            for i, r2eff_sim in enumerate(cur_spin.r2eff_sim):
+                # Loop over all exp type.
+                for exp_type, frq, offset, point, ei, mi, oi, di in 
loop_exp_frq_offset_point(return_indices=True):
+                    # Generate the param_key.
+                    param_key = 
return_param_key_from_data(exp_type=exp_type, frq=frq, offset=offset, 
point=point)
+                    r2eff_sim_point = r2eff_sim[param_key]
+                    i0_sim_point = cur_spin.r2eff_sim[i][param_key]
+
+                    # Assert point are higher than 0.0.
+                    #point_info = "r2eff=%3.2f i0=%3.2f, at %3.1f MHz, for 
offset=%3.3f ppm and dispersion point %-5.1f, at sim index %i." % 
(r2eff_sim_point, i0_sim_point, frq/1E6, offset, point, i)
+                    #print(point_info)
+                    self.assert_(r2eff_sim_point > 0.0)
+                    self.assert_(i0_sim_point > 0.0)
+
+        # Get the data.
+        for cur_spin, mol_name, resi, resn, spin_id in 
spin_loop(full_info=True, return_id=True, skip_desel=True):
             # Generate spin string.
             spin_string = generate_spin_string(spin=cur_spin, 
mol_name=mol_name, res_num=resi, res_name=resn)
 
             for exp_type, frq, offset, point, ei, mi, oi, di in 
loop_exp_frq_offset_point(return_indices=True):
                 # Generate the param_key.
                 param_key = return_param_key_from_data(exp_type=exp_type, 
frq=frq, offset=offset, point=point)
+
+                # Loop over all sim, and collect data.
+                r2eff_sim_l = []
+                i0_sim_l = []
+                for i, r2eff_sim in enumerate(cur_spin.r2eff_sim):
+                    i0_sim = cur_spin.i0_sim[i]
+
+                    r2eff_sim_i = r2eff_sim[param_key]
+                    r2eff_sim_l.append(r2eff_sim_i)
+                    i0_sim_i = i0_sim[param_key]
+                    i0_sim_l.append(i0_sim_i)
+
+                # Take the standard deviation of all values.
+                r2eff_sim_err = std(asarray(r2eff_sim_l), ddof=1)
+                i0_sim_err = std(asarray(i0_sim_l), ddof=1)
 
                 # Append key.
                 param_key_list.append(param_key)
@@ -3140,6 +3173,12 @@
                 my_dic[spin_id][param_key]['r2eff_err'] = r2eff_err
                 my_dic[spin_id][param_key]['i0'] = i0
                 my_dic[spin_id][param_key]['i0_err'] = i0_err
+                my_dic[spin_id][param_key]['r2eff_err_sim'] = r2eff_sim_err
+                my_dic[spin_id][param_key]['i0_err_sim'] = i0_sim_err
+
+                # Assert values are equal
+                self.assertAlmostEqual(r2eff_sim_err, r2eff_err)
+                self.assertAlmostEqual(i0_sim_err, i0_err)
 
         # A new data pipe.
         self.interpreter.pipe.copy(pipe_from='MC_2000', pipe_to='r2eff_est')
@@ -3175,10 +3214,12 @@
                 r2eff_err = my_dic[spin_id][param_key]['r2eff_err']
                 i0 = my_dic[spin_id][param_key]['i0']
                 i0_err = my_dic[spin_id][param_key]['i0_err']
+                r2eff_sim_err = my_dic[spin_id][param_key]['r2eff_err_sim']
+                i0_sim_err = my_dic[spin_id][param_key]['i0_err_sim']
 
                 print("%s at %3.1f MHz, for offset=%3.3f ppm and dispersion 
point %-5.1f." % (exp_type, frq/1E6, offset, point) )
-                print("r2eff=%3.3f/%3.3f r2eff_err=%3.4f/%3.4f" % (r2eff, 
r2eff_est, r2eff_err, r2eff_err_est) ),
-                print("i0=%3.3f/%3.3f i0_err=%3.4f/%3.4f\n" % (i0, i0_est, 
i0_err, i0_err_est) )
+                print("r2eff=%3.3f/%3.3f r2eff_err=%3.4f/%3.4f/%3.4f" % 
(r2eff, r2eff_est, r2eff_err, r2eff_err_est, r2eff_sim_err) ),
+                print("i0=%3.3f/%3.3f i0_err=%3.4f/%3.4f/%3.4f\n" % (i0, 
i0_est, i0_err, i0_err_est, i0_sim_err) )
 
 
         # Now do it manually.




Related Messages


Powered by MHonArc, Updated Sun Aug 31 14:40:03 2014