mailRe: r24013 - /branches/disp_spin_speed/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 d'Auvergne on June 17, 2014 - 11:14:
Hi,

Rather than minimisation, just call the calc user function as this is
the proper way to get the chi-squared value at the current parameter
values.  One iteration of simplex minimisation can actually shift the
parameter values.  And if the test is fast, just leave it there.  It
doesn't need to be temporary.

Cheers,

Edward



On 17 June 2014 09:33,  <tlinnet@xxxxxxxxxxxxx> wrote:
Author: tlinnet
Date: Tue Jun 17 09:33:32 2014
New Revision: 24013

URL: http://svn.gna.org/viewcvs/relax?rev=24013&view=rev
Log:
Temporary added systemtest: test_korzhnev_2005_all_data_disp_speed_bug.

This makes a minimisation with 1 iteration, and so will give the chi2 value 
at the preset
parameter values.

This is chi2 value should give 162.5, but gives 74.7104.

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

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

Modified: branches/disp_spin_speed/test_suite/system_tests/relax_disp.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/test_suite/system_tests/relax_disp.py?rev=24013&r1=24012&r2=24013&view=diff
==============================================================================
--- branches/disp_spin_speed/test_suite/system_tests/relax_disp.py      
(original)
+++ branches/disp_spin_speed/test_suite/system_tests/relax_disp.py      Tue 
Jun 17 09:33:32 2014
@@ -3558,6 +3558,101 @@
         self.assertAlmostEqual(spin.chi2/1000, 162.511988511609/1000, 3)


