mailr23318 - /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 May 21, 2014 - 20:36:
Author: tlinnet
Date: Wed May 21 20:36:39 2014
New Revision: 23318

URL: http://svn.gna.org/viewcvs/relax?rev=23318&view=rev
Log:
Code cleanup in systemtest Relax_disp.test_baldwin_synthetic_full.

bug #22021: (https://gna.org/bugs/?22021) Model B14 shows bad fitting to data.

The precision could also be increased with 1 digit.

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=23318&r1=23317&r2=23318&view=diff
==============================================================================
--- trunk/test_suite/system_tests/relax_disp.py (original)
+++ trunk/test_suite/system_tests/relax_disp.py Wed May 21 20:36:39 2014
@@ -593,11 +593,9 @@
         # Generate the sequence.
         # Generate both a 1H spin, and 15N spin.
         self.interpreter.spin.create(res_name='Ala', res_num=1, 
spin_name='H')
-        self.interpreter.spin.create(res_name='Ala', res_num=2, 
spin_name='N')
 
         # Define the isotope.
         self.interpreter.spin.isotope('1H', spin_id='@H')
-        self.interpreter.spin.isotope('15N', spin_id='@N')
 
         # Build the experiment IDs.
         # Number of cpmg cycles (1 cycle = delay/180/delay/delay/180/delay)
@@ -638,7 +636,6 @@
 
         # Try reading the R2eff file.
         self.interpreter.relax_disp.r2eff_read_spin(id="CPMG", 
file="test_w_error.out", dir=data_path, spin_id=':1@H', disp_point_col=1, 
data_col=2, error_col=3)
-        self.interpreter.relax_disp.r2eff_read_spin(id="CPMG", 
file="test_15N_w_error.out", dir=data_path, spin_id=':2@N', disp_point_col=1, 
data_col=2, error_col=3)
 
         # Check the global data.
         data = [
@@ -686,10 +683,6 @@
 
         ## Now prepare for MODEL calculation.
         MODEL = "B14 full"
-        #MODEL = "CR72 full"
-        #MODEL = "NS CPMG 2-site star full"
-        #MODEL = "NS CPMG 2-site 3D full"
-        #MODEL = "NS CPMG 2-site expanded"
 
         # Change pipe.
         pipe_name_MODEL = "%s_%s"%(pipe_name, MODEL)
@@ -726,26 +719,26 @@
 
         # Store result.
         for spin, mol_name, resi, resn, spin_id in spin_loop(full_info=True, 
return_id=True, skip_desel=True):
-            # Store grid results.
-            if "r2a" in MODEL_PARAMS[MODEL]:
-                grid_results.append([spin.r2a[r20_key], spin.r2b[r20_key], 
spin.dw, spin.pA, spin.kex, spin.chi2, spin_id, resi, resn])
-            else:
-                grid_results.append([spin.r2[r20_key], spin.dw, spin.pA, 
spin.kex, spin.chi2, spin_id, resi, resn])
-
+            grid_results.append([spin.r2a[r20_key], spin.r2b[r20_key], 
spin.dw, spin.pA, spin.kex, spin.chi2, spin_id, resi, resn])
 
         ## Now do minimisation.
         # Standard parameters are: func_tol=1e-25, grad_tol=None, 
max_iter=10000000,
-        set_func_tol = 1e-12
+        set_func_tol = 1e-11
         set_max_iter = 10000
         self.interpreter.minimise(min_algor='simplex', 
func_tol=set_func_tol, max_iter=set_max_iter, constraints=True, scaling=True, 
verbosity=1)
 
         # Store result.
         for spin, mol_name, resi, resn, spin_id in spin_loop(full_info=True, 
return_id=True, skip_desel=True):
-            # Store minimisation results.
-            if "r2a" in MODEL_PARAMS[MODEL]:
-                mini_results.append([spin.r2a[r20_key], spin.r2b[r20_key], 
spin.dw, spin.pA, spin.kex, spin.chi2, spin_id, resi, resn])
-            else:
-                mini_results.append([spin.r2[r20_key], spin.dw, spin.pA, 
spin.kex, spin.chi2, spin_id, resi, resn])
+            mini_results.append([spin.r2a[r20_key], spin.r2b[r20_key], 
spin.dw, spin.pA, spin.kex, spin.chi2, spin_id, resi, resn])
+
+        print("\n# Now print before and after minimisation-\n")
+
+        # Print results.
+        for i in range(len(grid_results)):
+            g_r2a, g_r2b, g_dw, g_pA, g_kex, g_chi2, g_spin_id, g_resi, 
g_resn = grid_results[i]
+            m_r2a, m_r2b, m_dw, m_pA, m_kex, m_chi2, m_spin_id, m_resi, 
m_resn = mini_results[i]
+            print("GRID %s r2a=%2.4f r2b=%2.4f dw=%1.4f pA=%1.4f kex=%3.4f 
chi2=%3.4f spin_id=%s resi=%i resn=%s"%(g_spin_id, g_r2a, g_r2b, g_dw, g_pA, 
g_kex, g_chi2, g_spin_id, g_resi, g_resn))
+            print("MIN  %s r2b=%2.4f r2b=%2.4f dw=%1.4f pA=%1.4f kex=%3.4f 
chi2=%3.4f spin_id=%s resi=%i resn=%s"%(m_spin_id, m_r2a, m_r2b, m_dw, m_pA, 
m_kex, m_chi2, m_spin_id, m_resi, m_resn))
 
         # Reference values from Baldwin.py.
         # Exchange rate = k+ + k- (s-1)
