Difference between revisions of "Relax 3.3.3"

From relax wiki
Jump to navigation Jump to search
(More symbol formatting.)
(Added the 'manual' parameter to {{infobox relax release}}.)
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{lowercase title}}
 
{{lowercase title}}
  
= Description =
+
{{infobox relax release
 +
| version = 3.3.3
 +
| prev    = 3.3.2
 +
| next    = 3.3.4
 +
| type    = Major feature and bugfix
 +
| date    = 24 November 2014
 +
| manual  = yes
 +
}}
 +
 
 +
== Description ==
  
 
<section begin=description/>
 
<section begin=description/>
This is a major feature and bugfix release.  It fixes a failure when loading relaxation data and adds Python 3 support for using the NMRPipe showApod software.  Features include a large expansion for the align_tensor.matrix_angles and align_tensor.svd user functions to support the standard inter-matrix angles, the unitary 9D vector notation {Sxx, Sxy, Sxz, Syx, Syy, Syz, Szx, Szy, Szz}, and the irreducible spherical tensor 5D basis set of {A-2, A-1, A0, A1, A2} for correctly calculating the inter-tensor angles, singular values and condition numbers.
+
This is a major feature and bugfix release.  It fixes a failure when loading relaxation data and adds Python 3 support for using the NMRPipe showApod software.  Features include a large expansion for the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles] and [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd] user functions to support the standard inter-matrix angles, the unitary 9D vector notation {S<sub>xx</sub>, S<sub>xy</sub>, S<sub>xz</sub>, S<sub>yx</sub>, S<sub>yy</sub>, S<sub>yz</sub>, S<sub>zx</sub>, S<sub>zy</sub>, S<sub>zz</sub>}, and the irreducible spherical tensor 5D basis set of {A<sub>-2</sub>, A<sub>-1</sub>, A<sub>0</sub>, A<sub>1</sub>, A<sub>2</sub>} for correctly calculating the inter-tensor angles, singular values and condition numbers.
 
<section end=description/>
 
<section end=description/>
  
= Download =
+
== Download ==
  
 
<section begin=download/>
 
<section begin=download/>
Line 13: Line 22:
 
<section end=download/>
 
<section end=download/>
  
= CHANGES file =
+
== CHANGES file ==
  
 
<section begin=metadata/>
 
<section begin=metadata/>
Line 21: Line 30:
 
<section end=metadata/>
 
<section end=metadata/>
  
== Features ==
+
=== Features ===
  
 
<section begin=features/>
 
