* 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 [].
* 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 spin_num boolean argument to the [http://www.nmr-relax.com/manual/structure_load_spins.html structure.load_spins user function]. Setting this flag to False 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 True, 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 spin_num flag set to False, 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 "system" 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 lib/.system.py. This file will contain different functions related to python os and system related functions. For example changing directory or printing working directory.* In /lib/.__init__.py, adding the filename for system.py.
* Renaming the folder-favorites icon.
* Deleting the old folder-favorites icon.
* 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 True/False 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 self.system_cwd_path when a directory change is observed.
* 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 lib.system 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 places/folder-development.png and places/folder-favorites.png 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 *.eps.gz file creation.
* Some more details for the *.eps.gz 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/>
* Fix for [https://gna.org/bugs/?24218 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] [https://gna.org/bugs/?24300 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 [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. 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/>