{{infobox relax release| version = Description 3.1.6| prev =3.1.5| next = 3.1.7| type = Major feature and bugfix| date = 28 February 2014| manual = yes}}
This is a major feature and bugfix release. A comprehensive tutorial has been added to the relaxation dispersion chapter of the manual which shows, step-by-step, the [http://www.nmr-relax.com/manual/relaxation_dispersion_auto_analysis_in_GUI.html dispersion analysis in the GUI] using screenshots. Other changes include improved PDB chain ID support, a new mode for running a relax script and then entering the prompt UI mode, multiple file reading by the [http://www.nmr-relax.com/manual/spectrum_read_intensities.html spectrum.read_intensities user function], and improvements to the relaxation dispersion analysis. A number of major bugs in the dispersion analysis concerning different relaxation delay times for different experiments and for improved handling of the offset have also been fixed. A number of important GUI bugs have also been fixed. All users are recommended to upgrade to this version of relax.
<section end=description/onlyinclude>
== Download ==
<section begin=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).
<section end=download/>
== CHANGES file ==
<section begin= CHANGES file =metadata/>Version 3.1.6<br/>(28 February 2014, from /trunk)<br/>
http://svn.gna.org/svn/relax/tags/3.1.6
<section end=metadata/>
=== Features ===
<section begin=features/>
* Full support for PDB chain IDs in the internal structural object.
* Improvements for the devel_scripts/python_seek.py for finding all installed Python versions and modules. Individual modules can now be specified on the command line.
* Improved colour coding of relax log messages in the relax manual.
* The relaxation dispersion auto-analysis now creates the chi2.out text file. This is for more easily comparing the chi-squared values between analyses.
<section end=features/>
=== Changes ===
<section begin== Changes ==changes/>
* Converted the chain ID list in the internal structural object to the CHAIN_ID_LIST module variable.
* The internal structure object method _pdb_chain_id_to_mol_index() now uses the CHAIN_ID_LIST string. This allows for the full PDB chain ID range to be supported.
* Epydoc docstring fix for the pipe_control.structure.main.load_spins() function.
* Created the Mf.test_bug_21615_incomplete_setup_failure GUI tests. This is designed to catch [https://gna.org/bugs/?21615 bug #21615] as reported by Ivan Leung (ivanhoe dott leung att chem dott ox dot ac dot uk). Included are the data files Ivan attached to the bug report truncated to two residues. The GUI test follows exactly the steps outlined by Ivan.
* Deleted the ancient, unused 'quit' argument of the relax interpreter object. This code was identified in a post by {{relax developer link|username=tlinnet|text=Troels Linnet }} at http://thread.gmane.org/gmane.science.nmr.relax.devel/5000/focus=5003. This argument never worked correctly and has not been used for many, many years. Many code paths in relax needed to be updated to remove the argument.
* Shifted the pedantic flag to escalate flag. The option -p would instead be used for the option --prompt. Fix for [https://gna.org/support/?3117 sr #3117 - Functionality to inspect interactively after running script - The equivalence to python -i].
* Added the -p --prompt option for running a relax script and inspect interactively. Fix for [https://gna.org/support/?3117 sr #3117 - Functionality to inspect interactively after running script - The equivalence to python -i].
* Added the unit test infrastructure for testing the specific_analyses.relax_disp package. This currently includes the package __all__ list unit test.
* Updated the specific_analyses.relax_disp package __all__ list. This was identified in the previously committed unit test.
* Added the infrastructure for the unit tests of the specific_analyses.relax_disp.disp_data module. This is in response to the post http://thread.gmane.org/gmane.science.nmr.relax.scm/19963/focus=5046 by {{relax developer link|username=tlinnet|text=Troels}}, and is described in my response at http://thread.gmane.org/gmane.science.nmr.relax.scm/19963/focus=5048.
* Created two new LaTeX commands for improving the layout of Python code in the relax manual. These are \pysep and \pyus which will be used to format the Python module separator character and the Python underscore character respectively. They are used in the \module{}, \pycode{}, etc. commands to add the '.\linebreak[0]' and '\_\linebreak[0]' text to allow for improved and consistent line breaking.
* Complete reformatting of the base LaTeX files. The paragraph structure has been changed so that each sentence now starts on a new line. This is for better tracking of changes (via 'svn diff' for example), for better searchability of certain text elements using command line tools such as 'grep', and for easier easier use of the 'sed' tool. The change tracking is most important as it allows for finer granularity - a small change will now only be shown as a change in one sentence rather than the whole paragraph, allowing the change to be identified more easily. It also allows for easier commit maintenance.
* Added the time point to be sent into the return function of cpmg frequencies. Regarding [https://gna.org/bugs/?21665 bug #21665 - Running a CPMG analysis with two fields at two delay times].
* Improved unit test for cathing both time and dispersion point when looping over experiment and time points. Regarding [https://gna.org/bugs/?21665 bug #21665 - Running a CPMG analysis with two fields at two delay times].
* Modified the [http://www.nmr-relax.com/manual/spectrum.read_intensities.html spectrum.read_intensities user function ] frontend to load multiple files. This follows from the thread http://thread.gmane.org/gmane.science.nmr.relax.devel/5057/focus=5062.* Implemented the GUI element for loading multiple files. This follows from the thread http://thread.gmane.org/gmane.science.nmr.relax.devel/5057/focus=5062. This is via the new user function argument type "file sel multi", now used by the [http://www.nmr-relax.com/manual/spectrum.read_intensities.html spectrum.read_intensities user function]. The file selection element consists of two parts. The GUI element embedded in the user function wizard page is similar to the "file sel" element, except that the preview button is not present. The file selection button behaviour is also different in that it launches the new multiple file selection window. The multiple file selection window is based on the 'sequence' data window, as used in the spectrum ID argument for the [http://www.nmr-relax.com/manual/spectrum.read_intensities.html spectrum.read_intensities user function]. However the ListCtrl element has been replaced by a custom scrolled panel. The 'Add' button adds a new file selection GUI element consisting of a TextCtrl for displaying and manual editing of the file name, the file selection button for launching the relax file selection dialog, and the preview button lost in the parent GUI element. The scrolled panel allows more elements in the panel than can fit in the window. The 'Delete all' and 'OK' buttons from the 'sequence' data window are also present and function as expected.
* Modification of the new multiple file selection GUI element. The multiple file selection window now shows the index (plus one) of each file selection element at the front of that element. This way the user can easily see how many file elements there are and can match file names to numbers. This will help in making sure that the file names and spectrum ID elements correspond to each other.
* Added a 'Delete' button to the new multiple file selection GUI window. This simply deletes the last item in the list. This will be useful if the user clicks on the 'Add' button too many times - instead of clicking 'Delete all' and having to re-select all files, now the last element can be removed.
* Renamed the test_loop_exp_time() dispersion unit test to test_loop_exp_frq_offset_point_time(). This is for the specific_analyses.relax_disp.disp_data.Test_disp_data.test_loop_exp_frq_offset_point_time() unit test. The name better reflects the function being tested.
* Created the test_loop_exp_frq() dispersion unit test. This checks the operation of the loop_exp_frq() function from the module specific_analyses.relax_disp.disp_data. It uses the data attached to the bug report at https://gna.org/bugs/?21665.
* Fixes for the unit tests of the [http://www.nmr-relax.com/manual/spectrum.read_intensities.html spectrum.read_intensities user function]. A number of checks were not correctly set up, and the recent changes caused others to now fail.* Modified the GUI window for inputting sequence data to include item numbers. An non-editable initial column with the number of each item has been added. This is to help the user when, for example, the items of one sequence element should match another (for example in the [http://www.nmr-relax.com/manual/spectrum.read_intensities.html spectrum.read_intensities user function ] where multiple file names should match multiple spectrum IDs).
* Added a 'Delete' button to the sequence input GUI window. This is to match the multiple file selection GUI window. The button allows the user to delete the last item from the list. So if 'Add' has been clicked too many times, the user does not have to start again from scratch by clicking on 'Delete all'.
* More modifications to the sequence input GUI window to match the multiple file selection element. The window now starts with a single element rather than nothing.
* Continued expanding the tutorial for performing a relaxation dispersion analysis in the GUI. This is for the dispersion chapter of the manual.
* Created the Peak_lists.test_read_peak_list_sparky_double system test. This is used to test the loading of multiple files simultaneously by the [http://www.nmr-relax.com/manual/spectrum.read_intensities.html spectrum.read_intensities user function].* Expanded the Peak_lists.test_read_peak_list_sparky_double system test to check all intensities. This now checks all of the peak heights read by the [http://www.nmr-relax.com/manual/spectrum.read_intensities.html spectrum.read_intensities user function].* Expanded the capabilities of the [http://www.nmr-relax.com/manual/spectrum.read_intensities.html spectrum.read_intensities user function]. Now multiple files can be loaded simultaneously.* Fix for the multiple file selection GUI element. The GUI element now returns single values rather than lists from the GetValue() function when only a single file is selected. This allows the [http://www.nmr-relax.com/manual/spectrum.read_intensities.html spectrum.read_intensities user function ] to operate normally again in the GUI.
* Minor fix for the Relax_disp.test_bug_21076_multi_col_peak_list system test. The spectrum ID argument ['auto'] has been changed to the single value of 'auto'. This argument should not be a list.
* Expansion of the tutorial for running the relaxation dispersion analysis in the GUI. The tutorial is now close to complete. The peak intensity loading wizard section is complete as well the model selection window and optimisation settings sections and the relax execution.
* Added save state for bug 21344. Regarding [https://gna.org/bugs/?21344 bug #21344 - Handling of in sparse acquired R<sub>1ρ</sub> dataset with missing combinations of time and spin-lock field strengths].
* Completed the tutorial for using the dispersion analysis in the GUI. This is for the relaxation dispersion chapter of the manual.
* Some edits for the tutorial on using the dispersion GUI analysis. The results of the [http://www.nmr-relax.com/manual/relax_disp.insignificance.html relax_disp.insignificance user function ] are now shown to demonstrate what this does.
* Fixes for some incorrectly reported results in the dispersion GUI tutorial in the manual. The non-clustered results had been incorrectly copied from the log messages.
* More incorrect value fixes for the dispersion GUI tutorial in the manual. The pA and kex values were also somehow incorrect.
* A concluding statement has been added to the dispersion GUI analysis tutorial in the manual.
* Added spacing in front of all lstlisting environments in the relaxation dispersion chapter of the manual.
* Spelling fix for the spectrometer frequency checks of the [http://www.nmr-relax.com/manual/spectrometer.frequency.html spectrometer.frequency user function].
* Spell checking of the entire relaxation dispersion chapter of the manual.
* Correction for some text in the dispersion chapter of the manual. The text 'are differentially defined' has been changed to 'are dually defined', as the word differentially was incorrect.
* Removed functional return of reference intensity in R<sub>1ρ</sub>, since this does not exists. Regarding [https://gna.org/bugs/?21344 bug #21344 - Handling of in sparse acquired R<sub>1ρ</sub> dataset with missing combinations of time and spin-lock field strengths].
* Removed function return_intensity(), as this is no longer in use. Regarding [https://gna.org/bugs/?21344 bug #21344 - Handling of in sparse acquired R<sub>1ρ</sub> dataset with missing combinations of time and spin-lock field strengths]. Reference: http://www.mail-archive.com/relax-devel@gna.org/msg05020.html.
<section end=changes/>
=== Bugfixes ===
<section begin== Bugfixes ==bugfixes/>
* Minor bugfix for the internal structural object add_model() method. The internal structural object was being called with self as an argument, which would default to the chain_id keyword argument. The result would be relax state files with multiple copies of the internal structural object embedded in the structural XML section.
* Fix for [https://gna.org/bugs/?21605 bug #21605, the failure of the Frame_order.test_generate_rotor2_distribution system test]. The bug is due to the fact that numpy.float16 is not defined on all systems. Older numpy versions do not have this. Therefore the float16 value is now imported from lib.check_types where it is aliased to float32 when not defined.
* Fix for [https://gna.org/bugs/?21665 bug #21665 - Running a CPMG analysis with two fields at two delay times].
* Fix for [https://gna.org/bugs/?21344 bug #21344 - Handling of in sparse acquired R<sub>1ρ</sub> dataset with missing combinations of time and spin-lock field strengths].
<section end=bugfixes/>
== Links ==
<section begin=links/>
For reference, the announcement for this release can also be found at following links:
* [http://wiki.nmr-relax.com/Relax_3.1.6 Official release notes on the relax wiki].
* [http://article.gmane.org/gmane.science.nmr.relax.announce/52 Gmane mailing list archive].
* [http://www.mail-archive.com/relax-announce%40gna.org/msg00046.html The Mail Archive].
* [https://mail.gna.org/public/relax-announce/2014-03/msg00000.html Local archives].
* [http://marc.info/?l=relax-announce&m=139380076732405&w=2 Mailing list ARChives (MARC)].
{{:Softpedia}}
<section end=links/>
== Announcements ==
{{:relax release announcements}}
== See also ==
* [http://www.nmr-relax.com/api/3.1/ The relax 3.1 API documentation]{{:relax release see also}}[[Category:Release_NotesRelaxation dispersion analysis]]