* Fix for raising error when calling showApod, and subprocess module not available.
* Fix for the dependency check for showApod in systemtests.
* Further extended the protocol for repeated dispersion analysis. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write an python a Python class for the repeated analysis of dispersion data].* Extended the system test for the protocol for repeated dispersion analysis. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write an python a Python class for the repeated analysis of dispersion data].
* Added a relaxation dispersion model profiling log file for relax version 3.3.0 vs. 3.2.3. This is the output from the dispersion model profiling master script. These numbers will be used for the relax 3.3.0 release notes (http://wiki.nmr-relax.com/Relax_3.3.0).
* Fixes for the relax 3.3.0 vs. 3.2.3 dispersion model profiling log file. The numeric model numbers were incorrectly scaled and a factor of 10 too high.
* Fixes for the scaling factors in the dispersion model super profiling script.
* Editing of the relax 3.3.0 features section of the CHANGES file. This will be used for the release notes.
* Added more test data for the repeated analysis. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Updated the Baldwin 2014 reference in the relax manual. The pybliographic software was used to format this BibTeX entry (http://pybliographer.org/). This was updated as volume and page number information is now available.
* Updated the Morin et al, 2014 paper (the relax relaxation dispersion paper) reference in the manual. The paper now has volume and page information.
* Added some more user function ranamings to the translation table. These were identified while preparing the release notes on the wiki (http://wiki.nmr-relax.com/Category:Release_Notes, http://wiki.nmr-relax.com/Release_notes).
* Stored a frequency dependent dictionary with spectrum IDs and repeated PMG frequencies in setup pipe. This information will progress out through children pipes. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Further extended methods in the class for repeated analysis of dispersion data. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Updated the release checklist document, including adding a section about cross-linking. The cross-linking is important for search engine indexing.
* Created a simple script for printing out the names of all user functions.
* Added a script and log file for comparing relax user function differences between versions.
* Created a document for relax users which follows the changes to the user function names.
* For the spin.display user function, added the print out of spin ID and status for selection. This is to help with showing the spin ID string for selection, and the current status of selection. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* To the back-end of display pipes, added functionality to sort the pipe names before printing. Also added the return of the list of pipes, with its associated information about pipe type, and pipe_bundle. This is to help with getting a better overview for multiple pipes in data store. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Parsed the force flag from front end of value.set to back end. Bug #22598 ([https://gna.org/bugs/index.php?22598)Bug #22598]. Back end of value.set does not respect force=False flag.* Broke optimisation function into smaller functions. This is to help selecting spins, do particular grid search and minimise. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Modified system test to follow the new functions in the auto analysis. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Shifted the user function listing script into the test suite directory where the results are.
* Created a script for printing out relax 1.3 user functions.
* Shifted the Release_Checklist document into docs/devel/ to hide it from users.
* Correction for the noe.read to spectrum.read_intensities user function change. This is for the translation table used to catch old user function calls.
* Initial try to implement plotting in the repeated auto analysis protocol. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Small improvement of the matplotlib plotting of data in the repeated analysis protocol. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Fix for calling correct folder with test intensities. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* For the class of repeated analysis, implemented method to collect peak intensity, and function to plot the correlation. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Added system test Relax_disp.test_repeat_cpmg to be skipped, if no matplotlib module exists. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Added the Gimp XCF file for the logo of the relax wiki (http://wiki.nmr-relax.com).
* Added system test Relax_fit.test_curve_fitting_height_estimate_error() for the manual and automated analysis of exponential fit. This is to prepare for new methods in the auto analysis protocol.
* Fix for the pipe_control.error_analysis.covariance_matrix() function. The set_errors() API method is parameter specific, so a loop over the parameters using the get_param_names() API method has been added.
* Removed the estimate_rx_err module from the specific_analyses.relax_fit.__all__ list. This module was deleted after merger into the api module.
* Improved the plotting of correlation plot for intensity. Now the intensity to error is plotted, which is the correct measure of this data. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Implemented a correlation plot for R2eff values to be plotted for different pipes. This has the R2eff/R2eff_err plotted, which is the best way to represent this data. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Further improved the plotting of data in repeated analysis. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Added the Relax_disp.test_show_apod_rmsd_dir_to_files system test to the blacklist. This is if the showApod program is not installed on the machine and allows the test suite to pass.
* Extended the printout for the skipped tests in the test suite. As tests using the NMRPipe showApod software are skipped and listed in this table, the text now includes 'software' in the list.
* Shifted the checks for the Dasha and Modelfree4 software into the system test __init__() method. This is to bring this into the same design as the relaxation dispersion tests which require the NMRPipe showApod software. Now the test suite will list either Dasha or Modelfree4 in the skipped test table if they are not installed.
* Adding another statistic method to plot for multi-data sets. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* More adding of matplotlib snippets for plotting intermediate data. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Changing the range of plotting for statistics. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* More changes to plotting for statistics. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Fix for axis limits when plotting stats. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Fix for globing, to prevent incidentally taking wrong intensity file. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Correction to figure limits. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Implemented writing out of statistics to file. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Adding writing out of PNG files from matplotlib, when looking at statistics. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Another math domain checking, if ref intensity is set to 0.0, then points are skipped, rather than raising an Error. This can happen for extremely bad dispersion data. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Trying implementing flexibility, when data expected data is missing. This can be due failing of processing data, where a whole run of data is randomly skipped. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Better check for math domain error in intensity proportionality. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Removal of initialised of dictionary, before data existence have been checked. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Small fix for correct check of missing of data. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Imported the Numdifftools 0.6.0 package into the relax source tree. This package is extremely useful for testing the implementation of gradients, Hessians, and Jacobians for all relax target functions. The numerical values from numdifftools can be compared to the directly calculated values. And for analysis types where the partial derivatives with respect to each model parameter are too complicated to calculated, or the derivatives are very complicated and hence slow, numdifftools can be used to provide a numerical estimate for direct use in the optimisation. The Numdifftools package is from https://pypi.python.org/pypi/Numdifftools and https://code.google.com/p/numdifftools/. The current version 0.6.0 has been placed into extern/numdifftools. This is only the numdifftools package within the official distribution files and the Python package setup.py file and associated files and directories have not been included. The package uses the New BSD licence (the revised licence with no advertising clause) which is compatible with the GPL v3 licence.
* Reordered functions in repeated analysis protocol. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Added more check of methods to the system test Relax_disp.test_repeat_cpmg(). This actually shows, that user function relax_disp.r20_from_min_r2eff maybe is broken. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Fix for the testing of method is finished when called. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Turned on minimisation in system test Relax_disp.test_repeat_cpmg(). Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* The lib.spectrum.nmrpipe module has been made independent of the relax source code. This was discussed at http://thread.gmane.org/gmane.science.nmr.relax.scm/23357/focus=7103. The change allows the software verification tests pass. The dep_check module cannot be used in the relax lib package. Only modules from within lib are allowed to be imported into modules of lib. The fix now allows the full test suite to pass and hence new relax releases are once again possible.
* Created a document which explains how missing copyrights can be found.
* Updated the find_missing_copyrights document. The matching is now more precise and skips all svnmerge operations.
* Added the 2014 copyright notice for Troels Linnet to many relax source files. These were identified as being edited by Troels using the command listed in the find_missing_copyrights document. The changes include adding "Copyright 2014 Troels E. Linnet" to many files not containing Troels' copyright notice, and extending the 2013 copyright to 2014.
* Implemented correlation plot of minimisation values. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Changed the missing package/module/software table in the test suite. This is to allow all names to fit and to update the column titles for software packages.
* Decreased the accuracy of a check in the Relax_disp.test_estimate_r2eff_err_auto system test. This is to allow the test to pass on my Windows 7 VM.
* Shifted the specific_analyses.relax_disp.variables module into lib.dispersion. This is both to minimise circular dependencies, as previously the specific_analyses.relax_disp modules import from target_functions.relax_disp and vice-versa, and to allow the relax library functions to have access to these variables. This follows from a similar change to the frame order analysis in the frame_order_cleanup branch.
* Dependency fix for the auto_analyses.relax_disp_repeat_cpmg module. This was causing relax to fail. SciPy is an optional dependence for relax, but this module caused relax to not start if scipy was not installed. This was detected by testing relax with PyPy.
* Implemented writing out of particular correlation plots to file. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Created a special internal structural object selection object. This will be used for massively speeding up the internal structural object. The use of the lib.selection module by the internal structural object is currently very slow as a huge number of calls to re.search() are required. The idea is to avoid this by using lib.selection once to populate this new selection object, and then reusing this object to loop over molecules and atoms.
* Added the selection() method to the internal structural object. This parses the atom ID string using the lib.selection module, loops over the molecules and atoms, performs matches using re.search() via lib.selection, and populates and returns the new Internal_selection object. This can be used to pre-process the atom ID string to save huge amounts of time.
* Created the structural object Internal_selection.mol_loop() method. This is to simply quickly loop over all molecule indices of the selection object.
* Converted all structural object methods to use the selection object rather that atom ID strings. This should have a significant impact on the speed of certain operations within relax. The most obvious effect will be a huge speed up of the interatom.define user function. There should be speed ups with a number of other user functions relating to structural information. All parts of relax have been updated for the change.
* Implemented the sampling sparseness instead of NI on the graph axis. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Massive speed up of the internal structural object add_model() method. This speeds up the structure.add_model user function, as well as many internal relax operations on the structural object. Instead of using the copy.deepcopy() function to duplicate an already existing structural model, now new molecule container objects are created and then the individual elements of the original molecule container data lists are copied one by one. This avoids copying a lot of internal Python junk and hence the copying operation is now orders of magnitude faster.
* Created the new --no-skip relax command line option. This is a debugging option specifically designed for relax developers. It allows all blacklisted tests to be executed, i.e. all blacklists are ignored. These tests would normally be skipped, however this option enables them.
* Fix for the test suite summary printout function for the new --no-skip option. The relax status object was clashing with a variable of the same name.
* Reactivated the Relax_disp.test_m61b_data_to_m61b system test, but blacklisted it. This will allow the test to be executed if the --no-skip command line option is used.
* Created the Bmrb.test_bug_22703_display_empty system and GUI test. This system test catches bug #22703 ([https://gna.org/bugs/?22703)bug #22703, the failure of the bmrb.display user function with an AttributeError when no data is present]. It is simultaneously a system and GUI test, as the GUI test class inherits directly from the system test class.
* Created the pipe_control.spectrometer.check_setup() function. This follows the design on the wiki page http://wiki.nmr-relax.com/Relax_source_design. This is for checking if spectrometer information has been set up.
* Created the RelaxNoFrqWarning warning class for warning that no spectrometer information is present.
* Changed the design of the Check object in lib.checks. The design of the checking function to call has been modified - it should now return either None if the check passes or an instantiated RelaxError object if not. This is then used to determine if the __call__() method should return True (when None is received). Otherwise if escalate is set to 1, the text from the RelaxError object is sent into a RelaxWarning and False is returned. And if escalate is set to 2, then the error object is simply raised.
* Updated the pipe_control.spectrometer.check_*_func() functions to use the new design.
* Implemented the writing out of parameter values between comparison of NI level. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Fixes for the lib.checks.Check object. The __call__() method keyword arguments **kargs needs to be processed inside the method to strip out the escalate argument.
* The default value of the escalate argument of the Check.__call__() method is now 2. This will cause the calls to the check_*() function/objects to default to raising RelaxErrors.
* Changed the behaviour of the lib.checks.Check object again. This time the registered function is stored rather than converted into a class instance method. That way the check_*() function-like objects do not need to accept the unused 'self' argument.
* The data pipe testing function has been converted to the strategy design pattern of the Check object. The function pipe_control.pipes.test() has also been renamed to check_pipe().
* Created the Bmrb.test_bug_22704_corrupted_state_file system test. This is to catch bug #22704 ([https://gna.org/bugs/?22704)bug #22704, the corrupted relax state files after setting the relax references via the bmrb.software, bmrb.display, or bmrb.write user functions].* Implemented getting the statistics for parameters and comparing to init NI. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Implemented writing and plotting of statistics for individual and clustered fitting, comparing to full NI. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Added checks to the Bmrb.test_bug_22704_corrupted_state_file system test. This is to see if the cdp.exp_info data structure has been correctly restored from the save file.
* Uncommented some checks in the Bmrb.test_bug_22704_corrupted_state_file system test.
* For relaxation dispersion, modified that the Grid search and linear constraints for parameter "k_AB" is between 0-100. The parameter is only used in the TSMFK01 model. The "k_AB" parameter is only for very slow forward exchange rate. The expected values should according to the reference paper: Tollinger, M., Skrynnikov, N. R., Mulder, F. A. A., Forman-Kay, J. D., and Kay, L. E. (2001). Slow dynamics in folded and unfolded states of an sh3 domain. J. Am. Chem. Soc., 123(46), 11341-11352. (10.1021/ja011300z) The paper concerns values of k_AB in the region 0.1 to 5.0. If the exchange rate is any higher value of this, then another model should be used for the analysis.
* Set the default insignificance value to 0.0 instead of 1.0. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Modified the grid search limits for parameter "k_AB" to be between 0.1 and 20.0 rad.s^-1. This is for the TSMFK01 model, where values much above 10/20 is not expected.
* Implemented counting of outliers for statistics. This is to get a better feeling why some statistics are very much different between NI. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Created the Structure.test_mean system test. This is to test the functionality of a planned new feature, the structure.mean user function. This is an analysis aid that will calculate the mean structure from all loaded models.
* Implemented the structure.mean user function frontend. The backend is currently just a stub function.
* Modified the lib.arg_check.is_str_or_inst() to handle cStringIO objects. This allows sys.stdout to be used as a file object in the relax test suite.
* Modified the lib.arg_check.is_str_or_inst() function to work with Python 3. Instead of checking for cStringIO.OutputType, which does not exist in Python 3, the argument is simply checked to see if it has a write() method.
* Print out of the number of all R2eff points, if they are different between analysis. This can become an issue if a single intensity point has slipped into noise, due to low quality of spectrum reconstruction. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Implemented statistics for R2eff values. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Added data checks and printouts to the structure.align user function. The data checks are to prevent the user from attempting an alignment with differently named molecules, as this will not work.
* Implemented writing out intensity and error correlations plot. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Implemented writing out of intensity statistics. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].
* Expanded the structure.com user function to accept the atom_id argument. This allows the centre of mass (CoM) calculation to be restricted to a certain subset of atoms. The backend already had support for this feature, but now it is exposed in the frontend. The user function docstring has been slightly modified as well.
* Skipping of intensity calculation, if the intensity pipe does not exists. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Added example CPMG data, which could possibly be sent for BMRB submission. The data is un-published CPMG data, related to the paper: Webb H, Tynan-Connolly BM, Lee GM, Farrell D, O'Meara F, Soendergaard CR, Teilum K, Hewage C, McIntosh LP, Nielsen JE (2011). Remeasuring HEWL pK(a) values by NMR spectroscopy: methods, analysis, accuracy, and implications for theoretical pK(a) calculations. Proteins: Struct., Funct., Bioinf. 79(3), 685-702, DOI 10.1002/prot.22886. Task #7858 ([https://gna.org/task/?7858)Task #7858: Make it possible to submit CPMG experiments for BMRB].* Added system test Relax_disp.test_bmrb_sub_cpmg() to try calling the bmrb functions in relax. Task #7858 ([https://gna.org/task/?7858)Task #7858: Make it possible to submit CPMG experiments for BMRB].* Implemented the initial part of the API, to collect data for BMRB submission. Task #7858 ([https://gna.org/task/?7858)Task #7858: Make it possible to submit CPMG experiments for BMRB].* Inserted a "RelaxImplementError" when trying to call bmrb_write from a relaxation dispersion analysis. To implement the function, it would require a re-write of the relax_data bmrb_write(star) function, and proper handling of cdp.ri_ids. It was also not readily possible to find examples of submitted CPMG data in the BMRB database. This makes it hard to develop, and even ensure that BMRB would accept the format. Task #7858 ([https://gna.org/task/?7858)Task #7858: Make it possible to submit CPMG experiments for BMRB].* Removed the system test Relax_disp.test_bmrb_sub_cpmg() to be tested in the test-suite. This test will not be implemented, as it requires a large re-write of data structures. Task #7858 ([https://gna.org/task/?7858)Task #7858: Make it possible to submit CPMG experiments for BMRB].* Removed the showing of Matplotlib figures in the test suite. Task #7826 ([https://gna.org/task/index.php?7826)Task #7826: Write a Python class for the repeated analysis of dispersion data].* Implemented system test Relax_disp.test_dx_map_clustered to cath the missing creation of a point file. Bug #22753 ([https://gna.org/bugs/index.php?22753)Bug #22753: dx.map does not work when only 1 point is used].* Inserted a check in system test Relax_disp.test_dx_map_clustered, that a call to minimise.calculate should be the same as the file stored with the clustered chi2 value. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Made initial preparation to loop over clustered spins and IDs for the minimise.calculate user function call. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Implemented looping over spin-clusters when issuing a minimise.calculate(). Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Made back_calc_r2eff() in optimisation module use the spin and ID list instead. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Fix for graph plotting functionality to send spins as list of one spins. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Fix for calling back_calc_r2eff with the new argument keywords, and use list of spin and spin IDs. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Fix for synthetic script calling back_calc_r2eff() with old arguments and to use list of spin containers and IDs. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Inserted last test in test_dx_map_clustered, to check out the written chi2 values are as expected. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Moved the looping over cluster spin IDs into its own function in the API. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Added the selection string for all the cluster IDs to be parsed back as well. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Made the value set function, set values to all spins, if it is a global parameter. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Moved the skipping of protons away from looping function. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Inserted some testing lines for making a dx_map, either global clustered or as a free spin. There is a big difference which dx map you get. It illustrates beautifully the effect of clustering things together. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].
* Added a BMRB NMR-STAR formatted deposition file for the OMP model-free data for reference. This is because there are no other NMR-STAR formatted files in the relax sources.
* In the dispersion API calculate(), used the API function model_loop() to loop over the clusters instead. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Removed then function loop_cluster_ids() from dispersion API(). This should be implemented elsewhere. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Updated the API set_param_values() function to use model_loop() to get the spin_ids from the cluster. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Initial try to fix unit test test_value_set_r1_rit(). The problem is that no spin ID can be generated since the spins are created manually. "AttributeError: 'MoleculeContainer' object has no attribute '_res_name_count' ". Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Removed the checking of MODEL_LIST_MMQ, and spin.isotope from optimisation.back_calc_r2eff(), since this check is already covered. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Fix for references to "spin" in optimisation.back_calc_r2eff(). Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Fix for looping performed twice in relax_disp API model_loop(). Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].* Removed unused proton reference in relax_disp API calculate(). There is though some problems with these tests (F 1.93 s for Relax_disp.test_korzhnev_2005_15n_dq_data, F 2.01 s for Relax_disp.test_korzhnev_2005_1h_mq_data, F 1.93 s for Relax_disp.test_korzhnev_2005_1h_sq_data). It is unsure where these comes from. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].
* Fix for epydoc in system test Relax_disp.test_dx_map_clustered.
* Updated all of the Relax_disp.test_korzhnev_2005_*_data system tests. These now have slightly changed parameter values due to the fix of bug #22563 ([https://gna.org/bugs/?22563)bug #22563, the NS MMQ 2-site dispersion model running at 32-bit precision and not 64-bit as it should be].* Epydoc change for DOI reference in system tests. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].
* Added some test PyMOL scripts to create OpenDX maps and chi2 surface plots. These will go to the wiki: http://wiki.nmr-relax.com/Chi2_surface_plot.
* Big improvement for running the relax unit tests via the relax command line options. The unit test module path is now accepted as a command line option. This brings more capabilities of Gary Thompson's test_suite/unit_tests/unit_test_runner.py script into the relax command line. The _pipe_control/test_value unit test module path can be specified as, for example, one of 'test_suite.unit_tests._pipe_control.test_value', 'test_suite/unit_tests/_pipe_control/test_value', '_pipe_control.test_value', '_pipe_control/test_value'. This allows individual modules of tests to be run, rather than having to execute all unit tests, which is very useful for debugging.
* Fixes for the structure.add_atom user function to allow for list of lists for the atomic position. This allows different coordinates to be supplied for each model.
* Added safety checks for NaN values to the lib.structure.pdb_write module. This is within the _record_validate() function. The check prevents the creation of invalid PDB files.
* Fix for the experimental information data pipe object when converting to XML state and results files. This is a partial fix for bug #22704 ([https://gna.org/bugs/?22704)bug #22704, the corrupted relax state files after setting the relax references via the bmrb.software, bmrb.display, or bmrb.write user functions]. The names and descriptions for the software, citation and script list objects were incorrectly set. These have been fixed so that the name of the data structure and the real description is present in the XML state or results file instead of <relax_list desc='relax list container'>.* Fix for the experimental information data pipe object when converting to XML state and results files. This is a partial fix for bug #22704 ([https://gna.org/bugs/?22704)bug #22704, the corrupted relax state files after setting the relax references via the bmrb.software, bmrb.display, or bmrb.write user functions]. The names and descriptions for the software, citation and script list objects were incorrectly set. These have been fixed so that the name of the data structure and the real description is present in the XML state or results file instead of <relax_list desc='relax list container'>.* Fix for the cdp.exp_info.software data structure setup. This is a partial fix for bug #22704 ([https://gna.org/bugs/?22704)bug #22704, the corrupted relax state files after setting the relax references via the bmrb.software, bmrb.display, or bmrb.write user functions]. The Element data container name was being replaced by the software name, making it impossible to restore from the XML.* Implemented the cdp.exp_info.from_xml() method to correctly restore the experimental info structure. This fixes bug #22704 ([https://gna.org/bugs/?22704)bug #22704, the corrupted relax state files after setting the relax references via the bmrb.software, bmrb.display, or bmrb.write user functions]. This custom ExpInfo.from_xml() method is required to properly recreate the software, script and citation list data structures of the cdp.exp_info data structure, as these are special RelaxListType objects populated by Element objects (both from data_store.data_classes).
* Bug fix for the structure.delete user function. When individual atoms are deleted, the bonded atom data structure is no correctly updated to remove the now non-existent atom.
* Another bug fix for the structure.delete user function when deleting individual atoms. The bonded atom data structure consisting of indices requires all indices after the deleted atom to be decremented by 1.
* Bug fix for the CONECT records created by the structure.write_pdb user function. The atom numbers inside the structural object were being used for the CONECT records rather than the atom numbers used within the PDB file.
* Fix for writing out point files, when only one point is used. The code was testing for > 1 points to be present, before writing out point files. Bug #22753 ([https://gna.org/bugs/index.php?22753)Bug #22753: dx.map does not work when only 1 point is used].* Fix for bug #22563 ([https://gna.org/bugs/?22563). This is bug #22563, the NS MMQ 2-site dispersion model running at 32-bit precision and not 64-bit as it should be]. The numpy.complex64 32-bit types have been replaced by numpy.complex128 in the lib.dispersion.ns_mmq_2site module.* Critical fix for k_AB not belonging to list of global parameters. k_AB was only changed to the spin of interest, but not for the rest of the cluster. When the parameter vector is assembled, "assemble_param_vector(spins=spins)" it takes the global parameter from spin 0. Bug #22754 ([https://gna.org/bugs/index.php?22754)Bug #22754: The minimise.calculate user function does not calculate chi2 χ<sup>2</sup> value for clustered residues].
* Improvements for PDB creation in the relax library for out of bounds structural coordinates. The lib.structure.pdb_write module atom() and hetatm() functions will now more gracefully handle atomic coordinates which are outside of the PDB limits of [-999.999, 9999.999]. When such coordinates are encountered, instead of producing a too long PDB line which does not pass the validation step, the functions will set the coordinates to the boundary value. This will at least allow a valid PDB file to be created, despite the warping of the coordinates.
* Expanded the list of global dispersion parameters in the set_param_values() API method. This is a quick expansion of Troels' fix for the k_AB parameter to allow for the release of relax 3.3.1. This is a small part of the discussion at http://thread.gmane.org/gmane.science.nmr.relax.scm/23948/focus=7188.