Difference between revisions of "Relax 3.3.1"

From relax wiki
Jump to navigation Jump to search
(More API documentation links.)
m (Switch to the {{gna task link}} template to remove dead Gna! links.)
 
(22 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{lowercase title}}
 
{{lowercase title}}
  
= Description =
+
{{infobox relax release
 +
| version = 3.3.1
 +
| prev    = 3.3.0
 +
| next    = 3.3.2
 +
| type    = Minor feature and bugfix
 +
| date    = 9 October 2014
 +
| manual  = yes
 +
}}
 +
 
 +
== Description ==
  
 
<section begin=description/>
 
<section begin=description/>
Line 7: Line 16:
 
<section end=description/>
 
<section end=description/>
  
= Download =
+
== Download ==
  
 
<section begin=download/>
 
<section begin=download/>
Line 13: Line 22:
 
<section end=download/>
 
<section end=download/>
  
= CHANGES file =
+
== CHANGES file ==
  
 
<section begin=metadata/>
 
<section begin=metadata/>
Line 21: Line 30:
 
<section end=metadata/>
 
<section end=metadata/>
  
== Features ==
+
=== Features ===
  
 
<section begin=features/>
 
<section begin=features/>
Line 29: Line 38:
 
* The [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function can now delete individual models as well as select atoms in individual models].
 
* The [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function can now delete individual models as well as select atoms in individual models].
 
* Addition of the [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html error_analysis.covariance_matrix user function for determining parameter errors via the covariance matrix].  This is currently only implemented for the relaxation curve-fitting analysis.
 
