Author: bugman Date: Thu Aug 28 16:59:23 2014 New Revision: 25392 URL: http://svn.gna.org/viewcvs/relax?rev=25392&view=rev Log: Merged revisions 25346-25391 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/trunk ........ r25346 | tlinnet | 2014-08-27 20:06:21 +0200 (Wed, 27 Aug 2014) | 14 lines Removed the user function to estimate the R2eff values and errors with scipy.optimize.leastsq. With the newly implemented Jacobian and Hessian of the exponential decay function, the front-end to scipy.optimize.leastsq does not serve a purpose. This is because minfx is now as fast as scipy.optimize.leastsq, and can estimate the errors from the Jacobian to the exact same numbers as scipy.optimize.leastsq. In addition to that, the covariance can be calculated by QR decomposition. This adds additional feature for checking for a singular matrix. The back-end wilÃl still be kept in place for the coming tim, but could be removed later. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25347 | tlinnet | 2014-08-27 20:06:23 +0200 (Wed, 27 Aug 2014) | 12 lines Added front-end to the new user function relax_disp.r2eff_err_estimate(), which will estimate the R2eff errors from a pipe and spins with optimised values of R2eff and i0. The co-variance matrix can be calculated from the optimised parameters, and the Jacobian. Big care should be taken not to directly trust these results, since the errors are quite different compared to the Monte-Carlo simulations. This implementation, will reach the exact same error estimation as scipy.optimize.leastsq. But with much better control over the data, and insight into the calculations. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25348 | tlinnet | 2014-08-27 20:06:24 +0200 (Wed, 27 Aug 2014) | 3 lines Added method to automatically perform error analysis on peak heights. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25349 | tlinnet | 2014-08-27 20:06:26 +0200 (Wed, 27 Aug 2014) | 3 lines Modified systemtest Relax_disp.test_estimate_r2eff() to first do a Grid Search, then minimise and then estimate the errors for R2eff and i0. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25350 | tlinnet | 2014-08-27 20:06:28 +0200 (Wed, 27 Aug 2014) | 3 lines Added back-end to estimate R2eff errors. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25351 | tlinnet | 2014-08-27 20:55:05 +0200 (Wed, 27 Aug 2014) | 3 lines Fix to systemtest test_estimate_r2eff_error(), to first delete the old error estimations. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25352 | tlinnet | 2014-08-27 20:55:06 +0200 (Wed, 27 Aug 2014) | 3 lines Added several tests to: test_estimate_r2eff_error, to compare different output from algorithms. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25353 | tlinnet | 2014-08-27 20:55:08 +0200 (Wed, 27 Aug 2014) | 3 lines Cleaned up code in R2eff error module. Also removed a non working Hessian matrix. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25354 | tlinnet | 2014-08-27 21:02:30 +0200 (Wed, 27 Aug 2014) | 3 lines Moved code around, and made function multifit_covar() independent of Class object. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25355 | tlinnet | 2014-08-27 21:08:45 +0200 (Wed, 27 Aug 2014) | 3 lines Inserted checks for C module is available in module for estimateing R2eff error. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25356 | tlinnet | 2014-08-27 21:10:40 +0200 (Wed, 27 Aug 2014) | 3 lines Removed unnessary call to eksperimental Exp class. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25357 | tlinnet | 2014-08-27 21:18:50 +0200 (Wed, 27 Aug 2014) | 6 lines Renamed systemtest, that test the user function for estimating the R2eff error: test_estimate_r2eff_err, test the user function. test_estimate_r2eff_err_methods, test different methods for getting the error. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25358 | tlinnet | 2014-08-27 21:55:19 +0200 (Wed, 27 Aug 2014) | 7 lines Added systemtest, Relax_disp.test_estimate_r2eff_err_auto and extended functionality to the auto analyses protocol. If "exp_mc_sim_num" is set to "-1" and sent to the auto analyses, the errors of R2eff will be estimated from the Co-Variance matrix. These errors is HIGHLY likely to be wrong, but can be used in an initial test fase, to rapidly produce data for plotting data. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25359 | tlinnet | 2014-08-27 23:45:19 +0200 (Wed, 27 Aug 2014) | 3 lines Added script, to be used in GUI test. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25360 | tlinnet | 2014-08-27 23:45:22 +0200 (Wed, 27 Aug 2014) | 3 lines Added gui test Relax_disp.test_r2eff_err_estimate, to test the setting of MC Sim to -1 for exponential R2eff error estimation. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25361 | tlinnet | 2014-08-27 23:45:26 +0200 (Wed, 27 Aug 2014) | 9 lines Added keyword "exp_mc_sim_num", to the auto analyses in the GUI. This sets the number of Monte Carlo simulations for R2eff error estimation in exponential curve fitting. When setting to -1, the errors are estimated from the Covariance Matrix. These errors are highly likely to be wrong, but can be used in Rapid testing of data and plotting. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25362 | tlinnet | 2014-08-27 23:45:28 +0200 (Wed, 27 Aug 2014) | 12 lines Tried to click the "fit_r1" button in the GUI test, but receives an error. relax --gui-tests Relax_disp.test_r2eff_err_estimate ---- File "/Users/tlinnet/software/relax_trunk/specific_analyses/relax_disp/api.py", line 463, in get_param_values values.append(get_value(spins=spins, sim_index=sim_index, param_name=param_name, spin_index=si, r20_key=r20_key)) File "/Users/tlinnet/software/relax_trunk/specific_analyses/relax_disp/parameters.py", line 393, in get_value obj = getattr(spins[spin_index], param_name) AttributeError: 'SpinContainer' object has no attribute 'r1' task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25363 | tlinnet | 2014-08-28 09:40:09 +0200 (Thu, 28 Aug 2014) | 5 lines Moved the mc_sim_num GUI element in the analysis tab ip, as it is executed first. Also modified the tooltip. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25364 | tlinnet | 2014-08-28 09:46:45 +0200 (Thu, 28 Aug 2014) | 3 lines Added a warning to the auto analyses about error estimation from the Co-variance. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25365 | tlinnet | 2014-08-28 09:49:32 +0200 (Thu, 28 Aug 2014) | 3 lines Removed yet another comma from GUI tooltip. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25366 | bugman | 2014-08-28 09:53:32 +0200 (Thu, 28 Aug 2014) | 5 lines Formatting changes for the lib.periodic_table module. This is in preparation for extending the information content of this module. ........ r25367 | tlinnet | 2014-08-28 10:18:40 +0200 (Thu, 28 Aug 2014) | 8 lines Modified systemtest 'test_estimate_r2eff_err_auto', to use the GUI script. It seems to work Ãperfect. This is to test against GUI script: test_r2eff_err_estimate task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25368 | tlinnet | 2014-08-28 10:18:43 +0200 (Thu, 28 Aug 2014) | 7 lines Modified test_estimate_r2eff_err_auto, to set r1_fit to False. This still make the systemtest pass, and fit R1. So this means R1 fit button is not functioning properly. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25369 | tlinnet | 2014-08-28 10:20:15 +0200 (Thu, 28 Aug 2014) | 3 lines Fix for warning message in the auto analyses in the GUI. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25370 | tlinnet | 2014-08-28 10:31:22 +0200 (Thu, 28 Aug 2014) | 3 lines Tried to improve docstring for API documentation. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25371 | bugman | 2014-08-28 11:08:50 +0200 (Thu, 28 Aug 2014) | 5 lines Added all of the IUPAC 2011 atomic weights to the lib.periodic_table module. These will be useful for correctly calculating the centre of mass of a molecule. ........ r25372 | bugman | 2014-08-28 11:09:38 +0200 (Thu, 28 Aug 2014) | 3 lines The lib.periodic_table method for adding elements is now private. ........ r25373 | bugman | 2014-08-28 11:21:46 +0200 (Thu, 28 Aug 2014) | 3 lines Fix for an accidental mistake in the lib.periodic_table module. ........ r25374 | bugman | 2014-08-28 11:24:49 +0200 (Thu, 28 Aug 2014) | 6 lines Created the unit test infrastructure for the lib.periodic_table module. This includes one unit test of the lib.periodic_table.periodic_table.atomic_weight() function which has not been implemented yet. ........ r25375 | bugman | 2014-08-28 11:35:37 +0200 (Thu, 28 Aug 2014) | 5 lines Implemented the lib.periodic_table.periodic_table.atomic_weight() method. This returns the standard atomic weight of the atom as a float. ........ r25376 | tlinnet | 2014-08-28 12:34:25 +0200 (Thu, 28 Aug 2014) | 3 lines Yet another try to make the API documentation working. task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25377 | tlinnet | 2014-08-28 12:34:29 +0200 (Thu, 28 Aug 2014) | 39 lines Implemented system test Relax_disp.verify_estimate_r2eff_err_compare_mc for testing R2eff error as function of Monte Carlo simulation. Note, since the name does not start with "test", but with "verify", this test will not be issued in the system test suite. -1 0.069 0.081 0.085 0.092 0.085 0.074 0.083 0.069 0.066 0.074 0.025 0.035 0.018 0.016 sum= 0.874 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 sum= 0.000 50 0.038 0.037 0.048 0.041 0.048 0.036 0.041 0.036 0.030 0.035 0.014 0.018 0.010 0.007 sum= 0.438 100 0.036 0.039 0.040 0.044 0.043 0.039 0.041 0.040 0.033 0.037 0.013 0.018 0.008 0.007 sum= 0.440 150 0.035 0.040 0.045 0.046 0.043 0.041 0.041 0.035 0.034 0.035 0.013 0.017 0.008 0.008 sum= 0.442 200 0.034 0.040 0.046 0.047 0.042 0.037 0.039 0.035 0.033 0.039 0.012 0.019 0.009 0.008 sum= 0.440 250 0.036 0.039 0.042 0.042 0.043 0.039 0.043 0.035 0.033 0.037 0.013 0.016 0.009 0.007 sum= 0.436 300 0.034 0.040 0.047 0.047 0.043 0.037 0.042 0.036 0.033 0.039 0.013 0.018 0.009 0.008 sum= 0.446 350 0.034 0.041 0.045 0.046 0.043 0.037 0.038 0.036 0.036 0.037 0.013 0.018 0.009 0.008 sum= 0.441 400 0.036 0.037 0.043 0.047 0.044 0.038 0.043 0.038 0.035 0.037 0.014 0.018 0.009 0.008 sum= 0.448 450 0.034 0.040 0.044 0.045 0.044 0.038 0.041 0.035 0.034 0.039 0.012 0.018 0.009 0.008 sum= 0.442 0.9 ++-----+------+------+------+------+-----+------+------+------+-----++ + A + + R2eff error as function of MC number **A*** + 0.8 ++ * ++ | * | 0.7 ++ * ++ | * | 0.6 ++ * ++ | * | 0.5 ++ * ++ | * | | * A******A******A******A*****A******A******A******A******A 0.4 ++ * * ++ | * * | 0.3 ++ * * ++ | * * | 0.2 ++ * * ++ | * * | 0.1 ++ * * ++ + ** + + + + + + + + + 0 ++-----A------+------+------+------+-----+------+------+------+-----++ -50 0 50 100 150 200 250 300 350 400 450 task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting. ........ r25378 | bugman | 2014-08-28 13:52:33 +0200 (Thu, 28 Aug 2014) | 6 lines Converted the periodic table in lib.periodic_table into a dictionary type object. The new Element container has been added for storing the information about each element in the table. The Periodic_table object used the atomic symbol as a key for each Element instance. ........ r25379 | tlinnet | 2014-08-28 15:14:16 +0200 (Thu, 28 Aug 2014) | 94 lines Modified systemtest test Relax_disp.test_estimate_r2eff_err_methods() to show the difference between using the direct function Jacobian, or the chi2 function Jacobian. Added also the functionality to the estimate R2eff module, to switch between using the different Jacobians. The results show, that R2eff can be estimated better. ---------------------- The results are: R1rho at 799.8 MHz, for offset=118.078 ppm and dispersion point 431.0. r2eff=8.646/8.646 r2eff_err=0.0348/0.0692 i0=202664.191/202664.191 i0_err=699.6443/712.4201 R1rho at 799.8 MHz, for offset=118.078 ppm and dispersion point 651.2. r2eff=10.377/10.377 r2eff_err=0.0403/0.0810 i0=206049.558/206049.558 i0_err=776.4215/782.1833 R1rho at 799.8 MHz, for offset=118.078 ppm and dispersion point 800.5. r2eff=10.506/10.506 r2eff_err=0.0440/0.0853 i0=202586.332/202586.332 i0_err=763.9678/758.7052 R1rho at 799.8 MHz, for offset=118.078 ppm and dispersion point 984.0. r2eff=10.903/10.903 r2eff_err=0.0476/0.0922 i0=203455.021/203455.021 i0_err=837.8779/828.7280 R1rho at 799.8 MHz, for offset=118.078 ppm and dispersion point 1341.1. r2eff=10.684/10.684 r2eff_err=0.0446/0.0853 i0=218670.412/218670.412 i0_err=850.0210/830.9558 R1rho at 799.8 MHz, for offset=118.078 ppm and dispersion point 1648.5. r2eff=10.501/10.501 r2eff_err=0.0371/0.0742 i0=206502.512/206502.512 i0_err=794.0523/772.9843 R1rho at 799.8 MHz, for offset=124.247 ppm and dispersion point 1341.1. r2eff=11.118/11.118 r2eff_err=0.0413/0.0827 i0=216447.241/216447.241 i0_err=784.6562/788.0384 R1rho at 799.8 MHz, for offset=130.416 ppm and dispersion point 800.5. r2eff=7.866/7.866 r2eff_err=0.0347/0.0695 i0=211869.715/211869.715 i0_err=749.2776/763.6930 R1rho at 799.8 MHz, for offset=130.416 ppm and dispersion point 1341.1. r2eff=9.259/9.259 r2eff_err=0.0331/0.0661 i0=217703.151/217703.151 i0_err=682.2137/685.5838 R1rho at 799.8 MHz, for offset=130.416 ppm and dispersion point 1648.5. r2eff=9.565/9.565 r2eff_err=0.0373/0.0745 i0=211988.939/211988.939 i0_err=839.0313/827.0373 R1rho at 799.8 MHz, for offset=142.754 ppm and dispersion point 800.5. r2eff=3.240/3.240 r2eff_err=0.0127/0.0253 i0=214417.382/214417.382 i0_err=595.8865/613.4378 R1rho at 799.8 MHz, for offset=142.754 ppm and dispersion point 1341.1. r2eff=5.084/5.084 r2eff_err=0.0177/0.0352 i0=226358.691/226358.691 i0_err=660.5314/655.7670 R1rho at 799.8 MHz, for offset=179.768 ppm and dispersion point 1341.1. r2eff=2.208/2.208 r2eff_err=0.0091/0.0178 i0=228620.553/228620.553 i0_err=564.8353/560.0873 R1rho at 799.8 MHz, for offset=241.459 ppm and dispersion point 1341.1. r2eff=1.711/1.711 r2eff_err=0.0077/0.0155 i0=224087.486/224087.486 i0_err=539.4300/546.4217 Fitting with minfx to: 52V @N ----------------------------- min_algor='Newton', c_code=True, constraints=False, chi2_jacobian?=False ------------------------------------------------------------------------ R1rho at 799.8 MHz, for offset=118.078 ppm and dispersion point 431.0, with 4 time points. r2eff=8.646 r2eff_err=0.0692, i0=202664.2, i0_err=712.4201, chi2=3.758. R1rho at 799.8 MHz, for offset=118.078 ppm and dispersion point 651.2, with 5 time points. r2eff=10.377 r2eff_err=0.0810, i0=206049.6, i0_err=782.1833, chi2=27.291. R1rho at 799.8 MHz, for offset=118.078 ppm and dispersion point 800.5, with 5 time points. r2eff=10.506 r2eff_err=0.0853, i0=202586.3, i0_err=758.7052, chi2=13.357. R1rho at 799.8 MHz, for offset=118.078 ppm and dispersion point 984.0, with 5 time points. r2eff=10.903 r2eff_err=0.0922, i0=203455.0, i0_err=828.7280, chi2=33.632. R1rho at 799.8 MHz, for offset=118.078 ppm and dispersion point 1341.1, with 5 time points. r2eff=10.684 r2eff_err=0.0853, i0=218670.4, i0_err=830.9558, chi2=35.818. R1rho at 799.8 MHz, for offset=118.078 ppm and dispersion point 1648.5, with 5 time points. r2eff=10.501 r2eff_err=0.0742, i0=206502.5, i0_err=772.9843, chi2=7.356. R1rho at 799.8 MHz, for offset=124.247 ppm and dispersion point 1341.1, with 5 time points. r2eff=11.118 r2eff_err=0.0827, i0=216447.2, i0_err=788.0384, chi2=15.587. [... 181 lines stripped ...]