Difference between revisions of "Relax 3.3.5"

From relax wiki
Jump to navigation Jump to search
(Started to add links to the API documentation.)
(Completed the API documentation linking.)
Line 4: Line 4:
  
 
<section begin=description/>
 
<section begin=description/>
This is a major feature and bugfix release.  It fixes an important bug in the Monte Carlo simulation error analysis in the relaxation dispersion analysis.  Features include improvements to the NMR spectral noise error analysis, expansion of the [http://www.nmr-relax.com/manual/grace_write.html grace.write user function] to handle both first and last point normalisation for reasonable R<sub>1</sub> curves in saturation recovery experiments, the implementation of Needleman-Wunsch pairwise sequence alignment algorithm using the BLOSUM62, PAM250 and NUC 4.4 substitution matrices for more advanced 3D structural alignments via the [http://www.nmr-relax.com/manual/structure_align.html structure.align] and [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose] user functions as well as any of the other structure user functions dealing with multiple molecules, conversion of the [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement], [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot], [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd], [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose] and [http://www.nmr-relax.com/manual/structure_web_of_motion.html structure.web_of_motion] user functions to a new pipes/models/molecules/atom_id design to allow the user functions to operate on different data pipes, different structural models and different molecules, addition of the displace_id argument to the [http://www.nmr-relax.com/manual/structure_align.html structure.align] and [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose] user functions to allow finer control over which atoms are translated and rotated by the algorithm, large improvement for the PDB molecule identification code affecting the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function], creation of the lib.plotting package for assembling all of the data plotting capabilities of relax, implementation of the new [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function] for creating text output or Gnuplot graphs of the correlation matrix of interatomic distance, angle or parallax shift fluctuations, the implementation of ordinary least squares fitting, and improvements for the [http://www.nmr-relax.com/manual/pcs_corr_plot.html pcs.corr_plot] and [http://www.nmr-relax.com/manual/rdc_corr_plot.html rdc.corr_plot] user functions.  Many more features and bugfixes are listed below.
+
This is a major feature and bugfix release.  It fixes an important bug in the Monte Carlo simulation error analysis in the relaxation dispersion analysis.  Features include improvements to the NMR spectral noise error analysis, expansion of the [http://www.nmr-relax.com/manual/grace_write.html grace.write user function] to handle both first and last point normalisation for reasonable R<sub>1</sub> curves in saturation recovery experiments, the implementation of Needleman-Wunsch pairwise sequence alignment algorithm using the BLOSUM62, PAM250 and NUC 4.4 substitution matrices for more advanced 3D structural alignments via the [http://www.nmr-relax.com/manual/structure_align.html structure.align] and [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose] user functions as well as any of the other structure user functions dealing with multiple molecules, conversion of the [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement], [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot], [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd], [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose] and [http://www.nmr-relax.com/manual/structure_web_of_motion.html structure.web_of_motion] user functions to a new pipes/models/molecules/atom_id design to allow the user functions to operate on different data pipes, different structural models and different molecules, addition of the displace_id argument to the [http://www.nmr-relax.com/manual/structure_align.html structure.align] and [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose] user functions to allow finer control over which atoms are translated and rotated by the algorithm, large improvement for the PDB molecule identification code affecting the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function], creation of the [http://www.nmr-relax.com/api/3.3/lib.plotting-module.html lib.plotting package] for assembling all of the data plotting capabilities of relax, implementation of the new [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function] for creating text output or Gnuplot graphs of the correlation matrix of interatomic distance, angle or parallax shift fluctuations, the implementation of ordinary least squares fitting, and improvements for the [http://www.nmr-relax.com/manual/pcs_corr_plot.html pcs.corr_plot] and [http://www.nmr-relax.com/manual/rdc_corr_plot.html rdc.corr_plot] user functions.  Many more features and bugfixes are listed below.
 
<section end=description/>
 
<section end=description/>
  
Line 140: Line 140:
 
* Large improvement for the PDB molecule identification code.  This affects the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function].  Now the chain ID code, if present in the PDB file, is being used to determine which ATOM and HETATM records belong to which molecule.  All of the records for each molecule are stored until the end, when they are all yielded.  This allows for discontinuous chain IDs throughout the PDB file, something which occurs often with the HETATM records.
 
* Large improvement for the PDB molecule identification code.  This affects the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function].  Now the chain ID code, if present in the PDB file, is being used to determine which ATOM and HETATM records belong to which molecule.  All of the records for each molecule are stored until the end, when they are all yielded.  This allows for discontinuous chain IDs throughout the PDB file, something which occurs often with the HETATM records.
 
* Expanded the displace_id argument for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  This can now be a list of atom IDs, so that any atoms can be rotated together with the structure being aligned.  This is useful if the molecules argument is supplied.
 
* Expanded the displace_id argument for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  This can now be a list of atom IDs, so that any atoms can be rotated together with the structure being aligned.  This is useful if the molecules argument is supplied.
* Fix for the Noe.test_bug_21562_noe_replicate_fail system test.  This is for the changed behaviour of the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function].  The problem is that the PDB file read in this test has the chain ID set to X.  This broken PDB causes molecule numbering problems.
+
* Fix for the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.noe.Noe-class.html#test_bug_21562_noe_replicate_fail Noe.test_bug_21562_noe_replicate_fail system test].  This is for the changed behaviour of the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function].  The problem is that the PDB file read in this test has the chain ID set to X.  This broken PDB causes molecule numbering problems.
 
* Expanded the description of the [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd user function].
 
* Expanded the description of the [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd user function].
 
* Changed the paragraph ordering in the documentation of a number of the structure user functions.  This includes the [http://www.nmr-relax.com/manual/structure_align.html structure.align], [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement], and [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot] user functions.
 
* Changed the paragraph ordering in the documentation of a number of the structure user functions.  This includes the [http://www.nmr-relax.com/manual/structure_align.html structure.align], [http://www.nmr-relax.com/manual/structure_displacement.html structure.displacement], and [http://www.nmr-relax.com/manual/structure_find_pivot.html structure.find_pivot] user functions.
Line 146: Line 146:
 
* Improved the sizing layout of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] GUI dialog.
 
* Improved the sizing layout of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] GUI dialog.
 
* Improved the sizing layout of the [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function] GUI dialog.
 
* Improved the sizing layout of the [http://www.nmr-relax.com/manual/structure_superimpose.html structure.superimpose user function] GUI dialog.
* Created the Structure.test_atomic_fluctuations system test.  This will be used to implement the idea of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_atomic_fluctuations Structure.test_atomic_fluctuations system test].  This will be used to implement the idea of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
 