+    def test_korzhnev_2005_all_data_disp_speed_bug(self):
+        """Optimisation of all the Korzhnev et al., 2005 CPMG data using 
the 'NS MMQ 2-site' model.
+
+        This uses the data from Dmitry Korzhnev's paper at U{DOI: 
10.1021/ja054550e<http://dx.doi.org/10.1021/ja054550e>}.  This is the 1H 
SQ, 15N SQ, ZQ, DQ, 1H MQ and 15N MQ data for residue Asp 9 of the Fyn SH3 
domain mutant.
+
+        Here all data will be optimised.  The values found by cpmg_fit 
using just this data are:
+
+            - r2 = {'H-S 500':  6.671649051677150, 'H-S 600':  
6.988634195648529, 'H-S 800':  5.527971316790596,
+                    'N-S 500':  8.394988400015988, 'N-S 600':  
8.891359568401835, 'N-S 800': 10.405356669006709,
+                    'NHZ 500':  5.936446687394352, 'NHZ 600':  
6.717058062814535, 'NHZ 800':  6.838733853403030,
+                    'NHD 500':  8.593136215779710, 'NHD 600': 
10.651511259239674, 'NHD 800': 12.567902357560627,
+                    'HNM 500':  7.851325614877817, 'HNM 600':  
8.408803624020202, 'HNM 800': 11.227489645758979,
+                    'NHM 500':  9.189159145380575, 'NHM 600':  
9.856814478405868, 'NHM 800': 11.967910041807118},
+            - pA = 0.943125351763911,
+            - dw = 4.421827493809807,
+            - dwH = -0.272637034755752,
+            - kex = 360.609744568697238,
+            - chi2 = 162.589570340050813.
+        """
+
+        # Base data setup.
+        self.setup_korzhnev_2005_data(data_list=['SQ', '1H SQ', 'DQ', 
'ZQ', 'MQ', '1H MQ'])
+
+        # Alias the spin.
+        spin = return_spin(":9@N")
+
+        # The R20 keys.
+        r20_key1  = generate_r20_key(exp_type=EXP_TYPE_CPMG_PROTON_SQ, 
frq=500e6)
+        r20_key2  = generate_r20_key(exp_type=EXP_TYPE_CPMG_PROTON_SQ, 
frq=600e6)
+        r20_key3  = generate_r20_key(exp_type=EXP_TYPE_CPMG_PROTON_SQ, 
frq=800e6)
+        r20_key4  = generate_r20_key(exp_type=EXP_TYPE_CPMG_SQ, frq=500e6)
+        r20_key5  = generate_r20_key(exp_type=EXP_TYPE_CPMG_SQ, frq=600e6)
+        r20_key6  = generate_r20_key(exp_type=EXP_TYPE_CPMG_SQ, frq=800e6)
+        r20_key7  = generate_r20_key(exp_type=EXP_TYPE_CPMG_ZQ, frq=500e6)
+        r20_key8  = generate_r20_key(exp_type=EXP_TYPE_CPMG_ZQ, frq=600e6)
+        r20_key9  = generate_r20_key(exp_type=EXP_TYPE_CPMG_ZQ, frq=800e6)
+        r20_key10 = generate_r20_key(exp_type=EXP_TYPE_CPMG_DQ, frq=500e6)
+        r20_key11 = generate_r20_key(exp_type=EXP_TYPE_CPMG_DQ, frq=600e6)
+        r20_key12 = generate_r20_key(exp_type=EXP_TYPE_CPMG_DQ, frq=800e6)
+        r20_key13 = generate_r20_key(exp_type=EXP_TYPE_CPMG_PROTON_MQ, 
frq=500e6)
+        r20_key14 = generate_r20_key(exp_type=EXP_TYPE_CPMG_PROTON_MQ, 
frq=600e6)
+        r20_key15 = generate_r20_key(exp_type=EXP_TYPE_CPMG_PROTON_MQ, 
frq=800e6)
+        r20_key16 = generate_r20_key(exp_type=EXP_TYPE_CPMG_MQ, frq=500e6)
+        r20_key17 = generate_r20_key(exp_type=EXP_TYPE_CPMG_MQ, frq=600e6)
+        r20_key18 = generate_r20_key(exp_type=EXP_TYPE_CPMG_MQ, frq=800e6)
+
+        # Set the initial parameter values.
+        spin.r2 = {
+            r20_key1:   6.67288025927458, r20_key2:   6.98951408255098, 
r20_key3:   5.52959273852704,
+            r20_key4:   8.39471048876782, r20_key5:   8.89290699178799, 
r20_key6:  10.40770687236930,
+            r20_key7:   5.93611174376373, r20_key8:   6.71735669582514, 
r20_key9:   6.83835225518265,
+            r20_key10:  8.59615074668922, r20_key11: 10.65121378892910, 
r20_key12: 12.57108229191090,
+            r20_key13:  7.85956711501608, r20_key14:  8.41891642907918, 
r20_key15: 11.23620892230380,
+            r20_key16:  9.19654863789350, r20_key17:  9.86031627358462, 
r20_key18: 11.97523755925750
+        }
+        spin.pA = 0.943129019477673
+        spin.dw = 4.42209952545181
+        spin.dwH = -0.27258970590969
+        spin.kex = 360.516132791038
+
+        # Low precision optimisation.
+        #self.interpreter.grid_search(lower=None, upper=None, inc=10, 
constraints=True, verbosity=1)
+        self.interpreter.minimise(min_algor='simplex', func_tol=1e-05, 
max_iter=1)
+
+        # Printout.
+        print("\n\nOptimised parameters:\n")
+        print("%-20s %-20s" % ("Parameter", "Value (:9)"))
+        print("%-20s %20.15g" % ("R2 (1H SQ - 500 MHz)", 
spin.r2[r20_key1]))
+        print("%-20s %20.15g" % ("R2 (1H SQ - 600 MHz)", 
spin.r2[r20_key2]))
+        print("%-20s %20.15g" % ("R2 (1H SQ - 800 MHz)", 
spin.r2[r20_key3]))
+        print("%-20s %20.15g" % ("R2 (SQ - 500 MHz)", spin.r2[r20_key4]))
+        print("%-20s %20.15g" % ("R2 (SQ - 600 MHz)", spin.r2[r20_key5]))
+        print("%-20s %20.15g" % ("R2 (SQ - 800 MHz)", spin.r2[r20_key6]))
+        print("%-20s %20.15g" % ("R2 (ZQ - 500 MHz)", spin.r2[r20_key7]))
+        print("%-20s %20.15g" % ("R2 (ZQ - 600 MHz)", spin.r2[r20_key8]))
+        print("%-20s %20.15g" % ("R2 (ZQ - 800 MHz)", spin.r2[r20_key9]))
+        print("%-20s %20.15g" % ("R2 (DQ - 500 MHz)", spin.r2[r20_key10]))
+        print("%-20s %20.15g" % ("R2 (DQ - 600 MHz)", spin.r2[r20_key11]))
+        print("%-20s %20.15g" % ("R2 (DQ - 800 MHz)", spin.r2[r20_key12]))
+        print("%-20s %20.15g" % ("R2 (1H MQ - 500 MHz)", 
spin.r2[r20_key13]))
+        print("%-20s %20.15g" % ("R2 (1H MQ - 600 MHz)", 
spin.r2[r20_key14]))
+        print("%-20s %20.15g" % ("R2 (1H MQ - 800 MHz)", 
spin.r2[r20_key15]))
+        print("%-20s %20.15g" % ("R2 (MQ - 500 MHz)", spin.r2[r20_key16]))
+        print("%-20s %20.15g" % ("R2 (MQ - 600 MHz)", spin.r2[r20_key17]))
+        print("%-20s %20.15g" % ("R2 (MQ - 800 MHz)", spin.r2[r20_key18]))
+        print("%-20s %20.15g" % ("pA", spin.pA))
+        print("%-20s %20.15g" % ("dw", spin.dw))
+        print("%-20s %20.15g" % ("dwH", spin.dwH))
+        print("%-20s %20.15g" % ("kex", spin.kex))
+        print("%-20s %20.15g\n" % ("chi2", spin.chi2))
+
+        # Checks for residue :9.
+        self.assertAlmostEqual(spin.chi2, 162.511988511609, 3)
+
+
     def test_kteilum_fmpoulsen_makke_cpmg_data_048m_guhcl_to_cr72(self):
         """Optimisation of Kaare Teilum, Flemming M Poulsen, Mikael Akke 
2006 "acyl-CoA binding protein" CPMG data to the CR72 dispersion model.



_______________________________________________
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



Related Messages


Powered by MHonArc, Updated Tue Jun 17 13:40:13 2014