* Addition of the [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html error_analysis.covariance_matrix user function for determining parameter errors via the covariance matrix].  This is currently only implemented for the relaxation curve-fitting analysis.
* Bundling of the Numdifftools 0.6.0 package with relax (https://code.google.com/p/numdifftools/) for numerically testing implementations of gradients, Hessians, and Jacobians.
+
* Bundling of the [https://code.google.com/p/numdifftools/ Numdifftools 0.6.0 package] with relax  for numerically testing implementations of gradients, Hessians, and Jacobians.
 
* Implementation of the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#collapse_ensemble internal structural object collapse_ensemble() method] to allow for all but one model to be deleted.
 
* Implementation of the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#collapse_ensemble internal structural object collapse_ensemble() method] to allow for all but one model to be deleted.
 
* Massive speed up of the internal structural object by [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#selection pre-processing the atom ID string into a special atom selection object].  This speeds up the [http://www.nmr-relax.com/manual/interatom_define.html interatom.define], [http://www.nmr-relax.com/manual/structure_delete.html structure.delete], [http://www.nmr-relax.com/manual/structure_rotate.html structure.rotate], [http://www.nmr-relax.com/manual/structure_translate.html structure.translate] and many other user functions which loop over structural data.
 
* Massive speed up of the internal structural object by [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#selection pre-processing the atom ID string into a special atom selection object].  This speeds up the [http://www.nmr-relax.com/manual/interatom_define.html interatom.define], [http://www.nmr-relax.com/manual/structure_delete.html structure.delete], [http://www.nmr-relax.com/manual/structure_rotate.html structure.rotate], [http://www.nmr-relax.com/manual/structure_translate.html structure.translate] and many other user functions which loop over structural data.
Line 39: Line 48:
 
<section end=features/>
 
<section end=features/>
  
== Changes ==
+
=== Changes ===
  
 
<section begin=changes/>
 
<section begin=changes/>
* Epydoc docstring fix for the dep_check.version_comparison() function.
+
* Epydoc docstring fix for the [http://www.nmr-relax.com/api/3.3/dep_check-module.html#version_comparison dep_check.version_comparison() function].
* Removed ZZ and HD exchange from the dispersion chapter of the relax manual.  These would probably require completely new analysis types added to relax to analyse such data.
+
* Removed ZZ and HD exchange from the [http://www.nmr-relax.com/manual/Relaxation_dispersion.html dispersion chapter of the relax manual].  These would probably require completely new analysis types added to relax to analyse such data.
* Updated the 'Announcement' section of the release checklist document.  This now includes details about initially composing the message using the relax wiki (http://wiki.nmr-relax.com), and then how that text and the CHANGES file are used for the email announcement (http://news.gmane.org/gmane.science.nmr.relax.announce) and the Gna! news item (https://gna.org/news/?group=relax).
+
* Updated the 'Announcement' section of the release checklist document.  This now includes details about initially composing the message using the [http://wiki.nmr-relax.com relax wiki], and then how that text and the CHANGES file are used for the [http://news.gmane.org/gmane.science.nmr.relax.announce email announcement] and the {{gna link|url=gna.org/news/?group=relax|text=Gna! news item}}.
 
* Small changes for the Gna! news item in the release checklist document.
 
* Small changes for the Gna! news item in the release checklist document.
 
* Modified the announcement section of the release checklist document.  Text about removing wiki markup has been added.
 
* Modified the announcement section of the release checklist document.  Text about removing wiki markup has been added.
 
* More expansion of the release checklist document.  Added text about creating internal and external links for the wiki release notes.
 
* More expansion of the release checklist document.  Added text about creating internal and external links for the wiki release notes.
* Modified systemtest Relax_disp.test_show_apod_extract that test output from showApod.  The output can be different according to NMRPipe version.  The 'Noise Std Dev' is though the same.
+
* Modified [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_show_apod_extract system test Relax_disp.test_show_apod_extract] that test output from showApod.  The output can be different according to NMRPipe version.  The 'Noise Std Dev' is though the same.
 
* Fix for comments to dependency check of showApod.
 
* Fix for comments to dependency check of showApod.
 
* Fix for raising error when calling showApod, and subprocess module not available.
 
* Fix for raising error when calling showApod, and subprocess module not available.
* Fix for the dependency check for showApod in systemtests.
+
* Fix for the dependency check for showApod in system tests.
* Further extended the [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_disp_repeat_cpmg.Relax_disp_rep-class.html protocol for repeated dispersion analysis].  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Further extended the [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_disp_repeat_cpmg.Relax_disp_rep-class.html protocol for repeated dispersion analysis].  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Extended the system test for the [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_disp_repeat_cpmg.Relax_disp_rep-class.html protocol for repeated dispersion analysis].  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Extended the system test for the [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_disp_repeat_cpmg.Relax_disp_rep-class.html protocol for repeated dispersion analysis].  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
 
* Added a relaxation dispersion model profiling log file for relax version [[relax 3.3.0|3.3.0]] vs. [[relax 3.2.3|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.
 
* Added a relaxation dispersion model profiling log file for relax version [[relax 3.3.0|3.3.0]] vs. [[relax 3.2.3|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.
 
* Fixes for the [[relax 3.3.0]] vs. [[relax 3.2.3|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 [[relax 3.3.0]] vs. [[relax 3.2.3|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.
 
* 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.
 
* 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Added more test data for the repeated analysis.  {{gna task link|7826|text=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 Baldwin 2014 reference in the relax manual.  The [http://pybliographer.org/ pybliographic software] was used to format this BibTeX entry.  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.
 
* 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).
+
* Added some more [http://www.nmr-relax.com/api/3.3/user_functions-module.html#uf_translation_table 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Stored a frequency dependent dictionary with spectrum IDs and repeated PMG frequencies in setup pipe.  This information will progress out through children pipes.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Further extended methods in the [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_disp_repeat_cpmg.Relax_disp_rep-class.html class for repeated analysis of dispersion data].  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Further extended methods in the [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_disp_repeat_cpmg.Relax_disp_rep-class.html class for repeated analysis of dispersion data].  {{gna task link|7826|text=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.
 
* 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.
 
* Created a simple script for printing out the names of all user functions.
Line 69: Line 78:
 
* Added a script and log file for comparing relax user function differences between versions.
 
* 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.
 
* Created a document for relax users which follows the changes to the user function names.
* For the [http://www.nmr-relax.com/manual/spin_display.html 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* For the [http://www.nmr-relax.com/manual/spin_display.html 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.  {{gna task link|7826|text=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.  [https://gna.org/task/?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.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
 
* Parsed the force flag from front end of [http://www.nmr-relax.com/manual/value_set.html value.set] to back end.  [https://gna.org/bugs/?22598 Bug #22598].  Back end of [http://www.nmr-relax.com/manual/value_set.html value.set] does not respect force=False flag.
 
* Parsed the force flag from front end of [http://www.nmr-relax.com/manual/value_set.html value.set] to back end.  [https://gna.org/bugs/?22598 Bug #22598].  Back end of [http://www.nmr-relax.com/manual/value_set.html 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Broke optimisation function into smaller functions.  This is to help selecting spins, do particular grid search and minimise.  {{gna task link|7826|text=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.  [https://gna.org/task/?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.  {{gna task link|7826|text=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.
 
* 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.
 
* Created a script for printing out relax 1.3 user functions.
Line 82: Line 91:
 
* Changed the behaviour of the script for showing user function difference between relax versions.  The relax versions are now reversed so the oldest version is at the bottom of the difference printout.
 
* Changed the behaviour of the script for showing user function difference between relax versions.  The relax versions are now reversed so the oldest version is at the bottom of the difference printout.
 
* Added the [[relax 1.0.1]] to [[relax 1.2.15]] user function printouts.  The diff.log file has also been updated with all of these versions.
 
* Added the [[relax 1.0.1]] to [[relax 1.2.15]] user function printouts.  The diff.log file has also been updated with all of these versions.
* Updated the user_function_changes.txt document.  This now lists all changes in the user function naming from relax version [[relax |1.0.1]] all the way to [[relax 3.3.0]].
+
* Updated the user_function_changes.txt document.  This now lists all changes in the user function naming from relax version [[relax 1.0.1|1.0.1]] all the way to [[relax 3.3.0]].
* Added all remaining user function ranamings since [[relax 2.0.0]] to the translation table.  These were taken directly from the docs/user_function_changes.txt document.
+
* Added all remaining user function ranamings since [[relax 2.0.0]] to the [http://www.nmr-relax.com/api/3.3/user_functions-module.html#uf_translation_table translation table].  These were taken directly from the docs/user_function_changes.txt document.
* Added all user function ranamings since [[relax 1.3.1]] to the translation table.  These were taken directly from the docs/user_function_changes.txt document.  Earlier relax versions are far too different, so this will be the earliest relax version for this translation table.  The relax 1.2 and earlier (and [[relax 1.3.0|1.3.0]]) versions used the run argument throughout and the scripting was so different, that telling the user how to upgrade to new user functions is pointless.  And the release date of [[relax 1.2.15]], the last of these old designs was in November 2008.
+
* Added all user function ranamings since [[relax 1.3.1]] to the [http://www.nmr-relax.com/api/3.3/user_functions-module.html#uf_translation_table translation table].  These were taken directly from the docs/user_function_changes.txt document.  Earlier relax versions are far too different, so this will be the earliest relax version for this [http://www.nmr-relax.com/api/3.3/user_functions-module.html#uf_translation_table translation table].  The relax 1.2 and earlier (and [[relax 1.3.0|1.3.0]]) versions used the run argument throughout and the scripting was so different, that telling the user how to upgrade to new user functions is pointless.  And the release date of [[relax 1.2.15]], the last of these old designs was in November 2008.
 
* Changed the order of the two relax versions being compared for user function changes.  This is in the diff.py script and log file and the user_function_changes.txt document.
 
* Changed the order of the two relax versions being compared for user function changes.  This is in the diff.py script and log file and the user_function_changes.txt document.
 
* Changed the organisation of the files in the docs/ directory.  A new docs/devel directory has been created and the 2to3_checklist, Mac_framework_build_3way, package_layout, and prompt_screenshot.txt documents shifted into it.  This is to hide or abstract away the development documents so that relax users do not see them when looking into docs/.  This should make the directory less intimidating.
 
* Changed the organisation of the files in the docs/ directory.  A new docs/devel directory has been created and the 2to3_checklist, Mac_framework_build_3way, package_layout, and prompt_screenshot.txt documents shifted into it.  This is to hide or abstract away the development documents so that relax users do not see them when looking into docs/.  This should make the directory less intimidating.
 
* Shifted the Release_Checklist document into docs/devel/ to hide it from users.
 
* Shifted the Release_Checklist document into docs/devel/ to hide it from users.
* Correction for the [http://www.nmr-relax.com/manual/noe_read.html noe.read] to [http://www.nmr-relax.com/manual/spectrum_read_intensities.html spectrum.read_intensities user function] change.  This is for the translation table used to catch old user function calls.
+
* Correction for the [http://www.nmr-relax.com/manual/noe_read.html noe.read] to [http://www.nmr-relax.com/manual/spectrum_read_intensities.html spectrum.read_intensities user function] change.  This is for the [http://www.nmr-relax.com/api/3.3/user_functions-module.html#uf_translation_table translation table used to catch old user function calls].
* Initial try to implement plotting in the repeated auto analysis protocol.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Initial try to implement plotting in the repeated auto analysis protocol.  {{gna task link|7826|text=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.  [https://gna.org/task/?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.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Fix for calling correct folder with test intensities.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Fix for calling correct folder with test intensities.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* For the [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_disp_repeat_cpmg.Relax_disp_rep-class.html class of repeated analysis], implemented method to collect peak intensity, and function to plot the correlation.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* For the [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_disp_repeat_cpmg.Relax_disp_rep-class.html class of repeated analysis], implemented method to collect peak intensity, and function to plot the correlation.  {{gna task link|7826|text=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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Added [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_repeat_cpmg system test Relax_disp.test_repeat_cpmg] to be skipped, if no matplotlib module exists.  {{gna task link|7826|text=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 the Gimp XCF file for the logo of the [http://wiki.nmr-relax.com relax wiki].
* 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.
+
* Added [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_fit.Relax_fit-class.html#test_curve_fitting_height_estimate_error 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.
* In the auto analysis of exponential fitting, changed the minimisation method from simplex to Newton, to speed-up the fitting.  This is for master Monte Carlo simulations.
+
* In the [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_fit.Relax_fit-class.html auto analysis of exponential fitting], changed the minimisation method from simplex to Newton, to speed-up the fitting.  This is for master Monte Carlo simulations.
* In the system test Relax_fit.test_curve_fitting_height_estimate_error(), moved the auto-detection of replicated spectra into the manual method.  This is to prepare for auto-mated detection of replicates.
+
* In the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_fit.Relax_fit-class.html#test_curve_fitting_height_estimate_error system test Relax_fit.test_curve_fitting_height_estimate_error()], moved the auto-detection of replicated spectra into the manual method.  This is to prepare for auto-mated detection of replicates.
 
* Implemented a method to automatically find duplicates of spectrum in exponential fit.  This is to ease the user intervention for error analysis, if this has been forgotten.
 
* Implemented a method to automatically find duplicates of spectrum in exponential fit.  This is to ease the user intervention for error analysis, if this has been forgotten.
 
* Implemented the writing out of a "grace2images.py" script file, when performing auto analysis of exponential fits.
 
* Implemented the writing out of a "grace2images.py" script file, when performing auto analysis of exponential fits.
* Created the Structure.test_delete_model system test.  This is in preparation for extending the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function] to be able to delete individual structural models.  The test will only pass once this functionality is in place.
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_delete_model Structure.test_delete_model system test].  This is in preparation for extending the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function] to be able to delete individual structural models.  The test will only pass once this functionality is in place.
 
* Expanded the wiki instructions in the release checklist document.  This includes a number of steps for significantly improving the release notes:  External links to the Gna! trackers with full descriptions, external links to the HTML user manual for all user functions, internal links to release notes of other relax versions, internal links to wiki pages for all models from all theories, and HTML formatting of all symbols/parameters/etc.
 
* Expanded the wiki instructions in the release checklist document.  This includes a number of steps for significantly improving the release notes:  External links to the Gna! trackers with full descriptions, external links to the HTML user manual for all user functions, internal links to release notes of other relax versions, internal links to wiki pages for all models from all theories, and HTML formatting of all symbols/parameters/etc.
 
* Introduction of the model argument to the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function].  This argument is passed all the way into the internal structural object, but is not used yet.
 
* Introduction of the model argument to the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function].  This argument is passed all the way into the internal structural object, but is not used yet.
* The model argument in the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function] is now operational.  In the internal object, it has two functions.  When the atom_id argument is none, then new ModelList.delete_model() function is being called to remove the entire model from the list of structural models.  When the atom_id argument is supplied, then only the corresponding atoms in the given model will be deleted.
+
* The model argument in the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function] is now operational.  In the internal object, it has two functions.  When the atom_id argument is none, then new [http://www.nmr-relax.com/api/3.3/lib.structure.internal.models.ModelList-class.html#delete_model ModelList.delete_model() function] is being called to remove the entire model from the list of structural models.  When the atom_id argument is supplied, then only the corresponding atoms in the given model will be deleted.
* Expanded the checking in the Structure.test_delete_model system test.  Now a number of structural model loading and deletion scenarios are tested.
+
* Expanded the checking in the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_delete_model Structure.test_delete_model system test].  Now a number of structural model loading and deletion scenarios are tested.
 
* Implemented back-end function to estimate R<sub>x</sub> and I<sub>0</sub> errors from Jacobian matrix.  This is to prepare for user function in relax_fit, to estimate errors.
 
* Implemented back-end function to estimate R<sub>x</sub> and I<sub>0</sub> errors from Jacobian matrix.  This is to prepare for user function in relax_fit, to estimate errors.
 
* Implemented [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html user function relax_fit.rx_err_estimate] in relax_fit to estimate R<sub>x</sub> and I<sub>0</sub> errors from the Jacobian Co-variance matrix.
 
* Implemented [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html user function relax_fit.rx_err_estimate] in relax_fit to estimate R<sub>x</sub> and I<sub>0</sub> errors from the Jacobian Co-variance matrix.
* Extended system test Relax_fit.test_curve_fitting_height_estimate_error() to test the error estimation method from the Co-variance matrix.  The results seems very similar, if increasing to 2000 Monte Carlo simulations.
+
* Extended [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_fit.Relax_fit-class.html#test_curve_fitting_height_estimate_error system test Relax_fit.test_curve_fitting_height_estimate_error()] to test the error estimation method from the Co-variance matrix.  The results seems very similar, if increasing to 2000 Monte Carlo simulations.
 
* Renamed the [http://www.nmr-relax.com/api/3.2/pipe_control.monte_carlo-module.html pipe_control.monte_carlo module] to [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html pipe_control.error_analysis].  This is in preparation for the module to handle all error analysis techniques:  Monte Carlo simulations, covariance matrix, Jackknife simulations, Bootstrapping (which is currently via the Monte Carlo functions), etc.  All current functions are now prepended with 'monte_carlo_*()'.
 
* Renamed the [http://www.nmr-relax.com/api/3.2/pipe_control.monte_carlo-module.html pipe_control.monte_carlo module] to [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html pipe_control.error_analysis].  This is in preparation for the module to handle all error analysis techniques:  Monte Carlo simulations, covariance matrix, Jackknife simulations, Bootstrapping (which is currently via the Monte Carlo functions), etc.  All current functions are now prepended with 'monte_carlo_*()'.
 
* Fix for the old relax 1.2 model-free results file reading.  This is due to the [http://www.nmr-relax.com/api/3.2/pipe_control.monte_carlo-module.html pipe_control.monte_carlo] to [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html pipe_control.error_analysis] module renaming.
 
* Fix for the old relax 1.2 model-free results file reading.  This is due to the [http://www.nmr-relax.com/api/3.2/pipe_control.monte_carlo-module.html pipe_control.monte_carlo] to [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html pipe_control.error_analysis] module renaming.
* Implemented the [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html#covariance_matrix pipe_control.error_analysis.covariance_matrix() function].  This follows from http://thread.gmane.org/gmane.science.nmr.relax.scm/23526/focus=7096.  It will be used by a new [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html error_analysis.covariance_matrix user function].  And it calls the specific API methods model_loop(), covariance_matrix(), and set_error() and the relax library [http://www.nmr-relax.com/api/3.3/lib.statistics-module.html#multifit_covar lib.statistics.multifit_covar() function] do to most of the work.
+
* Implemented the [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html#covariance_matrix pipe_control.error_analysis.covariance_matrix() function].  This follows from http://thread.gmane.org/gmane.science.nmr.relax.scm/23526/focus=7096.  It will be used by a new [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html error_analysis.covariance_matrix user function].  And it calls the specific API methods [http://www.nmr-relax.com/api/3.3/specific_analyses.api_base.API_base-class.html#model_loop model_loop()], [http://www.nmr-relax.com/api/3.3/specific_analyses.api_base.API_base-class.html#covariance_matrix covariance_matrix()], and [http://www.nmr-relax.com/api/3.3/specific_analyses.api_base.API_base-class.html#set_error set_error()] and the relax library [http://www.nmr-relax.com/api/3.3/lib.statistics-module.html#multifit_covar lib.statistics.multifit_covar() function] do to most of the work.
* Modified the Relax_fit.test_curve_fitting_height_estimate_error system test.  The call to relax_fit.rx_err_estimate has been replaced by the yet-to-be implemented [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html error_analysis.covariance_matrix user function].
+
* Modified the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_fit.Relax_fit-class.html#test_curve_fitting_height_estimate_error Relax_fit.test_curve_fitting_height_estimate_error system test].  The call to relax_fit.rx_err_estimate has been replaced by the yet-to-be implemented [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html error_analysis.covariance_matrix user function].
 
* Creation of the [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html error_analysis.covariance_matrix user function].  This is simply a code rearrangement.  The relax_fit user function module was duplicated and [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html relax_fit.rx_err_estimate] renamed to [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html error_analysis.covariance_matrix].  References to the specific analysis have been removed.
 
* Creation of the [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html error_analysis.covariance_matrix user function].  This is simply a code rearrangement.  The relax_fit user function module was duplicated and [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html relax_fit.rx_err_estimate] renamed to [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html error_analysis.covariance_matrix].  References to the specific analysis have been removed.
 
* Created the [http://www.nmr-relax.com/api/3.3/specific_analyses.api_base.API_base-class.html#covariance_matrix specific analysis base API method covariance_matrix()].  This defines the arguments required and what is returned by the method.  It raises the RelaxImplementError for all analyses which do not implement this method.
 
* Created the [http://www.nmr-relax.com/api/3.3/specific_analyses.api_base.API_base-class.html#covariance_matrix specific analysis base API method covariance_matrix()].  This defines the arguments required and what is returned by the method.  It raises the RelaxImplementError for all analyses which do not implement this method.
* Modified [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html#covariance_matrix pipe_control.error_analysis.covariance_matrix()].  The call to the API covariance_matrix() method now has the model_info argument passed into it.  For the relaxation curve-fitting, this allows the loop over spin systems to be skipped.
+
* Modified [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html#covariance_matrix pipe_control.error_analysis.covariance_matrix()].  The call to the [http://www.nmr-relax.com/api/3.3/specific_analyses.api_base.API_base-class.html#covariance_matrix API covariance_matrix() method] now has the model_info argument passed into it.  For the relaxation curve-fitting, this allows the loop over spin systems to be skipped.
 
* Shifted the contents of the specific_analysis.relax_fit.estimate_rx_err module into the API.  The estimate_rx_err() function is now the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.api.Relax_fit-class.html#covariance_matrix covariance_matrix() method of the specific API].  The code for calculating the covariance matrix and errors are now in the [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html#covariance_matrix function pipe_control.error_analysis.covariance_matrix()], so this has been removed.  And the error setting is performed by the set_errors() API method, so that code has been deleted as well.
 
* Shifted the contents of the specific_analysis.relax_fit.estimate_rx_err module into the API.  The estimate_rx_err() function is now the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.api.Relax_fit-class.html#covariance_matrix covariance_matrix() method of the specific API].  The code for calculating the covariance matrix and errors are now in the [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html#covariance_matrix function pipe_control.error_analysis.covariance_matrix()], so this has been removed.  And the error setting is performed by the set_errors() API method, so that code has been deleted as well.
 
* Removed the specific_analyses.relax_fit.estimate_rx_err module import.  The module has been merged into the specific API module.
 
* Removed the specific_analyses.relax_fit.estimate_rx_err module import.  The module has been merged into the specific API module.
* Fix for the [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html#covariance_matrix 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.
+
* Fix for the [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html#covariance_matrix pipe_control.error_analysis.covariance_matrix() function].  The [http://www.nmr-relax.com/api/3.3/specific_analyses.api_base.API_base-class.html#set_error set_error() API method] is parameter specific, so a loop over the parameters using the [http://www.nmr-relax.com/api/3.3/specific_analyses.api_base.API_base-class.html#get_param_names get_param_names() API method] has been added.
 
* Removed the estimate_rx_err module from the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit-module.html specific_analyses.relax_fit.__all__ list].  This module was deleted after merger into the api module.
 
* Removed the estimate_rx_err module from the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit-module.html 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Improved the plotting of correlation plot for intensity.  Now the intensity to error is plotted, which is the correct measure of this data.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Implemented a correlation plot for R<sub>eff</sub><sup>2</sup> values to be plotted for different pipes.  This has the R<sub>eff</sub><sup>2</sup>/&sigma;<sub>R<sub>eff</sub><sup>2</sup></sub> plotted, which is the best way to represent this data.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Implemented a correlation plot for R<sub>eff</sub><sup>2</sup> values to be plotted for different pipes.  This has the R<sub>eff</sub><sup>2</sup>/&sigma;<sub>R<sub>eff</sub><sup>2</sup></sub> plotted, which is the best way to represent this data.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Further improved the plotting of data in repeated analysis.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Further improved the plotting of data in repeated analysis.  {{gna task link|7826|text=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.
+
* Added the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_show_apod_rmsd_dir_to_files 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.
 
* 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.
+
* 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Adding another statistic method to plot for multi-data sets.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* More adding of matplotlib snippets for plotting intermediate data.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* More adding of matplotlib snippets for plotting intermediate data.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Changing the range of plotting for statistics.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Changing the range of plotting for statistics.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* More changes to plotting for statistics.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* More changes to plotting for statistics.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Fix for axis limits when plotting stats.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Fix for axis limits when plotting stats.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Fix for globing, to prevent incidentally taking wrong intensity file.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Fix for globing, to prevent incidentally taking wrong intensity file.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Correction to figure limits.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Correction to figure limits.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Implemented writing out of statistics to file.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Implemented writing out of statistics to file.  {{gna task link|7826|text=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.  [https://gna.org/task/?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.  {{gna task link|7826|text=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.  [https://gna.org/task/?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.  {{gna task link|7826|text=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.  [https://gna.org/task/?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.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Better check for math domain error in intensity proportionality.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Better check for math domain error in intensity proportionality.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Removal of initialised of dictionary, before data existence have been checked.  [https://gna.org/task/?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.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Small fix for correct check of missing of data.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Small fix for correct check of missing of data.  {{gna task link|7826|text=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.
 
* 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Reordered functions in repeated analysis protocol.  {{gna task link|7826|text=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 [http://www.nmr-relax.com/manual/relax_disp_r20_from_min_r2eff.html user function relax_disp.r20_from_min_r2eff] maybe is broken.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Added more check of methods to the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_repeat_cpmg system test Relax_disp.test_repeat_cpmg()].  This actually shows, that [http://www.nmr-relax.com/manual/relax_disp_r20_from_min_r2eff.html user function relax_disp.r20_from_min_r2eff] maybe is broken.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Fix for the testing of method is finished when called.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Fix for the testing of method is finished when called.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Turned on minimisation in system test Relax_disp.test_repeat_cpmg().  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Turned on minimisation in [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_repeat_cpmg system test Relax_disp.test_repeat_cpmg()]{{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
 
* The [http://www.nmr-relax.com/api/3.3/lib.spectrum.nmrpipe-module.html 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 [http://www.nmr-relax.com/api/3.3/dep_check-module.html dep_check module] cannot be used in the [http://www.nmr-relax.com/api/3.3/lib-module.html relax lib package].  Only modules from within lib are allowed to be imported into [http://www.nmr-relax.com/api/3.3/lib-module.html modules of lib].  The fix now allows the full test suite to pass and hence new relax releases are once again possible.
 
* The [http://www.nmr-relax.com/api/3.3/lib.spectrum.nmrpipe-module.html 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 [http://www.nmr-relax.com/api/3.3/dep_check-module.html dep_check module] cannot be used in the [http://www.nmr-relax.com/api/3.3/lib-module.html relax lib package].  Only modules from within lib are allowed to be imported into [http://www.nmr-relax.com/api/3.3/lib-module.html 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.
 
* Created a document which explains how missing copyrights can be found.
Line 151: Line 160:
 
* Updated the find_missing_copyrights document.  The matching is now more precise and skips all svnmerge operations.
 
* 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.
 
* 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Implemented correlation plot of minimisation values.  {{gna task link|7826|text=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.
 
* 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.
+
* Decreased the accuracy of a check in the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_estimate_r2eff_err_auto Relax_disp.test_estimate_r2eff_err_auto system test].  This is to allow the test to pass on my Windows 7 VM.
 
* Added Troels E. Linnet to the COMMITTERS file, which has not been updated in almost 3 years.
 
* Added Troels E. Linnet to the COMMITTERS file, which has not been updated in almost 3 years.
* Created the Structure.test_get_model system test.  This demonstrates that the internal structural object get_model() method is not working as it should.
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_get_model Structure.test_get_model system test].  This demonstrates that the internal structural object get_model() method is not working as it should.
* Added a few more checks to the Structure.test_get_model system test.
+
* Added a few more checks to the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_get_model Structure.test_get_model system test].
 
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_collapse_ensemble Structure.test_collapse_ensemble system test].  This is used to test a planned feature of the internal structural object.  The [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#collapse_ensemble collapse_ensemble() method] will be created to remove all but one model in the structural ensemble.
 
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_collapse_ensemble Structure.test_collapse_ensemble system test].  This is used to test a planned feature of the internal structural object.  The [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#collapse_ensemble collapse_ensemble() method] will be created to remove all but one model in the structural ensemble.
* Modified the Structure.test_collapse_ensemble system test to check the initial values.  This is for sanity reasons as the test coverage of the [http://www.nmr-relax.com/manual/structure_add_atom.html structure.add_atom user function] is poor.
+
* Modified the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_collapse_ensemble Structure.test_collapse_ensemble system test] to check the initial values.  This is for sanity reasons as the test coverage of the [http://www.nmr-relax.com/manual/structure_add_atom.html structure.add_atom user function] is poor.
 
* Implemented the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#collapse_ensemble internal structural object collapse_ensemble() method].  This allows the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_collapse_ensemble Structure.test_collapse_ensemble system test] to pass.
 
* Implemented the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#collapse_ensemble internal structural object collapse_ensemble() method].  This allows the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_collapse_ensemble Structure.test_collapse_ensemble system test] to pass.
 
* Created a basic text based progress meter in the new [http://www.nmr-relax.com/api/3.3/lib.text.progress-module.html lib.text.progress module].  This is taken from the script test_suite/shared_data/frame_order/cam/generate_base.py.
 
* Created a basic text based progress meter in the new [http://www.nmr-relax.com/api/3.3/lib.text.progress-module.html lib.text.progress module].  This is taken from the script test_suite/shared_data/frame_order/cam/generate_base.py.
* Modifications to the User_functions.test_structure_add_atom GUI test.  As lists of lists are now accepted by the [http://www.nmr-relax.com/manual/structure_add_atom.html structure.add_atom user function], the operation in the GUI is now significantly different.  Therefore many checks have been removed from the GUI test.
+
* Modifications to the [http://www.nmr-relax.com/api/3.3/test_suite.gui_tests.test_user_functions.User_functions-class.html#test_structure_add_atom User_functions.test_structure_add_atom GUI test].  As lists of lists are now accepted by the [http://www.nmr-relax.com/manual/structure_add_atom.html structure.add_atom user function], the operation in the GUI is now significantly different.  Therefore many checks have been removed from the GUI test.
* Updated the minimum minfx dependency version number from 1.0.9 to 1.0.11 in the [http://www.nmr-relax.com/api/3.3/dep_check-module.html dep_check module].  This newest version handles infinite target function values preventing optimisation from continuing forever (https://gna.org/forum/forum.php?forum_id=2477).  The 1.0.10 version is also useful as there is full support for gradients and Hessians in the log-barrier constraint algorithm (https://gna.org/forum/forum.php?forum_id=2475).
+
* Updated the minimum minfx dependency version number from 1.0.9 to 1.0.11 in the [http://www.nmr-relax.com/api/3.3/dep_check-module.html dep_check module].  This {{gna link|url= newest version handles infinite target function values preventing optimisation from continuing forever].  The {{gna link|url=gna.org/forum/forum.php?forum_id=2475|text=1.0.10 version is also useful as there is full support for gradients and Hessians in the log-barrier constraint algorithm}}.
* Shifted the [http://www.nmr-relax.com/api/3.2/specific_analyses.relax_disp.variables-module.html specific_analyses.relax_disp.variables module] into [http://www.nmr-relax.com/api/3.3/lib.dispersion.variables-module.html lib.dispersion].  This is both to minimise circular dependencies, as previously the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp-module.html 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.
+
* Shifted the [http://www.nmr-relax.com/api/3.2/specific_analyses.relax_disp.variables-module.html specific_analyses.relax_disp.variables module] into [http://www.nmr-relax.com/api/3.3/lib.dispersion.variables-module.html lib.dispersion].  This is both to minimise circular dependencies, as previously the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp-module.html specific_analyses.relax_disp modules] import from [http://www.nmr-relax.com/api/3.2/target_functions.relax_disp-module.html 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 [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_disp_repeat_cpmg-module.html 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.
 
* Dependency fix for the [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_disp_repeat_cpmg-module.html 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Implemented writing out of particular correlation plots to file.  {{gna task link|7826|text=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 [http://www.nmr-relax.com/api/3.3/lib.selection-module.html 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 [http://www.nmr-relax.com/api/3.3/lib.selection-module.html lib.selection] once to populate this new selection object, and then reusing this object to loop over molecules and atoms.
 
* Created a special internal structural object selection object.  This will be used for massively speeding up the internal structural object.  The use of the [http://www.nmr-relax.com/api/3.3/lib.selection-module.html 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 [http://www.nmr-relax.com/api/3.3/lib.selection-module.html lib.selection] once to populate this new selection object, and then reusing this object to loop over molecules and atoms.
 
* Added the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#selection selection() method to the internal structural object].  This parses the atom ID string using the [http://www.nmr-relax.com/api/3.3/lib.selection-module.html lib.selection module], loops over the molecules and atoms, performs matches using re.search() via [http://www.nmr-relax.com/api/3.3/lib.selection-module.html lib.selection], and populates and returns the new [http://www.nmr-relax.com/api/3.3/lib.structure.internal.selection.Internal_selection-class.html Internal_selection object].  This can be used to pre-process the atom ID string to save huge amounts of time.
 
* Added the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#selection selection() method to the internal structural object].  This parses the atom ID string using the [http://www.nmr-relax.com/api/3.3/lib.selection-module.html lib.selection module], loops over the molecules and atoms, performs matches using re.search() via [http://www.nmr-relax.com/api/3.3/lib.selection-module.html lib.selection], and populates and returns the new [http://www.nmr-relax.com/api/3.3/lib.structure.internal.selection.Internal_selection-class.html Internal_selection object].  This can be used to pre-process the atom ID string to save huge amounts of time.
* The internal structural object validate_models() method now accepts the verbosity argument.  This is used to silence printouts.
+
* The [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#validate_models internal structural object validate_models() method] now accepts the verbosity argument.  This is used to silence printouts.
 
* Fixes for the new structural object [http://www.nmr-relax.com/api/3.3/lib.structure.internal.selection.Internal_selection-class.html Internal_selection object].  The atom indices are not stored via the molecule index.
 
* Fixes for the new structural object [http://www.nmr-relax.com/api/3.3/lib.structure.internal.selection.Internal_selection-class.html Internal_selection object].  The atom indices are not stored via the molecule index.
 
* Converted the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#rotate rotate()] and [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#translate translate()] structural object methods to use the new selection object.  The atom_id arguments have been replaced with selection arguments.  Therefore all parts of relax which call these methods must first call [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#selection selection()] to obtain the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.selection.Internal_selection-class.html Internal_selection instance].
 
* Converted the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#rotate rotate()] and [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#translate translate()] structural object methods to use the new selection object.  The atom_id arguments have been replaced with selection arguments.  Therefore all parts of relax which call these methods must first call [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#selection selection()] to obtain the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.selection.Internal_selection-class.html Internal_selection instance].
 
* Created the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.selection.Internal_selection-class.html#mol_loop structural object Internal_selection.mol_loop() method].  This is to simply quickly loop over all molecule indices of the selection object.
 
* Created the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.selection.Internal_selection-class.html#mol_loop 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 [http://www.nmr-relax.com/manual/interatom_define.html 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.
 
* 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 [http://www.nmr-relax.com/manual/interatom_define.html 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Implemented the sampling sparseness instead of NI on the graph axis.  {{gna task link|7826|text=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 [http://www.nmr-relax.com/manual/structure_add_model.html 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.
+
* Massive speed up of the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#add_model internal structural object add_model() method].  This speeds up the [http://www.nmr-relax.com/manual/structure_add_model.html 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.
 
* 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.
 
* 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.
+
* Reactivated the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_m61b_data_to_m61b 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 [https://gna.org/bugs/?22703 bug #22703, the failure of the [http://www.nmr-relax.com/manual/bmrb_display.html 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 [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.bmrb.Bmrb-class.html#test_bug_22703_display_empty Bmrb.test_bug_22703_display_empty system and GUI test].  This system test catches [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 [http://www.nmr-relax.com/api/3.3/pipe_control.spectrometer-module.html#check_spectrometer_setup_func 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 [http://www.nmr-relax.com/api/3.3/pipe_control.spectrometer-module.html#check_spectrometer_setup_func 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 [http://www.nmr-relax.com/api/3.3/lib.warnings.RelaxNoFrqWarning-class.html RelaxNoFrqWarning warning class for warning that no spectrometer information is present].
 
* Created the [http://www.nmr-relax.com/api/3.3/lib.warnings.RelaxNoFrqWarning-class.html RelaxNoFrqWarning warning class for warning that no spectrometer information is present].
 
* Renamed the [http://www.nmr-relax.com/api/3.3/pipe_control.spectrometer-module.html#check_spectrometer_setup_func pipe_control.spectrometer.check_setup() function to check_spectrometer_setup()].  This is so it can be used without confusion outside of the module.
 
* Renamed the [http://www.nmr-relax.com/api/3.3/pipe_control.spectrometer-module.html#check_spectrometer_setup_func pipe_control.spectrometer.check_setup() function to check_spectrometer_setup()].  This is so it can be used without confusion outside of the module.
 
* Fix for a broken elif block in the new [http://www.nmr-relax.com/api/3.3/pipe_control.spectrometer-module.html#check_spectrometer_setup_func pipe_control.spectrometer.check_spectrometer_setup() function].
 
* Fix for a broken elif block in the new [http://www.nmr-relax.com/api/3.3/pipe_control.spectrometer-module.html#check_spectrometer_setup_func pipe_control.spectrometer.check_spectrometer_setup() function].
* The model-free bmrb_write() API method now checks for spectrometer information.  This is via a call to the[http://www.nmr-relax.com/api/3.3/pipe_control.spectrometer-module.html#check_spectrometer_setup_func  pipe_control.spectrometer.check_spectrometer_setup() function].
+
* The [http://www.nmr-relax.com/api/3.3/specific_analyses.model_free.api.Model_free-class.html#bmrb_write model-free bmrb_write() API method] now checks for spectrometer information.  This is via a call to the[http://www.nmr-relax.com/api/3.3/pipe_control.spectrometer-module.html#check_spectrometer_setup_func  pipe_control.spectrometer.check_spectrometer_setup() function].
* Modified the Bmrb.test_bug_22703_display_empty system/GUI test to catch the RelaxNoFrqError.
+
* Modified the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.bmrb.Bmrb-class.html#test_bug_22703_display_empty Bmrb.test_bug_22703_display_empty system/GUI test] to catch the [http://www.nmr-relax.com/api/3.3/lib.errors.RelaxNoFrqError-class.html RelaxNoFrqError].
 
* Created a special [http://www.nmr-relax.com/api/3.3/lib.checks.Check-class.html Check class based on the strategy design pattern].  This is in the new [http://www.nmr-relax.com/api/3.3/lib.checks-module.html lib.checks] module.  The class will be used to simplify and unify all of the check_*() functions in the pipe_control and specific_analyses packages.
 
* Created a special [http://www.nmr-relax.com/api/3.3/lib.checks.Check-class.html Check class based on the strategy design pattern].  This is in the new [http://www.nmr-relax.com/api/3.3/lib.checks-module.html lib.checks] module.  The class will be used to simplify and unify all of the check_*() functions in the pipe_control and specific_analyses packages.
 
* Converted the pipe_control.spectrometer.check_*() functions to the strategy design pattern.  These are now passed into the [http://www.nmr-relax.com/api/3.3/lib.checks.Check-class.html lib.checks.Check object], and the original functions are now instances of this class.
 
* Converted the pipe_control.spectrometer.check_*() functions to the strategy design pattern.  These are now passed into the [http://www.nmr-relax.com/api/3.3/lib.checks.Check-class.html lib.checks.Check object], and the original functions are now instances of this class.
Line 190: Line 199:
 
* Changed the design of the Check object in [http://www.nmr-relax.com/api/3.3/lib.checks-module.html 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.
 
* Changed the design of the Check object in [http://www.nmr-relax.com/api/3.3/lib.checks-module.html 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.
 
* 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Implemented the writing out of parameter values between comparison of NI level.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
 
* Fixes for the [http://www.nmr-relax.com/api/3.3/lib.checks.Check-class.html lib.checks.Check object].  The __call__() method keyword arguments **kargs needs to be processed inside the method to strip out the escalate argument.
 
* Fixes for the [http://www.nmr-relax.com/api/3.3/lib.checks.Check-class.html 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.
 
* 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 [http://www.nmr-relax.com/api/3.3/lib.checks.Check-class.html 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.
 
* Changed the behaviour of the [http://www.nmr-relax.com/api/3.3/lib.checks.Check-class.html 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 [http://www.nmr-relax.com/api/3.3/pipe_control.pipes-module.html#check_type pipe_control.pipes.test() has also been renamed to check_pipe()].
 
* The data pipe testing function has been converted to the strategy design pattern of the Check object.  The function [http://www.nmr-relax.com/api/3.3/pipe_control.pipes-module.html#check_type 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 [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].
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.bmrb.Bmrb-class.html#test_bug_22704_corrupted_state_file Bmrb.test_bug_22704_corrupted_state_file system test].  This is to catch [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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Implemented getting the statistics for parameters and comparing to init NI.  {{gna task link|7826|text=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.  [https://gna.org/task/?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.  {{gna task link|7826|text=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.
+
* Added checks to the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.bmrb.Bmrb-class.html#test_bug_22704_corrupted_state_file 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.
+
* Uncommented some checks in the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.bmrb.Bmrb-class.html#test_bug_22704_corrupted_state_file Bmrb.test_bug_22704_corrupted_state_file system test].
* For relaxation dispersion, modified that the Grid search and linear constraints for parameter k<sub>AB</sub> is between 0-100.  The parameter is only used in the [[TSMFK01]] model.  The k<sub>AB</sub> 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<sub>AB</sub> 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.
+
* For relaxation dispersion, modified that the grid search and linear constraints for parameter k<sub>AB</sub> is between 0-100.  The parameter is only used in the [[TSMFK01]] model.  The k<sub>AB</sub> parameter is only for very slow forward exchange rate.  The expected values should according to the reference paper: [Tollinger et al., 2001].  The paper concerns values of k<sub>AB</sub> 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Set the default insignificance value to 0.0 instead of 1.0.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
 
* Modified the grid search limits for parameter k<sub>AB</sub> to be between 0.1 and 20.0 rad.s<sup>-1</sup>.  This is for the [[TSMFK01]] model, where values much above 10/20 is not expected.
 
* Modified the grid search limits for parameter k<sub>AB</sub> to be between 0.1 and 20.0 rad.s<sup>-1</sup>.  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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Implemented counting of outliers for statistics.  This is to get a better feeling why some statistics are very much different between NI.  {{gna task link|7826|text=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 [http://www.nmr-relax.com/manual/structure_mean.html structure.mean user function].  This is an analysis aid that will calculate the mean structure from all loaded models.
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_mean Structure.test_mean system test].  This is to test the functionality of a planned new feature, the [http://www.nmr-relax.com/manual/structure_mean.html structure.mean user function].  This is an analysis aid that will calculate the mean structure from all loaded models.
 
* Implemented the [http://www.nmr-relax.com/manual/structure_mean.html structure.mean user function] frontend.  The backend is currently just a stub function.
 
* Implemented the [http://www.nmr-relax.com/manual/structure_mean.html structure.mean user function] frontend.  The backend is currently just a stub function.
 
* Fixes and simplifications for the [http://www.nmr-relax.com/api/3.3/pipe_control.pipes-module.html#check_type pipe_control.pipes.check_pipe() checking object].  One of the RelaxError classes were not initialised and the docstring was incorrect.
 
* Fixes and simplifications for the [http://www.nmr-relax.com/api/3.3/pipe_control.pipes-module.html#check_type pipe_control.pipes.check_pipe() checking object].  One of the RelaxError classes were not initialised and the docstring was incorrect.
 
* Created the [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#check_structure_func pipe_control.structure.main.check_structure() checking object].  This will be used for providing much more detailed feedback for when structural information is missing.
 
* Created the [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#check_structure_func pipe_control.structure.main.check_structure() checking object].  This will be used for providing much more detailed feedback for when structural information is missing.
 
* Converted all of the [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#check_structure_func pipe_control.structure.main functions to use the check_structure() object].  This standardises and improves all of the checks.
 
* Converted all of the [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#check_structure_func pipe_control.structure.main functions to use the check_structure() object].  This standardises and improves all of the checks.
* Some fixes and additional checks for the Structure.test_mean system test.
+
* Some fixes and additional checks for the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_mean Structure.test_mean system test].
* Implemented the backend of the [http://www.nmr-relax.com/manual/structure_mean.html structure.mean user function].  This primarily occurs within the internal structural object in the new mean() method.  The [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#mean pipe_control.structure.main.mean() function] simply checks if the current data pipe is correctly set up and then calls the structural object mean() method.
+
* Implemented the backend of the [http://www.nmr-relax.com/manual/structure_mean.html structure.mean user function].  This primarily occurs within the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#mean internal structural object in the new mean() method].  The [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#mean pipe_control.structure.main.mean() function] simply checks if the current data pipe is correctly set up and then calls the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#mean structural object mean() method].
* Created the Structure.test_align system test.  This will be used to test the yet to be implemented [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  This user function will be similar to the [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function] but will be designed so that structures with different primary and atomic sequences can be superimposed.
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_align Structure.test_align system test].  This will be used to test the yet to be implemented [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  This user function will be similar to the [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function] but will be designed so that structures with different primary and atomic sequences can be superimposed.
 
* Created the frontend of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  This is almost the same as that of the [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function] except that the pipes argument has been added and the titles and description changed to indicate the differences.
 
* Created the frontend of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  This is almost the same as that of the [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function] except that the pipes argument has been added and the titles and description changed to indicate the differences.
 
* Registered the new user function argument type 'int_list_of_lists' in the prompt UI.  This is to allow for lists of lists of integers, as used for the model argument in the new [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].
 
* Registered the new user function argument type 'int_list_of_lists' in the prompt UI.  This is to allow for lists of lists of integers, as used for the model argument in the new [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].
 
* Modified the [http://www.nmr-relax.com/api/3.3/lib.arg_check-module.html#is_int_list lib.arg_check.is_int_list() function] to accept the list_of_lists Boolean argument.  This updates the function to have the same functionality as is_str_list(), allows for lists of lists of int to be checked.
 
* Modified the [http://www.nmr-relax.com/api/3.3/lib.arg_check-module.html#is_int_list lib.arg_check.is_int_list() function] to accept the list_of_lists Boolean argument.  This updates the function to have the same functionality as is_str_list(), allows for lists of lists of int to be checked.
* Extended the Structure.test_align system test to throughly check the structural data.  This includes changing the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] call to use 'fit to first' and carefully checking the new atomic coordinates.
+
* Extended the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_align Structure.test_align system test] to throughly check the structural data.  This includes changing the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] call to use 'fit to first' and carefully checking the new atomic coordinates.
* Modified the Structure.test_align system test so that translations and rotations match the algorithm.  This allows the output of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] to be checked to see if the rotation matrix and translation vector found match that used to shift the original structures.
+
* Modified the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_align Structure.test_align system test] so that translations and rotations match the algorithm.  This allows the output of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] to be checked to see if the rotation matrix and translation vector found match that used to shift the original structures.
 
* Implemented the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] backend.  This is similar to the [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function], however the coordinate data structure only contains atoms which are in common to all structures.
 
* Implemented the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] backend.  This is similar to the [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function], however the coordinate data structure only contains atoms which are in common to all structures.
 
* The [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html pipe_control.structure.main] functions [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#translate translate()] and [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#rotate rotate()] now accept the pipe_name argument.  This is used to translate and rotate structures in different data pipes, as required by the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].
 
* The [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html pipe_control.structure.main] functions [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#translate translate()] and [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#rotate rotate()] now accept the pipe_name argument.  This is used to translate and rotate structures in different data pipes, as required by the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].
 
* The [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#check_structure_func pipe_control.structure.main.check_structure() checking object] now accepts the pipe_name argument.  This allows structural data to be checked for in different data pipes without having to switch to them.
 
* The [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#check_structure_func pipe_control.structure.main.check_structure() checking object] now accepts the pipe_name argument.  This allows structural data to be checked for in different data pipes without having to switch to them.
* Modified the Structure.test_align system test to call the [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb user function].  This sets the file name to sys.stdout so that the original structure and the final aligned structures are output to STDOUT for debugging purposes.
+
* Modified the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_align Structure.test_align system test] to call the [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb user function].  This sets the file name to sys.stdout so that the original structure and the final aligned structures are output to STDOUT for debugging purposes.
* Created the Structure.test_delete_atom system test.  This is used to test the deletion of a single atom using the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function].
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_delete_atom Structure.test_delete_atom system test].  This is used to test the deletion of a single atom using the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function].
* Expanded the Structure.test_delete_atom system test.  This is to show that the [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb user function] fails after a call to the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function] to delete individual atoms.
+
* Expanded the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_delete_atom Structure.test_delete_atom system test].  This is to show that the [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb user function] fails after a call to the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function] to delete individual atoms.
 
* Fix for the new [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  The translation and rotation of the structures at the end to the aligned positions was being incorrectly performed.
 
* Fix for the new [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  The translation and rotation of the structures at the end to the aligned positions was being incorrectly performed.
* Loosened some checks in the Structure.test_align system test to allow it to pass.  Some self.assertEqual() checks for the atomic coordinates have been replaced by self.assertAlmostEqual() to allow for small machine precision differences.
+
* Loosened some checks in the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_align Structure.test_align system test] to allow it to pass.  Some self.assertEqual() checks for the atomic coordinates have been replaced by self.assertAlmostEqual() to allow for small machine precision differences.
 
* Modified the [http://www.nmr-relax.com/api/3.3/lib.arg_check-module.html#is_str_or_inst lib.arg_check.is_str_or_inst() function] to handle cStringIO objects.  This allows sys.stdout to be used as a file object in the relax test suite.
 
* Modified the [http://www.nmr-relax.com/api/3.3/lib.arg_check-module.html#is_str_or_inst lib.arg_check.is_str_or_inst() function] to handle cStringIO objects.  This allows sys.stdout to be used as a file object in the relax test suite.
 
* Modified the [http://www.nmr-relax.com/api/3.3/lib.arg_check-module.html#is_str_or_inst 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.
 
* Modified the [http://www.nmr-relax.com/api/3.3/lib.arg_check-module.html#is_str_or_inst 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 R<sub>eff</sub><sup>2</sup> 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Print out of the number of all R<sub>eff</sub><sup>2</sup> 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.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Implemented statistics for R<sub>eff</sub><sup>2</sup> values.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Implemented statistics for R<sub>eff</sub><sup>2</sup> values.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
 
* Added data checks and printouts to the [http://www.nmr-relax.com/manual/structure_align.html 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.
 
* Added data checks and printouts to the [http://www.nmr-relax.com/manual/structure_align.html 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Implemented writing out intensity and error correlations plot.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
* Implemented writing out of intensity statistics.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Implemented writing out of intensity statistics.  {{gna task link|7826|text=Task #7826: Write a Python class for the repeated analysis of dispersion data}}.
 
* Expanded the [http://www.nmr-relax.com/manual/structure_com.html 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.
 
* Expanded the [http://www.nmr-relax.com/manual/structure_com.html 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.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Skipping of intensity calculation, if the intensity pipe does not exists.  {{gna task link|7826|text=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.  [https://gna.org/task/?7858 Task #7858: Make it possible to submit CPMG experiments for BMRB].
+
* 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.  {{gna task link|7858|text=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.  [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.  {{gna task link|7858|text=Task #7858: Make it possible to submit CPMG experiments for BMRB}}.
* Implemented the initial part of the API, to collect data for BMRB submission.  [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.  {{gna task link|7858|text=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.  [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.  {{gna task link|7858|text=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.  [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.  {{gna task link|7858|text=Task #7858: Make it possible to submit CPMG experiments for BMRB}}.
* Removed the showing of Matplotlib figures in the test suite.  [https://gna.org/task/?7826 Task #7826: Write a Python class for the repeated analysis of dispersion data].
+
* Removed the showing of Matplotlib figures in the test suite.  {{gna task link|7826|text=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.  [https://gna.org/bugs/?22753 Bug #22753: dx.map does not work when only 1 point is used].
+
* Implemented [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_dx_map_clustered system test Relax_disp.test_dx_map_clustered] to catch the missing creation of a point file.  [https://gna.org/bugs/?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 [http://www.nmr-relax.com/manual/minimise.calculate.html minimise.calculate] should be the same as the file stored with the clustered &chi;<sup>2</sup> value.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
+
* Inserted a check in [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_dx_map_clustered system test Relax_disp.test_dx_map_clustered], that a call to [http://www.nmr-relax.com/manual/minimise.calculate.html minimise.calculate] should be the same as the file stored with the clustered &chi;<sup>2</sup> value.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
* Made initial preparation to loop over clustered spins and IDs for the minimise.calculate user function call.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
+
* Made initial preparation to loop over clustered spins and IDs for the [http://www.nmr-relax.com/manual/minimise.calculate.html minimise.calculate user function] call.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
* Implemented looping over spin-clusters when issuing a minimise.calculate().  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
+
* Implemented looping over spin-clusters when issuing a [http://www.nmr-relax.com/manual/minimise.calculate.html minimise.calculate].  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
 
* Made [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.optimisation-module.html#back_calc_r2eff back_calc_r2eff() in optimisation module] use the spin and ID list instead.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
 
* Made [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.optimisation-module.html#back_calc_r2eff back_calc_r2eff() in optimisation module] use the spin and ID list instead.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
 
* Fix for graph plotting functionality to send spins as list of one spins.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
 
* Fix for graph plotting functionality to send spins as list of one spins.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<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.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
+
* Fix for calling [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.optimisation-module.html#back_calc_r2eff back_calc_r2eff] with the new argument keywords, and use list of spin and spin IDs.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<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.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
+
* Fix for synthetic script calling [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.optimisation-module.html#back_calc_r2eff back_calc_r2eff()] with old arguments and to use list of spin containers and IDs.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
* Inserted last test in test_dx_map_clustered, to check out the written &chi;<sup>2</sup> values are as expected.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
+
* Inserted last test in [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_dx_map_clustered test_dx_map_clustered], to check out the written &chi;<sup>2</sup> values are as expected.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
 
* Moved the looping over cluster spin IDs into its own function in the API.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
 
* Moved the looping over cluster spin IDs into its own function in the API.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
 
* Added the selection string for all the cluster IDs to be parsed back as well.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
 
* Added the selection string for all the cluster IDs to be parsed back as well.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
Line 255: Line 264:
 
* 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.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<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.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<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.
 
* 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.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
+
* In the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.api.Relax_disp-class.html#calculate dispersion API calculate()], used the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.api.Relax_disp-class.html#model_loop API function model_loop()] to loop over the clusters instead.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
 
* Removed then function loop_cluster_ids() from dispersion API().  This should be implemented elsewhere.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
 
* Removed then function loop_cluster_ids() from dispersion API().  This should be implemented elsewhere.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<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.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
+
* Updated the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.api.Relax_disp-class.html#set_param_values API set_param_values() function] to use [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.api.Relax_disp-class.html#model_loop model_loop()] to get the spin_ids from the cluster.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<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' ".  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
+
* Initial try to fix [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._pipe_control.test_value.Test_value-class.html#test_value_set_r1_rit 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' ".  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<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.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
+
* Removed the checking of MODEL_LIST_MMQ, and spin.isotope from [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.optimisation-module.html#back_calc_r2eff optimisation.back_calc_r2eff()], since this check is already covered.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
* Fix for references to "spin" in optimisation.back_calc_r2eff().  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
+
* Fix for references to "spin" in [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.optimisation-module.html#back_calc_r2eff optimisation.back_calc_r2eff()].  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
* Fix for looping performed twice in relax_disp API model_loop().  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
+
* Fix for looping performed twice in [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.api.Relax_disp-class.html#model_loop relax_disp API model_loop()].  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<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.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
+
* Removed unused proton reference in [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.api.Relax_disp-class.html#calculate 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.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
* Fix for epydoc in system test Relax_disp.test_dx_map_clustered.
+
* Fix for epydoc in [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_dx_map_clustered 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 [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].
 
* Updated all of the Relax_disp.test_korzhnev_2005_*_data system tests.  These now have slightly changed parameter values due to the fix of [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.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
 
* Epydoc change for DOI reference in system tests.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
Line 271: Line 280:
 
* Modified the help strings for the test suite options shown when 'relax -h' is run.  The ability to specify individual tests (or modules of tests for the unit tests) is now documented.  The '--time' option help string has also been edited.
 
* Modified the help strings for the test suite options shown when 'relax -h' is run.  The ability to specify individual tests (or modules of tests for the unit tests) is now documented.  The '--time' option help string has also been edited.
 
* Fix for the [http://www.nmr-relax.com/api/3.3/test_suite.gui_tests.bmrb.Bmrb-class.html Bmrb.test_bug_22704_corrupted_state_file GUI test].  This was failing because the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.bmrb.Bmrb-class.html#setUp setUp() method in the inherited Bmrb system test module] was being overwritten by the default Unittest.setUp() method.  Therefore the system test [http://www.nmr-relax.com/api/3.3/test_suite.gui_tests.bmrb.Bmrb-class.html#setUp setUp() method has been copied into the GUI test class].
 
* Fix for the [http://www.nmr-relax.com/api/3.3/test_suite.gui_tests.bmrb.Bmrb-class.html Bmrb.test_bug_22704_corrupted_state_file GUI test].  This was failing because the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.bmrb.Bmrb-class.html#setUp setUp() method in the inherited Bmrb system test module] was being overwritten by the default Unittest.setUp() method.  Therefore the system test [http://www.nmr-relax.com/api/3.3/test_suite.gui_tests.bmrb.Bmrb-class.html#setUp setUp() method has been copied into the GUI test class].
* Fix for the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._pipe_control.test_value.Test_value-class.html#test_value_set_r1_rit Test_value.test_value_set_r1_rit test] of the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._pipe_control.test_value-module.html _pipe_control.test_value unit test module].  This is a general fix for all unit test modules which use the test_suite.unit_tests.value_testing_base.Value_testing_base base class.  After the molecules, residues and spins are manually created, the [http://www.nmr-relax.com/api/3.3/pipe_control.mol_res_spin-module.html#metadata_update pipe_control.mol_res_spin.metadata_update() function] is called to make sure that all of the private and volatile metadata have been correctly created, so that the other [http://www.nmr-relax.com/api/3.3/pipe_control.mol_res_spin-module.html pipe_control.mol_res_spin module] functions can operate correctly.
+
* Fix for the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._pipe_control.test_value.Test_value-class.html#test_value_set_r1_rit Test_value.test_value_set_r1_rit test] of the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._pipe_control.test_value-module.html _pipe_control.test_value unit test module].  This is a general fix for all unit test modules which use the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests.value_testing_base.Value_base_class-class.html test_suite.unit_tests.value_testing_base.Value_testing_base base class].  After the molecules, residues and spins are manually created, the [http://www.nmr-relax.com/api/3.3/pipe_control.mol_res_spin-module.html#metadata_update pipe_control.mol_res_spin.metadata_update() function] is called to make sure that all of the private and volatile metadata have been correctly created, so that the other [http://www.nmr-relax.com/api/3.3/pipe_control.mol_res_spin-module.html pipe_control.mol_res_spin module] functions can operate correctly.
* Removal of repetitive code in the relaxation dispersion model_loop() API method.  The spin loop does not need to be called twice, instead the if statements have been modified to better direct the code execution.
+
* Removal of repetitive code in the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.api.Relax_disp-class.html#model_loop relaxation dispersion model_loop() API method].  The spin loop does not need to be called twice, instead the if statements have been modified to better direct the code execution.
 
* Added script to simulate dispersion profiles at different settings.  This shows that something is wrong.  The back-calculated values in the graphs are not equal to the interpolated values.  There must be something wrong somewhere.  This list shows the &chi;<sup>2</sup> values and, judging from the dispersion graphs, this simply cannot be true.
 
* Added script to simulate dispersion profiles at different settings.  This shows that something is wrong.  The back-calculated values in the graphs are not equal to the interpolated values.  There must be something wrong somewhere.  This list shows the &chi;<sup>2</sup> values and, judging from the dispersion graphs, this simply cannot be true.
 
* Changed bounds for sample scripts to create: 3D iso-surface plot, surface plot and simulation of dispersion curves.
 
* Changed bounds for sample scripts to create: 3D iso-surface plot, surface plot and simulation of dispersion curves.
Line 279: Line 288:
 
<section end=changes/>
 
<section end=changes/>
  
 
+
=== Bugfixes ===
== Bugfixes ==
 
  
 
<section begin=bugfixes/>
 
<section begin=bugfixes/>
 
* Fix for two-point calculation of exponential curve with corrupted data.  The two-point calculation is now also skipped, if the measured intensity is 0.  This can happen for corrupted intensity files.
 
* Fix for two-point calculation of exponential curve with corrupted data.  The two-point calculation is now also skipped, if the measured intensity is 0.  This can happen for corrupted intensity files.
* Fix for the internal structural object get_model() method - it now actually returns the model.
+
* Fix for the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#get_model internal structural object get_model() method] - it now actually returns the model.
 
* Fixes for the [http://www.nmr-relax.com/manual/structure_add_atom.html 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.
 
* Fixes for the [http://www.nmr-relax.com/manual/structure_add_atom.html 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 [http://www.nmr-relax.com/api/3.3/lib.structure.pdb_write-module.html lib.structure.pdb_write module].  This is within the _record_validate() function.  The check prevents the creation of invalid PDB files.
+
* Added safety checks for NaN values to the [http://www.nmr-relax.com/api/3.3/lib.structure.pdb_write-module.html lib.structure.pdb_write module].  This is within the [http://www.nmr-relax.com/api/3.3/lib.structure.pdb_write-module.html#_record_validate _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 [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 [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 [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 [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 [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.
 
* Fix for the cdp.exp_info.software data structure setup.  This is a partial fix for [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 [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 [http://www.nmr-relax.com/api/3.3/data_store.data_classes-module.html data_store.data_classes]).
+
* Implemented the cdp.exp_info.from_xml() method to correctly restore the experimental info structure.  This fixes [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 [http://www.nmr-relax.com/api/3.3/data_store.exp_info.ExpInfo-class.html#from_xml 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 [http://www.nmr-relax.com/api/3.3/data_store.data_classes.RelaxListType-class.html RelaxListType objects] populated by [http://www.nmr-relax.com/api/3.3/data_store.data_classes.Element-class.html Element objects] (both from [http://www.nmr-relax.com/api/3.3/data_store.data_classes-module.html data_store.data_classes]).
 
* Bug fix for the [http://www.nmr-relax.com/manual/structure_delete.html 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.
 
* Bug fix for the [http://www.nmr-relax.com/manual/structure_delete.html 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 [http://www.nmr-relax.com/manual/structure_delete.html 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.
 
* Another bug fix for the [http://www.nmr-relax.com/manual/structure_delete.html 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.
Line 298: Line 306:
 
* Critical fix for k<sub>AB</sub> not belonging to list of global parameters.  k<sub>AB</sub> 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.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
 
* Critical fix for k<sub>AB</sub> not belonging to list of global parameters.  k<sub>AB</sub> 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.  [https://gna.org/bugs/?22754 Bug #22754: The minimise.calculate user function does not calculate &chi;<sup>2</sup> value for clustered residues].
 
* Improvements for PDB creation in the relax library for out of bounds structural coordinates.  The [http://www.nmr-relax.com/api/3.3/lib.structure.pdb_write-module.html lib.structure.pdb_write module] [http://www.nmr-relax.com/api/3.3/lib.structure.pdb_write-module.html#atom atom()] and [http://www.nmr-relax.com/api/3.3/lib.structure.pdb_write-module.html#hetatm 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.
 
* Improvements for PDB creation in the relax library for out of bounds structural coordinates.  The [http://www.nmr-relax.com/api/3.3/lib.structure.pdb_write-module.html lib.structure.pdb_write module] [http://www.nmr-relax.com/api/3.3/lib.structure.pdb_write-module.html#atom atom()] and [http://www.nmr-relax.com/api/3.3/lib.structure.pdb_write-module.html#hetatm 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<sub>AB</sub> 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.
+
* Expanded the list of global dispersion parameters in the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp.api.Relax_disp-class.html#set_param_values set_param_values() API method].  This is a quick expansion of Troels' fix for the k<sub>AB</sub> 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.
 
<section end=bugfixes/>
 
<section end=bugfixes/>
  
= Links =
+
== Links ==
  
 
<section begin=links/>
 
<section begin=links/>
For reference, the following links are also part of the announcement for this release:
+
For reference, the announcement for this release can also be found at following links:
* [http://wiki.nmr-relax.com/Relax_3.3.1 Official release notes]
+
 
* [https://gna.org/forum/forum.php?forum_id=2476 Gna! news item]
+
* [http://wiki.nmr-relax.com/Relax_3.3.1 Official release notes on the relax wiki].
* [http://article.gmane.org/gmane.science.nmr.relax.announce/59 Gmane]
+
* {{gna link|url=gna.org/forum/forum.php?forum_id=2478|text=Gna! news item}}.
* [https://mail.gna.org/public/relax-announce/2014-10/msg00000.html Local archives]
+
* [http://article.gmane.org/gmane.science.nmr.relax.announce/59 Gmane mailing list archive].
* [http://marc.info/?l=relax-announce&m=141013209125236&w=2 MARC]
+
* [http://www.mail-archive.com/relax-announce%40gna.org/msg00050.html The Mail Archive].
 +
* [https://mail.gna.org/public/relax-announce/2014-10/msg00000.html Local archives].
 +
* [http://marc.info/?l=relax-announce&m=141289520301920&w=2 Mailing list ARChives (MARC)].
 +
 
 +
{{:Softpedia}}
 
<section end=links/>
 
<section end=links/>
  
= Announcements =
+
== Announcements ==
  
 
{{:relax release announcements}}
 
{{:relax release announcements}}
  
  
= See also =
+
== References ==
 +
 
 +
* [*Tollinger et al., 2001] {{#lst:Citations|Tollinger01}}
 +
<HarvardReferences />
 +
 
 +
 
 +
== See also ==
  
 +
* [http://www.nmr-relax.com/api/3.3/ The relax 3.3 API documentation]
 
{{:relax release see also}}
 
{{:relax release see also}}
 
[[Category:Relaxation dispersion analysis]]
 
[[Category:Relaxation dispersion analysis]]

Latest revision as of 15:04, 16 October 2020


Official relax releases
relax logo
relax version 3.3.1
Previous version Next version
← relax 3.3.0 relax 3.3.2 →

Release type Minor feature and bugfix
Release date 9 October 2014

The PDF version of the relax 3.3.1 user manual The relax 3.3.1 user manual

Description

This is a minor feature and bugfix release. It includes the addition of the error_analysis.covariance_matrix, structure.align, and structure.mean user functions and expanded functionality for the structure.com and structure.delete user functions. Many operations involving the internal structural object are now orders of magnitude faster, with the interatom.define user function showing the greatest speed ups. There are also improvements for helping to upgrade relax scripts to newer relax versions. The numdifftools package is now bundled with relax for allowing numerical gradient, Hessian and Jacobian matrices to be calculated. And the release includes the start of a new protocol for iteratively analysing repetitive relaxation dispersion experiments.


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).


CHANGES file

Version 3.3.1
(9 October 2014, from /trunk)
http://svn.gna.org/svn/relax/tags/3.3.1


Features


Changes


Bugfixes


Links

For reference, the announcement for this release can also be found at following links:

Softpedia also has information about the newest relax releases:


Announcements

If you would like to receive announcements about new relax versions, please subscribe to the relax announcement mailing list. This list only receives ~10 emails per year. It is archived at the SourceForge archives and in The Mail Archive.


References

  • [*Tollinger et al., 2001] 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. (DOI: 10.1021/ja011300z)

<HarvardReferences />


See also