| version = 4.0.2
| prev = 4.0.1
| next = 4.0.3
| keywords =
| type = Minor feature and bugfix
<section begin=description/>
This is a minor feature and bugfix release. The new user functions [http://www.nmr-relax.com/manual/system_cd.html system.cd] and [http://www.nmr-relax.com/manual/system_pwd.html system.pwd] have been added to allow the working directory to be changed and displayed. The [http://www.nmr-relax.com/manual/time.html time] and [http://www.nmr-relax.com/manual/sys_info.html sys_info] user functions have been renamed to [http://www.nmr-relax.com/manual/system_time.html system.time] and [http://www.nmr-relax.com/manual/system_sys_info.html system.sys_info]. The [http://www.nmr-relax.com/manual/structure_delete_ss.html structure.delete_ss user function] has been created to remove the helix and sheet information from the internal structural object. For bugs, the [[R2eff model|R2eff]] dispersion model can now handle missing peaks in subsets of spectra, and the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb] can now handle multiple structures and multiple models with the merge flag set.
<section end=description/>
<section begin=metadata/>
Version 4.0.2<br/>(13 May 2016, from /trunk)<br/>http://svn.gna.org/svn/relax/tags/4.0.2
<section end=metadata/>
<section begin=features/>
* Addition of the new user functions [http://www.nmr-relax.com/manual/system_cd.html system.cd] and [http://www.nmr-relax.com/manual/system_pwd.html system.pwd] to allow the working directory to be changed and displayed.
* Addition of the [http://www.nmr-relax.com/manual/structure_delete_ss.html structure.delete_ss user function] to remove the helix and sheet information from the internal structural object.
<section end=features/>
<section begin=changes/>
* Improved formatting for the <code>\yes</code> LaTeX command for the [http://www.nmr-relax.com/manual/ HTML manual]. This now inputs the raw HTML character for a tick.* The replicate title finding script now processes short titles as well. This shows that the Frame_order.html file will be conflicting and overwritten.* Avoidance of a replicated title in the frame order chapter of the manual.* Added some unicode characters for improved formatting of the <code>CHANGES</code> file.* A number of updates for the release checklist document. This should make it easier to replicate the full release process.* Update the release checklist document. The version number at http://wiki.nmr-relax.com/Template:Current_version_relax also needs to be updated for each release.* Added a check for the total argument for the [http://www.nmr-relax.com/manual/frame_order_distribute.html frame_order.distribute user function]. The maximum value is 9999, as the PDB format cannot accept more models.* Creation of the [http://www.nmr-relax.com/manual/structure_delete_ss.html structure.delete_ss user function]. This simply resets the helices and sheets data structures in the internal structural object to <code>[]</code>.* Updated the copyright notices for 2016.* Created a short [http://www.nmr-relax.com/api/4.0/info.Info_box-class.html Info_box] copyright string for displaying in the main GUI window. This shows the full range of copyright dates.* Added the <code>spin_num</code> boolean argument to the [http://www.nmr-relax.com/manual/structure_load_spins.html structure.load_spins user function]. Setting this flag to <code>False</code> will cause the spin number information to be ignored when creating the spin containers. This allows for better support of homologous structures but with different PDB atom numbering. The default flag value is <code>True</code>, preserving the old behaviour.* Added support for concatenating atomic positions in the [http://www.nmr-relax.com/manual/structure_load_spins.html structure.load_spins user function]. Together with the <code>spin_num</code> flag set to <code>False</code>, this allows for atomic positions to be read from multiple homologous structures with different PDB atomic numbering. The spin containers will be created from the first structure, in which the spin is defined, and the atomic position from subsequent structures will be appended to the list of current atomic positions.* Fix for the [http://www.nmr-relax.com/api/4.0/test_suite.system_tests.structure.Structure-class.html#test_read_pdb_internal3 Structure.test_read_pdb_internal3 system test]. With the new atomic position concatenation support, when called sequentially the [http://www.nmr-relax.com/manual/structure_load_spins.html structure.load_spins user function] should always use the same value for the ave_pos argument.* In the GUI the user functions [http://www.nmr-relax.com/manual/sys_info.html sys_info] and [http://www.nmr-relax.com/manual/time.html time] are now grouped into a <code>system</code> subclass. This is to prepare for other system related functions.* Added a new 16x16 icon for the oxygen folder-favorites icon.* Adding a new file at <code>lib.system</code>. This file will contain different functions related to Python <code>os</code> and <code>system</code> related functions. For example changing directory or printing working directory.* In <code>lib.__init__</code>, adding the filename for <code>system.py</code>.* Renaming the folder-favorites icon.* Deleting the old folder-favorites icon.* Adding a new graphics variable: <code>WIZARD_OXYGEN_PATH</code>, to use oxygen icons with size of 200px.* Adding the new user function [http://www.nmr-relax.com/manual/system_cd.html system.cd]. This is to change the current working directory.* Adding a new 200px of oxygen folder-favorites icon. This is to be used in the wizard image.* Adding a user function translation for: This is to catch the new naming of these functions.* Adding a new [http://www.nmr-relax.com/api/4.0/pipe_control.system-module.html#pwd lib.system.pwd() function], to print and return the current working directory.* Adding a new user function [http://www.nmr-relax.com/manual/system_pwd.html system.pwd] to print/display the current working directory.* Adding new 16x16 px and 200px of the oxygen icon folder-development. This icon is used for displaying the current working directory.* Adding a relax GUI menu for changing the current working directory.* Adding a menu item for changing the current working directory.* Adding a verbose <code>True</code>/<code>False</code> for the [http://www.nmr-relax.com/api/4.0/pipe_control.system-module.html#pwd lib.system.pwd() function].* Storing the current working directory as a GUI variable.* Adding a toolbar button for changing the current working directory.* Adding a verbose flag to [http://www.nmr-relax.com/api/4.0/pipe_control.system-module.html#pwd lib.system.pwd() function].* Changing to a filedialog for the user function [http://www.nmr-relax.com/manual/system_cd.html system.cd].* Adding an observer for current working directory.* Modifying the user function [http://www.nmr-relax.com/manual/system_cd.html system.cd] not to show the result to STDOUT.* Letting the [http://www.nmr-relax.com/api/4.0/pipe_control.system-module.html#cd lib.system.cd function] notify the observer, when changing directory.* Letting the current working directory be printed in the statusbar in the bottom.* Updating <code>self.system_cwd_path</code> when a directory change is observed.* For the four auto-analysis methods, the default results directory is now the current working directory instead of the launch directory.* Changing the keyboard shortcut for changing the working directory to <code>Ctrl+W</code>. Since <code>Ctrl+C</code> is often used for copying (from the terminal).* Fix for GUI prompt bug, where ANSI escape characters should not be printed when interpreter is inherited from wxPython.* Added a newline character after printing the script.* Optimising the width of the statusbar.* When the user function script is called, a notification of <code>pipe_alteration</code> is made. This will force the GUI to update, and make sure that it is up to date.* Updated the frame order auto-analysis for the [http://www.nmr-relax.com/manual/time.html time] → [http://www.nmr-relax.com/manual/system_time.html system.time] user function change.* Fix for the GUI status bar element widths. Fixed widths in pixels causes text truncation on many systems, depending on the width of the main relax window. Instead variable widths should be used to allow wxPython to more elegantly present the text while minimising truncation.* Created a system test for catching [https://gna.org/bugs/?24601 bug #24601, the failure of the optimisation of the R2eff dispersion model when peaks are missing from one spectrum], as reported by Petr Padrta. The test uses his data and script to trigger the bug.* Simplified the [http://www.nmr-relax.com/api/4.0/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_bug_24601_r2eff_missing_data Relax_disp.test_bug_24601_r2eff_missing_data system test]. This is to allow the test to catch [https://gna.org/bugs/?24601 bug #24601] to complete in a reasonable time (2 seconds on one system).* Fix for the independence of the relax library. As <code>lib.system</code> was using the status object, the library independence was broken. To work around this, the module has simply been shifted into the [http://www.nmr-relax.com/api/4.0/pipe_control-module.html pipe_control package].* Added some missing oxygen icons to allow the relax manual to compile. These are the 128x128 EPS versions of the <code>places/folder-development.png</code> and <code>places/folder-favorites.png</code> Oxygen icons recently introduced. For completeness the 32x32, 48x48, and 128x128 PNG versions of the icons have also been added. To help create these EPS icons in the future, the graphics/README file has been added with a description of the <code>*.eps.gz</code> file creation.* Some more details for the <code>*.eps.gz</code> icon creation process.* Mac OS X fixes for the [http://www.nmr-relax.com/api/4.0/test_suite.system_tests.structure.Structure-class.html#test_pca Structure.test_pca] and [http://www.nmr-relax.com/api/4.0/test_suite.system_tests.structure.Structure-class.html#test_pca_observers Structure.test_pca_observers] system tests. The eigenvectors on this OS are sometimes inverted. As the sign of the eigenvector is irrelevant, the vectors hardcoded into the system tests are now inverted as required.
<section end=changes/>
<section begin=bugfixes/>
* Fix for {{gna bug link|24218|text=bug #24218, the incorrect labelling of alignment tensors by the align_tensor.matrix_angles user function when a subset of tensors is specified}}. The logic for the labels was expanded from being only for all tensors to handling subsets.* Bug fix for the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function] {{gna bug link|24300|text=bug #24300, when the merge flag is True, and both multiple structures and multiple models are present, the structure.read_pdb user function would fail with a RelaxError}}. The problem was that the molecule index was simply not being updated correctly.* Fix for {{gna bug link|24601|text=bug #24601, the failure of the optimisation of the R2eff dispersion model when peaks are missing from one spectrum}}, as reported by Petr Padrta. To handle the missing data, the peak intensity keys are now checked for in the spin container peak_intensities data structure. This is both for the [[R2eff model|R2eff]] model optimisation as well as the data back-calculation. A warning is given when the key is missing. The [http://www.nmr-relax.com/api/4.0/specific_analyses.relax_disp.api.Relax_disp-class.html#base_data_loop relaxation dispersion base_data_loop() method] has been modified to now yield the spin ID string, as this is used in the warnings. In addition, the Grace plotting code in the relax library was also modified. When peak intensity keys are missing, some of the Grace plots will have no data. The code will now generate a plot for that data set, but detect the missing data and allow an empty plot to be created.
<section end=bugfixes/>
* [http://wiki.nmr-relax.com/Relax_4.0.2 Official release notes on the relax wiki].
* [https://{{gna link|url=gna.org/forum/forum.php?forum_id=2532 2533|text=Gna! news item]}}.
* [http://article.gmane.org/gmane.science.nmr.relax.announce/70 Gmane mailing list archive].
* [https://www.mail-archive.com/relax-announce@gna.org/msg00060.html Mail Archive]
* [https://mail.gna.org/public/relax-announce/2016-05/msg00000.html Local archives].
* [https://marc.info/?l=relax-announce&m=145021808817686146335793029456&w=2 Mailing list ARChives (MARC)].
{{:Softpedia}}