* Implemented the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  This is loosely based on the [http://www.nmr-relax.com/manual/structure_web_of_motion.html structure.web_of_motion user function] and is related to it.  The user function will write to file a correlation matrix of interatomic distance fluctuations.
 
* Implemented the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  This is loosely based on the [http://www.nmr-relax.com/manual/structure_web_of_motion.html structure.web_of_motion user function] and is related to it.  The user function will write to file a correlation matrix of interatomic distance fluctuations.
* Created 4 unit tests for the lib.io.swap_extension function.  This is in preparation for implementing the function.
+
* Created 4 unit tests for the [http://www.nmr-relax.com/api/3.3/lib.io-module.html#swap_extension lib.io.swap_extension function].  This is in preparation for implementing the function.
* Implemented the lib.io.swap_extension() function.  This is confirmed to be fully functional by its four unit tests.
+
* Implemented the [http://www.nmr-relax.com/api/3.3/lib.io-module.html#swap_extension lib.io.swap_extension() function].  This is confirmed to be fully functional by its four unit tests.
* Created the empty lib.plotting package.  This follows from the thread at http://thread.gmane.org/gmane.science.nmr.relax.devel/7444.  The package will be used for assembling all of the data plotting capabilities of relax.  It will make support for different plotting software - Grace, OpenDX, matplotlib, gnuplot, etc - more coherent.  This will be used to create a software independent API for plotting in relax.  I.e. the plotting software is chosen by the user and then the data output by the user function passes into the lib.plotting API which is then passed into the software dependent backend in lib.plotting.
+
* Created the empty [http://www.nmr-relax.com/api/3.3/lib.plotting-module.html lib.plotting package].  This follows from [http://thread.gmane.org/gmane.science.nmr.relax.devel/7444 this thread].  The package will be used for assembling all of the data plotting capabilities of relax.  It will make support for different plotting software - Grace, OpenDX, matplotlib, gnuplot, etc - more coherent.  This will be used to create a software independent API for plotting in relax.  I.e. the plotting software is chosen by the user and then the data output by the user function passes into the lib.plotting API which is then passed into the software dependent backend in lib.plotting.
* Created the Structure.test_atomic_fluctuations_gnuplot system test.  This checks the operation of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function] when the output format is set to 'gnuplot'.  This will be used to implement this option.  The current gnuplot script expected by this test is just a very basic starting script for now.
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_atomic_fluctuations_gnuplot Structure.test_atomic_fluctuations_gnuplot system test].  This checks the operation of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function] when the output format is set to 'gnuplot'.  This will be used to implement this option.  The current gnuplot script expected by this test is just a very basic starting script for now.
* Created the lib.plotting API function correlation_matrix().  This is the lib.plotting.api.correlation_matrix() function.  It will be used for the visualisation of rank-2 correlation matrices.  The current basic API design here uses a dictionary of backend functions (currently empty) for calling the backend.
+
* Created the [http://www.nmr-relax.com/api/3.3/lib.plotting-module.html lib.plotting API] function correlation_matrix().  This is the [http://www.nmr-relax.com/api/3.3/lib.plotting.api-module.html#correlation_matrix lib.plotting.api.correlation_matrix() function].  It will be used for the visualisation of rank-2 correlation matrices.  The current basic API design here uses a dictionary of backend functions (currently empty) for calling the backend.
* Implemented a very basic gnuplot backend for the correlation_matrix() plotting API function.  This is in the new lib.plotting.gnuplot module.  It creates an incredibly basic gnuplot script for visualising the correlation matrix, assuming a text file has already been created.
+
* Implemented a very basic [http://www.nmr-relax.com/api/3.3/lib.plotting.gnuplot-module.html#correlation_matrix gnuplot backend for the correlation_matrix() plotting API function].  This is in the new [http://www.nmr-relax.com/api/3.3/lib.plotting.gnuplot-module.html lib.plotting.gnuplot module].  It creates an incredibly basic gnuplot script for visualising the correlation matrix, assuming a text file has already been created.
* Enabled the gnuplot format for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  This uses the plotting API correlation_matrix() function for visualisation.  The change allows the Structure.test_atomic_fluctuations_gnuplot system test to pass.
+
* Enabled the gnuplot format for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  This uses the [http://www.nmr-relax.com/api/3.3/lib.plotting.api-module.html#correlation_matrix plotting API correlation_matrix() function] for visualisation.  The change allows the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_atomic_fluctuations_gnuplot Structure.test_atomic_fluctuations_gnuplot system test] to pass.
* Shifted the matrix output of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function] into lib.plotting.text.  The new lib.plotting.text module will be used by the relax library plotting API to output data into plain text format.  The current correlation_matrix() function, which has been added to the API correlation_matrix() function dictionary, simply has the file writing code of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  This significantly simplifies the user function.
+
* Shifted the matrix output of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function] into [http://www.nmr-relax.com/api/3.3/lib.plotting.text-module.html lib.plotting.text].  The new lib.plotting.text module will be used by the relax library plotting API to output data into plain text format.  The current [http://www.nmr-relax.com/api/3.3/lib.plotting.text-module.html#correlation_matrix correlation_matrix() function], which has been added to the API correlation_matrix() function dictionary, simply has the file writing code of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  This significantly simplifies the user function.
 
* More simplifications for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function] backend.
 
* More simplifications for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function] backend.
* Fix for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function] backend.  The pipe_control.structure.main.atomic_fluctuations() function no longer opens the output file.
+
* Fix for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function] backend.  The [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#atomic_fluctuations pipe_control.structure.main.atomic_fluctuations() function] no longer opens the output file.
* The gnuplot correlation_matrix() plotting API function now creates a text file of the data.  The lib.plotting.gnuplot.correlation_matrix() function now calls the lib.plotting.text.correlation_matrix() function prior to creating the gnuplot script.
+
* The [http://www.nmr-relax.com/api/3.3/lib.plotting.gnuplot-module.html#correlation_matrix gnuplot correlation_matrix() plotting API function] now creates a text file of the data.  The lib.plotting.gnuplot.correlation_matrix() function now calls the [http://www.nmr-relax.com/api/3.3/lib.plotting.text-module.html#correlation_matrix lib.plotting.text.correlation_matrix() function] prior to creating the gnuplot script.
* Significantly expanded the gnuplot script from via the correlation_matrix() plotting API function.  This is for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  The output terminal is now set to EPS, the colour map changed from the default to a blue-red map, labels have been added, the plot is now square, and comments are now included throughout the script to help a user hand modify it after creation.
+
* Significantly expanded the gnuplot script from via the [http://www.nmr-relax.com/api/3.3/lib.plotting.gnuplot-module.html#correlation_matrix correlation_matrix() plotting API function].  This is for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  The output terminal is now set to EPS, the colour map changed from the default to a blue-red map, labels have been added, the plot is now square, and comments are now included throughout the script to help a user hand modify it after creation.
* Improvement in the comments from the gnuplot correlation_matrix() plotting API function.
+
* Improvement in the comments from the [http://www.nmr-relax.com/api/3.3/lib.plotting.gnuplot-module.html#correlation_matrix gnuplot correlation_matrix() plotting API function].
* Updated the Structure.test_atomic_fluctuations_gnuplot system test.  This is for the gnuplot correlation_matrix() plotting API changes which affect the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
+
* Updated the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_atomic_fluctuations_gnuplot Structure.test_atomic_fluctuations_gnuplot system test].  This is for the [http://www.nmr-relax.com/api/3.3/lib.plotting.gnuplot-module.html#correlation_matrix gnuplot correlation_matrix() plotting API] changes which affect the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
* Docstring fixes for the Structure.test_atomic_fluctuations_gnuplot system test.  This was pointing to the [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd user function] instead of structure.atomic_fluctuations.
+
* Docstring fixes for the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_atomic_fluctuations_gnuplot Structure.test_atomic_fluctuations_gnuplot system test].  This was pointing to the [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd user function] instead of structure.atomic_fluctuations.
* Fixes and improvements for the gnuplot correlation_matrix() plotting API function.  This is for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  The "pm3d map" plot type is incorrect for such data type, so instead of using 'splot', 'plot' is being used instead.  The resultant EPS file is now much smaller.  The colour map has also been changed to one of the inbuilt ones for higher contrast.
+
* Fixes and improvements for the [http://www.nmr-relax.com/api/3.3/lib.plotting.gnuplot-module.html#correlation_matrix gnuplot correlation_matrix() plotting API function].  This is for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  The "pm3d map" plot type is incorrect for such data type, so instead of using 'splot', 'plot' is being used instead.  The resultant EPS file is now much smaller.  The colour map has also been changed to one of the inbuilt ones for higher contrast.
* Forced the gnuplot correlation_matrix plot to be square.  This is for the correlation_matrix() plotting API function used by the new [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
+
* Forced the [http://www.nmr-relax.com/api/3.3/lib.plotting.gnuplot-module.html#correlation_matrix gnuplot correlation_matrix] plot to be square.  This is for the correlation_matrix() plotting API function used by the new [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
* Updated the Structure.test_atomic_fluctuations_gnuplot system test.  This is for the changes of the gnuplot correlation_matrix() plotting API function used by the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
+
* Updated the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_atomic_fluctuations_gnuplot Structure.test_atomic_fluctuations_gnuplot system test].  This is for the changes of the [http://www.nmr-relax.com/api/3.3/lib.plotting.gnuplot-module.html#correlation_matrix gnuplot correlation_matrix() plotting API function] used by the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
* Docstring fix for the Structure.test_atomic_fluctuations system test.
+
* Docstring fix for the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_atomic_fluctuations Structure.test_atomic_fluctuations system test].
* Another docstring fix for the Structure.test_atomic_fluctuations system test.
+
* Another docstring fix for the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_atomic_fluctuations Structure.test_atomic_fluctuations system test].
* Created the Structure.test_atomic_fluctuations_angle system test.  This will be used to implement the mapping of inter-atomic vector angular fluctuations between structures via a new 'measure' keyword argument for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_atomic_fluctuations_angle Structure.test_atomic_fluctuations_angle system test].  This will be used to implement the mapping of inter-atomic vector angular fluctuations between structures via a new 'measure' keyword argument for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
* Implemented angular fluctuations for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  This adds the measure argument to the user function to allow either the default of 'distance' or the 'angle' setting to be chosen.  The implementation is confirmed by the Structure.test_atomic_fluctuations_angle system test which now passes.
+
* Implemented angular fluctuations for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  This adds the measure argument to the user function to allow either the default of 'distance' or the 'angle' setting to be chosen.  The implementation is confirmed by the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_atomic_fluctuations_angle Structure.test_atomic_fluctuations_angle system test] which now passes.
 
* Clean ups and speed ups of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  Duplicate calculations are now avoided, as the SD matrix is symmetric.
 
* Clean ups and speed ups of the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  Duplicate calculations are now avoided, as the SD matrix is symmetric.
 
* Description improvements and GUI layout fixes for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
 
* Description improvements and GUI layout fixes for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
 
* Added the 'parallax shift' measure to the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  The parallax shift is defined as the length of the average vector minus the interatomic vector.  It is similar to the angle measure however, importantly, it is independent of the distance between the two atoms.
 
* Added the 'parallax shift' measure to the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  The parallax shift is defined as the length of the average vector minus the interatomic vector.  It is similar to the angle measure however, importantly, it is independent of the distance between the two atoms.
* Updated the gnuplot scripts to be executable.  These are the scripts created by the gnuplot specific correlation_matrix() plotting API function.  The file is made executable and the script now starts with "#!/usr/bin/env gnuplot".
+
* Updated the gnuplot scripts to be executable.  These are the scripts created by the [http://www.nmr-relax.com/api/3.3/lib.plotting.gnuplot-module.html#correlation_matrix gnuplot specific correlation_matrix() plotting API function].  The file is made executable and the script now starts with "#!/usr/bin/env gnuplot".
* Created the Structure.test_atomic_fluctuations_parallax system test.  This is to demonstrate that the parallax shift fluctuations are not implemented correctly.
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_atomic_fluctuations_parallax Structure.test_atomic_fluctuations_parallax system test].  This is to demonstrate that the parallax shift fluctuations are not implemented correctly.
* Fix for the Structure.test_atomic_fluctuations_parallax system test.  The distance shifts need to be numbers, not vectors.
+
* Fix for the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_atomic_fluctuations_parallax Structure.test_atomic_fluctuations_parallax system test].  The distance shifts need to be numbers, not vectors.
 
* Proper implementation of the 'parallax shift' for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
 
* Proper implementation of the 'parallax shift' for the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].
 
* Improved the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function] documentation.  The fluctuation categories are now better explained.  And the 'parallax shift' option is now available in the GUI.
 
* Improved the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function] documentation.  The fluctuation categories are now better explained.  And the 'parallax shift' option is now available in the GUI.
 
