Hi, The errors from the covariance matrix estimate, via scipy.optimize.leastsq() should be similar or even identical to the Monte Carlo simulation errors, not double. Is this still the case?
Regards, Edward On 25 August 2014 01:32, <[email protected]> wrote: > Author: tlinnet > Date: Mon Aug 25 01:32:13 2014 > New Revision: 25238 > > URL: http://svn.gna.org/viewcvs/relax?rev=25238&view=rev > Log: > Modified systemtest Relax_disp.test_estimate_r2eff. > > This is to compare against errors simulated with 2000 MC. > > The paramaters are comparable, but not equal. > Mostly, it seems that the errors from scipy.optimize.leastsq, are twice as > high than the Monte Carlo simulations. > This affect model fitting, and the calculated chi2 value. > > Left column is 2000 Monte Carlo, right column is scipy.optimize.leastsq. > > Optimised parameters for spin: 52V @N > Model: No Rex > Parameter: r1 Value: 1.46138806 - 1.46328102 > Parameter: r2 Value: 11.48392438 - 11.48040934 > Parameter: chi2 Value: 848.42015672 - 3363.95829122 > > Model: DPL94 > Parameter: r1 Value: 1.44845743 - 1.45019848 > Parameter: r2 Value: 10.15688373 - 10.16304892 > Parameter: phi_ex Value: 0.07599563 - 0.07561937 > Parameter: kex Value: 4460.43707304 - 4419.03906628 > Parameter: chi2 Value: 179.47041255 - 710.24767560 > > Model: TP02 > Parameter: r1 Value: 1.54354392 - 1.54352369 > Parameter: r2 Value: 9.72654895 - 9.72772727 > Parameter: pA Value: 0.88827039 - 0.88807488 > Parameter: dw Value: 1.08875836 - 1.08765645 > Parameter: kex Value: 4921.28597928 - 4904.70134941 > Parameter: chi2 Value: 29.33882481 - 114.47142772 > > Model: TAP03 > Parameter: r1 Value: 1.54356410 - 1.54354368 > Parameter: r2 Value: 9.72641885 - 9.72759371 > Parameter: pA Value: 0.88828925 - 0.88809317 > Parameter: dw Value: 1.08837248 - 1.08726695 > Parameter: kex Value: 4926.42974479 - 4909.86896567 > Parameter: chi2 Value: 29.29050624 - 114.27987534 > > Model: MP05 > Parameter: r1 Value: 1.54356415 - 1.54354372 > Parameter: r2 Value: 9.72641730 - 9.72759220 > Parameter: pA Value: 0.88828927 - 0.88809322 > Parameter: dw Value: 1.08837250 - 1.08726707 > Parameter: kex Value: 4926.44228958 - 4909.88128236 > Parameter: chi2 Value: 29.29054252 - 114.28002272 > > Model: NS R1rho 2-site > Parameter: r1 Value: 1.41359226 - 1.41321968 > Parameter: r2 Value: 9.34531364 - 9.34602793 > Parameter: pA Value: 0.94504369 - 0.94496541 > Parameter: dw Value: 1.56001843 - 1.55833321 > Parameter: kex Value: 5628.66529504 - 5610.20221435 > Parameter: chi2 Value: 34.44010458 - 134.14368365 > > 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=25238&r1=25237&r2=25238&view=diff > ============================================================================== > --- trunk/test_suite/system_tests/relax_disp.py (original) > +++ trunk/test_suite/system_tests/relax_disp.py Mon Aug 25 01:32:13 2014 > @@ -2679,7 +2679,7 @@ > self.setup_r1rho_kjaergaard(cluster_ids=cluster_ids, read_R1=False) > > # The dispersion models. > - MODELS = [MODEL_NOREX, MODEL_DPL94] > + MODELS = [MODEL_NOREX, MODEL_DPL94, MODEL_TP02, MODEL_TAP03, > MODEL_MP05, MODEL_NS_R1RHO_2SITE] > > # The grid search size (the number of increments per dimension). > GRID_INC = None > @@ -2723,6 +2723,9 @@ > > # Run the analysis. > relax_disp.Relax_disp(pipe_name=ds.pipe_name, > pipe_bundle=ds.pipe_bundle, results_dir=result_dir_name, models=MODELS, > grid_inc=GRID_INC, mc_sim_num=MC_NUM, modsel=MODSEL) > + > + # Verify the data. > + self.verify_r1rho_kjaergaard_missing_r1(models=MODELS, > result_dir_name=result_dir_name, do_assert=False) > > > def test_exp_fit(self): > @@ -7343,7 +7346,7 @@ > w_eff_file.close() > > > - def verify_r1rho_kjaergaard_missing_r1(self, models=None, > result_dir_name=None): > + def verify_r1rho_kjaergaard_missing_r1(self, models=None, > result_dir_name=None, do_assert=True): > """Verification of test_r1rho_kjaergaard_missing_r1.""" > > # Check the kex value of residue 52 > @@ -7382,35 +7385,36 @@ > # Print value. > print("%-10s %-6s %-6s %3.8f" % ("Parameter:", > param, "Value:", value)) > > - # Compare values. > - if spin_id == ':52@N': > - if param == 'r1': > - if model == MODEL_NOREX: > - self.assertAlmostEqual(value, > 1.46328102) > - elif model == MODEL_DPL94: > - self.assertAlmostEqual(value, > 1.45019848) > - elif model == MODEL_TP02: > - self.assertAlmostEqual(value, > 1.54352369) > - elif model == MODEL_TAP03: > - self.assertAlmostEqual(value, > 1.54354367) > - elif model == MODEL_MP05: > - self.assertAlmostEqual(value, > 1.54354372) > - elif model == MODEL_NS_R1RHO_2SITE: > - self.assertAlmostEqual(value, > 1.41321968, 6) > - > - elif param == 'r2': > - if model == MODEL_NOREX: > - self.assertAlmostEqual(value, > 11.48040934) > - elif model == MODEL_DPL94: > - self.assertAlmostEqual(value, > 10.16304887, 6) > - elif model == MODEL_TP02: > - self.assertAlmostEqual(value, > 9.72772726, 6) > - elif model == MODEL_TAP03: > - self.assertAlmostEqual(value, > 9.72759374, 6) > - elif model == MODEL_MP05: > - self.assertAlmostEqual(value, > 9.72759220, 6) > - elif model == MODEL_NS_R1RHO_2SITE: > - self.assertAlmostEqual(value, > 9.34602793, 5) > + if do_assert: > + # Compare values. > + if spin_id == ':52@N': > + if param == 'r1': > + if model == MODEL_NOREX: > + self.assertAlmostEqual(value, > 1.46328102) > + elif model == MODEL_DPL94: > + self.assertAlmostEqual(value, > 1.45019848) > + elif model == MODEL_TP02: > + self.assertAlmostEqual(value, > 1.54352369) > + elif model == MODEL_TAP03: > + self.assertAlmostEqual(value, > 1.54354367) > + elif model == MODEL_MP05: > + self.assertAlmostEqual(value, > 1.54354372) > + elif model == MODEL_NS_R1RHO_2SITE: > + self.assertAlmostEqual(value, > 1.41321968, 6) > + > + elif param == 'r2': > + if model == MODEL_NOREX: > + self.assertAlmostEqual(value, > 11.48040934) > + elif model == MODEL_DPL94: > + self.assertAlmostEqual(value, > 10.16304887, 6) > + elif model == MODEL_TP02: > + self.assertAlmostEqual(value, > 9.72772726, 6) > + elif model == MODEL_TAP03: > + self.assertAlmostEqual(value, > 9.72759374, 6) > + elif model == MODEL_MP05: > + self.assertAlmostEqual(value, > 9.72759220, 6) > + elif model == MODEL_NS_R1RHO_2SITE: > + self.assertAlmostEqual(value, > 9.34602793, 5) > > # For all other parameters. > else: > @@ -7420,57 +7424,58 @@ > # Print value. > print("%-10s %-6s %-6s %3.8f" % ("Parameter:", > param, "Value:", value)) > > - # Compare values. > - if spin_id == ':52@N': > - if param == 'phi_ex': > - if model == MODEL_DPL94: > - self.assertAlmostEqual(value, 0.07561937) > - > - elif param == 'pA': > - if model == MODEL_TP02: > - self.assertAlmostEqual(value, 0.88807487) > - elif model == MODEL_TAP03: > - self.assertAlmostEqual(value, 0.88809318) > - elif model == MODEL_MP05: > - self.assertAlmostEqual(value, 0.88809321) > - elif model == MODEL_NS_R1RHO_2SITE: > - self.assertAlmostEqual(value, > 0.94496541, 6) > - > - elif param == 'dw': > - if model == MODEL_TP02: > - self.assertAlmostEqual(value, > 1.08765638, 6) > - elif model == MODEL_TAP03: > - self.assertAlmostEqual(value, > 1.08726698, 6) > - elif model == MODEL_MP05: > - self.assertAlmostEqual(value, > 1.08726706, 6) > - elif model == MODEL_NS_R1RHO_2SITE: > - self.assertAlmostEqual(value, > 1.55833321, 5) > - > - elif param == 'kex': > - if model == MODEL_DPL94: > - self.assertAlmostEqual(value, > 4419.03917195, 2) > - elif model == MODEL_TP02: > - self.assertAlmostEqual(value, > 4904.70144883, 3) > - elif model == MODEL_TAP03: > - self.assertAlmostEqual(value, > 4909.86877150, 3) > - elif model == MODEL_MP05: > - self.assertAlmostEqual(value, > 4909.88110195, 3) > - elif model == MODEL_NS_R1RHO_2SITE: > - self.assertAlmostEqual(value, > 5610.20221435, 2) > - > - elif param == 'chi2': > - if model == MODEL_NOREX: > - self.assertAlmostEqual(value, > 3363.95829122) > - elif model == MODEL_DPL94: > - self.assertAlmostEqual(value, > 710.24767560) > - elif model == MODEL_TP02: > - self.assertAlmostEqual(value, > 114.47142772) > - elif model == MODEL_TAP03: > - self.assertAlmostEqual(value, > 114.27987534) > - elif model == MODEL_MP05: > - self.assertAlmostEqual(value, > 114.28002272) > - elif model == MODEL_NS_R1RHO_2SITE: > - self.assertAlmostEqual(value, > 134.14368365) > + if do_assert: > + # Compare values. > + if spin_id == ':52@N': > + if param == 'phi_ex': > + if model == MODEL_DPL94: > + self.assertAlmostEqual(value, > 0.07561937) > + > + elif param == 'pA': > + if model == MODEL_TP02: > + self.assertAlmostEqual(value, > 0.88807487) > + elif model == MODEL_TAP03: > + self.assertAlmostEqual(value, > 0.88809318) > + elif model == MODEL_MP05: > + self.assertAlmostEqual(value, > 0.88809321) > + elif model == MODEL_NS_R1RHO_2SITE: > + self.assertAlmostEqual(value, > 0.94496541, 6) > + > + elif param == 'dw': > + if model == MODEL_TP02: > + self.assertAlmostEqual(value, > 1.08765638, 6) > + elif model == MODEL_TAP03: > + self.assertAlmostEqual(value, > 1.08726698, 6) > + elif model == MODEL_MP05: > + self.assertAlmostEqual(value, > 1.08726706, 6) > + elif model == MODEL_NS_R1RHO_2SITE: > + self.assertAlmostEqual(value, > 1.55833321, 5) > + > + elif param == 'kex': > + if model == MODEL_DPL94: > + self.assertAlmostEqual(value, > 4419.03917195, 2) > + elif model == MODEL_TP02: > + self.assertAlmostEqual(value, > 4904.70144883, 3) > + elif model == MODEL_TAP03: > + self.assertAlmostEqual(value, > 4909.86877150, 3) > + elif model == MODEL_MP05: > + self.assertAlmostEqual(value, > 4909.88110195, 3) > + elif model == MODEL_NS_R1RHO_2SITE: > + self.assertAlmostEqual(value, > 5610.20221435, 2) > + > + elif param == 'chi2': > + if model == MODEL_NOREX: > + self.assertAlmostEqual(value, > 3363.95829122) > + elif model == MODEL_DPL94: > + self.assertAlmostEqual(value, > 710.24767560) > + elif model == MODEL_TP02: > + self.assertAlmostEqual(value, > 114.47142772) > + elif model == MODEL_TAP03: > + self.assertAlmostEqual(value, > 114.27987534) > + elif model == MODEL_MP05: > + self.assertAlmostEqual(value, > 114.28002272) > + elif model == MODEL_NS_R1RHO_2SITE: > + self.assertAlmostEqual(value, > 134.14368365) > > > # Print the final pipe. > @@ -7524,7 +7529,7 @@ > > # Assign the split of the line. > mol_name, res_num, res_name, spin_num, spin_name, val, > sd_error = line_split > - print mol_name, res_num, res_name, spin_num, spin_name, val, > sd_error > + print(mol_name, res_num, res_name, spin_num, spin_name, val, > sd_error) > > if res_num == '52': > # Assert that the value is not None. > > > _______________________________________________ > 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

