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,  <[email protected]> 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
> [email protected]
>
> 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
[email protected]

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

Reply via email to