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.