Difference between revisions of "Relax 4.1.1"

From relax wiki
Jump to navigation Jump to search
(Converted all symbols to use wiki markup.)
(Added a link to the next version of relax (4.1.2).)
 
(7 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
| version  = 4.1.1
 
| version  = 4.1.1
 
| prev    = 4.1.0
 
| prev    = 4.1.0
| keywords = Dispersion
+
| next    = 4.1.2
 +
| keywords = Dispersion, GUI
 
| type    = Major bugfix
 
| type    = Major bugfix
 
| date    = 8 March 2019
 
| date    = 8 March 2019
Line 13: Line 14:
  
 
<section begin=description/>
 
<section begin=description/>
 +
This is a major bugfix release.  The release fixes multiple issues with the relax GUI and with the relaxation dispersion analyses.  Please see the notes below for details.
 
<section end=description/>
 
<section end=description/>
  
Line 38: Line 40:
  
 
<section begin=changes/>
 
<section begin=changes/>
* Mac OS X distribution file: Fixes for the DMG file generation.  The .git directories are no longer bundled (the check in setup.py was for .svn directories), and the sobol_test.py script contained a bug that blocked the image generation.
+
* Mac OS X distribution file: Fixes for the DMG file generation.  The <code>.git</code> directories are no longer bundled (the check in <code>setup.py</code> was for <code>.svn</code> directories), and the <code>sobol_test.py</code> script contained a bug that blocked the image generation.
 
* Release Checklist: Rewrite for the shift to a git repository and to the SourceForge infrastructure.
 
* Release Checklist: Rewrite for the shift to a git repository and to the SourceForge infrastructure.
 
* Test suite: Temporary file fix for the Bmrb system and GUI tests.  The temporary files normally used by these tests were accidentally removed in a previous commit.  The result was temporary files being placed in the current directory.
 
* Test suite: Temporary file fix for the Bmrb system and GUI tests.  The temporary files normally used by these tests were accidentally removed in a previous commit.  The result was temporary files being placed in the current directory.
* log_converter.py development script: Conversion from SVN to git.  A number of spacing bugs have also been removed, simplifying the release process.
+
* <code>log_converter.py</code> development script: Conversion from SVN to git.  A number of spacing bugs have also been removed, simplifying the release process.
* relax manual: The find_replicate_titles.py script can now handle the presence of latex2html.  If latex2html had been set up via the docs/devel/latex2html/setup script, then find_replicate_titles.py would fail due to the presence of *.tex files outside of docs/latex/.
+
* relax manual: The [http://www.nmr-relax.com/api/4.1/docs.latex.find_replicate_titles-module.html find_replicate_titles.py script] can now handle the presence of latex2html.  If latex2html had been set up via the <code>docs/devel/latex2html/setup</code> script, then [http://www.nmr-relax.com/api/4.1/docs.latex.find_replicate_titles-module.html find_replicate_titles.py] would fail due to the presence of <code>*.tex</code> files outside of <code>docs/latex/</code>.
* Update from LaTeX2HTML 2008 to 2019.  The instructions now point to the latex2html repository fork at SourceForge (https://sourceforge.net/p/nmr-relax/code-latex2html/ci/master/tree/), with the relax manual specific branches.
+
* Update from LaTeX2HTML 2008 to 2019.  The instructions now point to the [https://sourceforge.net/p/nmr-relax/code-latex2html/ci/master/tree/ latex2html repository fork at SourceForge], with the relax manual specific branches.
* GUI tests: Addition of the User_functions.test_bug_2_structure_read_pdb_failure test.  This is to catch [https://sourceforge.net/p/nmr-relax/tickets/2/ bug #2], the failure of the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function] in the GUI.
+
* GUI tests: Addition of the [http://www.nmr-relax.com/api/4.1/test_suite.gui_tests.test_user_functions.User_functions-class.html#test_bug_2_structure_read_pdb_failure User_functions.test_bug_2_structure_read_pdb_failure test].  This is to catch [https://sourceforge.net/p/nmr-relax/tickets/2/ bug #2], the failure of the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function] in the GUI.
* GUI tests: Addition of the User_functions.test_bug_3_no_argument_validation test.  This is to catch [https://sourceforge.net/p/nmr-relax/tickets/3/ bug #3], the absence of user function argument validation within the GUI.
+
* GUI tests: Addition of the [http://www.nmr-relax.com/api/4.1/test_suite.gui_tests.test_user_functions.User_functions-class.html#test_bug_3_no_argument_validation User_functions.test_bug_3_no_argument_validation test].  This is to catch [https://sourceforge.net/p/nmr-relax/tickets/3/ bug #3], the absence of user function argument validation within the GUI.
* Unit tests: Addition of two tests for specific_analyses.relax_disp.parameters.param_num().  This is to catch [https://sourceforge.net/p/nmr-relax/tickets/6/ bug #6], the failure of the parameter counting for the 3-site relaxation dispersion models when spins are clustered.  The two unit tests are Test_parameters.test_param_num_clustered_spins and Test_parameters.test_param_num_single_spin in the unit test module _specific_analyses._relax_disp.test_parameters.
+
* Unit tests: Addition of two tests for [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#param_num specific_analyses.relax_disp.parameters.param_num()].  This is to catch [https://sourceforge.net/p/nmr-relax/tickets/6/ bug #6], the failure of the parameter counting for the 3-site relaxation dispersion models when spins are clustered.  The two unit tests are [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters.Test_parameters-class.html#test_param_num_clustered_spins Test_parameters.test_param_num_clustered_spins] and [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters.Test_parameters-class.html#test_param_num_single_spin Test_parameters.test_param_num_single_spin] in the [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters-module.html unit test module _specific_analyses._relax_disp.test_parameters].
* Unit tests: Addition of two tests for specific_analyses.relax_disp.parameters.loop_parameters(). The two unit tests are Test_parameters.test_loop_parameters_clustered_spins and Test_parameters.test_loop_parameters_single_spin in the unit test module _specific_analyses._relax_disp.test_parameters. These were added to try to catch the typo error at the end of the function, where the {{:deltaomegaHAB}} parameter appears twice (the second should be {{:deltaomegaHAC}}). However the typo was not caught in the tests as no currently implemented dispersion model contains the {{:deltaomegaHAC}} parameter. Hence it is a latent bug. The tests do catch a minor error with the 'R2eff' model in which the {{:i0}} parameter is always returned. {{:i0}} should only be returned when exponential curve data is present. This bug has no apparent affect on the current operation of relax, so the parameter is probably handled correctly downstream.
+
* Unit tests: Addition of two tests for [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#loop_parameters specific_analyses.relax_disp.parameters.loop_parameters()]. The two unit tests are [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters.Test_parameters-class.html#test_loop_parameters_clustered_spins Test_parameters.test_loop_parameters_clustered_spins] and [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters.Test_parameters-class.html#test_loop_parameters_single_spin Test_parameters.test_loop_parameters_single_spin] in the [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters-module.html unit test module _specific_analyses._relax_disp.test_parameters].  These were added to try to catch the typo error at the end of the function, where the {{:deltaomegaHAB}} parameter appears twice (the second should be {{:deltaomegaHAC}})However the typo was not caught in the tests as no currently implemented dispersion model contains the {{:deltaomegaHAC}} parameter. Hence it is a latent bug. The tests do catch a minor error with the '[[R2eff model|R2eff]]' model in which the {{:i0}} parameter is always returned. {{:i0}} should only be returned when exponential curve data is present. This bug has no apparent affect on the current operation of relax, so the parameter is probably handled correctly downstream.
* Module specific_analyses.relax_disp.parameters: Fix for loop_parameters() with the 'R2eff' model. This now only returns the {{:i0}} parameter when exponential curve data is present. This fix has no apparent affect on the operation of relax, so the {{:i0}} parameter is probably correctly handled in code that calls the loop_parameters() function.
+
* [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html Module specific_analyses.relax_disp.parameters]: Fix for [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#loop_parameters loop_parameters()] with the '[[R2eff model|R2eff]]' model. This now only returns the {{:i0}} parameter when exponential curve data is present.  This fix has no apparent affect on the operation of relax, so the {{:i0}} parameter is probably correctly handled in code that calls the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#loop_parameters loop_parameters() function].
* Dispersion: Shift of the model parameters from the parameter loop to lib.dispersion.variables. This removes all references to specific model parameters from the loop_parameters() function in the specific_analyses.relax_disp.parameters module into lib.dispersion.variables. This simplifies the loop_parameters() function and should minimise latent bugs.
+
* Dispersion: Shift of the model parameters from the parameter loop to [http://www.nmr-relax.com/api/4.1/lib.dispersion.variables-module.html lib.dispersion.variables].  This removes all references to specific model parameters from the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#loop_parameters loop_parameters() function] in the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html specific_analyses.relax_disp.parameters module] into [http://www.nmr-relax.com/api/4.1/lib.dispersion.variables-module.html lib.dispersion.variables].  This simplifies the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#loop_parameters loop_parameters() function] and should minimise latent bugs.
* Unit tests: Addition of two tests for specific_analyses.relax_disp.parameters.linear_constraints(). The two unit tests are Test_parameters.test_linear_constraints_clustered_spins and Test_parameters.test_linear_constraints_single_spin in the unit test module _specific_analyses._relax_disp.test_parameters.  These show that the linear constraints are correctly assembled for single and clustered spins for all models.
+
* Unit tests: Addition of two tests for [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#linear_constraints specific_analyses.relax_disp.parameters.linear_constraints()].  The two unit tests are [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters.Test_parameters-class.html#test_linear_constraints_clustered_spins Test_parameters.test_linear_constraints_clustered_spins] and [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters.Test_parameters-class.html#test_linear_constraints_single_spin Test_parameters.test_linear_constraints_single_spin] in the [[http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters-module.html unit test module _specific_analyses._relax_disp.test_parameters].  These show that the linear constraints are correctly assembled for single and clustered spins for all models.
* Module specific_analyses.relax_disp.parameters: Docstring, whitespace, and comment fixes.
+
* [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html Module specific_analyses.relax_disp.parameters]: Docstring, whitespace, and comment fixes.
* Unit tests: Addition of tests for lib.dispersion.ns_mmq_3site and lib.dispersion.ns_r1rho_3siteThese are to catch [https://sourceforge.net/p/nmr-relax/tickets/9/ bug #9], and specifically test for when {{:pA}} is 1.0 and the other probabilities are zero.  Two new unit tests of the _lib._dispersion.test_ns_mmq_3site module include Test_ns_mmq_3site.test_ns_mmq_3site_mq and Test_ns_mmq_3site.test_ns_mmq_3site_sq_dq_zq, and a single new unit test of the _lib._dispersion.test_ns_r1rho_3site module is Test_ns_r1rho_3site.test_ns_r1rho_3site.
+
* Unit tests: Addition of tests for [http://www.nmr-relax.com/api/4.1/lib.dispersion.ns_mmq_3site-module.html lib.dispersion.ns_mmq_3site] and [http://www.nmr-relax.com/api/4.1/lib.dispersion.ns_r1rho_3site-module.html lib.dispersion.ns_r1rho_3site].  These are to catch [https://sourceforge.net/p/nmr-relax/tickets/9/ bug #9], and specifically test for when {{:pA}} is 1.0 and the other probabilities are zero.  Two new unit tests of the [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._lib._dispersion.test_ns_mmq_3site-module.html _lib._dispersion.test_ns_mmq_3site module] include [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._lib._dispersion.test_ns_mmq_3site.Test_ns_mmq_3site-class.html#test_ns_mmq_3site_mq Test_ns_mmq_3site.test_ns_mmq_3site_mq] and [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._lib._dispersion.test_ns_mmq_3site.Test_ns_mmq_3site-class.html#test_ns_mmq_3site_sq_dq_zq Test_ns_mmq_3site.test_ns_mmq_3site_sq_dq_zq], and a single new unit test of the [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._lib._dispersion.test_ns_r1rho_3site-module.html _lib._dispersion.test_ns_r1rho_3site module] is [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._lib._dispersion.test_ns_r1rho_3site.Test_ns_r1rho_3site-class.html#test_ns_r1rho_3site Test_ns_r1rho_3site.test_ns_r1rho_3site].
* Unit tests: Addition of two tests for specific_analyses.relax_disp.parameters.param_conversion(). The two unit tests are Test_parameters.test_param_conversion_clustered_spins and Test_parameters.test_param_conversion_single_spin in the unit test module _specific_analyses._relax_disp.test_parameters. These tests uncovered that the {{:pC}} parameter for the 3-site {{:R1rho}} dispersion models 'NS R1rho 3-site' and 'NS R1rho 3-site linear' is not being calculated in the param_conversion() function.  This is now reported as [https://sourceforge.net/p/nmr-relax/tickets/11/ bug #11].
+
* Unit tests: Addition of two tests for [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#param_conversion specific_analyses.relax_disp.parameters.param_conversion()].  The two unit tests are [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters.Test_parameters-class.html#test_param_conversion_clustered_spins Test_parameters.test_param_conversion_clustered_spins] and [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters.Test_parameters-class.html#test_param_conversion_single_spin Test_parameters.test_param_conversion_single_spin] in the [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters-module.html  unit test module _specific_analyses._relax_disp.test_parameters].  These tests uncovered that the {{:pC}} parameter for the 3-site {{:R1rho}} dispersion models '[[NS R1rho 3-site]]' and '[[NS R1rho 3-site linear]]' is not being calculated in the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#param_conversion param_conversion() function].  This is now reported as [https://sourceforge.net/p/nmr-relax/tickets/11/ bug #11].
* Unit tests: Creation of the Test_parameters.test_param_conversion_clustered_spins_sim test.  This is to check the specific_analyses.relax_disp.parameters.param_conversion() function for a cluster of 2 spins for Monte Carlo simulations.  It was a failed attempt to catch [https://sourceforge.net/p/nmr-relax/tickets/10/ bug #10]. The problem probably lies in the Monte Carlo simulation setup functions in the specific analysis API rather than in the module specific_analyses.relax_disp.parameters.
+
* Unit tests: Creation of the [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters.Test_parameters-class.html#test_param_conversion_clustered_spins_sim Test_parameters.test_param_conversion_clustered_spins_sim test].  This is to check the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#param_conversion specific_analyses.relax_disp.parameters.param_conversion() function] for a cluster of 2 spins for Monte Carlo simulations.  It was a failed attempt to catch [https://sourceforge.net/p/nmr-relax/tickets/10/ bug #10].  The problem probably lies in the Monte Carlo simulation setup functions in the specific analysis API rather than in the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html module specific_analyses.relax_disp.parameters].
* Unit tests: Test of the dispersion specific analysis API function sim_init_values().  This is an attempt at catching [https://sourceforge.net/p/nmr-relax/tickets/10/ bug #10], the failure of the 3-site dispersion models when setting the {{:pC}} parameter for Monte Carlo simulations. The failing test however shows that the sim_init_values() function probably needs a complete overhaul.
+
* Unit tests: Test of the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.api.Relax_disp-class.html#sim_init_values dispersion specific analysis API function sim_init_values()].  This is an attempt at catching [https://sourceforge.net/p/nmr-relax/tickets/10/ bug #10], the failure of the 3-site dispersion models when setting the {{:pC}} parameter for Monte Carlo simulations.  The failing test however shows that the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.api.Relax_disp-class.html#sim_init_values sim_init_values() function] probably needs a complete overhaul.
* Dispersion: Improved handling of deselected spins in the loop_parameters() function.  This is from the specific_analyses.relax_disp.parameters module.  The function can now handle the first spins in the cluster being deselected.
+
* Dispersion: Improved handling of deselected spins in the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#loop_parameters loop_parameters() function].  This is from the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html specific_analyses.relax_disp.parameters module].  The function can now handle the first spins in the cluster being deselected.
* FSFCV configuration: Skip some false positive copyrights in the docs/CHANGES file.
+
* FSFCV configuration: Skip some false positive copyrights in the <code>docs/CHANGES</code> file.
 
<section end=changes/>
 
<section end=changes/>
  
Line 64: Line 66:
 
<section begin=bugfixes/>
 
<section begin=bugfixes/>
 
* Fix for [https://sourceforge.net/p/nmr-relax/tickets/2/ bug #2], the failure of the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function] in the GUI.  The problem was that the file selection argument was being set up incorrectly as two GUI elements - an inactive file selection element and a normal value setting GUI element.  Only the second value input GUI element was active (due to the GUI elements being stored in a dictionary, with the first key value being overwritten by the second).
 
* Fix for [https://sourceforge.net/p/nmr-relax/tickets/2/ bug #2], the failure of the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function] in the GUI.  The problem was that the file selection argument was being set up incorrectly as two GUI elements - an inactive file selection element and a normal value setting GUI element.  Only the second value input GUI element was active (due to the GUI elements being stored in a dictionary, with the first key value being overwritten by the second).
* Fix for [https://sourceforge.net/p/nmr-relax/tickets/3/ bug #3], the absence of user function argument validation within the GUI.  The code for the user function argument validation in the prompt/script UIs was simply copied and slightly modified to fit into the GUI user function window execution.  All arguments are now passed into the new lib.arg_check.validate_arg() function and are checked based on their user function definitions.
+
* Fix for [https://sourceforge.net/p/nmr-relax/tickets/3/ bug #3], the absence of user function argument validation within the GUI.  The code for the user function argument validation in the prompt/script UIs was simply copied and slightly modified to fit into the GUI user function window execution.  All arguments are now passed into the new [http://www.nmr-relax.com/api/4.1/lib.arg_check-module.html#validate_arg lib.arg_check.validate_arg() function] and are checked based on their user function definitions.
* Fix for [https://sourceforge.net/p/nmr-relax/tickets/4/ bug #4], the relax controller in the GUI not displaying text when required.  Calls to the captured IO stream flush() methods are now been made in a number of places to allow the controller to show the text when required.  This includes after printing out the intro text, after any captured and GUI handled errors, after clicking on the "help→licence" menu entry, after thread exceptions, and after a number of GUI message dialogs.  The bug is only present in [[relax 4.1.0]].
+
* Fix for [https://sourceforge.net/p/nmr-relax/tickets/4/ bug #4], the relax controller in the GUI not displaying text when required.  Calls to the captured IO stream <code>flush()</code> methods are now been made in a number of places to allow the controller to show the text when required.  This includes after printing out the intro text, after any captured and GUI handled errors, after clicking on the <code>help→licence</code> menu entry, after thread exceptions, and after a number of GUI message dialogs.  The bug is only present in [[relax 4.1.0]].
* Typo fix in the description of the 'atomic' argument for the [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd user function].
+
* Typo fix in the description of the <code>'atomic'</code> argument for the [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd user function].
* Fix for [https://sourceforge.net/p/nmr-relax/tickets/5/ bug #5], the incorrect numpy version check in the relaxation dispersion auto-analysis.  The dep_check.version_comparison() function is now used for the version comparisons.
+
* Fix for [https://sourceforge.net/p/nmr-relax/tickets/5/ bug #5], the incorrect numpy version check in the relaxation dispersion auto-analysis.  The [http://www.nmr-relax.com/api/4.1/dep_check-module.html#version_comparison dep_check.version_comparison() function] is now used for the version comparisons.
* Dispersion: Fix for [https://sourceforge.net/p/nmr-relax/tickets/7/ bug #7], the model list containing 'No Rex' twice.  The MODEL_LIST_FULL variable contained the model 'No Rex' twice.  The only manifestation of the bug is a RelaxError message showing the full list of models, when a user selects a non-existent dispersion model.
+
* Dispersion: Fix for [https://sourceforge.net/p/nmr-relax/tickets/7/ bug #7], the model list containing '[[No Rex]]' twice.  The [http://www.nmr-relax.com/api/4.1/lib.dispersion.variables-module.html#MODEL_LIST_FULL MODEL_LIST_FULL variable] contained the model '[[No Rex]]' twice.  The only manifestation of the bug is a RelaxError message showing the full list of models, when a user selects a non-existent dispersion model.
* Dispersion: Fix for [https://sourceforge.net/p/nmr-relax/tickets/6/ bug #6], the incorrect parameter counting for 3-site models with spin clustering.  The issue was that the list of spin-specific parameters was incomplete.  To resolve this, the parameter names have been shifted into the lib.dispersion.variables module lists PARAMS_R1, PARAMS_GLOBAL, and PARAMS_SPIN.  By removing the parameter names from other parts of relax, the lib.dispersion.variables module will serve as a single point of failure and hence it will much easier to maintain the relaxation dispersion code when new models with new parameters are added.
+
* Dispersion: Fix for [https://sourceforge.net/p/nmr-relax/tickets/6/ bug #6], the incorrect parameter counting for 3-site models with spin clustering.  The issue was that the list of spin-specific parameters was incomplete.  To resolve this, the parameter names have been shifted into the [http://www.nmr-relax.com/api/4.1/lib.dispersion.variables-module.html lib.dispersion.variables module] lists <code>PARAMS_R1</code>, <code>PARAMS_GLOBAL</code>, and <code>PARAMS_SPIN</code>.  By removing the parameter names from other parts of relax, the [http://www.nmr-relax.com/api/4.1/lib.dispersion.variables-module.html lib.dispersion.variables module] will serve as a single point of failure and hence it will much easier to maintain the relaxation dispersion code when new models with new parameters are added.
* Dispersion: Fix for [https://sourceforge.net/p/nmr-relax/tickets/8/ bug #8], the accidental modification of the hardcoded variables.  The MODEL_PARAMS lists in specific_analysis.relax_disp.variables were accidentally being modified by the Model_class class in the specific_analyses.relax_disp.model module.  The list for a given model was being set as the self.params list.  This list would then have the 'r1' parameter pre-pended to it if that parameter is optimised for a model, and hence the specific_analysis.relax_disp.variables list would be permanently modified.  Now copy.deepcopy() is being used for all variables to avoid this issue.  This bug was uncovered in the unit tests as the _specific_analyses._relax_disp.test_model tests were causing 'r1' to be added, and then the later _specific_analyses._relax_disp.test_parameters tests would fail as 'r1' should not be in those lists.  This bug is highly unlikely to be encountered by users of relax.  You would need to run two analyses, one after the other without closing relax, and the first analysis would need to have {{:r1}} optimised and the second not.
+
* Dispersion: Fix for [https://sourceforge.net/p/nmr-relax/tickets/8/ bug #8], the accidental modification of the hardcoded variables.  The <code>MODEL_PARAMS</code> lists in [http://www.nmr-relax.com/api/4.1/lib.dispersion.variables-module.html lib.dispersion.variables] were accidentally being modified by the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.model.Model_class-class.html Model_class class] in the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.model-module.html specific_analyses.relax_disp.model module].  The list for a given model was being set as the self.params list.  This list would then have the <code>'r1'</code> parameter pre-pended to it if that parameter is optimised for a model, and hence the [http://www.nmr-relax.com/api/4.1/lib.dispersion.variables-module.html lib.dispersion.variables] list would be permanently modified.  Now <code>copy.deepcopy()</code> is being used for all variables to avoid this issue.  This bug was uncovered in the unit tests as the [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_model-module.html _specific_analyses._relax_disp.test_model tests] were causing <code>'r1'</code> to be added, and then the later [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters-module.html _specific_analyses._relax_disp.test_parameters tests] would fail as <code>'r1'</code> should not be in those lists.  This bug is highly unlikely to be encountered by users of relax.  You would need to run two analyses, one after the other without closing relax, and the first analysis would need to have {{:r1}} optimised and the second not.
 
* Dispersion: Fix for [https://sourceforge.net/p/nmr-relax/tickets/9/ bug #9], the failure of the 3-site dispersion models when {{:pB}} and {{:pC}} are zero.  When both are zero, for example during a comprehensive grid search when model nesting is not utilised, a divide by zero error occurs.  This is now caught and large values (1e100) are set for the rates instead.
 
* Dispersion: Fix for [https://sourceforge.net/p/nmr-relax/tickets/9/ bug #9], the failure of the 3-site dispersion models when {{:pB}} and {{:pC}} are zero.  When both are zero, for example during a comprehensive grid search when model nesting is not utilised, a divide by zero error occurs.  This is now caught and large values (1e100) are set for the rates instead.
* Dispersion: Fix for [https://sourceforge.net/p/nmr-relax/tickets/11/ bug #11], the missing {{:pC}} calculation for the 3-site {{:R1rho}} models.  The models 'NS R1rho 3-site' and 'NS R1rho 3-site linear' were simply missing from the list of models for the {{:pC}} parameter.
+
* Dispersion: Fix for [https://sourceforge.net/p/nmr-relax/tickets/11/ bug #11], the missing {{:pC}} calculation for the 3-site {{:R1rho}} models.  The models '[[NS R1rho 3-site]]' and '[[NS R1rho 3-site linear]]' were simply missing from the list of models for the {{:pC}} parameter.
* Dispersion: Fix for [https://sourceforge.net/p/nmr-relax/tickets/10/ bug #10], the 3-site model failure of setting {{:pC}} for Monte Carlo simulations.  For this, the sim_init_values() function of the relaxation dispersion specific API in specific_analyses.relax_disp.api has been completely rewritten.  The specific_analyses.relax_disp.parameters.param_conversion() function is now called at the start to generate initial non-model parameters, and at the end to populate the simulation structures.  The rest of the function has been stripped down and significantly simplified.
+
* Dispersion: Fix for [https://sourceforge.net/p/nmr-relax/tickets/10/ bug #10], the 3-site model failure of setting {{:pC}} for Monte Carlo simulations.  For this, the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.api.Relax_disp-class.html#sim_init_values sim_init_values() function] of [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.api-module.html the relaxation dispersion specific API] has been completely rewritten.  The [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#param_conversion specific_analyses.relax_disp.parameters.param_conversion() function] is now called at the start to generate initial non-model parameters, and at the end to populate the simulation structures.  The rest of the function has been stripped down and significantly simplified.
 
<section end=bugfixes/>
 
<section end=bugfixes/>
  
Line 82: Line 84:
  
 
* [http://wiki.nmr-relax.com/Relax_4.1.1 Official release notes on the relax wiki].
 
* [http://wiki.nmr-relax.com/Relax_4.1.1 Official release notes on the relax wiki].
* [https://sourceforge.net/p/nmr-relax/mailman/message/36593472/ Mailing list message].
+
* [https://sourceforge.net/p/nmr-relax/mailman/message/36607157/ Mailing list message].
 
* [https://www.mail-archive.com/nmr-relax-announce@lists.sourceforge.net/msg00002.html The Mail Archive].
 
* [https://www.mail-archive.com/nmr-relax-announce@lists.sourceforge.net/msg00002.html The Mail Archive].
  

Latest revision as of 13:52, 26 April 2019


Official relax releases
relax logo
relax version 4.1.1
Previous version Next version
← relax 4.1.0 relax 4.1.2 →

Keywords Dispersion, GUI
Release type Major bugfix
Release date 8 March 2019

The PDF version of the relax 4.1.1 user manual The relax 4.1.1 user manual

Description

This is a major bugfix release. The release fixes multiple issues with the relax GUI and with the relaxation dispersion analyses. Please see the notes below for details.


Download

The new relax versions can be downloaded from http://www.nmr-relax.com/download.html. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual, http://www.nmr-relax.com/manual/relax_distribution_archives.html).


CHANGES file

Version 4.1.1
(8 March 2019, from master)
https://sourceforge.net/p/nmr-relax/code/ci/4.1.1/tree/


Features

  • N/A.


Changes


Bugfixes

  • Fix for bug #2, the failure of the structure.read_pdb user function in the GUI. The problem was that the file selection argument was being set up incorrectly as two GUI elements - an inactive file selection element and a normal value setting GUI element. Only the second value input GUI element was active (due to the GUI elements being stored in a dictionary, with the first key value being overwritten by the second).
  • Fix for bug #3, the absence of user function argument validation within the GUI. The code for the user function argument validation in the prompt/script UIs was simply copied and slightly modified to fit into the GUI user function window execution. All arguments are now passed into the new lib.arg_check.validate_arg() function and are checked based on their user function definitions.
  • Fix for bug #4, the relax controller in the GUI not displaying text when required. Calls to the captured IO stream flush() methods are now been made in a number of places to allow the controller to show the text when required. This includes after printing out the intro text, after any captured and GUI handled errors, after clicking on the help→licence menu entry, after thread exceptions, and after a number of GUI message dialogs. The bug is only present in relax 4.1.0.
  • Typo fix in the description of the 'atomic' argument for the structure.rmsd user function.
  • Fix for bug #5, the incorrect numpy version check in the relaxation dispersion auto-analysis. The dep_check.version_comparison() function is now used for the version comparisons.
  • Dispersion: Fix for bug #7, the model list containing 'No Rex' twice. The MODEL_LIST_FULL variable contained the model 'No Rex' twice. The only manifestation of the bug is a RelaxError message showing the full list of models, when a user selects a non-existent dispersion model.
  • Dispersion: Fix for bug #6, the incorrect parameter counting for 3-site models with spin clustering. The issue was that the list of spin-specific parameters was incomplete. To resolve this, the parameter names have been shifted into the lib.dispersion.variables module lists PARAMS_R1, PARAMS_GLOBAL, and PARAMS_SPIN. By removing the parameter names from other parts of relax, the lib.dispersion.variables module will serve as a single point of failure and hence it will much easier to maintain the relaxation dispersion code when new models with new parameters are added.
  • Dispersion: Fix for bug #8, the accidental modification of the hardcoded variables. The MODEL_PARAMS lists in lib.dispersion.variables were accidentally being modified by the Model_class class in the specific_analyses.relax_disp.model module. The list for a given model was being set as the self.params list. This list would then have the 'r1' parameter pre-pended to it if that parameter is optimised for a model, and hence the lib.dispersion.variables list would be permanently modified. Now copy.deepcopy() is being used for all variables to avoid this issue. This bug was uncovered in the unit tests as the _specific_analyses._relax_disp.test_model tests were causing 'r1' to be added, and then the later _specific_analyses._relax_disp.test_parameters tests would fail as 'r1' should not be in those lists. This bug is highly unlikely to be encountered by users of relax. You would need to run two analyses, one after the other without closing relax, and the first analysis would need to have R1 optimised and the second not.
  • Dispersion: Fix for bug #9, the failure of the 3-site dispersion models when pB and pC are zero. When both are zero, for example during a comprehensive grid search when model nesting is not utilised, a divide by zero error occurs. This is now caught and large values (1e100) are set for the rates instead.
  • Dispersion: Fix for bug #11, the missing pC calculation for the 3-site R models. The models 'NS R1rho 3-site' and 'NS R1rho 3-site linear' were simply missing from the list of models for the pC parameter.
  • Dispersion: Fix for bug #10, the 3-site model failure of setting pC for Monte Carlo simulations. For this, the sim_init_values() function of the relaxation dispersion specific API has been completely rewritten. The specific_analyses.relax_disp.parameters.param_conversion() function is now called at the start to generate initial non-model parameters, and at the end to populate the simulation structures. The rest of the function has been stripped down and significantly simplified.


Links

For reference, the announcement for this release can also be found at following links:

Softpedia also has information about the newest relax releases:


Announcements

If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.


See also