<section begin=features/>
* Implemented the lib.geometry.vectors.vector_angle_atan2() relax library function.  This is for calculating the inter-vector angle using the more numerically stable atan2() formula.
+
* Implemented the [http://www.nmr-relax.com/api/3.3/lib.geometry.vectors-module.html#vector_angle_atan2 lib.geometry.vectors.vector_angle_atan2() relax library function].  This is for calculating the inter-vector angle using the more numerically stable atan2() formula.
* Implemented the lib.geometry.vectors.vector_angle_acos() relax library function.  This is used to calculate the inter-vector angle using the arccos of the dot product formula.  The function has been introduced into the relax library as the calculation is repeated throughout relax.
+
* Implemented the [http://www.nmr-relax.com/api/3.3/lib.geometry.vectors-module.html#vector_angle_acos lib.geometry.vectors.vector_angle_acos() relax library function].  This is used to calculate the inter-vector angle using the arccos of the dot product formula.  The function has been introduced into the relax library as the calculation is repeated throughout relax.
* Expanded the basis sets for the align_tensor.matrix_angles user function to allow the correct inter-tensor angles to be calculated.  This includes the standard inter-matrix angles via the arccos of the Euclidean inner product of the alignment matrices in rank-2, 3D form divided by the Frobenius norm of the matrices, irreducible spherical tensor 5D basis set {A-2, A-1, A0, A1, A2}, and the unitary 9D basis set {Sxx, Sxy, Sxz, Syx, Syy, Syz, Szx, Szy, Szz} (all of which produce the same result).
+
* Expanded the basis sets for the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function] to allow the correct inter-tensor angles to be calculated.  This includes the standard inter-matrix angles via the arccos of the Euclidean inner product of the alignment matrices in rank-2, 3D form divided by the Frobenius norm of the matrices, irreducible spherical tensor 5D basis set {A<sub>-2</sub>, A<sub>-1</sub>, A<sub>0</sub>, A<sub>1</sub>, A<sub>2</sub>}, and the unitary 9D basis set {S<sub>xx</sub>, S<sub>xy</sub>, S<sub>xz</sub>, S<sub>yx</sub>, S<sub>yy</sub>, S<sub>yz</sub>, S<sub>zx</sub>, S<sub>zy</sub>, S<sub>zz</sub>} (all of which produce the same result).
* Expanded the basis sets for the align_tensor.svd user function to allow the correct singular values and condition number to be calculated.  This includes the irreducible spherical tensor 5D basis set {A-2, A-1, A0, A1, A2} and the unitary 9D basis set {Sxx, Sxy, Sxz, Syx, Syy, Syz, Szx, Szy, Szz} (both of which produce the same result).
+
* Expanded the basis sets for the [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd user function] to allow the correct singular values and condition number to be calculated.  This includes the irreducible spherical tensor 5D basis set {A<sub>-2</sub>, A<sub>-1</sub>, A<sub>0</sub>, A<sub>1</sub>, A<sub>2</sub>} and the unitary 9D basis set {S<sub>xx</sub>, S<sub>xy</sub>, S<sub>xz</sub>, S<sub>yx</sub>, S<sub>yy</sub>, S<sub>yz</sub>, S<sub>zx</sub>, S<sub>zy</sub>, S<sub>zz</sub>} (both of which produce the same result).
* Added the angle_units and precision arguments to the align_tensor.matrix_angles user function to allow either degrees or radians to be output and the number of decimal points to be specified.
+
* Added the angle_units and precision arguments to the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function] to allow either degrees or radians to be output and the number of decimal points to be specified.
* Added the precision argument to the align_tensor.svd user function to allow the number of decimal points for the singular values and condition number to be specified.
+
* Added the precision argument to the [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd user function] to allow the number of decimal points for the singular values and condition number to be specified.
* Updated the align_tensor.display user function to output the irreducible spherical harmonic weights.  This is the alignment tensor in the {A-2, A-1, A0, A1, A2} notation.
+
* Updated the [http://www.nmr-relax.com/manual/align_tensor_display.html align_tensor.display user function] to output the irreducible spherical harmonic weights.  This is the alignment tensor in the {A<sub>-2</sub>, A<sub>-1</sub>, A<sub>0</sub>, A<sub>1</sub>, A<sub>2</sub>} notation.
 
<section end=features/>
 
<section end=features/>
  
== Changes ==
+
=== Changes ===
  
 
<section begin=changes/>
 
<section begin=changes/>
* Basic Epydoc fix for the data_store.exp_info module.
+
* Basic Epydoc fix for the [http://www.nmr-relax.com/api/3.3/data_store.exp_info-module.html data_store.exp_info module].
* Epydoc fix for the name_pipe() method of the relaxation dispersion auto-analysis for repeated data.
+
* Epydoc fix for the [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_disp_repeat_cpmg.Relax_disp_rep-class.html#name_pipe name_pipe() method of the relaxation dispersion auto-analysis for repeated data]
 
* Fixes for the HTML user manual compilation.  The index.html file was not being created as the main page has changed from 'relax_user_manual.html' to 'The_relax_user_manual.html'.
 
* Fixes for the HTML user manual compilation.  The index.html file was not being created as the main page has changed from 'relax_user_manual.html' to 'The_relax_user_manual.html'.
* Added a line to the release checklist document about updating the wiki release links.  These are for the combined release notes pages at http://wiki.nmr-relax.com/Relax_releases, http://wiki.nmr-relax.com/Relax_release_descriptions, http://wiki.nmr-relax.com/Relax_release_metadata, http://wiki.nmr-relax.com/Relax_release_features, http://wiki.nmr-relax.com/Relax_release_changes, http://wiki.nmr-relax.com/Relax_release_bugfixes, http://wiki.nmr-relax.com/Relax_release_links.
+
* Added a line to the release checklist document about updating the wiki release links.  These are for the combined release notes pages at [[Relax releases]], [[Relax release descriptions]], [[Relax release metadata]], [[Relax release features]], [[Relax release changes]], [[Relax release bugfixes]], [[Relax release links]].
 
* Updates for the release announcement section of the release checklist document.
 
* Updates for the release announcement section of the release checklist document.
* Created a system test to catch a rare relaxation data loading problem.
+
* Created a [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.model_free.Mf-class.html#test_data_loading_failures system test to catch a rare relaxation data loading problem].
* Created the Mf.test_dauvergne_protocol_sphere system test.  This catches bug #22963 (https://gna.org/bugs/?22963):  Using '@N*' to define the interatomic interactions for a model-free analysis fails when using non-backbone 15N spins.
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.model_free.Mf-class.html#test_dauvergne_protocol_sphere Mf.test_dauvergne_protocol_sphere system test].  This catches [https://gna.org/bugs/?22963 bug #22963:  Using '@N*' to define the interatomic interactions for a model-free analysis fails when using non-backbone <sup>15</sup>N spins].
* Set more reasonable default values for the lib.structure.pdb_write functions atom() and hetatm().  The occupancy now defaults to 1.0 instead of '', and the temperature factor to 0.0 instead of ''.  This avoid painful errors when using these functions, as these arguments must be floating point numbers at all times, hence the default value of '' causes a TypeError.
+
* Set more reasonable default values for the [http://www.nmr-relax.com/api/3.3/lib.structure.pdb_write-module.html lib.structure.pdb_write] functions [http://www.nmr-relax.com/api/3.3/lib.structure.pdb_write-module.html#atom atom()] and [http://www.nmr-relax.com/api/3.3/lib.structure.pdb_write-module.html#hetatm hetatm()].  The occupancy now defaults to 1.0 instead of '', and the temperature factor to 0.0 instead of ''.  This avoid painful errors when using these functions, as these arguments must be floating point numbers at all times, hence the default value of '' causes a TypeError.
 
* Updated the PDB file in the test_suite/shared_data/model_free/sphere/ directory.  The relax library is now being used to create the PDB file.  Additional TER and CONECT records are now being created so the result is a more correct PDB file.
 
* Updated the PDB file in the test_suite/shared_data/model_free/sphere/ directory.  The relax library is now being used to create the PDB file.  Additional TER and CONECT records are now being created so the result is a more correct PDB file.
 
* Converted all ATOM records to HETATM in the sphere.pdb file.
 
* Converted all ATOM records to HETATM in the sphere.pdb file.
* Renamed vector_angle() to vector_angle_normal() in the lib.geometry.vectors module.  This is to standardise the naming as there are now the standard vector angle formula implemented as the vector_angle_acos() and vector_angle_atan2() functions.
+
* Renamed vector_angle() to [http://www.nmr-relax.com/api/3.3/lib.geometry.vectors-module.html#vector_angle_normal vector_angle_normal()] in the [http://www.nmr-relax.com/api/3.3/lib.geometry.vectors-module.html lib.geometry.vectors module].  This is to standardise the naming as there are now the standard vector angle formula implemented as the [http://www.nmr-relax.com/api/3.3/lib.geometry.vectors-module.html#vector_angle_acos vector_angle_acos()] and [http://www.nmr-relax.com/api/3.3/lib.geometry.vectors-module.html#vector_angle_atan2 vector_angle_atan2()] functions.
* Added 6 unit tests for the lib.geometry.vectors.vector_angle_acos() function.  These are similar to those of the vector_angle_normal() function but unsigned angles are checked for.
+
* Added 6 unit tests for the [http://www.nmr-relax.com/api/3.3/lib.geometry.vectors-module.html#vector_angle_acos lib.geometry.vectors.vector_angle_acos() function].  These are similar to those of the [http://www.nmr-relax.com/api/3.3/lib.geometry.vectors-module.html#vector_angle_normal vector_angle_normal() function] but unsigned angles are checked for.
* Created 6 unit tests for the lib.geometry.vectors.vector_angle_atan2() function.
+
* Created 6 unit tests for the [http://www.nmr-relax.com/api/3.3/lib.geometry.vectors-module.html#vector_angle_atan2 lib.geometry.vectors.vector_angle_atan2() function].
 
* Created a script and log file to demonstrate differences between alignment tensor basis sets.  This shows that the inter-tensor angles and condition numbers are dependent on the basis set used.
 
* Created a script and log file to demonstrate differences between alignment tensor basis sets.  This shows that the inter-tensor angles and condition numbers are dependent on the basis set used.
* Improved the printouts from the align_tensor.svd user function by including the basis set text.
+
* Improved the printouts from the [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd user function] by including the basis set text.
* Updated the log file for comparing different alignment tensor basis sets for align_tensor.svd changes.
+
* Updated the log file for comparing different alignment tensor basis sets for [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd] changes.
* Implemented a new default basis set for the align_tensor.matrix_angles user function.  This is uses standard definition of the inter-matrix angle using the Euclidean inner product of the two matrices divided by the product of the Frobenius norm of each matrix.  As this is a linear map, it should produce the correct definition of inter-tensor angles.
+
* Implemented a new default basis set for the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function].  This is uses standard definition of the inter-matrix angle using the Euclidean inner product of the two matrices divided by the product of the Frobenius norm of each matrix.  As this is a linear map, it should produce the correct definition of inter-tensor angles.
* Improvements to the description of the align_tensor.matrix_angles user function.
+
* Improvements to the description of the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function].
* Updated the test_matrix_angles_identity() unit test for pipe_control.align_tensor.matrix_angles().  This is the test in the _prompt.test_align_tensor.Test_align_tensor module.  The basis set has been set back to the now non-default value of 0, and the value checks have been converted from assertEqual() to assertAlmostEqual() to allow for small truncation errors.
+
* Updated the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests.align_tensor_testing_base.Align_tensor_base_class-class.html#test_matrix_angles_identity test_matrix_angles_identity() unit test] for [http://www.nmr-relax.com/api/3.3/pipe_control.align_tensor-module.html#matrix_angles pipe_control.align_tensor.matrix_angles()].  This is the test in the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._prompt.test_align_tensor-module.html _prompt.test_align_tensor.Test_align_tensor module].  The basis set has been set back to the now non-default value of 0, and the value checks have been converted from assertEqual() to assertAlmostEqual() to allow for small truncation errors.
* Conversion of the basis_set argument for the align_tensor.matrix_angles user function.  The argument is now a string that accepts the values of 'matrix', 'unitary 5D', and 'geometric 5D' to select between the different matrix angles techniques.  This has been updated in the test suite as well.
+
* Conversion of the basis_set argument for the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function].  The argument is now a string that accepts the values of 'matrix', 'unitary 5D', and 'geometric 5D' to select between the different matrix angles techniques.  This has been updated in the test suite as well.
* Added a check for the values of the basis_set argument.  This is to the align_tensor.matrix_angles user function backend.
+
* Added a check for the values of the basis_set argument.  This is to the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function] backend.
* Printout improvements clarifying the align_tensor.matrix_angles user function.
+
* Printout improvements clarifying the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function].
* Conversion of the basis_set argument for the align_tensor.svd user function.  The argument is now a string that accepts the values of 'unitary 9D', 'unitary 5D', and 'geometric 5D' to select between the different SVD matrices.  This has been updated in the test suite as well.
+
* Conversion of the basis_set argument for the [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd user function].  The argument is now a string that accepts the values of 'unitary 9D', 'unitary 5D', and 'geometric 5D' to select between the different SVD matrices.  This has been updated in the test suite as well.
* Expanded the N_state_model.test_5_state_xz system test.  This now covers the new 'unitary 9D' basis set for the align_tensor.svd user function and the new 'matrix' basis set for the align_tensor.matrix_angles user function.
+
* Expanded the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.n_state_model.N_state_model-class.html#test_5_state_xz N_state_model.test_5_state_xz system test].  This now covers the new 'unitary 9D' basis set for the [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd user function] and the new 'matrix' basis set for the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function].
* Expansion of the align_tensor.matrix_angles user function.  The new basis set 'unitary 9D' has been introduced.  This creates vectors as {Sxx, Sxy, Sxz, Syx, Syy, Syz, Szx, Szy, Szz} and computes the inter-vector angles.  These match the 'matrix' basis set whereby the Euclidean inner product divided by the Frobenius norms is used to calculate the inter-tensor angles.  In addition, the user function documentation and printouts have been improved.  And the backend code has been simplified.
+
* Expansion of the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function].  The new basis set 'unitary 9D' has been introduced.  This creates vectors as {S<sub>xx</sub>, S<sub>xy</sub>, S<sub>xz</sub>, S<sub>yx</sub>, S<sub>yy</sub>, S<sub>yz</sub>, S<sub>zx</sub>, S<sub>zy</sub>, S<sub>zz</sub>} and computes the inter-vector angles.  These match the 'matrix' basis set whereby the Euclidean inner product divided by the Frobenius norms is used to calculate the inter-tensor angles.  In addition, the user function documentation and printouts have been improved.  And the backend code has been simplified.
* Updated the script and log file for demonstrating differences between alignment tensor basis sets.  This now handles the changes to the basis_set arguments used in the align_tensor.matrix_angles and align_tensor.svd user functions, and includes the new basis sets.
+
* Updated the script and log file for demonstrating differences between alignment tensor basis sets.  This now handles the changes to the basis_set arguments used in the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles] and [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd] user functions, and includes the new basis sets.
* Added the irreducible tensor notation of {A-2, A-1, A0, A1, A2} to the alignment tensor object.  This follows from the definition of Sass et al, J. Am. Chem. Soc. 1999, 121, 2047-2055, http://dx.doi.org/10.1021/ja983887w. The equations of (2) were converted using Gaussian elimination to obtain a reduced row echelon form, so that the equations in terms of {A-2, A-1, A0, A1, A2} were derived.  These have been coded into the alignment tensor object calc_Am2, calc_Am1, calc_A0, calc_A1 and calc_A2 methods respectively, and the values can be obtained by accessing the Am2, Am1, A0, A1, and A2 objects.  To check that the implementation is correct, a unit test has been created to compare the calculated values with those determined using Pales.
+
* Added the irreducible tensor notation of {A<sub>-2</sub>, A<sub>-1</sub>, A<sub>0</sub>, A<sub>1</sub>, A<sub>2</sub>} to the alignment tensor object.  This follows from the definition of Sass et al, J. Am. Chem. Soc. 1999, 121, 2047-2055, [http://dx.doi.org/10.1021/ja983887w DOI: 10.1021/ja983887w].  The equations of (2) were converted using Gaussian elimination to obtain a reduced row echelon form, so that the equations in terms of {A<sub>-2</sub>, A<sub>-1</sub>, A<sub>0</sub>, A<sub>1</sub>, A<sub>2</sub>} were derived.  These have been coded into the alignment tensor object calc_Am2, calc_Am1, calc_A0, calc_A1 and calc_A2 methods respectively, and the values can be obtained by accessing the Am2, Am1, A0, A1, and A2 objects.  To check that the implementation is correct, a unit test has been created to compare the calculated values with those determined using Pales.
* Expanded the unit test of the alignment tensor {A-2, A-1, A0, A1, A2} parameters to cover all values.
+
* Expanded the unit test of the alignment tensor {A<sub>-2</sub>, A<sub>-1</sub>, A<sub>0</sub>, A<sub>1</sub>, A<sub>2</sub>} parameters to cover all values.
* Created functions in the relax library for calculating the inter-vector angle for complex vectors.  This is in the lib.geometry.vectors module. The function vector_angle_complex_conjugate() has been created to calculate the angle between two complex vectors.  This uses the new auxiliary function complex_inner_product() to calculate <v1|v2>.
+
* Created functions in the relax library for calculating the inter-vector angle for complex vectors.  This is in the [http://www.nmr-relax.com/api/3.3/lib.geometry.vectors-module.html lib.geometry.vectors module]The [function http://www.nmr-relax.com/api/3.3/lib.geometry.vectors-module.html#vector_angle_complex_conjugate vector_angle_complex_conjugate()] has been created to calculate the angle between two complex vectorsThis uses the [http://www.nmr-relax.com/api/3.3/lib.geometry.vectors-module.html#complex_inner_product new auxiliary function complex_inner_product()] to calculate <v<sub>1</sub>|v<sub>2</sub>>.
* Added the 'irreducible 5D' basis set option to the align_tensor.matrix_angles user function. This is for the inter-tensor vector angle for the irreducible 5D basis set {S-2, S-1, S0, S1, S2}Its results match that of the standard tensor angle as well as the 'unitary 9D' basis sets.
+
* Added the 'irreducible 5D' basis set option to the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function]This is for the inter-tensor vector angle for the irreducible 5D basis set {S<sub>-2</sub>, S<sub>-1</sub>, S<sub>0</sub>, S<sub>1</sub>, S<sub>2</sub>}.  Its results match that of the standard tensor angle as well as the 'unitary 9D' basis sets.
* Added the 'irreducible 5D' basis set option to the align_tensor.svd user function. This is for the inter-tensor vector angle for the irreducible 5D basis set {A-2, A-1, A0, A1, A2}.  Its results match that of the 'unitary 9D' basis set.
+
* Added the 'irreducible 5D' basis set option to the [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd user function]. This is for the inter-tensor vector angle for the irreducible 5D basis set {A<sub>-2</sub>, A<sub>-1</sub>, A<sub>0</sub>, A<sub>1</sub>, A<sub>2</sub>}Its results match that of the 'unitary 9D' basis set.
* Editing of the description for the 'irreducible 5D' alignment tensor basis set.  This is for the align_tensor.matrix_angles and align_tensor.svd user functionsAll Sm element have been converted to Am.
+
* Editing of the description for the 'irreducible 5D' alignment tensor basis set.  This is for the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles] and [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd] user functionsAll S<sub>m</sub> element have been converted to A<sub>m</sub>.
* Editing of the description for the align_tensor.matrix_angles user function.
+
* Editing of the description for the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function].
* Editing of the align_tensor.svd user function description.
+
* Editing of the [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd user function] description.
* Updated the script and log file for demonstrating differences between alignment tensor basis sets.  The 'irreducible 5D' basis set in now used for both the align_tensor.matrix_angles and align_tensor.svd user functions.
+
* Updated the script and log file for demonstrating differences between alignment tensor basis sets. The 'irreducible 5D' basis set in now used for both the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles] and [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd] user functions.
* Fix for a spelling mistake in the align_tensor.matrix_angles user function printouts.
+
* Fix for a spelling mistake in the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function] printouts.
* Small fix for the align_tensor.matrix_angles user function documentation.
+
* Small fix for the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function] documentation.
* Expanded the N_state_model.test_5_state_xz system test for more alignment tensor basis setsThe align_tensor.matrix_angles and align_tensor.svd user functions are now being called with the additional 'irreducible 5D', and 'unitary 9D' basis sets, to make sure these work correctly.
+
* Expanded the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.n_state_model.N_state_model-class.html#test_5_state_xz N_state_model.test_5_state_xz system test] for more alignment tensor basis sets.  The [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles] and [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd] user functions are now being called with the additional 'irreducible 5D', and 'unitary 9D' basis sets, to make sure these work correctly.
* Created the Align_tensor.test_align_tensor_matrix_angles system test.  This is to check the angles calculated by the align_tensor.matrix_angles user function. As there are no external references, this essentially fixes the angles to the currently calculated values to catch any accidental changes in the future.
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.align_tensor.Align_tensor-class.html#test_align_tensor_matrix_angles Align_tensor.test_align_tensor_matrix_angles system test].  This is to check the angles calculated by the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function]As there are no external references, this essentially fixes the angles to the currently calculated values to catch any accidental changes in the future.
* Created the Align_tensor.test_align_tensor_svd system test.  This is to check the angles calculated by the align_tensor.svd user functionAs there are no external references, this essentially fixes the singular values and condition numbers to the currently calculated values to catch any accidental changes in the future.
+
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.align_tensor.Align_tensor-class.html#test_align_tensor_svd Align_tensor.test_align_tensor_svd system test]This is to check the angles calculated by the [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd user function].  As there are no external references, this essentially fixes the singular values and condition numbers to the currently calculated values to catch any accidental changes in the future.
* Fixes for the proportions of the align_tensor.matrix_angle user function GUI wizard.
+
* Fixes for the proportions of the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function] GUI wizard.
* Expanded the 'irreducible 5D' text in the align_tensor.matrix_angles and align_tensor.svd user functions. This now explains that these are the coefficients for the spherical harmonic decomposition.
+
* Expanded the 'irreducible 5D' text in the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles] and [http://www.nmr-relax.com/manual/align_tensor_svd.html align_tensor.svd] user functions.  This now explains that these are the coefficients for the spherical harmonic decomposition.
* Improved the text for the irreducible tensor notation in the align_tensor.display user function.
+
* Improved the text for the irreducible tensor notation in the [http://www.nmr-relax.com/manual/align_tensor_display.html align_tensor.display user function].
* Formatting fix for the magnetic susceptibility tensor part of the align_tensor.display user function.
+
* Formatting fix for the magnetic susceptibility tensor part of the [http://www.nmr-relax.com/manual/align_tensor_display.html align_tensor.display user function].
* More improvements for the align_tensor.matrix_angles user function description.
+
* More improvements for the [http://www.nmr-relax.com/manual/align_tensor_matrix_angles.html align_tensor.matrix_angles user function] description.
* Epydoc docstring fixes and expansion for the lib.io.sort_filenames() function.
+
* Epydoc docstring fixes and expansion for the [http://www.nmr-relax.com/api/3.3/lib.io-module.html#sort_filenames lib.io.sort_filenames() function].
* Epydoc docstring fixes for the lib.spectrum.nmrpipe module. This is for the API documentation at http://www.nmr-relax.com/api/index.html.  The show_apod_rmsd_to_file() and show_apod_rmsd_dir_to_files() function docstrings have both been modified.
+
* Epydoc docstring fixes for the [http://www.nmr-relax.com/api/3.3/lib.spectrum.nmrpipe-module.html lib.spectrum.nmrpipe module].  This is for the [http://www.nmr-relax.com/api/index.html API documentation].  The [http://www.nmr-relax.com/api/3.3/lib.spectrum.nmrpipe-module.html#show_apod_rmsd_to_file show_apod_rmsd_to_file()] and [http://www.nmr-relax.com/api/3.3/lib.spectrum.nmrpipe-module.html#show_apod_rmsd_dir_to_files show_apod_rmsd_dir_to_files()] function docstrings have both been modified.
* Epydoc docstring fixes for the pipe_control.opendx.map() function.  This is for http://www.nmr-relax.com/api/3.3/pipe_control.opendx-module.html#map.  The fixes include whitespace and textwrapping changes.
+
* Epydoc docstring fixes for the [http://www.nmr-relax.com/api/3.3/pipe_control.opendx-module.html#map pipe_control.opendx.map() function].  The fixes include whitespace and textwrapping changes.
* Python 2.5 fix for the align_tensor.display user function. The new irreducible spherical tensor coefficient printout was failing as the float.real variable was introduced from Python 2.6 onwards.
+
* Python 2.5 fix for the [http://www.nmr-relax.com/manual/align_tensor_display.html align_tensor.display user function].  The new irreducible spherical tensor coefficient printout was failing as the float.real variable was introduced from Python 2.6 onwards.
* Shifted the structure checks into their own module.  This shifts the special check_structure Check object from pipe_control.structure.main into the new checks moduleIt allows the check to be performed by other modules in the pipe_control.structure package.
+
* Shifted the [http://www.nmr-relax.com/api/3.3/pipe_control.structure.checks-module.html structure checks into their own module].  This shifts the special check_structure Check object from [http://www.nmr-relax.com/api/3.3/pipe_control.structure.main-module.html pipe_control.structure.main] into the new checks module.  It allows the check to be performed by other modules in the pipe_control.structure package.
* Added the missing_error keyword argument to the pipe_centre_of_mass() function. This is from the pipe_control.structure.mass moduleThe new keyword controls what happens with the absence of structural data.  The pipe_control.structure.checks.check_structure() function is now being used to either throw a warning and return [0, 0, 0] or to raise a RelaxError.
+
* Added the [http://www.nmr-relax.com/api/3.3/pipe_control.structure.mass-module.html#pipe_centre_of_mass missing_error keyword argument to the pipe_centre_of_mass() function].  This is from the [http://www.nmr-relax.com/api/3.3/pipe_control.structure.mass-module.html pipe_control.structure.mass module].  The new keyword controls what happens with the absence of structural data.  The [http://www.nmr-relax.com/api/3.3/pipe_control.structure.checks-module.html#check_structure pipe_control.structure.checks.check_structure() function] is now being used to either throw a warning and return [0, 0, 0] or to raise a RelaxError.
 
* Fix for the new unit tests - Python 2.5 floats do not have a 'real' property.
 
* Fix for the new unit tests - Python 2.5 floats do not have a 'real' property.
 
<section end=changes/>
 
<section end=changes/>
  
== Bugfixes ==
+
=== Bugfixes ===
  
 
<section begin=bugfixes/>
 
<section begin=bugfixes/>
* Fix for bug #22961 (https://gna.org/bugs/?22961), the failure of relaxation data loading with the message "IndexError: list index out of range".  The bug was found by Julien Orts.  It is triggered by loading relaxation data from a file containing spin name information and supplying the spin ID using the spin name to restrict data loading to a spin subset.  To solve the problem, the pipe_control.relax_data.pack_data() function has been redesigned.  Now the selection union concept of Chris MacRaild's selection object is being used by joining the spin ID constructed from the data file and the user supplied spin ID with '&', and using this to isolate the correct spin system.
+
* Fix for [https://gna.org/bugs/?22961 bug #22961, the failure of relaxation data loading with the message "IndexError: list index out of range"].  The bug was found by Julien Orts.  It is triggered by loading relaxation data from a file containing spin name information and supplying the spin ID using the spin name to restrict data loading to a spin subset.  To solve the problem, the [http://www.nmr-relax.com/api/3.3/pipe_control.relax_data-module.html#pack_data pipe_control.relax_data.pack_data() function] has been redesigned.  Now the selection union concept of Chris MacRaild's selection object is being used by joining the spin ID constructed from the data file and the user supplied spin ID with '&', and using this to isolate the correct spin system.
* Big Python 3 bug fix for the dep_check module for the detection of the NMRPipe showApod software.  The showApod program was falsely detected as always not being present when using Python 3.  This is because the output of the program was being tested using string comparisons.  However the output from programs obtained from the subprocess module is no longer strings but rather byte-arrays in Python 3.  Therefore the byte-array is not being converted to text if Python 3 is being used, allowing the showApod software to be detected.
+
* Big Python 3 bug fix for the [http://www.nmr-relax.com/api/3.3/dep_check-module.html dep_check module] for the detection of the NMRPipe showApod software.  The showApod program was falsely detected as always not being present when using Python 3.  This is because the output of the program was being tested using string comparisons.  However the output from programs obtained from the subprocess module is no longer strings but rather byte-arrays in Python 3.  Therefore the byte-array is not being converted to text if Python 3 is being used, allowing the showApod software to be detected.
* Python 3 bug fix for the lib.spectrum.nmrpipe.show_apod_extract() function.  The subprocess module output from the showApod program, or any software, is a byte array in Python 3 rather than text.  This is now detected and the byte array converted to text before any processing.
+
* Python 3 bug fix for the [http://www.nmr-relax.com/api/3.3/lib.spectrum.nmrpipe-module.html#show_apod_extract lib.spectrum.nmrpipe.show_apod_extract() function].  The subprocess module output from the showApod program, or any software, is a byte array in Python 3 rather than text.  This is now detected and the byte array converted to text before any processing.
* Bug fix for the lib.structure.angles.angles_*() functions for odd increments.  This affects the PDB representations of the diffusion tensor and frame order when the number of increments in the respective user functions is set to an odd number.  It really only affects the frame_order.pdb_model user functions, as the number of increments cannot be set in any of the other user functions (structure.create_diff_tensor_pdb, structure.create_rotor_pdb, structure.create_vector_dist, n_state_model.cone_pdb).
+
* Bug fix for the [http://www.nmr-relax.com/api/3.3/lib.structure.angles-module.html lib.structure.angles.angles_*() functions] for odd increments.  This affects the PDB representations of the diffusion tensor and frame order when the number of increments in the respective user functions is set to an odd number.  It really only affects the [http://www.nmr-relax.com/manual/frame_order_pdb_model.html frame_order.pdb_model user function], as the number of increments cannot be set in any of the other user functions ([http://www.nmr-relax.com/manual/structure_create_diff_tensor_pdb.html structure.create_diff_tensor_pdb], [http://www.nmr-relax.com/manual/structure_create_rotor_pdb.html structure.create_rotor_pdb], [http://www.nmr-relax.com/manual/structure_create_vector_dist.html structure.create_vector_dist], [http://www.nmr-relax.com/manual/n_state_model_cone_pdb.html n_state_model.cone_pdb]).
 
<section end=bugfixes/>
 
<section end=bugfixes/>
  
= Links =
+
== Links ==
  
 
<section begin=links/>
 
<section begin=links/>
Line 105: Line 114:
  
 
* [http://wiki.nmr-relax.com/Relax_3.3.3 Official release notes on the relax wiki].
 
* [http://wiki.nmr-relax.com/Relax_3.3.3 Official release notes on the relax wiki].
* [https://gna.org/forum/forum.php?forum_id=2481 Gna! news item].
+
* [https://gna.org/forum/forum.php?forum_id=2482 Gna! news item].
 
* [http://article.gmane.org/gmane.science.nmr.relax.announce/61 Gmane mailing list archive].
 
* [http://article.gmane.org/gmane.science.nmr.relax.announce/61 Gmane mailing list archive].
 
* [http://www.mail-archive.com/relax-announce%40gna.org/msg00052.html The Mail Archive].
 
* [http://www.mail-archive.com/relax-announce%40gna.org/msg00052.html The Mail Archive].
 
* [https://mail.gna.org/public/relax-announce/2014-11/msg00001.html Local archives].
 
* [https://mail.gna.org/public/relax-announce/2014-11/msg00001.html Local archives].
* [http://marc.info/?l=relax-announce&m=141617497420940&w=2 Mailing list ARChives (MARC)].
+
* [http://marc.info/?l=relax-announce&m=141686534623578&w=2 Mailing list ARChives (MARC)].
  
 
{{:Softpedia}}
 
{{:Softpedia}}
 
<section end=links/>
 
<section end=links/>
  
= Announcements =
+
== Announcements ==
  
 
{{:relax release announcements}}
 
{{:relax release announcements}}
  
  
= See also =
+
== See also ==
  
 +
* [http://www.nmr-relax.com/api/3.3/ The relax 3.3 API documentation]
 
{{:relax release see also}}
 
{{:relax release see also}}
 
[[Category:Relaxation dispersion analysis]]
 
[[Category:Relaxation dispersion analysis]]

Revision as of 13:30, 22 October 2015


Official relax releases
relax logo
relax version 3.3.3
Previous version Next version
← relax 3.3.2 relax 3.3.4 →

Release type Major feature and bugfix
Release date 24 November 2014

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

Description

This is a major feature and bugfix release. It fixes a failure when loading relaxation data and adds Python 3 support for using the NMRPipe showApod software. Features include a large expansion for the align_tensor.matrix_angles and align_tensor.svd user functions to support the standard inter-matrix angles, the unitary 9D vector notation {Sxx, Sxy, Sxz, Syx, Syy, Syz, Szx, Szy, Szz}, and the irreducible spherical tensor 5D basis set of {A-2, A-1, A0, A1, A2} for correctly calculating the inter-tensor angles, singular values and condition numbers.


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.3
(24 November 2014, from /trunk)
http://svn.gna.org/svn/relax/tags/3.3.3


Features

  • Implemented the lib.geometry.vectors.vector_angle_atan2() relax library function. This is for calculating the inter-vector angle using the more numerically stable atan2() formula.
  • Implemented the lib.geometry.vectors.vector_angle_acos() relax library function. This is used to calculate the inter-vector angle using the arccos of the dot product formula. The function has been introduced into the relax library as the calculation is repeated throughout relax.
  • Expanded the basis sets for the align_tensor.matrix_angles user function to allow the correct inter-tensor angles to be calculated. This includes the standard inter-matrix angles via the arccos of the Euclidean inner product of the alignment matrices in rank-2, 3D form divided by the Frobenius norm of the matrices, irreducible spherical tensor 5D basis set {A-2, A-1, A0, A1, A2}, and the unitary 9D basis set {Sxx, Sxy, Sxz, Syx, Syy, Syz, Szx, Szy, Szz} (all of which produce the same result).
  • Expanded the basis sets for the align_tensor.svd user function to allow the correct singular values and condition number to be calculated. This includes the irreducible spherical tensor 5D basis set {A-2, A-1, A0, A1, A2} and the unitary 9D basis set {Sxx, Sxy, Sxz, Syx, Syy, Syz, Szx, Szy, Szz} (both of which produce the same result).
  • Added the angle_units and precision arguments to the align_tensor.matrix_angles user function to allow either degrees or radians to be output and the number of decimal points to be specified.
  • Added the precision argument to the align_tensor.svd user function to allow the number of decimal points for the singular values and condition number to be specified.
  • Updated the align_tensor.display user function to output the irreducible spherical harmonic weights. This is the alignment tensor in the {A-2, A-1, A0, A1, A2} notation.


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