Changes

Jump to navigation Jump to search

Relax 3.3.0

212 bytes added, 07:02, 8 September 2014
kex and tex parameter formatting.
* Added self.has_missing keyword in initialization of the Dispersion class. This is to test once, per spin or cluster. This saves a looping over the dispersion points, when collection the data. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Created multi dimensional error and value numpy arrays. This is to calculate the &chi;<sup>2</sup> sum much faster. Reordered the loop over missing data points, so it is only initiated if missing points is detected. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Switch the looping from spin->frq to frq->spin. Since the number of dispersion points are the same for all spins, this allows to move the calculation of p<sub>A</sub> and kex k<sub>ex</sub> array one level up. This saves a lot of computation. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Changed all the creation of special numpy arrays to be of float64 type. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Moved the data filling of special numpy array errors and values, to initialization of Dispersion class. These values does not change, and can safely be stored outside. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Lowered the number of iterations to the profiling scripts. This is to use the profiling script as bug finder. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Moved the calculation of dw_frq out of spin and spectrometer loop. This is done by having a special 1/0 spin numpy array, which turns on or off the values in the numpy array multiplication. The multiplication needs to first axis expand &delta;&omega;, and then tile the arrays according to the numpy structure. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Moved the calculation of p<sub>A</sub> and kex k<sub>ex</sub> out off all loops. This was done by having two special 1/0 spin structure arrays. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Removed dw_frq_a numpy array, as it was not necessary. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Removed all looping over spin and spectrometer frequency. This is the last loop! Wuhu. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Fix for testing of p<sub>A</sub> in lib function, when p<sub>A</sub> is just float. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Modified unit tests, so p<sub>A</sub> is sent to target function as float instead of array. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Removed the multi dimensional structure of kexk<sub>ex</sub>. kex k<sub>ex</sub> is not multi-dimensional, and can just be multiplied with numpy arrays. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.* Fix for testing of kex k<sub>ex</sub> in lib function, when kex k<sub>ex</sub> is just float. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.* Modified unit tests, so kex k<sub>ex</sub> is sent to target function as float instead of array. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.* Important fix for replacing values if eta_pos > 700 is violated. This fixes system test: Relax_disp.test_sod1wt_t25_to_cr72, which failed after making kex k<sub>ex</sub> to a numpy float. The trick is to make a numpy mask which stores the position where to replace the values. Then replace the values just before last return. This makes sure, that not all values are changed. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.* Increased the kex k<sub>ex</sub> speed to 1e<sup>7</sup> in clustered unit tests cases. This is to demonstrate where there will be no excange. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Added a multi-dimensional numpy array &chi;<sup>2</sup> value calculation function. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Called the newly created &chi;<sup>2</sup> function to calculate for multi dimensional numpy arrays. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Made the lib/CR72.py to a numpy multi dimensional numpy array calculation. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Changed the catching when &delta;&omega; is zero, to use masked array. Implemented backwards compatibility with unit tests. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Bugfix for testing if kex k<sub>ex</sub> is zero. It was tested if kex k<sub>ex</sub> was equal 1.0. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Implemented masked replacement if fact is less that 1.0. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Replaced isnan mask with function that catches all invalid values.
* Removed chi sum initialisation in func_ns_mmq_2site() as this is not used. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Documentation fix for the get_back_calc() function in target_function/relax_disp.py. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Removed unnecessary repetitive calculation of kex**k<sub>ex</sub><sup>2 </sup> in model [[DPL94]]. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* API documentation fixes, where a "\" is the last character on the line. There should be a space " ", ending this character. [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Updated the [https://gna.org/forum/forum.php?forum_id=2472 minfx version number to 1.0.9] in the release checklist document. This as of yet unreleased version contains an important fix for parallelised grid searches when the number of increments is set to one (i.e. a preset parameter).
* In auto analysis of relax_disp, started implementing the new nesting function. [https://gna.org/support/?3135 Sr #3135]: Optimisation of the R1 relaxation rate for the off-resonance R<sub>1&rho;</sub> relaxation dispersion models.
* Modified nesting function to return all model info for the current model, and the comparable model. [https://gna.org/support/?3135 Sr #3135]: Optimisation of the R1 relaxation rate for the off-resonance R<sub>1&rho;</sub> relaxation dispersion models.
* Fix for nesting kexk<sub>ex</sub>, when model is [[CR72]], and analysed models is [[LM63]]. [https://gna.org/support/?3135 Sr #3135]: Optimisation of the R1 relaxation rate for the off-resonance R<sub>1&rho;</sub> relaxation dispersion models.* Fix for nesting kexk<sub>ex</sub>, when model is [[CR72]], and analysed models is IT99. [https://gna.org/support/?3135 Sr #3135]: Optimisation of the R1 relaxation rate for the off-resonance R<sub>1&rho;</sub> relaxation dispersion models.
* Added a return from the nesting model, if all fails. [https://gna.org/support/?3135 Sr #3135]: Optimisation of the R1 relaxation rate for the off-resonance R<sub>1&rho;</sub> relaxation dispersion models.
* Replaced the test, if acquiring the model info to a numerical model from a analytical model. [https://gna.org/support/?3135 Sr #3135]: Optimisation of the R1 relaxation rate for the off-resonance R<sub>1&rho;</sub> relaxation dispersion models.
* Added unit tests regarding model.py and its functions.
* Removed the auto-sorting of models, when performing auto analysis of Relaxation dispersion. This was discussed in: http://thread.gmane.org/gmane.science.nmr.relax.scm/22733, http://thread.gmane.org/gmane.science.nmr.relax.scm/22734, http://thread.gmane.org/gmane.science.nmr.relax.scm/22737. Through this discussion, it has appeared that the order of how models are sorted for analysis, and hence the possibility for nesting, is a complicated case. The order of analysis should be possible to manually put into the auto analysis. This was not the scope of [https://gna.org/support/?3135 sr #3135]: Optimisation of the R1 relaxation rate for the off-resonance R<sub>1&rho;</sub> relaxation dispersion models to implement such a feature. Such a feature could be implemented for the next version of relax. It could be designed as function to "suggest" an order in the GUI. But this functionality would have to wait.
* Removing the 'tex't<sub>ex</sub>->'kex' k<sub>ex</sub> conversion, and '&phi;<sub>ex</sub>' from &delta;&omega; and p<sub>A</sub>. This solution is not a proper implementation, but these parameters should rather be found by grid search.
* Re-inserted "MODEL_NS_CPMG_2SITE_EXPANDED" to be tested in system test test_hansen_cpmg_data_missing_auto_analysis.
* Removed special cases for nesting. Now following order is determined. First sort completed models into: EQ_NUMERIC, EQ_SILICO, EQ_ANALYTIC. Then into year, with newest first. Then number of chemical sites, which reflects number of parameters. Go through the completed models. If the experiment types are the same, then look for: If a completed model has same parameters, then nest from this. If a completed model has all other parameters than R<sub>2</sub><sup>0</sup> parameters, then nest from this. Special cases are taken care of by: MODEL_LM63_3SITE from MODEL_LM63, MODEL_NS_MMQ_3SITE, MODEL_NS_MMQ_3SITE_LINEAR from MODEL_NS_MMQ_2SITE, MODEL_NS_R1RHO_3SITE, MODEL_NS_R1RHO_3SITE_LINEAR from MODEL_NS_R1RHO_2SITE, MODEL_MMQ_CR72 from MODEL_CR72. This functionality represents the hard-coding from previous implementation.
* Modified nesting function, to pull list of possible models from dictionary, and check if these models are available in the completed models.
* Added initial Python script, to help print each model and its corresponding nested models. It can be executed by: relax test_suite/shared_data/dispersion/print_model_info/print_model_info.py.
* Added a relaxation dispersion example to show how certain literature statements are just utter crap. This follows from http://thread.gmane.org/gmane.science.nmr.relax.scm/22774/focus=6693, and the change http://thread.gmane.org/gmane.science.nmr.relax.scm/22774 which implement such dangerous literature conjectures. To see how a real minimum is excluded from the optimisation space, here for residue :2, execute the R1rho_analysis.py script in relax. This is synthetic data generated with kex k<sub>ex</sub> = 1e<sup>5</sup> assuming the model [[TP02]]. For the case of residue :2, this still produces an optimisable minimum in the space and dispersion curves. However the change blocks optimisation to the minimum.
* Added a function to determine how to nest/copy the parameters, when nesting from another model. It takes the list of parameters from the current model, and the list of parameters available in the nested model, and return a dictionary of parameter conversion for the current model params.
* Added unit test for the new function which determine how parameters are copied for a nested model parameters.
* Set the average value of R1 to 2.0 instead of 5.0. This is "normally" a better guess for R1.
* Implemented the function, which translates how parameters are copied from a nested model in the auto_analyses for relax_disp. This makes it possible to test the translating code, and makes logic clearer in the auto_analyses.
* Modified the r1rho_off_res_tp02_high_kex dispersion test data. The kex k<sub>ex</sub> value is now set to 2e<sup>5</sup>.
* Removed the 'DPL94 R1 fit' model nesting from the table in the dispersion chapter of the manual. This was identified using the dispersion test suite data script print_model_info/print_model_info.py (http://thread.gmane.org/gmane.science.nmr.relax.scm/22823).
* Added to system test Relax_disp.test_r1rho_kjaergaard_missing_r1 to check, that values are not None when writing .out files. This is related to: https://gna.org/support/?3121 sr #3121: Support request for replacing space in header files for the value.write functions. The fix for this bug, destroyed getting the values.
* Updated the minfx version numbers in the release checklist document. The version is now [https://gna.org/forum/forum.php?forum_id=2475 1.0.10], which has not been released yet but will contain the implementation of the log-barrier constraint algorithm gradient and Hessian.
* Fix for the minfx version checking logic in the dep_check module. Now newer versions of minfx will be handled.
* Fixes for the Relax_disp.test_estimate_r2eff_err system test. The kex k<sub>ex</sub> parameter value checks have all been scaled by 1e<sup>-5</sup> to allow for a meaningful floating point number comparison. The number of significant figures have also been scaled. This allows the test to now pass on one 64-bit GNU/Linux system.
* Another fix for the minfx version checking in the dep_check module. The version_comparison() function has been created to perform a proper version number comparison by stripping trailing zeros, converting the two version numbers to lists of int and comparing the lists using the Python cmp() function. This will return -1 when the version number is too low, 0 when the versions are equal, and 1 when the version is higher than the minimum.
* Added a button for the spectrum.error_analysis user function to the spectra list GUI element. This is placed after the 'Add' and 'Delete' buttons. The functionality could be improved by presetting the spectrum ID argument to anything the user has selected in the spectrum list.
Trusted, Bureaucrats
4,228

edits

Navigation menu