mailr21121 - /branches/relax_disp/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 edward on October 15, 2013 - 18:18:
Author: bugman
Date: Tue Oct 15 18:18:30 2013
New Revision: 21121

URL: http://svn.gna.org/viewcvs/relax?rev=21121&view=rev
Log:
Converted the Relax_disp.test_sprangers_cpmg_data_auto_analysis system test 
to not use the auto-analysis.

The test has been renamed to 
Relax_disp.test_sprangers_data_to_mq_ns_cpmg_2site.  The optimisation
is now for the cluster and has been severely cut back.  The 'MQ NS CPMG 
2-site' model appears to be
rubbish anyway - it looks to be indeterminate with multiple solutions, and 
possibly infinite lines
of solutions.  The test now passes, and quickly.


Modified:
    branches/relax_disp/test_suite/system_tests/relax_disp.py

Modified: branches/relax_disp/test_suite/system_tests/relax_disp.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/relax_disp/test_suite/system_tests/relax_disp.py?rev=21121&r1=21120&r2=21121&view=diff
==============================================================================
--- branches/relax_disp/test_suite/system_tests/relax_disp.py (original)
+++ branches/relax_disp/test_suite/system_tests/relax_disp.py Tue Oct 15 
18:18:30 2013
@@ -1491,48 +1491,64 @@
         self.assertEqual(cdp.mol[0].res[2].spin[0].ri_data['R2eff.600'], 
7.2385)
 
 
-    def test_sprangers_cpmg_data_auto_analysis(self):
-        """Test of the dispersion auto-analysis using Remco Sprangers' MQ 
CPMG data.
+    def test_sprangers_data_to_mq_ns_cpmg_2site(self, model=None):
+        """Test the 'MQ NS CPMG 2-site' model fitting against Remco 
Sprangers' ClpP data.
 
         This uses the data from Remco Sprangers' paper at 
