Open main menu

Changes

Relax 4.0.1

No change in size, 17:57, 14 December 2015
Converted all of the tracker links to wiki format.
* Updated all of relax to protect against future changes occurring in the numpy Python package. From numpy version 1.9, the FutureWarning "__main__:1: FutureWarning: comparison to `None` will result in an elementwise object comparison in the future." is seen in a large percentage of all relax's user functions. This is caught and turned into a RelaxWarning with the same message. The issue is that the behaviour of the comparison operators '==' and '!=' will change with future numpy versions. These have been replaced with 'is' and 'is not' throughout the relax code base. Changes have also been made to the minfx and bmrblib packages to match.
* More future protection against numpy changes. The FutureWarning is "`rank` is deprecated; use the `ndim` attribute or function instead. To find the rank of a matrix see `numpy.linalg.matrix_rank`." Therefore the N-state model target function method paramag_info() has been updated to use the .ndim attribute and longer use numpy.rank() function.
* Created the Mf.test_bug_23933_relax_data_read_ids system test. This is designed to catch bug #23933 ([https://gna.org/bugs/?23933)bug #23933], the "NameError: global name 'ids' is not defined" problem when loading relaxation data. A truncated version of the PDB file and relaxation data, the full versions of which are attached to the bug report, consisting solely of residues 329, 330, and 331 have been added to the test suite shared data directories, and the system test written to catch the NameError.
* Updated the Mf.test_bug_23933_relax_data_read_ids system test to catch the RelaxMultiSpinIDError. This allows the system test to pass, as a RelaxMultiSpinIDError is expected.
* Updated the minfx and bmrblib versions in the release checklist document to 1.0.12 and 1.0.4. This is to remove the numpy FutureWarning messages about the '== None' and '=! None' comparisons to numpy data structures, which in the future will change in behaviour.
* Added a temporary state and a script for GUI setup to the data Paul Schanda.
* Added the Relax_disp.test_paul_schanda_nov_2015 GUI test. This will show that loading a state will create a problem. Traceback (most recent call last): TypeError: int() argument must be a string or a number, not 'NoneType'.
* Added a sample script for back-calculating relaxation data from a model-free results file. This is useful when the results file is not the final model, as these results file do not contain the back-calculated data. This is in response to Christina Möller's sr #3303 support request ([https://gna.org/support/?3303)sr #3303] support request.
* Using Gary's lib.float.isNaN() instead of math.isnan(), to have backwards compatibility with python 2.5.
* Fix for spelling mistake and documenting the new behavior of relax_disp.r2eff_read(), when reading r2eff points with the same frequency. If the spin-container already contain r2eff values with the 'frequency of the CPMG pulse' or 'spin-lock field strength', the frequency will be changed by a infinitesimal small value of + 0.001 Hz. This allow for duplicates or more of the same frequency.
* Adding 2 tutorial scripts.
* Fix for small spin ID error in tutorial script.
* Created a system test for catching [https://gna.org/bugs/?24131 bug #24131]. This is the BMRB export failure when the SpinContainer object has no s2 attribute, as reported by Martin Ballaschk at https://gna.org/bugs/?24131.
* Modified the Mf.test_bug_24131_bmrb_deposition system test to check for the RelaxError. The test results in a RelaxError, as the results file contains no selected spins.
* Added the Mf.test_bug_24131_missing_interaction system test to catch another problem. This is part of bug #24131 ([https://gna.org/bugs/?24131)bug #24131], the BMRB export failure with the SpinContainer object having no s2 value. However the previous fix of skipping deselected spins introduced a new problem of relax still searching for the interatomic interactions for that deselected spin.
<section end=changes/>
<section begin=bugfixes/>
* Replicated titles in the HTML version of the relax manual (http://www.nmr-relax.com/manual/index.html), and hence replicated HTML file names overwriting earlier sections, have been eliminated.
* Fix for bug #23933 ([https://gna.org/bugs/?23933)bug #23933]. This is the "NameError: global name 'ids' is not defined" problem when loading relaxation data. The bug was introduced back in November 2014, and is due to some incomplete error handling code. The problem is that the spin type that the relaxation data belongs to (@N vs. @H) has not been specified. Now the correct RelaxMultiSpinIDError is raised. The 'ids' variable did not exist - it was code that was planned to be added, but never was and was forgotten.
* Fix for the CSA constant equation in the model-free chapter of the manual. This was spotted by Christina Möller and reported on the relax-users mailing list at https://mail-archive.com/relax-users%40gna.org/msg01776.html .
* Bug fix for the storage of the XML structural object in the state and results files. Previously any objects added to cdp.structure (or any structure object) would not be saved by the structural object to_xml() method unless the function is explicitly modified to store that object. Now all objects present will be converted to XML.
* Fix for the relaxation dispersion analysis in the GUI, as caught by the Relax_disp.test_paul_schanda_nov_2015 GUI test. When loading from a script state file, the value of "None" can be present. This is now set to the standard values.
* Fix for running relax at a server with no graphical display and using matplotlib. The error was found with the Relax_disp.test_repeat_cpmg system test. And the error generated was: "QXcbConnection: Could not connect to display. Aborted (core dumped)". The backend of matplotlib has to be changed. This is for example described in: http://stackoverflow.com/questions/2766149/possible-to-use-pyplot-without-display http://stackoverflow.com/questions/8257385/automatic-detection-of-display-availability-with-matplotlib.
* Modified the behaviour of the bmrb.write user function backend for a model-free analysis (fix for bug #24131, [https://gna.org/bugs/?24131bug #24131]). This is in the bmrb_write() method of the model-free analysis API. Deselected spins are now skipped and a check has been added to be sure that spin data has been assembled.* Another fix for bug #24131 ([https://gna.org/bugs/?24131)bug #24131]. This is the BMRB export failure when the SpinContainer object has no s2 attribute. Now no data is stored in the BMRB file if a model-free model has not been set up for the spin. This allows the test suite to pass.* Bug fix to allow the Mf.test_bug_24131_missing_interaction system test to pass. This is part of bug #24131 ([https://gna.org/bugs/?24131)bug #24131], the BMRB export failure with the SpinContainer object having no s2 value. The problem was when assembling the diffusion tensor data. The spin_loop() function was being called, as the diffusion tensor is reported for all residues. Therefore the skip_desel=True has been added to match the model-free part.
<section end=bugfixes/>
Trusted, Bureaucrats
4,223

edits