| prev = 3.2.2
| next = 3.3.0
| keywords = <code><nowiki>^[[?1034h</nowiki></code> escape code, GUI user functions, relaxation dispersion, [http://www.nmr-relax.com/manual/structure_com.html structure.com user function]
| type = Major bugfix
| date = 1 July 2014
<section begin=description/>
This is a major bugfix release and the first requiring numpy ≥ 1.6 to allow for faster calculations for certain analyses. There have been improvements to the GUI user functions, the <code><nowiki>^[[?1034h </nowiki></code> escape code is finally suppressed on Linux systems, and the [http://www.nmr-relax.com/manual/structure_com.html structure.com user function] has been added. Bugfixes include the proper handling of R<sub>2A</sub><sup>0</sup> and R<sub>2B</sub><sup>0</sup> parameters in the [[:Category:relaxation dispersion analysis|relaxation dispersion]] models, the [[IT99]] dispersion model t<sub>ex</sub> parameter was incorrectly handled, the [[LM63 3-site]] dispersion models had a fatal mistake in its equations, files with multiple extensions (for example *.pdb.gz) are now correctly handled, and closing the free file format window in Mac OS X systems caused the GUI to freeze. Full details can be found below.
For this release, the Mac OS X framework used to build the universal 3-way (ppc, i386, x86_64) binaries for the stand-alone relax application has been updated. The relax application now bundles Python 2.7.8, numpy 1.8.1, scipy 0.14.0, nose 1.3.3, wxPython 2.9.3.1 osx-cocoa (classic), matplotlib 1.3.1, epydoc 3.0.1, [[OpenMPI|mpi4py 1.3.1]] and py2app 0.8.1. This should result in better formatted relax state and results files and give access to more advanced packages for power users to take advantage of.
<section begin=features/>
* Improvements for a number of GUI elements used in the user function windows.
* The <code><nowiki>^[[?1034h </nowiki></code> escape code should now no longer be emitted by GNU readline on Linux systems.
* Created the very basic [http://www.nmr-relax.com/manual/structure_com.html structure.com user function] for calculating the centre of mass. This is to simply allow an easy interface to the pipe_control.structure.mass.pipe_centre_of_mass() function.
* Expansion of the REMARK section of the PDB file created for the internal structural object. This is visible when using the [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb user function], as well as the many other user functions which create PDB files. The relax version as well as the file creation date are now recorded in the PDB file. This extra information should be very useful. Empty lines in the REMARK section improve the formatting.
* Modified the Sequence GUI input element used for the user function list arguments. The first column is now of fixed with when titles are supplied. Previously when supplying titles, the width would be tiny and no text would be visible.
* Added titles for all 3D coordinate user function arguments. This is for the Sequence GUI input element, and affects the [http://www.nmr-relax.com/manual/frame_order_average_position.html frame_order.average_position], [http://www.nmr-relax.com/manual/n_state_model_CoM.html n_state_model.CoM] and [http://www.nmr-relax.com/manual/paramag_centre.html paramag.centre] user functions.
* The compilation of the C modules now respects the user defined environment. This is the patch from Justin (https://{{gna link|url=gna.org/users/jlec) |text=Justin}} attached to [https://gna.org/bugs/?22145 bug #22145]. It has been modified to include a comment and remove a double empty line.
* Bug fix for the compilation of the C modules now respects the user defined environment. The problem was that on Mac OS X (as well as other systems), that these environmental variables were not defined and hence the scons commands would all fail with a KeyError and traceback. Now the keys in the os.environ dictionary are being searched for before they are set.
* Fix for the wxPython link in the installation chapter of the manual. This was pointing to the scipy website for some reason.
* Split system test Relax_disp.test_bug_22146_unpacking_r2a_r2b_cluster up in different tests. A setup function which is: setup_bug_22146_unpacking_r2a_r2b_cluster(self, folder=None, model_analyse=None): And then the tests: test_bug_22146_unpacking_r2a_r2b_cluster_B14 test_bug_22146_unpacking_r2a_r2b_cluster_CR72 test_bug_22146_unpacking_r2a_r2b_cluster_NS_3D test_bug_22146_unpacking_r2a_r2b_cluster_NS_STAR. [https://gna.org/bugs/?22146 Bug #22146 Unpacking of R<sub>2A</sub><sup>0</sup> and R<sub>2B</sub><sup>0</sup> is performed wrong for clustered "full" dispersion models].
* Modified profiling script to get closer to the implementation in relax. An additional test function is setup to figure out how to reshape the numpy arrays in the target function. [https://gna.org/bugs/?22146 Bug #22146 Unpacking of R<sub>2A</sub><sup>0</sup> and R<sub>2B</sub><sup>0</sup> is performed wrong for clustered "full" dispersion models].
* Updated profiling text for [[CR72]] model. Now it is tested for 3 fields. This is related to: [https://{{gna.org/task/index.php?link|7807 |text=Task #7807: Speed-up of dispersion models for Clustered analysis]}}.
* Added searching for environment variable PYTHON_INCLUDE_DIR if Python.h is not found in standard Python library. This can be very handsome, if one has a Python virtual environment for multiple users. This relates to the wiki page: http://wiki.nmr-relax.com/Epd_canopy.
* The [http://www.nmr-relax.com/api/3.2/lib.compat-module.html#norm lib.compat.norm() replacement function] for numpy.linalg.norm() now handles no axis argument. This is to allow the function to be used in all cases where numpy.linalg.norm() is used, while providing compatibility with the axis argument and all numpy versions.
* Modified the Relax_disp.test_sprangers_data_to_mmq_cr72 system test to pass on certain systems. This test fails on 32-bit Linux (and probably other systems as well). To fix the test, the k<sub>ex</sub> values are all divided by 100 before checking them to 4 decimal places of accuracy.
* Improved how the relax installation path is determined in the status object. If the path cannot be found, the current working directory is then checked if it is where relax is installed. This is needed when importing modules outside of relax.
* Hack to permanently eliminate the <code><nowiki>^[[?1034h </nowiki></code> escape code being produced on Linux systems. This is produced by importing the readline module. The escape code will be sent to STDOUT every time relax is executed, so it will be present in all log files. The problem is the TERM environmental variable being set to 'xterm'. The hack simply sets TERM to an empty string.* More hacks for permanently eliminating the <code><nowiki>^[[?1034h </nowiki></code> escape code being produced on Linux systems. This is a nasty feature of the GNU readline library. It is now also turned off in the dep_check module, suppressing <code><nowiki>^[[?1034h </nowiki></code> in Python scripts which import only parts of relax.
* Numpy version 1.6 or higher is now required to be able to run relax. This follows from the series of messages: http://www.mail-archive.com/relax-devel@gna.org/msg06288.html, http://www.mail-archive.com/relax-devel@gna.org/msg06289.html, http://www.mail-archive.com/relax-devel@gna.org/msg06327.html, and http://www.mail-archive.com/relax-devel@gna.org/msg06335.html. If too many users complain, maybe this change can be reverted later. This minimal numpy version is needed for many of the speed ups going in the relaxation dispersion and frame order analyses. It is required for the numpy ufunc out arguments and for the numpy.eigsum() function. These will likely be used in other analyses in the future for improving the speed of relax, so it might affect users of other analyses later on.
* Updated the numpy minimal dependency in the installation chapter of the manual to version 1.6.
* The internal structural object add_molecule() and has_molecule() methods are now model specific. This allows for finer control of structural object.
* Created the new [http://www.nmr-relax.com/api/3.2/lib.structure.files-module.html lib.structure.files module]. This currently contains the single find_pdb_files() function which will be used to find all *.pdb, *.pdb.gz and *.pdb.bz2 versions of the PDB file in a given path.
* Fix for the breakage of the relax help system. This was reported at http://thread.gmane.org/gmane.science.nmr.relax.devel/6481. The problem was that the TERM environmental variable was turned off to avoid the GNU readline library on Linux systems emitting the <code><nowiki>^[[?1034h </nowiki></code> escape code. See the message at http://thread.gmane.org/gmane.science.nmr.relax.devel/6481/focus=6489 for more details. However the Python help system obviously requires this environmental variable. Now only if the TERM variable is set to 'xterm' will it be reset, and to 'linux' instead of the blank string "". This does not affect any relax releases.
<section end=changes/>
* [http://wiki.nmr-relax.com/Relax_3.2.3 Official release notes on the relax wiki].
* [https://{{gna link|url=gna.org/forum/forum.php?forum_id=2469 |text=Gna! news item]}}.
* [http://article.gmane.org/gmane.science.nmr.relax.announce/57 Gmane mailing list archive].
* [http://www.mail-archive.com/relax-announce%40gna.org/msg00049.html The Mail Archive].
* [httpshttp://www.nmr-relax.com/mail.gna.org/public/relax-announce/2014-07/msg00000.html Local archives].
* [http://marc.info/?l=relax-announce&m=140442704628884&w=2 Mailing list ARChives (MARC)].