* Fix for the parallax shift description in the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  The parallax shift is not quite orthogonal to the distance fluctuations.
 
* Fix for the parallax shift description in the [http://www.nmr-relax.com/manual/structure_atomic_fluctuations.html structure.atomic_fluctuations user function].  The parallax shift is not quite orthogonal to the distance fluctuations.
* Implemented ordinary_least_squares function the repeated auto-analysis.  Inspection of statistics books, shows that several authors does not recommend using regression through the origin (RTO).  From Joseph G. Eisenhauer, Regression through the Origin:  RTO residuals will usually have a nonzero mean, because forcing the regression line through the origin is generally inconsistent with the best fit; R square measures (for RTO) the proportion of the variability in the dependent variable "about the origin" explained by regression.  This cannot be compared to R square for models which include an intercept.  From "Experimental design and data analysis for biologists", G. P. Quinn, M. J. Keough: Minimum observed xi rarely extends to zero, and forcing our regression line through the origin not only involves extrapolating the regression line outside our data range but also assuming the relationship is linear outside this range (Cade & Terrell 1997, Neter et al. 1996); We recommend that it is better to have a model that fits the observed data well than one that goes through the origin but provides a worse fit to the observed data; residuals from the no-intercept model no longer sum to zero; usual partition of SSTotal into SSRegression and SSResidual does not work.
+
* Implemented [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_disp_repeat_cpmg-module.html#ordinary_least_squares ordinary_least_squares function] the [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_disp_repeat_cpmg-module.html repeated auto-analysis].  Inspection of statistics books, shows that several authors does not recommend using regression through the origin (RTO).  From Joseph G. Eisenhauer, Regression through the Origin:  RTO residuals will usually have a nonzero mean, because forcing the regression line through the origin is generally inconsistent with the best fit; R square measures (for RTO) the proportion of the variability in the dependent variable "about the origin" explained by regression.  This cannot be compared to R square for models which include an intercept.  From "Experimental design and data analysis for biologists", G. P. Quinn, M. J. Keough: Minimum observed xi rarely extends to zero, and forcing our regression line through the origin not only involves extrapolating the regression line outside our data range but also assuming the relationship is linear outside this range (Cade & Terrell 1997, Neter et al. 1996); We recommend that it is better to have a model that fits the observed data well than one that goes through the origin but provides a worse fit to the observed data; residuals from the no-intercept model no longer sum to zero; usual partition of SSTotal into SSRegression and SSResidual does not work.
 
* Added save state for test of bug 23186.  [https://gna.org/bugs/index.php?23186 Bug #23186: Error calculation of individual parameter &delta;&omega; from Monte-Carlo, is based on first spin].
 
* Added save state for test of bug 23186.  [https://gna.org/bugs/index.php?23186 Bug #23186: Error calculation of individual parameter &delta;&omega; from Monte-Carlo, is based on first spin].
* Added the system test Relax_disp.test_bug_23186_cluster_error_calc_dw which shows the failure of Monte Carlo simulations error calculations.  [https://gna.org/bugs/index.php?23186 Bug #23186: Error calculation of individual parameter &delta;&omega; from Monte-Carlo, is based on first spin].
+
* Added the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_bug_23186_cluster_error_calc_dw system test Relax_disp.test_bug_23186_cluster_error_calc_dw] which shows the failure of Monte Carlo simulations error calculations.  [https://gna.org/bugs/index.php?23186 Bug #23186: Error calculation of individual parameter &delta;&omega; from Monte-Carlo, is based on first spin].
 
* Added additional test for the r2a parameter.  [https://gna.org/bugs/index.php?23186 Bug #23186: Error calculation of individual parameter &delta;&omega; from Monte-Carlo, is based on first spin].
 
* Added additional test for the r2a parameter.  [https://gna.org/bugs/index.php?23186 Bug #23186: Error calculation of individual parameter &delta;&omega; from Monte-Carlo, is based on first spin].
 
* Attempt to implement the GUI test General.test_bug_23187_residue_delete_gui.  This will NOT catch the error.  [https://gna.org/bugs/index.php?23187 Bug #23187: Deleting residue in GUI, and then open spin viewer crashes relax].
 
* Attempt to implement the GUI test General.test_bug_23187_residue_delete_gui.  This will NOT catch the error.  [https://gna.org/bugs/index.php?23187 Bug #23187: Deleting residue in GUI, and then open spin viewer crashes relax].
 
* Added test for spin independent error of k<sub>AB</sub>.  [https://gna.org/bugs/index.php?23186 Bug #23186: Error calculation of individual parameter &delta;&omega; from Monte-Carlo, is based on first spin].
 
* Added test for spin independent error of k<sub>AB</sub>.  [https://gna.org/bugs/index.php?23186 Bug #23186: Error calculation of individual parameter &delta;&omega; from Monte-Carlo, is based on first spin].
* Fix for the showing of the spin viewer window in the GUI tests.  The show_tree() method of the main GUI window class was not calling the custom self.spin_viewer.Show() method, as required to set up the observer objects required to keep the spin viewer window updated.  The value of status.show_gui was blocking this.  Instead the show argument of this Show() method is being set to status.show_gui to allow the method to always be executed.
+
* Fix for the showing of the spin viewer window in the GUI tests.  The [http://www.nmr-relax.com/api/3.3/gui.relax_gui.Main-class.html#show_tree show_tree() method] of the [http://www.nmr-relax.com/api/3.3/gui.relax_gui.Main-class.html main GUI window class] was not calling the [http://www.nmr-relax.com/api/3.3/gui.spin_viewer.frame.Spin_view_window-class.html#Show custom self.spin_viewer.Show() method], as required to set up the observer objects required to keep the spin viewer window updated.  The value of status.show_gui was blocking this.  Instead the show argument of this Show() method is being set to status.show_gui to allow the method to always be executed.
 
* Updated the main relax copyright notices for 2015.
 
* Updated the main relax copyright notices for 2015.
 
* The copyright notice in the GUI now uses the info box object.  This is for the status bar at the bottom of the GUI window.  This removes one place where copyright notices needs to be updated each year.  This status text will then be updated whenever the info.py file has been updated.
 
* The copyright notice in the GUI now uses the info box object.  This is for the status bar at the bottom of the GUI window.  This removes one place where copyright notices needs to be updated each year.  This status text will then be updated whenever the info.py file has been updated.
 
* Updated the copyright notice for 2015 in the GUI splash screen graphic.
 
* Updated the copyright notice for 2015 in the GUI splash screen graphic.
* Racing fixes for the General.test_bug_23187_residue_delete_gui GUI test.  Some GUI interpreter flush() calls have been added to avoid racing in the GUI.  The GUI tests are so quick that the asynchronous user function call will be processed at the same time as the spin viewer window is being created, causing fatal segmentation faults in the test suite.
+
* Racing fixes for the General.test_bug_23187_residue_delete_gui GUI test.  Some [http://www.nmr-relax.com/api/3.3/gui.interpreter.Interpreter-class.html#flush GUI interpreter flush()] calls have been added to avoid racing in the GUI.  The GUI tests are so quick that the asynchronous user function call will be processed at the same time as the spin viewer window is being created, causing fatal segmentation faults in the test suite.
* More robustness for the spin viewer GUI window prune_*() methods.  When no spin data exists, the self.tree.GetItemPyData(key) call can return None.  This is now being checked for and such None values are being skipped in the prune_mol(), prune_res() and prune_spin() methods.  The problem was found in the Mf.test_bug_20479_gui_final_pipe system test when running the command: for i in {1..10}; do ./relax --gui-tests --time -d &>> gui_tests.log; done
+
* More robustness for the spin viewer GUI window prune_*() methods.  When no spin data exists, the self.tree.GetItemPyData(key) call can return None.  This is now being checked for and such None values are being skipped in the [http://www.nmr-relax.com/api/3.3/gui.spin_viewer.tree.Mol_res_spin_tree-class.html#prune_mol prune_mol()], [http://www.nmr-relax.com/api/3.3/gui.spin_viewer.tree.Mol_res_spin_tree-class.html#prune_res prune_res()] and [http://www.nmr-relax.com/api/3.3/gui.spin_viewer.tree.Mol_res_spin_tree-class.html#prune_spin prune_spin()] methods.  The problem was found in the [http://www.nmr-relax.com/api/3.3/test_suite.gui_tests.model_free.Mf-class.html#test_bug_20479_gui_final_pipe Mf.test_bug_20479_gui_final_pipe system test] when running the command: for i in {1..10}; do ./relax --gui-tests --time -d &>> gui_tests.log; done
* More robustness for the spin viewer GUI window update_*() methods.  When no spin data exists, the self.tree.GetItemPyData(key) call can return None.  This is now being checked for and such None values are being skipped in the update_mol(), update_res() and update_spin() methods.  The problem was found in the Mf.test_bug_20479_gui_final_pipe system test when running the command: for i in {1..10}; do ./relax --gui-tests --time -d &>> gui_tests.log; done
+
* More robustness for the spin viewer GUI window update_*() methods.  When no spin data exists, the self.tree.GetItemPyData(key) call can return None.  This is now being checked for and such None values are being skipped in the [http://www.nmr-relax.com/api/3.3/gui.spin_viewer.tree.Mol_res_spin_tree-class.html#update_mol update_mol()], [http://www.nmr-relax.com/api/3.3/gui.spin_viewer.tree.Mol_res_spin_tree-class.html#update_res update_res()] and [http://www.nmr-relax.com/api/3.3/gui.spin_viewer.tree.Mol_res_spin_tree-class.html#update_spin update_spin()] methods.  The problem was found in the [http://www.nmr-relax.com/api/3.3/test_suite.gui_tests.model_free.Mf-class.html#test_bug_20479_gui_final_pipe Mf.test_bug_20479_gui_final_pipe system test] when running the command: for i in {1..10}; do ./relax --gui-tests --time -d &>> gui_tests.log; done
* More robustness for the spin viewer GUI window prune_*() methods.  The data returned from the self.tree.GetItemPyData(key) call can in rare racing cases not contain the 'id' key.  This is now being checked for and are being skipped in the prune_mol(), prune_res() and prune_spin() methods.  The problem was found in the Mf.test_bug_20479_gui_final_pipe system test when running the command: for i in {1..10}; do ./relax --gui-tests --time -d &>> gui_tests.log; done
+
* More robustness for the spin viewer GUI window prune_*() methods.  The data returned from the self.tree.GetItemPyData(key) call can in rare racing cases not contain the 'id' key.  This is now being checked for and are being skipped in the [http://www.nmr-relax.com/api/3.3/gui.spin_viewer.tree.Mol_res_spin_tree-class.html#prune_mol prune_mol()], [http://www.nmr-relax.com/api/3.3/gui.spin_viewer.tree.Mol_res_spin_tree-class.html#prune_res prune_res()] and [http://www.nmr-relax.com/api/3.3/gui.spin_viewer.tree.Mol_res_spin_tree-class.html#prune_spin prune_spin()] methods.  The problem was found in the [http://www.nmr-relax.com/api/3.3/test_suite.gui_tests.model_free.Mf-class.html#test_bug_20479_gui_final_pipe Mf.test_bug_20479_gui_final_pipe system test] when running the command: for i in {1..10}; do ./relax --gui-tests --time -d &>> gui_tests.log; done
* More robustness for the spin viewer GUI window update_*() methods.  The data returned from the self.tree.GetItemPyData(key) call can in rare racing cases not contain the 'id' key.  This is now being checked for and are being skipped in the update_mol(), update_res() and update_spin() methods.  The problem was found in the Mf.test_bug_20479_gui_final_pipe system test when running the command: for i in {1..10}; do ./relax --gui-tests --time -d &>> gui_tests.log; done
+
* More robustness for the spin viewer GUI window update_*() methods.  The data returned from the self.tree.GetItemPyData(key) call can in rare racing cases not contain the 'id' key.  This is now being checked for and are being skipped in the [http://www.nmr-relax.com/api/3.3/gui.spin_viewer.tree.Mol_res_spin_tree-class.html#update_mol update_mol()], [http://www.nmr-relax.com/api/3.3/gui.spin_viewer.tree.Mol_res_spin_tree-class.html#update_res update_res()] and [http://www.nmr-relax.com/api/3.3/gui.spin_viewer.tree.Mol_res_spin_tree-class.html#update_spin update_spin()] methods.  The problem was found in the [http://www.nmr-relax.com/api/3.3/test_suite.gui_tests.model_free.Mf-class.html#test_bug_20479_gui_final_pipe Mf.test_bug_20479_gui_final_pipe system tes]t when running the command: for i in {1..10}; do ./relax --gui-tests --time -d &>> gui_tests.log; done
 
* Created a development document for catching segfaults and other errors in the GUI tests.  This is needed as not all wxPython errors can be caught in the Python unittest framework.
 
* Created a development document for catching segfaults and other errors in the GUI tests.  This is needed as not all wxPython errors can be caught in the Python unittest framework.
 
* Small whitespace formatting fix for the titles printed by the [http://www.nmr-relax.com/manual/align_tensor_display.html align_tensor.display user function].
 
* Small whitespace formatting fix for the titles printed by the [http://www.nmr-relax.com/manual/align_tensor_display.html align_tensor.display user function].
Line 200: Line 200:
 
* Improvements for the [http://www.nmr-relax.com/manual/rdc_corr_plot.html rdc.corr_plot user function] - the plot range is now determined by the data.
 
* Improvements for the [http://www.nmr-relax.com/manual/rdc_corr_plot.html rdc.corr_plot user function] - the plot range is now determined by the data.
 
* Added save state for testing implementation of error analysis.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
 
* Added save state for testing implementation of error analysis.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Simplification of system test Relax_disp.test_task_7882_monte_carlo_std_residual, to just test the creation of Monte-Carlo data where errors are drawn from the reduced &chi;<sup>2</sup> distribution.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
+
* Simplification of [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_task_7882_monte_carlo_std_residual system test Relax_disp.test_task_7882_monte_carlo_std_residual], to just test the creation of Monte-Carlo data where errors are drawn from the reduced &chi;<sup>2</sup> distribution.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
 
* Extension of the [http://www.nmr-relax.com/manual/monte_carlo_create_data.html monte_carlo.create_data user function] to draw errors from the reduced &chi;<sup>2</sup> Gauss distribution as found by best fit.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
 
* Extension of the [http://www.nmr-relax.com/manual/monte_carlo_create_data.html monte_carlo.create_data user function] to draw errors from the reduced &chi;<sup>2</sup> Gauss distribution as found by best fit.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Adding to backend of pipe_control.error_analysis(), to modify data point as error drawn from the reduced &chi;<sup>2</sup> Gauss distribution.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
+
* Adding to backend of [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html pipe_control.error_analysis()], to modify data point as error drawn from the reduced &chi;<sup>2</sup> Gauss distribution.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
 
* Adding empty API method to return errors from the reduced &chi;<sup>2</sup> distribution.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
 
* Adding empty API method to return errors from the reduced &chi;<sup>2</sup> distribution.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
 
* Added API function in relaxation dispersion to return error structure from the reduced &chi;<sup>2</sup> distribution.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
 
* Added API function in relaxation dispersion to return error structure from the reduced &chi;<sup>2</sup> distribution.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Temporary test of making a confidence interval as described in fitting guide.  This is system test Relax_disp.x_test_task_7882_kex_conf, which is not activated by default.  Running the test, interestingely shows, there is a possibility for a lower global k<sub>ex</sub>.  But the value only differ from k<sub>ex</sub>=1826 to k<sub>ex</sub>=1813.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
+
* Temporary test of making a confidence interval as described in fitting guide.  This is [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#x_test_task_7882_kex_conf system test Relax_disp.x_test_task_7882_kex_conf], which is not activated by default.  Running the test, interestingly shows, there is a possibility for a lower global k<sub>ex</sub>.  But the value only differ from k<sub>ex</sub>=1826 to k<sub>ex</sub>=1813.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Change to system test Relax_disp.x_test_task_7882_kex_conf().  This is just a temporary system test, to check for local minima.  This is method in regression book of Graphpad: http://www.graphpad.com/faq/file/Prism4RegressionBook.pdf Page: 109-111.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
+
* Change to [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#x_test_task_7882_kex_conf system test Relax_disp.x_test_task_7882_kex_conf()].  This is just a temporary system test, to check for local minima.  This is method in regression book of Graphpad: http://www.graphpad.com/faq/file/Prism4RegressionBook.pdf Page: 109-111.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
 
* Raising an error, if the [[R2eff]] model is used, and drawing errors from the fit.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
 
* Raising an error, if the [[R2eff]] model is used, and drawing errors from the fit.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* To system test Relax_disp.test_task_7882_monte_carlo_std_residual(), adding test for raise of errors, if the [[R2eff]] model is selected.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
+
* To [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_task_7882_monte_carlo_std_residual system test Relax_disp.test_task_7882_monte_carlo_std_residual()], adding test for raise of errors, if the [[R2eff]] model is selected.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Added test of argument "distribution" in pipe_control.error_analysis.monte_carlo_create_data().  This is to make sure that a wrong argument is not passed into the function.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
+
* Added test of argument "distribution" in [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html#monte_carlo_create_data pipe_control.error_analysis.monte_carlo_create_data()].  This is to make sure that a wrong argument is not passed into the function.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
 
* Extended the [http://www.nmr-relax.com/manual/monte_carlo_create_data.html monte_carlo.create_data user function], to allow for the definition of the STD to use in Gauss distribution.  This is for creation of Monte-Carlo simulations, where one has perhaps gained information about the expected errors of the data points, which is not measured.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
 
* Extended the [http://www.nmr-relax.com/manual/monte_carlo_create_data.html monte_carlo.create_data user function], to allow for the definition of the STD to use in Gauss distribution.  This is for creation of Monte-Carlo simulations, where one has perhaps gained information about the expected errors of the data points, which is not measured.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* In backend pipe_control.error_analysis.monte_carlo_create_data() added the argument 'fixed_error' to allow for fixed input of error to the Gauss distribution.  Inserted a range of checks, to make sure function behaves as expected.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
+
* In backend [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html#monte_carlo_create_data pipe_control.error_analysis.monte_carlo_create_data()] added the argument 'fixed_error' to allow for fixed input of error to the Gauss distribution.  Inserted a range of checks, to make sure function behaves as expected.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Added to pipe_control.error_analysis.monte_carlo_create_data() the creation of data points for a fixed distribution.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
+
* Added to [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html#monte_carlo_create_data pipe_control.error_analysis.monte_carlo_create_data()] the creation of data points for a fixed distribution.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* To system test Relax_disp.test_task_7882_monte_carlo_std_residual(), added tests for creation of Monte-Carlo data by different methods.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
+
* To [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_task_7882_monte_carlo_std_residual system test Relax_disp.test_task_7882_monte_carlo_std_residual()], added tests for creation of Monte-Carlo data by different methods.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* In pipe_control.error_analysis.monte_carlo_create_data(), if data is of list type or ndarray, then modify the data point according to the fixed error if the distribution is set to 'fixed'.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
+
* In [http://www.nmr-relax.com/api/3.3/pipe_control.error_analysis-module.html#monte_carlo_create_data pipe_control.error_analysis.monte_carlo_create_data()], if data is of list type or ndarray, then modify the data point according to the fixed error if the distribution is set to 'fixed'.  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
 
* Expanded the STD acronym, to the meaning of standard deviation.  This is in the [http://www.nmr-relax.com/manual/monte_carlo_create_data.html monte_carlo.create_data user function].  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
 
* Expanded the STD acronym, to the meaning of standard deviation.  This is in the [http://www.nmr-relax.com/manual/monte_carlo_create_data.html monte_carlo.create_data user function].  [https://gna.org/task/?7882 Task #7882: Implement Monte-Carlo simulation whereby errors are generated with width of standard deviation or residuals].
* Added a RelaxWarning printout to the dep_check module if wxPython 2.8 or less is encountered.  This follows from http://thread.gmane.org/gmane.science.nmr.relax.devel/7502.  The warning text is simply written to STDERR as relax starts.
+
* Added a RelaxWarning printout to the [http://www.nmr-relax.com/api/3.3/dep_check-module.html dep_check module] if wxPython 2.8 or less is encountered.  This follows from http://thread.gmane.org/gmane.science.nmr.relax.devel/7502.  The warning text is simply written to STDERR as relax starts.
 
* Updated the wxPython version in the relax manual to be 2.9 or higher.  This is in the section http://www.nmr-relax.com/manual/Dependencies.html.
 
* Updated the wxPython version in the relax manual to be 2.9 or higher.  This is in the section http://www.nmr-relax.com/manual/Dependencies.html.
 
* The GUI tests are now skipped for wxPython version <= 2.8 due to bugs causing fatal segfaults.  This follows from http://thread.gmane.org/gmane.science.nmr.relax.devel/7502.  These wxPython versions are simply too buggy.
 
* The GUI tests are now skipped for wxPython version <= 2.8 due to bugs causing fatal segfaults.  This follows from http://thread.gmane.org/gmane.science.nmr.relax.devel/7502.  These wxPython versions are simply too buggy.
* Fix for the Relax_disp.test_bug_23186_cluster_error_calc_dw system test on 32-bit and Python <= 2.5 systems.
+
* Fix for the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_disp.Relax_disp-class.html#test_bug_23186_cluster_error_calc_dw Relax_disp.test_bug_23186_cluster_error_calc_dw system test] on 32-bit and Python <= 2.5 systems.
 
* Better error handling in the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  If no common atoms can be found between the structures, a RelaxError is now raised for better user feedback.
 
* Better error handling in the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  If no common atoms can be found between the structures, a RelaxError is now raised for better user feedback.
* Created an empty lib.sequence_alignment relax library package.  This may be used in the future for implementing more advanced structural alignments (the current method is simply to skip missing atoms, sequence numbering changes are not handled).
+
* Created an empty [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment-module.html lib.sequence_alignment relax library package].  This may be used in the future for implementing more advanced structural alignments (the current method is simply to skip missing atoms, sequence numbering changes are not handled).
* Added the sequence_alignment package to the lib package __all__ list.
+
* Added the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment-module.html sequence_alignment package] to the lib package __all__ list.
* Added the unit testing infrastructure for the new lib.sequence_alignment package.
+
* Added the unit testing infrastructure for the new [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment-module.html lib.sequence_alignment package].
* Implementation of the Needleman-Wunsch sequence alignment algorithm.  This is located in the lib.sequence_alignment.needleman_wunsch module.  This is implemented as described in the Wikipedia article https://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm.
+
* Implementation of the Needleman-Wunsch sequence alignment algorithm.  This is located in the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.needleman_wunsch-module.html lib.sequence_alignment.needleman_wunsch module].  This is implemented as described in the Wikipedia article https://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm.
* Created a unit test for checking the Needleman-Wunsch sequence alignment algorithm.  This uses the DNA data from the example in the Wikipedia article at https://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm.  The test shows that the implementation of the lib.sequence_alignment.needleman_wunsch.needleman_wunsch_align() function is correct.
+
* Created a unit test for checking the Needleman-Wunsch sequence alignment algorithm.  This uses the DNA data from the example in the Wikipedia article at https://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm.  The test shows that the implementation of the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.needleman_wunsch-module.html#needleman_wunsch_align lib.sequence_alignment.needleman_wunsch.needleman_wunsch_align() function] is correct.
* Created the lib.sequence_alignment.substitution_matrices module.  This is for storing substitution matrices for use in sequence alignment.  The module currently only includes the BLOSSUM62 matrix.
+
* Created the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html lib.sequence_alignment.substitution_matrices module].  This is for storing substitution matrices for use in sequence alignment.  The module currently only includes the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html#BLOSUM62 BLOSSUM62 matrix].
* Corrected the spelling of the BLOSUM62 matrix in lib.sequence_alignment.substitution_matrices.
+
* Corrected the spelling of the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html#BLOSUM62 BLOSUM62 matrix] in [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html lib.sequence_alignment.substitution_matrices].
* Fix for the lib.sequence_alignment.substitution_matrices.BLOSUM62_SEQ string.
+
* Fix for the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html#BLOSUM62_SEQ lib.sequence_alignment.substitution_matrices.BLOSUM62_SEQ string].
* Modification of the Needleman-Wunsch sequence alignment algorithm implementation.  This is in the lib.sequence_alignment.needleman_wunsch functions.  Scoring matrices are now supported, as well as a user supplied non-integer gap penalty.  The algorithm for walking through the traceback matrix has been fixed for a bug under certain conditions.
+
* Modification of the Needleman-Wunsch sequence alignment algorithm implementation.  This is in the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.needleman_wunsch-module.html lib.sequence_alignment.needleman_wunsch] functions.  Scoring matrices are now supported, as well as a user supplied non-integer gap penalty.  The algorithm for walking through the traceback matrix has been fixed for a bug under certain conditions.
* Created the lib.sequence_alignment.align_protein module for the sequence alignment of proteins.  This general module currently implements the align_pairwise() function for the pairwise alignment of protein sequences.  It provides the infrastructure for specifying gap starting and extension penalties, choosing the alignment algorithm (currently only the Needleman-Wunsch sequence alignment algorithm as 'NW70'), and choosing the substitution matrix (currently only BLOSUM62).  The function provides lots of printouts for user feedback.
+
* Created the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.align_protein-module.html lib.sequence_alignment.align_protein module] for the sequence alignment of proteins.  This general module currently implements the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.align_protein-module.html#align_pairwise align_pairwise() function] for the pairwise alignment of protein sequences.  It provides the infrastructure for specifying gap starting and extension penalties, choosing the alignment algorithm (currently only the Needleman-Wunsch sequence alignment algorithm as 'NW70'), and choosing the substitution matrix (currently only BLOSUM62).  The function provides lots of printouts for user feedback.
* Created a unit test for lib.sequence_alignment.align_protein.align_pairwise().  This is to test the pairwise alignment of two protein sequences using the Needleman-Wunsch sequence alignment algorithm, BLOSUM62 substitution matrix, and gap penalty of 10.0.
+
* Created a unit test for [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.align_protein-module.html#align_pairwise lib.sequence_alignment.align_protein.align_pairwise()].  This is to test the pairwise alignment of two protein sequences using the Needleman-Wunsch sequence alignment algorithm, BLOSUM62 substitution matrix, and gap penalty of 10.0.
* Added more printouts to the Test_align_protein.test_align_pairwise unit test.  This is the test of the module _lib._sequence_alignment.test_align_protein.
+
* Added more printouts to the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._lib._sequence_alignment.test_align_protein.Test_align_protein-class.html#test_align_pairwise Test_align_protein.test_align_pairwise unit test].  This is the test of the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._lib._sequence_alignment.test_align_protein-module.html module _lib._sequence_alignment.test_align_protein].
 
* Fix for the Needleman-Wunsch sequence alignment algorithm when the substitution matrix is absent.
 
* Fix for the Needleman-Wunsch sequence alignment algorithm when the substitution matrix is absent.
* The lib.sequence_alignment.align_protein.align_pairwise() function now returns data.  This includes both alignment strings as well as the gap matrix.
+
* The [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.align_protein-module.html#align_pairwise lib.sequence_alignment.align_protein.align_pairwise() function] now returns data.  This includes both alignment strings as well as the gap matrix.
* Annotated the BLOSUM62 substitution matrix with the amino acid codes for easy reading.
+
* Annotated the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html#BLOSUM62 BLOSUM62 substitution matrix] with the amino acid codes for easy reading.
* Updated the gap penalties in the Test_align_protein.test_align_pairwise unit test.  This is from the unit test module _lib._sequence_alignment.test_align_protein.
+
* Updated the gap penalties in the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._lib._sequence_alignment.test_align_protein.Test_align_protein-class.html#test_align_pairwise Test_align_protein.test_align_pairwise unit test].  This is from the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._lib._sequence_alignment.test_align_protein-module.html unit test module _lib._sequence_alignment.test_align_protein].
* Modified the Needleman-Wunsch sequence alignment algorithm.  The previous attempt was buggy.  The algorithm has been modified to match the logic of the GPL licenced EMBOSS software (http://emboss.sourceforge.net/) to allow for gap opening and extension penalties, as well as end penalties.  No code was copied, rather the algorithm for creating the scoring and penalty matrices, as well as the traceback matrix.
+
* Modified the Needleman-Wunsch sequence alignment algorithm.  The previous attempt was buggy.  The algorithm has been modified to match the logic of the GPL licenced [http://emboss.sourceforge.net/ EMBOSS software] to allow for gap opening and extension penalties, as well as end penalties.  No code was copied, rather the algorithm for creating the scoring and penalty matrices, as well as the traceback matrix.
* Added a DNA similarity matrix to lib.sequence_alignment.substitution_matrices.
+
* Added a DNA similarity matrix to [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html lib.sequence_alignment.substitution_matrices].
* Added sanity checks to the Needleman-Wunsch sequence alignment algorithm.  The residues of both sequences are now checked in needleman_wunsch_align() to make sure that they are present in the substitution matrix.
+
* Added sanity checks to the Needleman-Wunsch sequence alignment algorithm.  The residues of both sequences are now checked in [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.needleman_wunsch-module.html#needleman_wunsch_align needleman_wunsch_align()] to make sure that they are present in the substitution matrix.
* Added the NUC 4.4 nucleotide substitution matrix from ftp://ftp.ncbi.nih.gov/blast/matrices/.  Uracil was added to the table as a copy to T.
+
* Added the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html#NUC_4_4 NUC 4.4 nucleotide substitution matrix] from ftp://ftp.ncbi.nih.gov/blast/matrices/.  Uracil was added to the table as a copy to T.
* Added the header from ftp://ftp.ncbi.nih.gov/blast/matrices/BLOSUM62.  This is to document the BLOSUM62 substitution matrix.
+
* Added the header from ftp://ftp.ncbi.nih.gov/blast/matrices/BLOSUM62.  This is to document the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html#BLOSUM62 BLOSUM62 substitution matrix].
* Added the PAM 250 amino acid substitution matrix.  This was taken from ftp://ftp.ncbi.nih.gov/blast/matrices/PAM250 and added to lib.sequence_alignment.substitution_matrices.PAM250.
+
* Added the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html#PAM250 PAM 250 amino acid substitution matrix].  This was taken from ftp://ftp.ncbi.nih.gov/blast/matrices/PAM250 and added to lib.sequence_alignment.substitution_matrices.PAM250.
* Modified the Test_needleman_wunsch.test_needleman_wunsch_align_DNA unit test to pass.  This is from the unit test module _lib._sequence_alignment.test_needleman_wunsch.  The DNA sequences were simplified so that the behaviour can be better predicted.
+
* Modified the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._lib._sequence_alignment.test_needleman_wunsch.Test_needleman_wunsch-class.html#test_needleman_wunsch_align_DNA Test_needleman_wunsch.test_needleman_wunsch_align_DNA unit test] to pass.  This is from the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._lib._sequence_alignment.test_needleman_wunsch-module.html unit test module _lib._sequence_alignment.test_needleman_wunsch].  The DNA sequences were simplified so that the behaviour can be better predicted.
* Created the Test_needleman_wunsch.test_needleman_wunsch_align_NUC_4_4 unit test.  This is in the unit test module _lib._sequence_alignment.test_needleman_wunsch.  This tests the Needleman-Wunsch sequence alignment for two DNA sequences using the NUC 4.4 matrix.
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._lib._sequence_alignment.test_needleman_wunsch.Test_needleman_wunsch-class.html#test_needleman_wunsch_align_NUC_4_4 Test_needleman_wunsch.test_needleman_wunsch_align_NUC_4_4 unit test].  This is in the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._lib._sequence_alignment.test_needleman_wunsch-module.html unit test module _lib._sequence_alignment.test_needleman_wunsch].  This tests the Needleman-Wunsch sequence alignment for two DNA sequences using the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html#NUC_4_4 NUC 4.4 matrix].
* Created a unit test for demonstrating a failure in the Needleman-Wunsch sequence alignment algorithm.  The test is Test_needleman_wunsch.test_needleman_wunsch_align_NUC_4_4b from the _lib._sequence_alignment.test_needleman_wunsch module.  The problem is that the start of the alignment is truncated if any gaps are present.
+
* Created a unit test for demonstrating a failure in the Needleman-Wunsch sequence alignment algorithm.  The test is [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._lib._sequence_alignment.test_needleman_wunsch.Test_needleman_wunsch-class.html#test_needleman_wunsch_align_NUC_4_4b Test_needleman_wunsch.test_needleman_wunsch_align_NUC_4_4b] from the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._lib._sequence_alignment.test_needleman_wunsch-module.html _lib._sequence_alignment.test_needleman_wunsch module].  The problem is that the start of the alignment is truncated if any gaps are present.
 
* Fix for the Needleman-Wunsch sequence alignment algorithm.  The start of the sequences are no longer truncated when starting gaps are encountered.
 
* Fix for the Needleman-Wunsch sequence alignment algorithm.  The start of the sequences are no longer truncated when starting gaps are encountered.
* The needleman_wunsch_align() function now accepts the end gap penalty arguments.  These are passed onto the needleman_wunsch_matrix() function.
+
* The [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.needleman_wunsch-module.html#needleman_wunsch_align needleman_wunsch_align() function] now accepts the end gap penalty arguments.  These are passed onto the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.needleman_wunsch-module.html#needleman_wunsch_matrix needleman_wunsch_matrix() function].
* Added the end gap penalty arguments to lib.sequence_alignment.align_protein.align_pairwise().
+
* Added the end gap penalty arguments to [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.align_protein-module.html#align_pairwise lib.sequence_alignment.align_protein.align_pairwise()].
* Created the Structure.test_align_CaM_BLOSUM62 system test.  This will be used for expanding the functionality of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] to perform true sequence alignment via the new lib.sequence_alignment package.  The test aligns 3 calmodulin (CaM) structures from different organisms, hence the sequence numbering is different and the current [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] design fails.  The [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] has been expanded in the test to include a number of arguments for advanced sequence alignment.
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_align_CaM_BLOSUM62 Structure.test_align_CaM_BLOSUM62 system test].  This will be used for expanding the functionality of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] to perform true sequence alignment via the new [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment-module.html lib.sequence_alignment package].  The test aligns 3 calmodulin (CaM) structures from different organisms, hence the sequence numbering is different and the current [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] design fails.  The [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] has been expanded in the test to include a number of arguments for advanced sequence alignment.
* Added support for the PAM250 substitution matrix to the protein pairwise sequence alignment function.  This is the function lib.sequence_alignment.align_protein.align_pairwise().
+
* Added support for the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html#PAM250 PAM250 substitution matrix] to the protein pairwise sequence alignment function.  This is the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.align_protein-module.html#align_pairwise function lib.sequence_alignment.align_protein.align_pairwise()].
 
* Bug fix for the Needleman-Wunsch sequence alignment algorithm.  Part of the scoring system was functioning incorrectly when the gap penalty scores were non-integer, as some scores were being stored in an integer array.  Now the array is a float array.
 
* Bug fix for the Needleman-Wunsch sequence alignment algorithm.  Part of the scoring system was functioning incorrectly when the gap penalty scores were non-integer, as some scores were being stored in an integer array.  Now the array is a float array.
* Created the Test_align_protein.test_align_pairwise_PAM250 unit test.  This is in the unit test module _lib._sequence_alignment.test_align_protein.  It checks the protein alignment function lib.sequence_alignment.align_protein.align_pairwise() together with the PAM250 substitution matrix.
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._lib._sequence_alignment.test_align_protein.Test_align_protein-class.html#test_align_pairwise_PAM250 Test_align_protein.test_align_pairwise_PAM250 unit test].  This is in the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._lib._sequence_alignment.test_align_protein-module.html  unit test module _lib._sequence_alignment.test_align_protein].  It checks the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.align_protein-module.html#align_pairwise protein alignment function lib.sequence_alignment.align_protein.align_pairwise()] together with the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html#PAM250 PAM250 substitution matrix].
* Small docstring expansion for lib.sequence_alignment.align_protein.align_pairwise().
+
* Small docstring expansion for [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.align_protein-module.html#align_pairwise lib.sequence_alignment.align_protein.align_pairwise()].
 
* Added the sequence alignment arguments to the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] front end.  This includes the 'matrix', 'gap_open_penalty', 'gap_extend_penalty', 'end_gap_open_penalty', and 'end_gap_extend_penalty' arguments.  The 'algorithm' argument has not been added to save room, as there is only one choice of 'NW70'.  A paragraph has been added to the user function description to explain the sequence alignment part of the user function.
 
* Added the sequence alignment arguments to the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function] front end.  This includes the 'matrix', 'gap_open_penalty', 'gap_extend_penalty', 'end_gap_open_penalty', and 'end_gap_extend_penalty' arguments.  The 'algorithm' argument has not been added to save room, as there is only one choice of 'NW70'.  A paragraph has been added to the user function description to explain the sequence alignment part of the user function.
 
* Added the sequence alignment arguments to the back end of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  This is to allow the code in trunk to be functional before the sequence alignment before superimposition has been implemented.
 
* Added the sequence alignment arguments to the back end of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  This is to allow the code in trunk to be functional before the sequence alignment before superimposition has been implemented.
 
* Removed the 'algorithm' argument from the Structure.test_align_CaM_BLOSUM62 system test script.  This is for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  The argument has not been implemented to save room in the GUI, and as 'NW70' is currently the only choice.
 
* Removed the 'algorithm' argument from the Structure.test_align_CaM_BLOSUM62 system test script.  This is for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  The argument has not been implemented to save room in the GUI, and as 'NW70' is currently the only choice.
 
* The sequence alignment arguments are now passed all the way to the internal structural object backend.  These are the arguments of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].
 
* The sequence alignment arguments are now passed all the way to the internal structural object backend.  These are the arguments of the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].
* Created the lib.sequence.aa_codes_three_to_one() function.  The lib.sequence module now contains the AA_CODES dictionary which is a translation table for the 3 letter amino acid codes to the one letter codes.  The new aa_codes_three_to_one() function performs the conversion.
+
* Created the [http://www.nmr-relax.com/api/3.3/lib.sequence-module.html#aa_codes_three_to_one lib.sequence.aa_codes_three_to_one() function].  The [http://www.nmr-relax.com/api/3.3/lib.sequence-module.html lib.sequence module] now contains the [http://www.nmr-relax.com/api/3.3/lib.sequence-module.html#AA_CODES AA_CODES dictionary] which is a translation table for the 3 letter amino acid codes to the one letter codes.  The new [http://www.nmr-relax.com/api/3.3/lib.sequence-module.html#aa_codes_three_to_one aa_codes_three_to_one() function] performs the conversion.
* Implemented the internal structural object MolContainer.loop_residues() method.  This generator method is used to quickly loop over all residues of the molecule.
+
* Implemented the internal structural object [http://www.nmr-relax.com/api/3.3/lib.structure.internal.molecules.MolContainer-class.html#loop_residues MolContainer.loop_residues() method].  This generator method is used to quickly loop over all residues of the molecule.
* Implemented the internal structural object one_letter_codes() method.  This will create a string of one letter residue codes for the given molecule.  Only proteins are currently supported.  This method uses the new lib.sequence.aa_codes_three_to_one() relax library function.
+
* Implemented the internal structural object [http://www.nmr-relax.com/api/3.3/lib.structure.internal.object.Internal-class.html#one_letter_codes one_letter_codes() method].  This will create a string of one letter residue codes for the given molecule.  Only proteins are currently supported.  This method uses the new [http://www.nmr-relax.com/api/3.3/lib.sequence-module.html#aa_codes_three_to_one lib.sequence.aa_codes_three_to_one() relax library function].
* Sequence alignment is now performed in [http://www.nmr-relax.com/api/3.3/lib.structure.internal.coordinates-module.html#assemble_coord_array lib.structure.internal.coordinates.assemble_coord_array()].  This is a pairwise alignment to the first molecule of the list.  The alignments are not yet used for anything.  The assemble_coord_array() function is used by the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function], as well as a few other structure user functions.
+
* Sequence alignment is now performed in [http://www.nmr-relax.com/api/3.3/lib.structure.internal.coordinates-module.html#assemble_coord_array lib.structure.internal.coordinates.assemble_coord_array()].  This is a pairwise alignment to the first molecule of the list.  The alignments are not yet used for anything.  The [http://www.nmr-relax.com/api/3.3/lib.structure.internal.coordinates-module.html#assemble_coord_array assemble_coord_array() function] is used by the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function], as well as a few other structure user functions.
* Fix for the lib.sequence.aa_codes_three_to_one() function.  Non-standard residues are now converted to the '*' code.  The value of 'X' prevents any type of alignment of a stretch of X residues as X to X in both the BLOSUM62 and PAM250 substitution matrices are set to -1.
+
* Fix for the [http://www.nmr-relax.com/api/3.3/lib.sequence-module.html#aa_codes_three_to_one lib.sequence.aa_codes_three_to_one() function].  Non-standard residues are now converted to the '*' code.  The value of 'X' prevents any type of alignment of a stretch of X residues as X to X in both the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html#BLOSUM62 BLOSUM62] and [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.substitution_matrices-module.html#PAM250 PAM250] substitution matrices are set to -1.
* Modified the gap penalty arguments for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  These now must always be supplied, as None is not handled by the backend lib.sequence_alignment.needleman_wunsch module.  The previous defaults of None are now set to 0.0.
+
* Modified the gap penalty arguments for the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  These now must always be supplied, as None is not handled by the backend [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.needleman_wunsch-module.html lib.sequence_alignment.needleman_wunsch module].  The previous defaults of None are now set to 0.0.
 
* Updated the artificial diffusion tensor test suite data.  This is the data in test_suite/shared_data/diffusion_tensor.  The residues in the PDB files are now proper amino acids, so the HETATM records are now ATOM records, and the CONECT records have been eliminated.
 
* Updated the artificial diffusion tensor test suite data.  This is the data in test_suite/shared_data/diffusion_tensor.  The residues in the PDB files are now proper amino acids, so the HETATM records are now ATOM records, and the CONECT records have been eliminated.
 
* Another update for the artificial diffusion tensor test suite data.  The number of increments on the sphere has been increased from 5 to 6, to make the vector distribution truly uniform.  All PDB files and relaxation data has been updated.
 
* Another update for the artificial diffusion tensor test suite data.  The number of increments on the sphere has been increased from 5 to 6, to make the vector distribution truly uniform.  All PDB files and relaxation data has been updated.
 
* Changed the synthetic PDB for the artificial diffusion tensor test suite data.  The nitrogen and proton positions are now shifted 10 Angstrom along the distribution vectors.  This is to avoid having all nitrogens positioned at the origin which causes the internal structural object algorithm for determining which atoms are connected to fail.
 
* Changed the synthetic PDB for the artificial diffusion tensor test suite data.  The nitrogen and proton positions are now shifted 10 Angstrom along the distribution vectors.  This is to avoid having all nitrogens positioned at the origin which causes the internal structural object algorithm for determining which atoms are connected to fail.
 
* Reintroduced the CONECT PDB records into the artificial diffusion tensor test suite data.  The uniform vector distributions have overlapping vectors.  This causes the internal structural object atom connection determining algorithm to fail, as this is distance-based rather than using the PDB amino acid definitions for now.
 
* Reintroduced the CONECT PDB records into the artificial diffusion tensor test suite data.  The uniform vector distributions have overlapping vectors.  This causes the internal structural object atom connection determining algorithm to fail, as this is distance-based rather than using the PDB amino acid definitions for now.
* Updates for the Structure.test_create_diff_tensor_pdb_sphere system test.  The test now uses the sphere synthetic relaxation data rather than the ellipsoid data, and the PDB checking has been updated for the new data.
+
* Updates for the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_create_diff_tensor_pdb_sphere Structure.test_create_diff_tensor_pdb_sphere system test].  The test now uses the sphere synthetic relaxation data rather than the ellipsoid data, and the PDB checking has been updated for the new data.
* Updates for the Structure.test_create_diff_tensor_pdb_prolate system test.  The test now uses the spheroid synthetic relaxation data rather than the ellipsoid data, and the PDB checking has been updated for the new data.
+
* Updates for the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_create_diff_tensor_pdb_prolate Structure.test_create_diff_tensor_pdb_prolate system test].  The test now uses the spheroid synthetic relaxation data rather than the ellipsoid data, and the PDB checking has been updated for the new data.
* Updates for the Structure.test_create_diff_tensor_pdb_oblate system test.  The test now uses the spheroid synthetic relaxation data rather than the ellipsoid data, and the PDB checking has been updated for the new data.  The oblate tensor is now forced in the system test script.
+
* Updates for the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_create_diff_tensor_pdb_oblate Structure.test_create_diff_tensor_pdb_oblate system test].  The test now uses the spheroid synthetic relaxation data rather than the ellipsoid data, and the PDB checking has been updated for the new data.  The oblate tensor is now forced in the system test script.
* Updates for the Structure.test_create_diff_tensor_pdb_ellipsoid system test.  The PDB checking has been updated for the new data.
+
* Updates for the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_create_diff_tensor_pdb_ellipsoid Structure.test_create_diff_tensor_pdb_ellipsoid system test].  The PDB checking has been updated for the new data.
* Updated the Structure.test_delete_atom system test for the changed PDB structures.  The test_suite/shared_data/diffusion_tensor/spheroid/uniform.pdb file now has more residues, and the atomic positions are different.
+
* Updated 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] for the changed PDB structures.  The test_suite/shared_data/diffusion_tensor/spheroid/uniform.pdb file now has more residues, and the atomic positions are different.
* Updated the Structure.test_align system testt for the changed PDB structures.  The test_suite/shared_data/diffusion_tensor/spheroid/uniform.pdb file now has more residues, and the atomic positions are different.
+
* Updated the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_align Structure.test_align system test] for the changed PDB structures.  The test_suite/shared_data/diffusion_tensor/spheroid/uniform.pdb file now has more residues, and the atomic positions are different.
* Updated the Structure.test_align_molecules system test for the changed PDB structures.  The test_suite/shared_data/diffusion_tensor/spheroid/uniform.pdb file now has more residues, and the atomic positions are different.
+
* Updated the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_align_molecules Structure.test_align_molecules system test] for the changed PDB structures.  The test_suite/shared_data/diffusion_tensor/spheroid/uniform.pdb file now has more residues, and the atomic positions are different.
* Python 3 fix for the lib.sequence module.  The string.upper() function no longer exists.
+
* Python 3 fix for the [http://www.nmr-relax.com/api/3.3/lib.sequence-module.html lib.sequence module].  The string.upper() function no longer exists.
* Python 3 fix for the lib.sequence_alignment.align_protein module.  The string.upper() function no longer exists.
+
* Python 3 fix for the [http://www.nmr-relax.com/api/3.3/lib.sequence_alignment.align_protein-module.html lib.sequence_alignment.align_protein module].  The string.upper() function no longer exists.
 
* Modified the generate_data.py diffusion tensor to relaxation data creation script.  The NH vectors are no longer truncated to match the PDB.
 
* Modified the generate_data.py diffusion tensor to relaxation data creation script.  The NH vectors are no longer truncated to match the PDB.
 
* Python 3 fix for the generate_data.py diffusion tensor to relaxation data creation script.  The string.upper() function no longer exists.
 
* Python 3 fix for the generate_data.py diffusion tensor to relaxation data creation script.  The string.upper() function no longer exists.
 
* Reintroduced the simulated PDB truncation into the artificial diffusion tensor test suite data.  This is different to the previous implementation which was deleted recently.  It now simulates the truncation of both the N and H positions in the PDB and reconstructs the expected vector.
 
* Reintroduced the simulated PDB truncation into the artificial diffusion tensor test suite data.  This is different to the previous implementation which was deleted recently.  It now simulates the truncation of both the N and H positions in the PDB and reconstructs the expected vector.
* Updates for some of the Structure.test_create_diff_tensor_pdb_* system tests.  This includes Structure.test_create_diff_tensor_pdb_ellipsoid, Structure.test_create_diff_tensor_pdb_oblate, and Structure.test_create_diff_tensor_pdb_prolate.  The new simulated PDB truncation in the test data causes the PDB files created in these tests to be slightly different.
+
* Updates for some of the Structure.test_create_diff_tensor_pdb_* system tests.  This includes [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_create_diff_tensor_pdb_ellipsoid Structure.test_create_diff_tensor_pdb_ellipsoid], [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_create_diff_tensor_pdb_oblate Structure.test_create_diff_tensor_pdb_oblate], and [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_create_diff_tensor_pdb_prolate Structure.test_create_diff_tensor_pdb_prolate].  The new simulated PDB truncation in the test data causes the PDB files created in these tests to be slightly different.
 
* The pairwise sequence alignment is now active in the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  This is implemented in the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.coordinates-module.html#assemble_coord_array lib.structure.internal.coordinates.assemble_coord_array() function] for assembling atomic coordinates.  It will also automatically be used by many of the structure user functions which operate on multiple structures.  The atomic coordinate assembly logic has been completely changed.  Instead of grouping atomic information by the molecule, it is now grouped per residue.  This allows the residue based sequence alignments to find matching coordinate information.  The assemble_coord_array() function will also handle the algorithm argument set to None and assume that the residue sequences are identical between the structures, but this should be avoided.  A new function, common_residues() has been created as a work-around for not having a multiple sequence alignment implementation.  It will take the pairwise sequence alignment information and construct a special data structure specifying which residues are present in all structures.  The logic for skipping missing atoms remains in place, but it now operates on the residue rather than molecule level and simply uses the atom name rather than atom ID to identify common atoms.
 
* The pairwise sequence alignment is now active in the [http://www.nmr-relax.com/manual/structure_align.html structure.align user function].  This is implemented in the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.coordinates-module.html#assemble_coord_array lib.structure.internal.coordinates.assemble_coord_array() function] for assembling atomic coordinates.  It will also automatically be used by many of the structure user functions which operate on multiple structures.  The atomic coordinate assembly logic has been completely changed.  Instead of grouping atomic information by the molecule, it is now grouped per residue.  This allows the residue based sequence alignments to find matching coordinate information.  The assemble_coord_array() function will also handle the algorithm argument set to None and assume that the residue sequences are identical between the structures, but this should be avoided.  A new function, common_residues() has been created as a work-around for not having a multiple sequence alignment implementation.  It will take the pairwise sequence alignment information and construct a special data structure specifying which residues are present in all structures.  The logic for skipping missing atoms remains in place, but it now operates on the residue rather than molecule level and simply uses the atom name rather than atom ID to identify common atoms.
 
* Changed the gap opening penalty to 10 in the N-state model structure_align.py system test script.
 
* Changed the gap opening penalty to 10 in the N-state model structure_align.py system test script.
 
* Docstring update for the [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#assemble_coordinates pipe_control.structure.main.assemble_coordinates() function].  This is for the algorithm argument which can now be set to None.
 
* Docstring update for the [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html#assemble_coordinates pipe_control.structure.main.assemble_coordinates() function].  This is for the algorithm argument which can now be set to None.
 
* Fix for the sequence alignment for assembling atomic coordinates.  This caused the Structure.test_superimpose_fit_to_mean system test to fail.  The problem was in the new logic of the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.coordinates-module.html#assemble_coord_array lib.structure.internal.coordinates.assemble_coord_array() function].  The coordinate assembly now terminates when either the end of the first molecule or the current molecule is reached.
 
* Fix for the sequence alignment for assembling atomic coordinates.  This caused the Structure.test_superimpose_fit_to_mean system test to fail.  The problem was in the new logic of the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.coordinates-module.html#assemble_coord_array lib.structure.internal.coordinates.assemble_coord_array() function].  The coordinate assembly now terminates when either the end of the first molecule or the current molecule is reached.
* Bug fixes for the new lib.structure.internal.coordinates.common_residues() function.  This function for determining the common residues between multiple sets of pairwise alignments was failing in quite a number of cases.  The logic has been updated to handle these.
+
* Bug fixes for the new [http://www.nmr-relax.com/api/3.3/lib.structure.internal.coordinates-module.html#common_residues lib.structure.internal.coordinates.common_residues() function].  This function for determining the common residues between multiple sets of pairwise alignments was failing in quite a number of cases.  The logic has been updated to handle these.
* Another fix for the lib.structure.internal.coordinates.common_residues() function.  The wrong index was being used to skip residues in the second sequence.
+
* Another fix for the [http://www.nmr-relax.com/api/3.3/lib.structure.internal.coordinates-module.html#common_residues lib.structure.internal.coordinates.common_residues() function].  The wrong index was being used to skip residues in the second sequence.
* Created the Structure.test_pdb_combined_secondary_structure system test.  This is used to demonstrate a problem in the handling of secondary structure metadata when combining multiple PDB structures.  It appears as if the chain ID is preserved as the original ID and is not updated to match the new IDs in the output PDB.
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_pdb_combined_secondary_structure Structure.test_pdb_combined_secondary_structure system test].  This is used to demonstrate a problem in the handling of secondary structure metadata when combining multiple PDB structures.  It appears as if the chain ID is preserved as the original ID and is not updated to match the new IDs in the output PDB.
* Updated the Structure.test_metadata_xml system test for the changed PDB metadata handling.  The helix and sheets IDs are now molecule indices.
+
* Updated the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.structure.Structure-class.html#test_metadata_xml Structure.test_metadata_xml system test] for the changed PDB metadata handling.  The helix and sheets IDs are now molecule indices.
 
* Disabled the General.test_bug_23187_residue_delete_gui GUI test.  This is essential as a wxPython bug in Mac OS X systems causes this test to trigger a 'Bus Error' every time the GUI tests are run, killing relax.
 
* Disabled the General.test_bug_23187_residue_delete_gui GUI test.  This is essential as a wxPython bug in Mac OS X systems causes this test to trigger a 'Bus Error' every time the GUI tests are run, killing relax.
 
<section end=changes/>
 
<section end=changes/>
Line 295: Line 295:
  
 
<section begin=bugfixes/>
 
<section begin=bugfixes/>
* Bug fix for the lib.arg_check.is_int_list() function for checking a list of lists.  This is used to check user function arguments, but was causing a RelaxError to be raised for all integer list of lists user function arguments when a valid value is supplied.  The function has been updated to match the is_str_list() function which does not suffer from this bug.
+
* Bug fix for the [http://www.nmr-relax.com/api/3.3/lib.arg_check-module.html#is_int_list lib.arg_check.is_int_list() function] for checking a list of lists.  This is used to check user function arguments, but was causing a RelaxError to be raised for all integer list of lists user function arguments when a valid value is supplied.  The function has been updated to match the [http://www.nmr-relax.com/api/3.3/lib.arg_check-module.html#is_str_list is_str_list() function] which does not suffer from this bug.
 
* Fix in dispersion API, to set error value for clustered values.  [https://gna.org/bugs/index.php?23186 Bug #23186: Error calculation of individual parameter &delta;&omega; from Monte-Carlo, is based on first spin].
 
* Fix in dispersion API, to set error value for clustered values.  [https://gna.org/bugs/index.php?23186 Bug #23186: Error calculation of individual parameter &delta;&omega; from Monte-Carlo, is based on first spin].
 
* Fix for [https://gna.org/bugs/?23187 bug #23187, the problem whereby opening the spin viewer window, deleting a residue, and then reopening the spin viewer crashes relax].  This change completes the spin viewer update_*() functions.  The prune_list variable was initialised but not used.  Now it is used to store the keys of the items to delete, and then the items are deleted at the end in a new loop so that the loop over the dictionary keys is not corrupted.
 
* Fix for [https://gna.org/bugs/?23187 bug #23187, the problem whereby opening the spin viewer window, deleting a residue, and then reopening the spin viewer crashes relax].  This change completes the spin viewer update_*() functions.  The prune_list variable was initialised but not used.  Now it is used to store the keys of the items to delete, and then the items are deleted at the end in a new loop so that the loop over the dictionary keys is not corrupted.

Revision as of 08:42, 28 January 2015


Description

This is a major feature and bugfix release. It fixes an important bug in the Monte Carlo simulation error analysis in the relaxation dispersion analysis. Features include improvements to the NMR spectral noise error analysis, expansion of the grace.write user function to handle both first and last point normalisation for reasonable R1 curves in saturation recovery experiments, the implementation of Needleman-Wunsch pairwise sequence alignment algorithm using the BLOSUM62, PAM250 and NUC 4.4 substitution matrices for more advanced 3D structural alignments via the structure.align and structure.superimpose user functions as well as any of the other structure user functions dealing with multiple molecules, conversion of the structure.displacement, structure.find_pivot, structure.rmsd, structure.superimpose and structure.web_of_motion user functions to a new pipes/models/molecules/atom_id design to allow the user functions to operate on different data pipes, different structural models and different molecules, addition of the displace_id argument to the structure.align and structure.superimpose user functions to allow finer control over which atoms are translated and rotated by the algorithm, large improvement for the PDB molecule identification code affecting the structure.read_pdb user function, creation of the lib.plotting package for assembling all of the data plotting capabilities of relax, implementation of the new structure.atomic_fluctuations user function for creating text output or Gnuplot graphs of the correlation matrix of interatomic distance, angle or parallax shift fluctuations, the implementation of ordinary least squares fitting, and improvements for the pcs.corr_plot and rdc.corr_plot user functions. Many more features and bugfixes are listed below.


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.5
(27 January 2015, from /trunk)
http://svn.gna.org/svn/relax/tags/3.3.5


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.


See also