@@ -761,89 +754,12 @@
 
         # Test the parameters which created the data.
         # This is for the 1H spin.
-        if "r2a" in MODEL_PARAMS[MODEL]:
-            self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].r2a[r20_key], 
R2g, 3)
-            self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].r2b[r20_key], 
R2e, 1)
-        else:
-            self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].r2[r20_key], 
R2g, 4)
+        self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].r2a[r20_key], R2g, 
4)
+        self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].r2b[r20_key], R2e, 
2)
 
         self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].dw, dw_ppm, 6)
         self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].pA, 1-pb, 6)
-        self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].kex, kex, 1)
-
-        ## Since the Rex is 5 times as small for N15, it have hard times 
finding the values.
-        ## So we can try to cluster. But it won't work.
-
-        # Change pipe.
-        pipe_name_MODEL_CLUSTER = "%s_%s_CLUSTER"%(pipe_name, MODEL)
-        self.interpreter.pipe.copy(pipe_from=pipe_name_r2eff, 
pipe_to=pipe_name_MODEL_CLUSTER)
-        self.interpreter.pipe.switch(pipe_name=pipe_name_MODEL_CLUSTER)
-
-        # Then select model.
-        self.interpreter.relax_disp.select_model(model=MODEL)
-
-        # Skip the clustering analysis, since it won't work. !!!
-        #self.interpreter.relax_disp.cluster('model_cluster', ":1-2")
-
-        # Copy the parameters from before.
-        
self.interpreter.relax_disp.parameter_copy(pipe_from=pipe_name_MODEL, 
pipe_to=pipe_name_MODEL_CLUSTER)
-
-        # Skip the clustering analysis, since it won't work. !!!
-        self.interpreter.minimise(min_algor='simplex', 
func_tol=set_func_tol, max_iter=set_max_iter, constraints=True, scaling=True, 
verbosity=1)
-
-        # Store result.
-        for spin, mol_name, resi, resn, spin_id in spin_loop(full_info=True, 
return_id=True, skip_desel=True):
-            # Store minimisation results.
-            if "r2a" in MODEL_PARAMS[MODEL]:
-                clust_results.append([spin.r2a[r20_key], spin.r2b[r20_key], 
spin.dw, spin.pA, spin.kex, spin.chi2, spin_id, resi, resn])
-            else:
-                clust_results.append([spin.r2[r20_key], spin.dw, spin.pA, 
spin.kex, spin.chi2, spin_id, resi, resn])
-
-        print("\n# Now print before and after minimisation-\n")
-
-        # Print results.
-        for i in range(len(grid_results)):
-            # Get values.
-            if "r2a" in MODEL_PARAMS[MODEL]:
-                g_r2a, g_r2b, g_dw, g_pA, g_kex, g_chi2, g_spin_id, g_resi, 
g_resn = grid_results[i]
-                m_r2a, m_r2b, m_dw, m_pA, m_kex, m_chi2, m_spin_id, m_resi, 
m_resn = mini_results[i]
-                c_r2a, c_r2b, c_dw, c_pA, c_kex, c_chi2, c_spin_id, c_resi, 
c_resn = clust_results[i]
-                print("GRID %s r2a=%2.4f r2b=%2.4f dw=%1.4f pA=%1.4f 
kex=%3.4f chi2=%3.4f spin_id=%s resi=%i resn=%s"%(g_spin_id, g_r2a, g_r2b, 
g_dw, g_pA, g_kex, g_chi2, g_spin_id, g_resi, g_resn))
-                print("MIN  %s r2b=%2.4f r2b=%2.4f dw=%1.4f pA=%1.4f 
kex=%3.4f chi2=%3.4f spin_id=%s resi=%i resn=%s"%(m_spin_id, m_r2a, m_r2b, 
m_dw, m_pA, m_kex, m_chi2, m_spin_id, m_resi, m_resn))
-                print("CLUS %s r2a=%2.4f r2b=%2.4f dw=%1.4f pA=%1.4f 
kex=%3.4f chi2=%3.4f spin_id=%s resi=%i resn=%s\n"%(c_spin_id, c_r2a, c_r2b, 
c_dw, c_pA, c_kex, c_chi2, c_spin_id, c_resi, c_resn))
-            else:
-                g_r2, g_dw, g_pA, g_kex, g_chi2, g_spin_id, g_resi, g_resn = 
grid_results[i]
-                m_r2, m_dw, m_pA, m_kex, m_chi2, m_spin_id, m_resi, m_resn = 
mini_results[i]
-                c_r2, c_dw, c_pA, c_kex, c_chi2, c_spin_id, c_resi, c_resn = 
clust_results[i]
-                print("GRID %s r2=%2.4f dw=%1.4f pA=%1.4f kex=%3.4f 
chi2=%3.4f spin_id=%s resi=%i resn=%s"%(g_spin_id, g_r2, g_dw, g_pA, g_kex, 
g_chi2, g_spin_id, g_resi, g_resn))
-                print("MIN  %s r2=%2.4f dw=%1.4f pA=%1.4f kex=%3.4f 
chi2=%3.4f spin_id=%s resi=%i resn=%s"%(m_spin_id, m_r2, m_dw, m_pA, m_kex, 
m_chi2, m_spin_id, m_resi, m_resn))
-                print("CLUS %s r2=%2.4f dw=%1.4f pA=%1.4f kex=%3.4f 
chi2=%3.4f spin_id=%s resi=%i resn=%s\n"%(c_spin_id, c_r2, c_dw, c_pA, c_kex, 
c_chi2, c_spin_id, c_resi, c_resn))
-
-        # Test the parameters which created the data.
-        # This is for the 1H spin.
-        if "r2a" in MODEL_PARAMS[MODEL]:
-            self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].r2a[r20_key], 
R2g, 3)
-            self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].r2b[r20_key], 
R2e, 1)
-        else:
-            self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].r2[r20_key], 
R2g, 4)
-
-        self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].dw, dw_ppm, 6)
-        self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].pA, 1-pb, 6)
-        self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].kex, kex, 1)
-
-        # This is for the 15N spin. The data won't fit, since r2b is making 
trouble.
-        #if "r2a" in MODEL_PARAMS[MODEL]:
-        #    self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].r2a[r20_key], 
R2g, 4)
-        #    self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].r2b[r20_key], 
R2e, 2)
-        #else:
-        #    self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].r2[r20_key], 
R2g, 4)
-
-        #self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].dw, dw_ppm, 6)
-        #self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].pA, 1-pb, 6)
-        #self.assertAlmostEqual(cdp.mol[0].res[1].spin[0].kex, kex, 2)
-
-        # Save graphs
-        
#self.interpreter.relax_disp.plot_disp_curves(dir=path.join(getcwd()), 
num_points=100, extend=0.0, force=True)
+        self.assertAlmostEqual(cdp.mol[0].res[0].spin[0].kex, kex, 2)
 
 
     def test_bug_21081_disp_cluster_fail(self):




Related Messages


Powered by MHonArc, Updated Wed May 21 20:40:02 2014