http://dx.doi.org/10.1073/pnas.0507370102.  This is MQ CPMG data with a fixed 
relaxation time period.
         """
 
-        # The models to optimise.
-        ds.models = ['R2eff', 'No Rex', 'MQ NS CPMG 2-site']
-
-        # Execute the script.
-        self.interpreter.run(script_file=status.install_path + 
sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'relax_disp'+sep+'sprangers_data.py')
-
-        # The 'No Rex' model checks.
-        self.interpreter.pipe.switch(pipe_name='No Rex')
+        # Reset.
+        self.interpreter.reset()
+
+        # Create the data pipe and load the base data.
+        data_path = status.install_path + 
sep+'test_suite'+sep+'shared_data'+sep+'dispersion'+sep+'Sprangers_ClpP'
+        self.interpreter.state.load(data_path+sep+'r2eff_values')
+
+        # The model data pipe.
+        model = 'MQ NS CPMG 2-site'
+        self.interpreter.pipe.copy(pipe_from='base pipe', pipe_to=model, 
bundle_to='relax_disp')
+        self.interpreter.pipe.switch(pipe_name=model)
+
+        # Set the model.
+        self.interpreter.relax_disp.select_model(model=model)
+
+        # Cluster everything.
+        self.interpreter.relax_disp.cluster(cluster_id='all', 
spin_id=":135-137")
+
+        # Copy the data.
+        self.interpreter.value.copy(pipe_from='R2eff', pipe_to=model, 
param='r2eff')
+
+        # Alias the spins.
         spin135S = cdp.mol[0].res[0].spin[0]
         spin135F = cdp.mol[0].res[0].spin[1]
         spin137S = cdp.mol[0].res[1].spin[0]
         spin137F = cdp.mol[0].res[1].spin[1]
-        print("\n\nOptimised parameters:\n")
-        print("%-20s %-20s %-20s %-20s %-20s" % ("Parameter", "Value 
(:135@S)", "Value (:135@F)", "Value (:137@S)", "Value (:137@F)"))
-        print("%-20s %20.15g %20.15g %20.15g %20.15g" % ("R2 (500 MHz)", 
spin135S.r2[0], spin135F.r2[0], spin137S.r2[0], spin137F.r2[0]))
-        print("%-20s %20.15g %20.15g %20.15g %20.15g" % ("R2 (800 MHz)", 
spin135S.r2[1], spin135F.r2[1], spin137S.r2[1], spin137F.r2[1]))
-        print("%-20s %20.15g %20.15g %20.15g %20.15g\n" % ("chi2", 
spin135S.chi2, spin135F.chi2, spin137S.chi2, spin137F.chi2))
-        self.assertAlmostEqual(spin135S.r2[0], 33.9759609066454, 4)
-        self.assertAlmostEqual(spin135S.r2[1], 43.0969094834547, 4)
-        self.assertAlmostEqual(spin135S.chi2, 3969.76481864137, 4)
-        self.assertAlmostEqual(spin135F.r2[0], 47.552576922923, 4)
-        self.assertAlmostEqual(spin135F.r2[1], 65.0985264581959, 4)
-        self.assertAlmostEqual(spin135F.chi2, 3815.60336919813, 4)
-        self.assertAlmostEqual(spin137S.r2[0], 32.2534843780118, 4)
-        self.assertAlmostEqual(spin137S.r2[1], 42.3438098884568, 4)
-        self.assertAlmostEqual(spin137S.chi2, 5059.72438767579, 4)
-        self.assertAlmostEqual(spin137F.r2[0], 51.8197781054955, 4)
-        self.assertAlmostEqual(spin137F.r2[1], 66.2604887530423, 4)
-        self.assertAlmostEqual(spin137F.chi2, 1764.08570485219, 4)
-
-        # The 'MQ NS 2-site' model checks.
-        self.interpreter.pipe.switch(pipe_name='MQ NS 2-site')
-        spin135S = cdp.mol[0].res[0].spin[0]
-        spin135F = cdp.mol[0].res[0].spin[1]
-        spin137S = cdp.mol[0].res[1].spin[0]
-        spin137F = cdp.mol[0].res[1].spin[1]
+
+        # Set the cluster specific parameters (only for the first spin).
+        spin135S.pA = 0.500311298403094
+        spin135S.kex = 59.5551680542025
+
+        # Set the initial parameter values.
+        spin135S.r2 = [ 2.89494989792968, 12.6694205621436]
+        spin135S.dw = 1.47777783753308
+        spin135S.dwH = 1.0880818550171
+
+        spin135F.r2 = [ 41.907752972063, 58.1518607839796]
+        spin135F.dw = 0.419799242782033
+        spin135F.dwH = 1.27742823131436
+
+        spin137S.r2 = [ 0.0736711146623223, 13.8168225329927]
+        spin137S.dw = 2.4030348485243
+        spin137S.dwH = 0.00271978588774347
+
+        spin137F.r2 = [ 45.2885284912096, 57.8347181561312]
+        spin137F.dw = 1.5929498838754
+        spin137F.dwH = 0.00605967407110987
+
+        # Low precision optimisation.
+        self.interpreter.minimise(min_algor='simplex', line_search=None, 
hessian_mod=None, hessian_type=None, func_tol=1e-05, grad_tol=None, 
max_iter=100, constraints=True, scaling=True, verbosity=1)
+
+        # Printout.
         print("\n\nOptimised parameters:\n")
         print("%-20s %-20s %-20s %-20s %-20s" % ("Parameter", "Value 
(:135@S)", "Value (:135@F)", "Value (:137@S)", "Value (:137@F)"))
         print("%-20s %20.15g %20.15g %20.15g %20.15g" % ("R2 (500 MHz)", 
spin135S.r2[0], spin135F.r2[0], spin137S.r2[0], spin137F.r2[0]))
@@ -1542,34 +1558,42 @@
         print("%-20s %20.15g %20.15g %20.15g %20.15g" % ("dwH", 
spin135S.dwH, spin135F.dwH, spin137S.dwH, spin137F.dwH))
         print("%-20s %20.15g %20.15g %20.15g %20.15g" % ("kex", 
spin135S.kex, spin135F.kex, spin137S.kex, spin137F.kex))
         print("%-20s %20.15g %20.15g %20.15g %20.15g\n" % ("chi2", 
spin135S.chi2, spin135F.chi2, spin137S.chi2, spin137F.chi2))
-        self.assertAlmostEqual(spin135S.r2[0], 0, 4)
-        self.assertAlmostEqual(spin135S.r2[1], 0, 4)
-        self.assertAlmostEqual(spin135S.pA, 0, 4)
-        self.assertAlmostEqual(spin135S.dw, 0, 4)
-        self.assertAlmostEqual(spin135S.dwH, 0, 4)
-        self.assertAlmostEqual(spin135S.kex/10000, 0, 4)
-        self.assertAlmostEqual(spin135S.chi2, 0, 4)
-        self.assertAlmostEqual(spin135F.r2[0], 0, 4)
-        self.assertAlmostEqual(spin135F.r2[1], 0, 4)
-        self.assertAlmostEqual(spin135F.pA, 0, 4)
-        self.assertAlmostEqual(spin135F.dw, 0, 4)
-        self.assertAlmostEqual(spin135F.dwH, 0, 4)
-        self.assertAlmostEqual(spin135F.kex/10000, 0, 4)
-        self.assertAlmostEqual(spin135F.chi2, 0, 4)
-        self.assertAlmostEqual(spin137S.r2[0], 0, 4)
-        self.assertAlmostEqual(spin137S.r2[1], 0, 4)
-        self.assertAlmostEqual(spin137S.pA, 0, 4)
-        self.assertAlmostEqual(spin137S.dw, 0, 4)
-        self.assertAlmostEqual(spin137S.dwH, 0, 4)
-        self.assertAlmostEqual(spin137S.kex/10000, 0, 4)
-        self.assertAlmostEqual(spin137S.chi2, 0, 4)
-        self.assertAlmostEqual(spin137F.r2[0], 0, 4)
-        self.assertAlmostEqual(spin137F.r2[1], 0, 4)
-        self.assertAlmostEqual(spin137F.pA, 0, 4)
-        self.assertAlmostEqual(spin137F.dw, 0, 4)
-        self.assertAlmostEqual(spin137F.dwH, 0, 4)
-        self.assertAlmostEqual(spin137F.kex/10000, 0, 4)
-        self.assertAlmostEqual(spin137F.chi2, 0, 4)
+
+        # Checks for residue :135S.
+        self.assertAlmostEqual(spin135S.r2[0], 2.89494989792968, 4)
+        self.assertAlmostEqual(spin135S.r2[1], 12.6694205621436, 4)
+        self.assertAlmostEqual(spin135S.pA, 0.500311298403094, 4)
+        self.assertAlmostEqual(spin135S.dw, 1.47777783753308, 4)
+        self.assertAlmostEqual(spin135S.dwH, 1.0880818550171, 4)
+        self.assertAlmostEqual(spin135S.kex, 59.5551680542025, 4)
+        self.assertAlmostEqual(spin135S.chi2, 347.259150126813, 4)
+
+        # Checks for residue :135F.
+        self.assertAlmostEqual(spin135F.r2[0], 41.907752972063, 4)
+        self.assertAlmostEqual(spin135F.r2[1], 58.1518607839796, 4)
+        self.assertAlmostEqual(spin135F.pA, 0.500311298403094, 4)
+        self.assertAlmostEqual(spin135F.dw, 0.419799242782033, 4)
+        self.assertAlmostEqual(spin135F.dwH, 1.27742823131436, 4)
+        self.assertAlmostEqual(spin135F.kex, 59.5551680542025, 4)
+        self.assertAlmostEqual(spin135F.chi2, 347.259150126813, 4)
+
+        # Checks for residue :137S.
+        self.assertAlmostEqual(spin137S.r2[0], 0.0736711146623223, 4)
+        self.assertAlmostEqual(spin137S.r2[1], 13.8168225329927, 4)
+        self.assertAlmostEqual(spin137S.pA, 0.500311298403094, 4)
+        self.assertAlmostEqual(spin137S.dw, 2.4030348485243, 4)
+        self.assertAlmostEqual(spin137S.dwH, 0.00285577518213064, 4)
+        self.assertAlmostEqual(spin137S.kex, 59.5551680542025, 4)
+        self.assertAlmostEqual(spin137S.chi2, 347.259150126813, 4)
+
+        # Checks for residue :137F.
+        self.assertAlmostEqual(spin137F.r2[0], 45.2885284912096, 4)
+        self.assertAlmostEqual(spin137F.r2[1], 57.8347181561312, 4)
+        self.assertAlmostEqual(spin137F.pA, 0.500311298403094, 4)
+        self.assertAlmostEqual(spin137F.dw, 1.5929498838754, 4)
+        self.assertAlmostEqual(spin137F.dwH, 0.00605967407110987, 4)
+        self.assertAlmostEqual(spin137F.kex, 59.5551680542025, 4)
+        self.assertAlmostEqual(spin137F.chi2, 347.259150126813, 4)
 
 
     def test_tp02_data_to_ns_r1rho_2site(self, model=None):




Related Messages


Powered by MHonArc, Updated Tue Oct 15 18:40:01 2013