Open main menu

Changes

Relax 3.3.2

9,765 bytes added, 10:20, 14 November 2014
→‎Bugfixes: Added the CHANGES file bugfixes section text.
<section begin=bugfixes/>
* Fix for the latex2html tags in the model-free chapter of the relax manual. This bug may affect the compilation of both the PDF and HTML version (http://www.nmr-relax.com/manual/) of the manual.
* Formatting improvements for the user function chapter of the HTML manual. This is for http://www.nmr-relax.com/manual/Alphabetical_listing_user_functions.html. This will hopefully fix the horrible formatting whereby all text is wrapped in the HTML tags <SMALL CLASS="FOOTNOTESIZE"><SMALL CLASS="FOOTNOTESIZE"><SMALL CLASS="FOOTNOTESIZE"><SMALL CLASS="FOOTNOTESIZE"><SMALL CLASS="FOOTNOTESIZE"><SMALL CLASS="FOOTNOTESIZE"><SMALL CLASS="FOOTNOTESIZE"><SMALL CLASS="FOOTNOTESIZE"><SMALL CLASS="FOOTNOTESIZE"><SMALL CLASS="SCRIPTSIZE">text</SMALL></SMALL></SMALL></SMALL></SMALL></SMALL></SMALL></SMALL></SMALL></SMALL>.
* Big bug fix for the text size formatting of the HTML manual. The previous fix for the user function chapter of the HTML manual (http://www.nmr-relax.com/manual/Alphabetical_listing_user_functions.html) did not fix the problem. The issue was with the {exampleenv} defined using a \newenvironment command in the preamble. The command \footnotesize was bing used in the start, but nothing was changing the font size at the end. In LaTeX, the ending of the environment appears to reset the font size, whereas in latex2html it does not. Therefore all text after this environment is prepended by <SMALL CLASS="FOOTNOTESIZE"> in the HTML manual and this keeps adding to the text after each new exampleenv environment.
* Fix for the poorly written User_functions.test_structure_add_atom GUI test. This fixes one part of 2 of the bug #22772 (https://gna.org/bugs/?22772), the modelfree4 binary issue and the User_functions GUI tests with wxPython 2.9 failures of the test suite. The problem was that a list element was being set in the GUI test, but that element did not exist yet. Somehow this worked in wxPython 2.8. But the bad code failed on wxPython 2.9.
* Updated the Palmer.test_palmer_omp system test for the 64-bit Linux Modelfree 4.20 GCC binary file. This fixes the second part and last part of the bug #22772 (https://gna.org/bugs/?22772), the modelfree4 binary issue and the User_functions GUI tests with wxPython 2.9 failures of the test suite. The problem is that the 64-bit GNU/Linux GCC compiled binary of Modelfree 4.20 produces different results as previous versions. These are now caught by the system test and correctly checked.
* Removal the use of OrderedDict(). OrderedDict is first available in python 2.7, and is not essential functionality. The functionality is replaced with looping over a list of dictionary keys instead, which is picked up under analysis. Bug #22798 (https://gna.org/bugs/?22798): Failure of relax to start due to an OrderedDict ImportError on Python 2.6 and earlier.
* Fix for the find next bug in the relax controller window. This is bug #22815 (https://gna.org/bugs/?22815), the failure of find next using F3 (or Ctrl-G on Mac OS X) in the relax controller window if search text has already been set. The fix was simple, as the required flags are in the self.find_data class object (an instance of wx.FindReplaceData).
* Fix for find dialog in the relax controller window. This is for bug #22816 (https://gna.org/bugs/?22816), the find functionality of the relax controller window does not find text when using wxPython >= 2.9. The find wxPython events are now bound to the find dialog rather than the relax controller window LogCtrl element for displaying the relax messages. This works on all wxPython versions.
* Bug fix for the structure.align user function for when no data pipes are supplied.
* Bug fix for the N-state model grid search when only alignment tensor parameters are optimised. The algorithm for splitting up the grid search to optimise each tensor separately, hence massively collapsing the dimensionality of the problem, was being performed incorrectly. The grid_search() API method inc, lower, and upper arguments are lists of lists, but were only being treated as lists.
* Final fix for bug #22849 (https://gna.org/bugs/?22849). This is the failure of the N-state model analysis when optimising only alignment tensors using RDCs and/or PCSs. The alignment tensor is no longer initialised to zero values. This is to allow the skip_preset argument for the minimise.grid_search user function to be operational for the N-state model, a feature introduced with the zooming grid search. The solution was to check for the uninitialised tensor in the minimise_setup_fixed_tensors() method of the specific_analyses.n_state_model.optimisation module.
* Bug fix for the lib.arg_check.is_float_matrix() function. The check for a numpy.ndarray data structure type was incorrect so that lists of numpy arrays were failing in this function. Rank-2 arrays were not affected.
* Fix for the structure.com user function. This fixes bug #22860 (https://gna.org/bugs/?22860), the failure of the structure.com user function after calling structure.delete. The number of models in cdp.structure is now counted and if set to zero, RelaxNoPdbError will be raised.
* The structure.write_pdb user function can now handle empty molecules. This fixes bug #22861 (https://gna.org/bugs/?22861), the chain IDs in the structure.write_pdb user function PDB files are incorrect after calling structure.delete. To handle this consistently, the internal structural object ModelContainer.mol_loop() generator method has been created. This loops over the molecules, yielding those that are not empty. The MolContainer.is_empty() method has been fixed by not checking for the molecule name, as that remains after the structure.delete user function call while all other information has been removed. And finally the write_pdb() structural object method has been modified to use the mol_loop() method rather than performing the loop itself.
* Fix for the structure.delete user function for molecule metadata once no more data exists. This relates to bug #22861 (https://gna.org/bugs/?22861), the chain IDs in the structure.write_pdb user function PDB files are incorrect after calling structure.delete. The metadata, when it exists, is now deleted for the molecule once no more data is present.
* Fix for system test Relax_disp.test_bug_atul_srivastava. The call to the expected RelaxError needed to be performed differently for erlier python versions that 2.7.
* Fix for bug #22937 (https://gna.org/bugs/?22937). This is the failure of the Relax_disp.test_estimate_r2eff_err_auto system test on Python 2.5. The test_suite/shared_data/dispersion/Kjaergaard_et_al_2013/1_setup_r1rho_GUI.py simply required a newline character at the end of the file so that it can be executed in Python 2.5.
* Fix for bug #22938 (https://gna.org/bugs/?22938). This is the failure of the test suite in the relax GUI. The problem was that the status.skip_blacklisted_tests variable did not exist - it was only initialised if relax is started in test suite mode. Now the value is always set from within the status module and defaults to True.
* Python 3 fixes for the relax codebase. These changes were made using the command: 2to3 -j 4 -w -f buffer -f idioms -f set_literal -f ws_comma -x except -x import -x imports -x long -x numliterals -x xrange .
* Python 3 fixes throughout relax, as identified by the 2to3 script. The command used was: 2to3 -j 4 -w -f except -f import -f imports -f long -f numliterals -f xrange .
* Python 3 fixes - eliminated all usage of the dictionary iteritems() calls as this no longer exists.
* Python 3 fixes using 2to3 for the extern.numdifftools package (mainly spacing fixes). The command used was: 2to3 -j 4 -w -f buffer -f idioms -f set_literal -f ws_comma -x except -x import -x imports -x long -x numliterals -x xrange .
* Python 3 fixes using 2to3 for the extern.numdifftools package. The command used was: 2to3 -j 4 -w -f except -f import -f imports -f long -f numliterals -f xrange .
* Python 3 fixes for all print statements in the extern.numdifftools package. The print statements have been manually converted into print() functions.
* Python 3 fixes via 2to3 - elimination of all map and lambda usage in relax. The command used was: 2to3 -j 4 -w -f map .
* Python 3 fixes via 2to3 - replacement of all `x` with repr(x). The command used was: 2to3 -j 4 -w -f repr .
* Manual Python 3 fixes for the dict.key() function which returns a list or iterator in Python 2 or 3. This involves a number of changes. The biggest is the conversion of the "x in y.keys()" statements to "x in y". For code which requires a list of keys, the function calls "list(y.keys())" or preferably "sorted(y.keys())" are used throughout (sorted() ensures that the list will be of the same order on all operating systems and Python implementations). A number of "x in list(y.keys())" statements were simplified to "x in y", some list() calls changed to sorted(), and some unnecessary list() calls were removed.
* Python 3 fixes via 2to3 - elimination of all apply() calls. This only affects the GUI which cannot run in Python 3 yet as wxPython is not Python 3 compatible yet. The command used was: 2to3 -j 4 -w -f apply .
* Python 3 fixes via 2to3 - proper handling of the dict.items() and dict.values() functions. These are now all wrapped in list() function calls to ensure that the Python 3 iterators are converted to list objects before they are accessed. The command used was: 2to3 -j 4 -w -f dict .
* Python 3 fixes via 2to3 - the execfile() function does not exist in Python 3. The command used was: 2to3 -j 4 -w -f execfile .
* Python 3 fixes via 2to3 - the filter() function in Python 3 now returns an iterator. The command used was: 2to3 -j 4 -w -f filter .
<section end=bugfixes/>
Trusted, Bureaucrats
4,223

edits