* Created the Ct.test_bug_20674_ct_analysis_failure system test for catching bug #20674. This was reported by Mengjun Xue <mengjun dott xue att mailbox dott tu-berlin dot de> at https://gna.org/bugs/?20674.
* Decreased the number of Monte Carlo simulations in the Ct.test_bug_20674_ct_analysis_failure system test.
* Created the Jw.bug_20674_jw_mapping system test. This is a modification of the Ct.test_bug_20674_ct_analysis_failure system test for catching bug #20674 ([https://gna.org/bugs/?20674)bug #20674]. The test script was duplicated and the small modifications made to convert it into the J(w) mapping analysis. This now reveals the same bug but for the J(w) mapping analysis.
* System test speed ups - decreased the number of Monte Carlo simulations in many tests. Running 500 simulation optimisations in a system test is a total waste of time!
* Converted the bug_20674_jw_mapping.py system test script to use the self._execute_uf() interface. This allows the script to be used in the GUI.
* Created the Mf.test_bug_20683_bdc_inf_values system test. This is for catching bug #20683 ([https://gna.org/bugs/?20683) bug #20683] reported by Mengjun Xue <mengjun dott xue att mailbox dott tu-berlin dot de>. The problem is due to infinite and NaN values in the Bruker Dynamics Centre file.
* Ported the changes of r19302 to the consistency testing and J(w) mapping analyses. This is the code for checking for infinite relaxation rates imported from Bruker Dynamics Centre files.
* Missing imports of the lib.float.isInf() function.
* The spectrum.peak_intensities is now more robust when reading in a generic formatted file. Firstly there is a check that the intensity column number has been supplied. And then there is a checks that all relevant data could be extracted from each row of the file. This replaces traceback errors with RelaxErrors explaining the problem if the user inputs bad data or forgets the intensity column argument.
* Changed the "Execute analysis" button text back to the original "Execute" text of the old relax GUI.
* Added the 'test.seq' file from bug report #20873 ([http://gna.org/bugs/?20873)bug report #20873]. This is from Troels E. Linnet ([http://gna.org/users/tlinnet)Troels E. Linnet]. The bug report and link to http://thread.gmane.org/gmane.science.nmr.relax.user/1452 explains the contents. The file will be used to construct a system test to catch the bug.* Created the Peak_lists.test_bug_20873_peak_lists system test to catch [https://gna.org/bugs/?20873 bug #20873]. This was reported by Troels E. Linnet ([http://gna.org/users/tlinnet) at https://gnaTroels E.org/bugs/?20873Linnet]. The test has been created by copying the user function calls from the original bug report and slightly modifying them to suite a 'relax_fit' analysis type.
* Fix for the Peak_lists.test_bug_20873_peak_lists system test. The spectrum IDs are now strings.
* Added checks of the peak intensities to the Peak_lists.test_bug_20873_peak_lists system test.
* Fixed some out of date script code for the relaxation curve-fitting chapter of the user manual.
* Added a section label to the relaxation curve-fitting chapter of the user manual.
* Adding a test data file in NMRPipe SeriesTab format. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - Support for NMRPipe seriesTab format *.ser]. A file in NMRPipe SeriesTab format is added to the test-suite for further development.* Test function for NMRPipe SeriesTab format implemented. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - Support for NMRPipe seriesTab format *.ser]. An assertEqual test is implemented for the reading of NMRPipe SeriesTab format. The standalone call is: relax -s Peak_lists.test_read_peak_list_NMRPipe_seriesTab.* Adding a NMRPipe function file in the folder lib\software\nmrpipe.py. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - Support for NMRPipe seriesTab format *.ser]. Initial file for: lib\software\nmrpipe.py. This file will hold the function calls handling NMRPipe SeriesTab format.* Fix for commit (http://article.gmane.org/gmane.science.nmr.relax.scm/18004). The spin naming was wrong. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - Support for NMRPipe seriesTab format *.ser]. 'spin_id' keywords should be supplied different. Ex: spin.name(name='NE1', spin_id=':62').* Autodetect format implemented for NMRPipe SeriesTab format implemented. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - Support for NMRPipe seriesTab format *.ser]. The file is determined a NMRPipe SeriesTab if the first two words of the first line is: REMARK SeriesTab.
* Update of the rotation matrix example in the intro chapter of the user manual. The function is now in lib.geometry.rotations.euler_to_R_zyz(). The example has also been converted to the lstlisting environment for better formatting.
* The relax prompt strings and help system are now keywords for the relax listings package definition. The prompt strings "relax>" and "relax|" are now recognised as keywords and are coloured blue. The help system has been added as a normal Python keyword for highlighting.
* Converted all relax prompt examples in the intro chapter of the manual to the lstlisting environment. This is simply for a more colourful representation.
* The prompt examples in the user function chapter of the manual now use the listing environment. This is via the fetch_docstrings.py script and results in much better formatting of these subsections.
* Added function destination for auto-detected NMRPipe SeriesTab format. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - Support for NMRPipe seriesTab format *.ser]. Auto-detected NMRPipe SeriesTab format make function calls to the file: lib\software\nmrpipe.py in function nmrpipe.read_list_intensity_seriestab().* Imported the missing lib.software.nmrpipe module into pipe_control.spectrum. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - Support for NMRPipe seriesTab format *.ser]. Expected modules for use in lib\software\nmrpipe.py is imported.
* Release checklist minfx and bmrblib version update to the newest versions.
* Spacing fix in an import statement (found using the 2to3 conversion program).
* Created a boolean input element for the auto-analyses of the GUI. This simply turns on and off.
* The boolean GUI auto-analysis input element now has a SetValue() method.
* Completed NMRPipe SeriesTab reader. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser]. Completed NMRPipe SeriesTab reader for assignment according to SPARKY format. Changes implemented according to: http://article.gmane.org/gmane.science.nmr.relax.devel/4120.* Extraction of NMRPipe SeriesTab changed. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser]. The Extraction of NMRPipe SeriesTab data is changed in pipe_control/spectrum.py in the read() function.* Added flag for single or multiple extraction of spectrum. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Flag change added to reading of NMRPipe SeriesTab. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].
* Some small edits to the intro chapter of the relax user manual.
* Many improvements to the indexing in the relax user manual.
* Removed the flag for single_spectrum. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Fixed wrong reference to Sparky format. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Modfied the intensity list to handle intensities for all spectra per spin. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Fixed the extraction of NMRPipe seriestab data in pipe_control.spectrum.read(). Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Fix for handling reading spin of type heteronuc='NE1' and proton='HE1'. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].
* Adding NMR seriesTab data file for a multiple column / multiple spectrum formatted file. This file is from https://gna.org/support/download.php?file_id=18618 attached to the support request https://gna.org/support/?3043 by Troels Linnet. This is if the command "seriesTab -in ../../peaks.dat -out seriesTab_multi.ser -list nmrfiles.list -sum -dx 1 -dy 1" where nmrfiles.list contains file reference to 10 .ft2 files.
* Fix for unit test of nmrpipe. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Replacing a pointer-reference structure to an empty creation of list of lists. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* The ID of spins in seriesTab_multi.ser was not formatted correctly to SPARKY format. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Added system test for reading of a multi column formatted NMRPipe seriesTab file. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser]. Generated the reference data in Excel, for the system test. The spectrum ID's are auto generated by supplying the keyword spectrum_id='auto'. The first few tests was matched against integers rather than floats. Adding '.0' to the end of each number. Spaces added after the commas in the self.assertAlmostEqual() calls. The 2to3 conversion program (for Python 2 to Python 3 conversion) highlights this issue.* Added check for number of supplied spectra ID's and the number of returned intensity columns. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Made it possible to autogenerate spectrum ID's, if spectrum_id='auto'. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Remove from datalist where empty list starts. These are created where spins are skipped for ID = '?-?'. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Moved checks for matching length of spectrum IDs and intensities columns. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Moved the adding function of adding the spectrum id (and ncproc) to the relax data store. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser]. Shifting it to later will prevent the cdp.spectrum_ids list to be populated after the user calls the user function incorrectly.* Added epydoc documentation in pipe_controlspectrum.read() when supplying keyword 'auto'. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Added GUI description for when supplying 'auto' to the spectrum_id. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Added a stub GUI describtion in the File formats, for NMRPipe seriesTab. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser].* Fix for two spaces are used after a period in documentation. Progress sr #3043: ([https://gna.org/support/?3043) sr #3043 - support for NMRPipe seriesTab format *.ser]. relax uses the double space for easier for the eyes to pick up the sentence structure.
* The relax user manual is now broken into parts. The higher level LaTeX part command is now used to group related chapters. This should make it easier for users to navigate this huge thing.
* Creation of the optimisation chapter of the relax user manual. The main text of this chapter originates as part of the model-free chapter. As this most of this text was not model-free specific, it has been spun out as its own chapter. Text has also been taken from the "Optimisation of relaxation data – values, gradients, and Hessians" chapter. The indexing for the optimisation topics has also been improved.
<section begin=bugfixes/>
* Fix for bug #20674 ([https://gna.org/bugs/?20674) bug #20674 - the failure of the consistency testing analysis]. This was reported by Mengjun Xue <mengjun dott xue att mailbox dott tu-berlin dot de>. The problem was that the first residue did not have a single proton 'H' in the PDB file, and therefore the dipolar relaxation interaction was not set up. The overfit_deselect() method of the consistency testing specific API was not checking for this. The method is now much more like that of the model-free specific analysis.
* Fix for the model-free analysis specific overfit_deselect() method. The tests for the presence of dipolar relaxation was not correct and was non-functional.
* Fix for the J(w) mapping analysis matching that for the consistency testing. The overfit_deselect() method is now identical to that of the consistency testing analysis.
* Fix for bug #20683 ([https://gna.org/bugs/?20683) bug #20683 - the infinite and NaN data in Bruker DC files]. This was reported by Mengjun Xue <mengjun dott xue att mailbox dott tu-berlin dot de>. The model-free specific overfit_deselect() method now checks for infinite relaxation data and deselects the spin if such data is encountered.
* Fix for the analysis specific API common method _data_init_spin(). The data types are now correctly checked - they are not strings but types.
* Fix for the relaxation curve-fitting _assemble_scaling_matrix() method. The intensity scaling was never activated before due to a lower vs. uppercase parameter name mismatch. This scaling is now correctly set up as the previous code assumed cdp.relax_times was a list whereas it has been a dictionary since the early 1.3 releases.
* Fix for the spectrum.error_analysis user function for replicated spectra and subsets. A second call to spectrum.error_analysis was removing the results from the first call. This is now avoided.
* Bug fix for the right click popup menu in the spectra list GUI element. This affects the NOE, R1, and R2 analyses. The actions of the menu items were all mixed up.
* Fix for the nasty bug #20756 ([https://gna.org/bugs/?20756)bug #20756]. The problem was that the global execution lock was not always released by a relax script when certain errors are raised during the script execution. This does not occur for all types of error though. Now the release of the lock has been shifted into the 'finally' statement to absolutely force lock release.
* Big bug fix for a memory leak in the relaxation curve-fitting C module. Proper reference counting is used for the temporary 'element' Python objects used in the conversion between Python and C objects. The use of the Py_CLEAR() macro removes the memory leak. However the number of references as seen by sys.gettotalrefcount() in a debugging Python version keeps rising and might be a problem in the future.
* Big bug fix for the value.copy user function - it is now functional again.
* Bug fix for the value.copy user function. The user function can now handle parameter errors, and the values are set in the correct data pipe.
* Bug fix for an incorrect print statement in the N_state_model.test_paramag_centre_fit system test. This is in the script, and was uncovered using WinPython by Troels E. Linnet ([http://gna.org/users/tlinnet) Troels E. Linnet] via the relax system tests at http://thread.gmane.org/gmane.science.nmr.relax.devel/3863. The Python bug was detailed at http://thread.gmane.org/gmane.science.nmr.relax.devel/3863/focus=3867.* Fix for the package checking as part of the unit tests. This was identified from the bug report #20820 ([https://gna.org/bugs/?20820) bug report #20820] submitted by Troels E. Linnet ([https://gna.org/users/tlinnet)Troels E. Linnet]. The problem was that on some systems, the full path is required for checking the presence of the directories which are the sub-packages of the main package being checked. The result was that checking for the package in the __all__ list was skipped. Note that this change does not fix the bug reported.
* Fixes for the Jw.test_calc system test - the spectral density value comparison is now significant.
* Bug fix for the pipe_control.spectrometer.get_frequencies() function. The units argument was incorrectly referenced.
* Fix for bug #20820 ([https://gna.org/bugs/?20820)bug #20820]. Solution found - 'software' was not mentioned in __init__.py, and failed at import.* Partial fix for bug #20873 ([https://gna.org/bugs/?20873)bug #20873]. The spectrum_id argument for the spectrum.read_intensities user function can now be both a string and a list of strings.* Fix for bug #20873 ([http://gna.org/bugs/?20873)bug #20873]. This was reported by Troels E. Linnet ([http://gna.org/users/tlinnet)Troels E. Linnet]. The ability to load multiple peak intensities from a single generic formatted file has been correctly implemented. This involves added checks to make sure that the user supplies reasonable arguments and to then loop over the intensity column argument.
* Python 3 fixes via the 2to3 program.
* Bug fix for the value.write user function for list or dictionary type data. This is for the case where the variable of one spin is set to None rather than a list or dictionary type.
* Bug fix for the Sequence GUI input element. This complete the removal of bug #20873 ([https://gna.org/bugs/?20873)bug #20873]. The problem was that the gui_to_str() function was not failing to convert the string into a string list, so the list was deemed as a single string. Now the first character of '[' or '(' for lists or tuples are now searched for instead of relying on the conversion to trigger an error.
* Fixes for the value.write user function for simple parameter values of None. This is a recently introduced bug which causes a complete failure of the user function is the parameter for any spin is None.
* Fix for bug #20888 ([https://gna.org/bugs/?20888)bug #20888, the autoscaling of Grace graphs]. This solution was mentioned in the post at http://thread.gmane.org/gmane.science.nmr.relax.devel/3920/focus=3930. Instead of using minimum and maximum values for the axes in the Grace graphs produced by the lib.software.grace module, which was the old solution for having the graphs scaled to reasonable values, instead the '@autoscale' command is appended to the end of all graphs. This is performed by the write_xy_data() function.
* Bug fix for the running of the test suite in the relax GUI. The fix of r19727 was extended to apply to the GUI as well. Too many arguments were being sent into TextTestRunner Python class on certain Python versions (3.1 and <= 2.6).
* Big bug fix - the relax execution lock now truly supports nesting. This fixes bug #20891 ([https://gna.org/bugs/?20891) bug #20891] reported by Troels Linnet ([https://gna.org/users/tlinnet)Troels Linnet]. Scripts can now be executed from the GUI. Note that this is a very dangerous fix.* Completed the fix for bug #20889 ([https://gna.org/bugs/?20889)bug #20889]. The problem was that the spectrum.read_intensities user function was incorrectly updating the cdp.spectrum_ids list when the spectrum_id argument is set to a list. The list of IDs was being set as a single element of cdp.spectrum_ids, causing problems with the GUI when updating the ComboBox choices and then subsequent setting of the spectrum IDs. This bug and fix is independent of the relax_disp branch, despite being uncovered there and being caught by the Relax_disp.test_bug_20889_multi_col_peak_list GUI test in that branch.
* Bug fix for the GUI element for the interatom.define user function. The special spin ID GUI elements can not be set to the get_spin_ids() function as then SetValue can no longer work for IDs not in the list.
* Fixes for the TestCase class names for a number of lib package modules. As the test class name was incorrect, previously the test suite was skipping these silently. This was dangerous.
* Fixes for the unit tests of the lib.selection module. The contains_*() methods now should be used. And the test_Selection_ful_spin_id() unit test has been completely deleted as this way of checking the selection object is no longer valid.
* Fix for bug #20910 ([https://gna.org/bugs/?20910) bug #20910 - the broken grace.write GUI interface]. The problem was that the Value GUI input element was not detecting list-type data returned by the wiz_combo_iter method.* Fix for bug #20915, [ (https://gna.org/bugs/?20915) bug #2091 - Failure of Grace opening in MS Windows ]. Troels E. Linnet provided this patch, and was discovered during work on a Windows 7 system: telinnet aaattt bio_dot_ku_dot_dk. This is a small fix for a wrong call to "raise RelaxMissingBinaryError(binary)", when issuing an external call to xmgrace. The "path_sep" would be equal = [\/], and the RE search would not find(True) the full path specified for the xmgrace file. This is now shifted to python: os.path.isfile http://docs.python.org/2/library/os.path.html. Another fix, is that as a standard the command "xmgrace" is provided. This will work fine through windows cmd, but the true name for program in windows is "xmgrace.exe", and so an additional search for +".exe" is also performed.
* Fix for the N_state_model.test_absolute_T system test for Mac OS X. The precision of the check needed to be decreased.
* Fix for bug #20918 ([https://gna.org/bugs/?20918)bug #20918, the hanging of the data pipe editor]. This was reported by Troels Linnet ([https://gna.org/users/tlinnet) Troels Linnet] and is an MS Windows only problem. The problem is in the wxMSW part of wxPython, and it may be fixed in newer wxPython versions. The issue is nevertheless now avoided by calling the GUI user function store objects with the arguments wx_wizard_sync=True and wx_wizard_modal=True. This appears to solve the problem.
* Decreased the precision of the check in the Frame_order.test_rigid_data_to_rigid_model system test. This is to allow the test to pass on a MS Windows 7 test machine.
* More MS Windows fixes, this time a nasty kludge, for the relax system tests. This is strangely needed for the relax_disp branch and not the trunk for a 64-bit MS Windows 7 test system. The reason why this WindowsError is triggered by the base tearDown() method in the relax_disp branch and not trunk is a total mystery. Actually why Windows refuses to complete the file close() operations of the results.write and state.save user functions before calling the tearDown() method is the greater mystery.
* Small comment fix in the sample_scripts/consistency_tests.py script.
* Fix for the scons fetch_docstrings target. The user functions need to be explicitly initialised in the fetch_docstrings script as this is not running through relax.
* Fix for bug #20921 ([https://gna.org/bugs/?20921)bug #20921, the GUI tests freezing in MS Windows]. The problem was that the dipolar interaction wizard in the model-free auto-analysis GUI element was calling its user functions asynchronously. This can lead to racing conditions. The commit r80084 (http://article.gmane.org/gmane.science.nmr.relax.scm/17840) somehow randomly triggers this racing on MS Windows systems only together with the Mf.test_mf_auto_analysis GUI test. Now all user functions are called synchronously.
* Fix for the relax GUI splash screen. On certain systems, the GUI was failing due to the splash screen. It is now shown after the main wxPython window has been created.
* Fix for the new analysis wizard when running the GUI tests. If the create_button() method is called without a function argument, the wizard is still created. This is triggered in the relax_disp branch on certain systems.