Open main menu

Changes

Relax 3.2.2

172 bytes removed, 12:18, 8 September 2014
m
Tracker link improvements.
* Deletion of the pipe_control.structure.main.create_cone_pdb() function. This is only used in the frame order analysis, but has been made redundant by the lib.structure.represent.cone.cone() function.
* Completed the frame_order.pdb_model user function backend for the frame order PDB representation. Most of this backend, including the axes and cone representations, had been broken for quite a while and were being skipped with an early return statement. This has now been made functional and a few fixes have been made. For the 'rotor' and 'free rotor' model, the neg_cone argument is now ignored so that only one model is produced in the final frame order PDB representation file. For all other models, the rotor representation is no longer centred to the point on axis closest to the centre of mass, as the pivot is unambiguously defined. The rotor representation has also been made larger in these models so that it is outside of the cone, and the propeller blades are now staggered.
* Modified py_type from "list" to "float_array" in uf_object type in user function dx.map. Bug #22035: ([https://gna.org/bugs/?22035) Bug #22035] The dx.map user function is broken in the GUI.* Added py_type "list_val_or_list_of_list_val" to be handled in GUI uf_objects. Bug #22035: ([https://gna.org/bugs/?22035) Bug #22035] The dx.map user function is broken in the GUI.
* Modified the frame order constraints so that cone_theta_x <= cone_theta_y. The linear_constraints() function docstring has been updated to include this constraint.
* Set dim=4 when setting chi surface level in user function dx.map.
* Renamed the relax_disp.set_grid_r20_from_min_r2eff user function to relax_disp.r20_from_min_r2eff. This follows from the proposal at http://thread.gmane.org/gmane.science.nmr.relax.devel/5957.
* Modification to the Sequence_2D GUI element used for some user function windows. The selection_win_show() method has been redefined, as the parent method from the Sequence element is specific for the 1D sequence module. The open_dialog() method has also been modified to use the new selection_win_show(), as well as the parent Sequence class selection_win_data() method.
* Created the User_functions.test_structure_rotate GUI tests. This is to catch bug #22100 ([https://gna.org/bugs/?22100)bug #22100], the rotation argument for the structure.rotate user function cannot be changed in the GUI, as an AttributeError is raised.
* Moved py_type "list_val_or_list_of_list_val" to 2D sequence types.
* Added dim dimensions to match the {x, y, z} positions for GUI input in user function dx.map.
* Clean up of the User_functions.test_structure_rotate GUI test. The invalid value check is simpler and the Sequence_2D GUI object return value is now checked to be None.
* Expanded the User_functions.test_structure_rotate GUI once more. This time the setting of invalid values in the Sequence_2D element itself is now checked. For example for the rotation matrix of the structure.rotate user function, if a matrix element is set to a string, a NameError is raised.
* Created the User_functions.test_dx_map GUI test. This extensively checks the 'point' argument for the dx.map user function GUI window. This is to catch bug #22102 ([https://gna.org/bugs/?22102)bug #22102], the point argument of the dx.map user function being incorrect in the GUI.
* Modified the User_functions.test_dx_map GUI test to catch another problem with the Sequence_2D element.
* Fixes for the frame order PDB presentation in the frame_order.pdb_model user function backend.
* Small fix for switched indices in the new User_functions.test_structure_add_atom GUI test.
* Modified the 'pos' argument of the structure.add_atom user function. The argument is now a list of fixed length of 3, and it has the titles 'X coordinate', 'Y coordinate', and 'Z coordinate' which are shown in the GUI.
* Created the User_functions.test_spectrum_read_intensities GUI test to catch bug #22105. This is reported at [https://gna.org/bugs/?22105bug #22105]. The problem is that a single file name is split up into many files when the file selection button is clicked, one for each character of the file name.
* Fix for the User_functions.test_spectrum_read_intensities GUI test. A valid value was being checked as invalid.
* Shifted all wildcards used in GUI file selection dialogs into the new user_functions.wildcard module. These have now all been standardised, and expanded to include more capitalisation combinations and to include more *.* options.
* Created a file selection wildcard for use in the GUI for selecting peak lists. This is used in the four user functions which read peak lists.
* Changed all *.* GUI file selection wildcards to *.
* Huge speedup for model [[CR72]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. The system test Relax_disp.test_cpmg_synthetic_cr72_full_noise_cluster changes from 7 seconds to 4.5 seconds. This is won by not checking single values in the R2eff array for math domain errors, but calculating all steps, and in one single round check for finite values. If just one non-finite value is found, the whole array is returned with a large penalty of 1e100. This makes all calculations be the fastest numpy array way.* Fix for system test test_cpmg_synthetic_dx_map_points. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models.* Critical fixes for system test Relax_disp.test_hansen_cpmg_data_missing_auto_analysis. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. It is suspected that when relax have touched boundary values which made math domain errors, the error catching have created local minima or interfered with the simplex search algorithm.* Speedup of model [[TSMFK01]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is won by not checking single values in the R2eff array for math domain errors, but calculating all steps, and in one single round check for finite values. If just one non-finite value is found, the whole array is returned with a large penalty of 1e100. This makes all calculations be the fastest numpy array way.* Huge speedup of model [[B14]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. Time test for system tests: test_baldwin_synthetic 2.626s -> 1.990s, test_baldwin_synthetic_full 18.326s -> 13.742s. This is won by not checking single values in the R2eff array for math domain errors, but calculating all steps, and in one single round check for finite values. If just one non-finite value is found, the whole array is returned with a large penalty of 1e100. This makes all calculations be the fastest numpy array way.* Speedup of model [[TP02]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. The change for running system test is: test_curve_type_r1rho_fixed_time 0.057s -> 0.049s, test_tp02_data_to_ns_r1rho_2site 10.539s -> 10.456s, test_tp02_data_to_tp02 8.608s -> 5.727s. This is won by not checking single values in the R1rho array for math domain errors, but calculating all steps, and in one single round check for finite values. If just one non-finite value is found, the whole array is returned with a large penalty of 1e100. This makes all calculations be the fastest numpy array way.* Huge speedup for model [[TAP03]]. Task #7793: (https[https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. The change for running system test is: test_tp02_data_to_tap03 13.869s -> 7.263s. This is won by not checking single values in the R1rho array for math domain errors, but calculating all steps, and in one single round check for finite values. If just one non-finite value is found, the whole array is returned with a large penalty of 1e100. This makes all calculations be the fastest numpy array way.* Speedup of model [[MP05]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. The change in system test is: test_tp02_data_to_mp05 10.750s -> 6.644s.* Speedup of model [[MMQ CR72]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. Change in system test: test_sprangers_data_to_mmq_CR72 9.892s -> 4.121s.* Speedup for model [[M61]]. Task #7793: (https[https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. Change in speed is: test_m61_data_to_m61 6.692s -> 3.480s.* Speedup of model [[LM63]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. Change in system test was: test_hansen_cpmg_data_auto_analysis 13.731s -> 9.971s, test_hansen_cpmg_data_auto_analysis_r2eff 13.370s -> 9.510s, test_hansen_cpmg_data_to_lm63 3.254s -> 2.080s.* Speedup of model [[IT99]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. Change in speed is: test_hansen_cpmg_data_auto_analysis 9.74s -> 8.330s, test_hansen_cpmg_data_to_it99 4.928s -> 3.138s.* Speedup of model [[DPL94]]. Task #7793: (https[https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. Change in speed is: test_dpl94_data_to_dpl94 19.412s -> 4.427s.* Math-domain catching for model [[B14]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[CR72]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model: [[NS CPMG 2-site expanded]]. Task #7793: (https[https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[CR72]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. The skipping of test when num_points > 0, is a bad implementation. If such a case should show, it is best to catch the wrong input for the calculations. This is best done with a check before running the calculations.* Math-domain catching for model [[TSMFK01]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[TP02]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[TAP03]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[DPL94]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.
* Math-domain catching for model [[TAP03]]. Another check for division with 0 inserted.
* Math-domain catching for model [[MP05]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[IT99]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Removed class object "back_calc" being updated per time point for model [[LM63]]. Task #7793: ([https://gna.org/task/?7793) Speedup Task #7793] Speedup of dispersion models. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[M61]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[MMQ CR72]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Align math-domain catching for model [[CR72]] with trunk implementation. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[DPL94]] with trunk implementation. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[IT99]] with trunk implementation. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[LM63]] with trunk implementation. Task #7793: (https[https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[M61]] with trunk implementation. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[MP05]] with trunk implementation. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[TAP03]] with trunk implementation. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[TP02]] with trunk implementation. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[TSMFK01]] with trunk implementation. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Removing unnecessary math-domain catching for model [[IT99]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. The denominator is always positive.* Align math-domain catching for model [[NS CPMG 2-site expanded]] with trunk implementation. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Modified unit tests demonstrating edge case 'no Rex' failures of the model [[NS CPMG 2-site expanded]]. This is to align with the current return of data in the disp_speed branch. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0.* Added 7 unit tests demonstrating edge case 'no Rex' failures of the model [[DPL94]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0.
* Unit test _lib/test_ns_cpmg_2site_expanded.py copied to _/test_lm63.py. They are both of CPMG type.
* Added 7 unit tests demonstrating edge case 'no Rex' failures of the model [[LM63]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0.
* Unit test _lib/_dispersion/test_ns_cpmg_2site_expanded.py copied to _lib/_dispersion/b14.py. They are both of CPMG type, and can be re-used.
* Added 7 unit tests demonstrating edge case 'no Rex' failures of the model [[B14]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0.
* Removed unnecessary math domain checking in model [[B14]]. They are slowing down the code. There is now protection for edge cases, and a last final check, before returning values. That should be sufficient.
* Unit test _lib/_dispersion/test_b14.py copied to _lib/_dispersion/test_CR72.py. They are both of CPMG type, and can be re-used.
* Copied unit test _lib/_dispersion/* to be reused for other models.
* Added 8 unit tests demonstrating edge case 'no Rex' failures of the model [[CR72]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e5.* Added the 8th unit tests demonstrating edge case 'no Rex' failures of the model [[B14]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e5.* Added the 8th unit tests demonstrating edge case 'no Rex' failures of the model [[LM63]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e20.
* Small fix for 8 unit tests demonstrating edge case 'no Rex' failures of the model 'ns cpmg_2site_expanded'. The comparison of R2eff is now divided into a special case for kex having large values.
* Deleted unit test case for lm63 3site.
* Added 8 unit tests demonstrating edge case 'no Rex' failures of the model [[M61]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e20.* Added the 8th unit tests demonstrating edge case 'no Rex' failures of the model [[DPL94]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange:* Added 8 unit tests demonstrating edge case 'no Rex' failures of the model [[M61b]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e20.* Math-domain catching for model [[M61b]]. Task #7793: ([https://gna.org/task/?7793) Task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.
* Modified script to be able to run system test Relax_disp.xxx_test_m61b_data_to_m61b.
* Added 8 unit tests demonstrating edge case 'no Rex' failures of the model [[IT99]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e19.* Added 9 unit tests demonstrating edge case 'no Rex' failures of the model [[MMQ CR72]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e5; dwH = 0.0.* Added 8 unit tests demonstrating edge case 'no Rex' failures of the model [[MP05]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e20.* Added 8 unit tests demonstrating edge case 'no Rex' failures of the model [[TAP03]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e20.* Added 8 unit tests demonstrating edge case 'no Rex' failures of the model [[TP02]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e20.* Added 7 unit tests demonstrating edge case 'no Rex' failures of the model [[TSMFK01]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0.
* Copied unit test test_b14.py to test_ns_cpmg_2site_3d.py.
* Added 8 unit tests demonstrating edge case 'no Rex' failures of the model [[NS CPMG 2-site 3D]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e7.* Modified unit tests demonstrating edge cases 'no Rex' failures of the model [[TP02]]. The catching of errors for off-resonance R1rho models was implemented wrong. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e5.
* Critical fix for the math domain catching of model [[TP02]]. The catching of errors for off-resonance R1rho models was implemented wrong. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938.
* Modified unit tests demonstrating edge cases 'no Rex' failures of the model [[DPL94]]. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938.
* Modified unit tests demonstrating edge cases 'no Rex' failures of the model [[MP05]]. The catching of errors for off-resonance R1rho models was implemented wrong. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur.
* Critical fix for the math domain catching of model [[MP05]]. The catching of errors for off-resonance R1rho models was implemented wrong. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938.
* Modified unit tests demonstrating edge cases 'no Rex' failures of the model [[TAP03]]. The catching of errors for off-resonance R1rho models was implemented wrong. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938. And post http://article.gmane.org/gmane.science.nmr.relax.devel/5944. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.
* Critical fix for the math domain catching of model [[TAP03]]. The catching of errors for off-resonance R1rho models was implemented wrong. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938. And post http://article.gmane.org/gmane.science.nmr.relax.devel/5944.
* Modified unit tests demonstrating edge cases 'no Rex' failures of the model [[MMQ CR72]]. This was pointed out in post http://article.gmane.org/gmane.science.nmr.relax.devel/5940. And in post http://article.gmane.org/gmane.science.nmr.relax.devel/5946. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.
* Small fix for the math domain catching of model [[MMQ CR72]]. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5940. And in post http://article.gmane.org/gmane.science.nmr.relax.devel/5946.
* Various spacing fixes in unit test files _lib/_dispersion. This is the preparation for merging back disp_speed branch into trunk. This follows post http://article.gmane.org/gmane.science.nmr.relax.devel/5948. Usin the code validator script './devel_scripts/code_validator'.
* Modified that unit tests having different r20a and r20b values is checking if the correct one is returned. This is the preparation for merging back disp_speed branch into trunk. This follows post http://article.gmane.org/gmane.science.nmr.relax.devel/5948.
* Modified unit test to have standard population of pA = 0.95, and a correctly calculation of dw in ppm to rad/s. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.
* Small fix in parameter calculation in unit test _dispersion/test_ns_cpmg_2site_expanded.
* Increased max kex to value 1e18 for unit test of lin/ns_cpmg_2site_expanded.py.
* Increased max kex to value 1e20 for unit test of lib/ns_cpmg_2site_3d.py.
* Fix for looking for negative values, when all values where converted to positive in matrix in ns_cpmg_2site_3d.py. This is to implement catching of math domain errors, before they occur. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.
* Removed nested looping of returning back_calc in lib/ns_cpmg_2site_3d.
* Removed the 8th unit test for model [[NS CPMG 2-site 3D]]. This was the catching of errors when kex = 1e20. The model cannot handle this situations, and we need to let it fail.
* Removed the 8th unit test for model [[NS CPMG 2-site expanded]]. This was the catching of errors when kex has high values. The model cannot handle this situations, and we need to let it fail.
* Fix for differences in system tests which are different from trunk. These were found with the command: diff -bur disp_speed/test_suite/ relax_trunk/test_suite/ | grep -v "Binary files" > diff.txt.
* Converting back to having back_calc as a function argument to model [[B14]]. This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.* Converting back to having back_calc as a function argument to model [[CR72]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.* Converting back to having back_calc as a function argument to model [[DPL94]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.* Converting back to having back_calc as a function argument to model [[IT99]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.* Converting back to having back_calc as a function argument to model [[LM63]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.* Converting back to having back_calc as a function argument to model [[M61]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.* Converting back to having back_calc as a function argument to model [[M61b]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.* Converting back to having back_calc as a function argument to model [[MMQ CR72]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.* Converting back to having back_calc as a function argument to model [[MP05]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.* Converting back to having back_calc as a function argument to model [[NS CPMG 2-site expanded]]. This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.* Converting back to having back_calc as a function argument to model [[TAP03]]. This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.* Converting back to having back_calc as a function argument to model [[TP02]]. This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.* Converting back to having back_calc as a function argument to model [[TSMFK01]]. This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models.
* Created the lib.compat.norm() compatibility function for numpy.linalg.norm(). For numpy 1.8 and higher, the numpy.linalg.norm() function has introduced the 'axis' argument. This is an incredibly fast way of determining the norm of an array of vectors. This is used by the frame order analysis. However for older numpy versions, this causes the frame order analysis, and many corresponding system and GUI tests to fail. Therefore this new lib.compat.norm() function has been designed to default to numpy.linalg.norm() if the axis argument is supported, or to switch to the much slower numpy.apply_along_axis(numpy.linalg.norm, axis, x) call which is supported by older numpy.
* The frame order analysis now uses the lib.compat.norm() replacement for numpy.linalg.norm(). This is to allow for the axis argument on numpy versions before version 1.8, though these older versions will result in slower optimisation of the frame order models.
* Fix for the lib.structure.geometric.generate_vector_residues() function. The atom numbers are no longer read from the internal structural object, as these are not reliable. If another geometric representation exists in the object, then the atom numbers could be None. Or loading structures from multiple PDB files can cause the numbering to be repeated or out of order.
* Fix for the frame_order.pdb_model user function for the rotor models. The rotor axis is no longer defined by spherical angles and therefore needs to be recreated using the create_rotor_axis_alpha() rather than create_rotor_axis_spherical() function from lib.frame_order.rotor_axis.
* Partial fix for bug #22100. This is the bug report at [https://gna.org/bugs/?22100bug #22100], the rotation argument for the structure.rotate user function cannot be changed in the GUI, as an AttributeError is raised. The append_row() method call has been replaced by the correct add_element() call.
* Bug fix for the Sequence_2D GUI element. This is used for the user function windows in the GUI for setting lists of lists or matrices. The GUI element GetValue() method will now return None if nothing is set. This prevents a list of lists of None being added to the main user function window.
* Fixes for the Sequence and Sequence_2D GUI elements for handling invalid input data. These elements used by the user function windows previously raised all sorts of errors if the data was not what they expected (lists or lists of lists respectively). These situations are now caught and the input data is ignored, so blank Sequence and Sequence_2D elements are presented to the user.
* Bug fix for the Sequence_2D GUI element. This is used for handling list of lists user function arguments in the user function GUI windows. The setting of invalid values directly in the Sequence_2D GUI element is now detected. These values are now replaced with None.
* Fix for [https://gna.org/bugs/?22102 bug #22102], the point argument of the dx.map user function failing in the GUI. This is reported at https://gna.org/bugs/?22102. The Sequence_2D GUI element used for all list of lists arguments in the user function GUI windows now correctly handles variable length lists. The first column which shows a count of the elements is now properly taken into account in the SetValue(), GetValue() and add_item() methods, via a new self.offset variable. The self.variable_length variable has also been fixed so it is not overwritten by the parent Sequence GUI element.
* Bug fixes for the Sequence GUI element used for lists in the user function windows. Invalid values input into the Sequence GUI window are now ignored rather than raising different types of error. And invalid input lists for fixed dimension arguments are also ignored. This allows the User_functions.test_structure_add_atom GUI test to pass.
* Bug fix for the lib.arg_check.is_float_object() function. The dim argument can sometimes be an integer rather than a tuple, but this was not handled by the function. Now integer dim arguments are pre-converted to lists before performing all the checks.
* Fix for bug #22105 ([https://gna.org/bugs/?22105)bug #22105]. This is the failure spectrum.read_intensities GUI user function whereby a file name is turned into lists of characters. A few changes were made to allow the Selector_file_multiple GUI element to operate correctly.* Critical fix for the math domain catching of model [[LM63]]. This was discovered with the added 7 unit tests demonstrating edge case 'no Rex' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur.* Critical fix for the math domain catching of model [[B14]]. This was discovered with the added 7 unit tests demonstrating edge case 'no Rex' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur.* Critical fix for the math domain catching of model [[CR72]]. This was discovered with the added 8 unit tests demonstrating edge case 'no Rex' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. When kex is large, e.g. kex = 1e5, the values of etapos = eta_scale * sqrt(Psi + sqrt_psi2_zeta2) / cpmg_frqs will exceed possible numerical representation. The catching of these occurrences needed to be re-written.* Critical fix for the math domain catching of model [[B14]]. This was discovered with the added 8 unit tests demonstrating edge case 'no Rex' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. When kex is large, e.g. kex = 1e5, "nan" values where produced, which were replaced with 1e100. The catching of these occurrences needed to be re-written.
* Critical fix for the math domain catching of model [[CR72]]. Removed the test for kex >= 1.e5. This catching should rather be performed on the math functions instead.
* Critical fix for the math domain catching of model [[B14]]. Removed the test for kex >= 1.e5. This catching should rather be performed on the math functions instead. In this case, it is the catching of sinh(), not evaluating values above 710.
* Critical fix for the math domain catching of model [[MMQ CR72]]. This was discovered with the added 9 unit tests demonstrating edge case 'no Rex' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur.* Critical fix for the math domain catching of model [[IT99]]. This was discovered with the added 8 unit tests demonstrating edge case 'no Rex' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. The catching of these occurrences needed to be re-written.* Critical fix for the math domain catching of model [[TAP03]]. This was discovered with the added 8 unit tests demonstrating edge case 'no Rex' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur.* Critical fix for the math domain catching of model [[TP02]]. This was discovered with the added 8 unit tests demonstrating edge case 'no Rex' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur.* Critical fix for the math domain catching of model [[TSMFK01]]. This was discovered with the added 8 unit tests demonstrating edge case 'no Rex' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur. The catching of these occurrences needed to be re-written.* Critical fix for the math domain catching of model [[NS CPMG 2-site 3D]]. This was discovered with the added 8 unit tests demonstrating edge case 'no Rex' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to task #7793: ([https://gna.org/task/?7793) task #7793] Speedup of dispersion models. This is to implement catching of math domain errors, before they occur.* Fix for bug #22112 ([http://gna.org/bugs/?22112)bug #22112]. This is the GUI failure when setting list values via the sequence windows, launched from user function windows fails on Mac OS X. The problem was two fold. First the Sequence and Sequence_2D windows from wx.Dialog should not be terminated via the Destroy() method, as wx.Dialog.Destroy() appears to be horribly broken on Macs.* Another fix for bug #22112 ([http://gna.org/bugs/?22112)bug #22112]. This is the GUI failure when setting list values via the sequence windows, launched from user function windows fails on Mac OS X. This change is for the multiple file selection window and matches the previous change by replacing the Mac OS X fatal wx.Dialog.Destroy() call with wx.Dialog.Close().
* Fix for the relax start up detection of missing Python packages. The dep_check module is now imported first, as it used to be. This is required to check if all required modules are installed and to present understandable messages to the user rather than cryptic ImportError messages with tracebacks.
* Fix for [https://gna.org/bugs/?22033 bug #22033], the inability to use other optimisation algorithms in the dispersion analysis. This is reported at https://gna.org/bugs/?22033. As mentioned in comment #2, the solution is to raise a RelaxError explaining that only 'simplex' optimisation is possible for the dispersion analysis as the gradients are not derived and implemented in relax.
Trusted, Bureaucrats
4,228

edits