Difference between revisions of "Relax 3.2.1"

From relax wiki
Jump to navigation Jump to search
(Shifted the announcements section.)
m (→‎Links: Fix the broken Gna! forum link by switching to {{gna link}}.)
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{lowercase title}}
 
{{lowercase title}}
  
= Description =
+
{{infobox relax release
 +
| version  = 3.2.1
 +
| prev    = 3.2.0
 +
| next    = 3.2.2
 +
| keywords = [[B14]] and [[B14 full]] relaxation dispersion models, [[NS CPMG 2-site expanded]] model, [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function]
 +
| type    = Major bugfix
 +
| date    = 23 May 2014
 +
| manual  = yes
 +
}}
  
<onlyinclude>
+
== Description ==
This is a major bugfix release which includes the equations for the [[B14]] and [[B14 full]] [[:Category:relaxation dispersion|relaxation dispersion]] models [Baldwin 2014] introduced with [[relax 2.2.0|relax version 3.2.0]], now being calculated correctly, the [[NS CPMG 2-site expanded]] model correctly handling edge cases where no exchange is expected, and the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function] correctly operating when multiple models are loaded into the data store.
 
</onlyinclude>
 
  
= Download =
+
<section begin=description/>
 +
This is a major bugfix release which includes the equations for the [[B14]] and [[B14 full]] [[:Category:relaxation dispersion analysis|relaxation dispersion]] models [Baldwin 2014] introduced with [[relax 2.2.0|relax version 3.2.0]], now being calculated correctly, the [[NS CPMG 2-site expanded]] model correctly handling edge cases where no exchange is expected, and the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function] correctly operating when multiple models are loaded into the data store.
 +
<section end=description/>
  
 +
== Download ==
 +
 +
<section begin=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).  
 
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).  
 +
<section end=download/>
  
 +
== CHANGES file ==
  
= CHANGES file =
+
<section begin=metadata/>
 
+
Version 3.2.1 <br/>
Version 3.2.1
+
(23 May 2014, from /trunk) <br/>
(23 May 2014, from /trunk)
 
 
http://svn.gna.org/svn/relax/tags/3.2.1
 
http://svn.gna.org/svn/relax/tags/3.2.1
 +
<section end=metadata/>
  
== Features ==
+
=== Features ===
  
 +
<section begin=features/>
 
*  N/A
 
*  N/A
 +
<section end=features/>
  
 +
=== Changes ===
  
== Changes ==
+
<section begin=changes/>
 
 
 
*  Punctuation fixes throughout the CHANGES document.
 
*  Punctuation fixes throughout the CHANGES document.
 
*  Modified system test Relax_disp.test_cpmg_synthetic_ns3d_to_cr72 to catch [https://gna.org/bugs/?22017 bug #22017: LinAlgError, for all numerical CPMG models].  System test was renamed from test_cpmg_synthetic_cr72 to test_cpmg_synthetic_ns3d_to_cr72, to reflect which model create the data and which model fits the data.
 
*  Modified system test Relax_disp.test_cpmg_synthetic_ns3d_to_cr72 to catch [https://gna.org/bugs/?22017 bug #22017: LinAlgError, for all numerical CPMG models].  System test was renamed from test_cpmg_synthetic_cr72 to test_cpmg_synthetic_ns3d_to_cr72, to reflect which model create the data and which model fits the data.
Line 42: Line 57:
 
*  Created the test_ns_cpmg_2site_expanded_no_rex8() relaxation dispersion unit test.  This is a demonstration, showing the [[NS CPMG 2-site expanded]] model with no exchange when k<sub>ex</sub> = 1e<sup>5</sup>.  I.e. when the motion is too fast for exchange to be observed.  This test should be used for all dispersion models to make sure that they model this edge case correctly as well.  This follows from http://article.gmane.org/gmane.science.nmr.relax.devel/5906.
 
*  Created the test_ns_cpmg_2site_expanded_no_rex8() relaxation dispersion unit test.  This is a demonstration, showing the [[NS CPMG 2-site expanded]] model with no exchange when k<sub>ex</sub> = 1e<sup>5</sup>.  I.e. when the motion is too fast for exchange to be observed.  This test should be used for all dispersion models to make sure that they model this edge case correctly as well.  This follows from http://article.gmane.org/gmane.science.nmr.relax.devel/5906.
 
*  Attempt at fixing [https://gna.org/bugs/?22071 bug #22071, the relax unit test and system test not functioning].  The fix here is that the git commands to show the current subversion revision number only works when run from the relax base directory, or one of the subdirectories.  This should now be fixed, as the pipe running the command will first 'cd' to the relax base directory.
 
*  Attempt at fixing [https://gna.org/bugs/?22071 bug #22071, the relax unit test and system test not functioning].  The fix here is that the git commands to show the current subversion revision number only works when run from the relax base directory, or one of the subdirectories.  This should now be fixed, as the pipe running the command will first 'cd' to the relax base directory.
*  Another attempt at fixing [https://gna.org/bugs/?22071 bug #22071, the relax unit test and system test not functioning].  This time the complicated shell command "cd %s; git svn find-rev $(git rev-parse HEAD)" has been replaced with "cd %s; git svn info".
+
*  Another attempt at fixing [https://gna.org/bugs/?22071 bug #22071, the relax unit test and system test not functioning].  <nowiki>This time the complicated shell command "cd %s; git svn find-rev $(git rev-parse HEAD)" has been replaced with "cd %s; git svn info".</nowiki>
 
*  Changed most default dispersion parameter values to avoid edge cases where there is no exchange.  The &Delta;&omega; parameters were all 0.0 and k<sub>ex</sub> 1e<sup>5</sup>, both of which result in no exchange.  If this is ever used for an optimisation starting point - which it never should, apart from development, test suite, and debugging purposes - then the optimisation algorithm will have a very hard time recovering.  The p<sub>A</sub> parameter has been changed to 0.90 to set it to a reasonable value while still staying far away from the no exchange condition of p<sub>A</sub> = 1.0.  This follows from http://article.gmane.org/gmane.science.nmr.relax.devel/5917.
 
*  Changed most default dispersion parameter values to avoid edge cases where there is no exchange.  The &Delta;&omega; parameters were all 0.0 and k<sub>ex</sub> 1e<sup>5</sup>, both of which result in no exchange.  If this is ever used for an optimisation starting point - which it never should, apart from development, test suite, and debugging purposes - then the optimisation algorithm will have a very hard time recovering.  The p<sub>A</sub> parameter has been changed to 0.90 to set it to a reasonable value while still staying far away from the no exchange condition of p<sub>A</sub> = 1.0.  This follows from http://article.gmane.org/gmane.science.nmr.relax.devel/5917.
 
*  Fixes for 3 dispersion system tests for the change in default parameter values.  The default values are used in the auto-analysis in the test suite to avoid the grid search.  The changed values affected the optimisation of two spins from Flemming Hansen's data located at test_suite/shared_data/dispersion/Hansen/, residue 4 used as an example of no exchange and residue 70 used as an example where data is only available at one field.  The system test Relax_disp.test_set_grid_r20_from_min_r2eff_cpmg was also modified as it was directly checking these default values.
 
*  Fixes for 3 dispersion system tests for the change in default parameter values.  The default values are used in the auto-analysis in the test suite to avoid the grid search.  The changed values affected the optimisation of two spins from Flemming Hansen's data located at test_suite/shared_data/dispersion/Hansen/, residue 4 used as an example of no exchange and residue 70 used as an example where data is only available at one field.  The system test Relax_disp.test_set_grid_r20_from_min_r2eff_cpmg was also modified as it was directly checking these default values.
Line 48: Line 63:
 
*  Speed up for the version module when using a repository copy of the code.  The repository revision and URL and now stored as module variables, so that the 'svn info' and 'git svn info' commands are only run twice, once for the revision() function and once for the url() function.
 
*  Speed up for the version module when using a repository copy of the code.  The repository revision and URL and now stored as module variables, so that the 'svn info' and 'git svn info' commands are only run twice, once for the revision() function and once for the url() function.
 
*  Large speed up for the relax start up times for svn and git-svn copies of the relax repository.  The 'svn info' and 'git svn info' commands are now only executed once when the version module is first imported.  The revision() and url() functions have been merged into the repo_info() function and this is called when the module is imported.  This repo_info() function stores the repository revision and URL as the version.repo_revision and version.repo_url module variables.  It also catches if these variables are already set, so that multiple imports of the module do not cause the repository information to be looked up each time.  Previously the revision() and url() functions where called every time a relax state or result file was created, hence for repository copies the 'svn info' or 'git svn info' commands were being called each time.  The functions were also called for each interpreter object instantiated, and for each import of the version module.
 
*  Large speed up for the relax start up times for svn and git-svn copies of the relax repository.  The 'svn info' and 'git svn info' commands are now only executed once when the version module is first imported.  The revision() and url() functions have been merged into the repo_info() function and this is called when the module is imported.  This repo_info() function stores the repository revision and URL as the version.repo_revision and version.repo_url module variables.  It also catches if these variables are already set, so that multiple imports of the module do not cause the repository information to be looked up each time.  Previously the revision() and url() functions where called every time a relax state or result file was created, hence for repository copies the 'svn info' or 'git svn info' commands were being called each time.  The functions were also called for each interpreter object instantiated, and for each import of the version module.
 +
<section end=changes/>
  
 +
=== Bugfixes ===
  
== Bugfixes ==
+
<section begin=bugfixes/>
 
 
 
*  Extremely important fix for the [[B14|model B14]].  This was discovered by author Andrew Baldwin by inspecting his code in relax.  [https://gna.org/bugs/?22021 Bug #22021:  model B14 shows bad fitting to data].  The implementation was performed wrong for calculation of g3 and g4.  The implementations should be performed by trigonometric functions.  The [[B14|model B14]] was previously in a state of non-functioning.  The [[B14|B14 model]] now shows excellent performance.
 
*  Extremely important fix for the [[B14|model B14]].  This was discovered by author Andrew Baldwin by inspecting his code in relax.  [https://gna.org/bugs/?22021 Bug #22021:  model B14 shows bad fitting to data].  The implementation was performed wrong for calculation of g3 and g4.  The implementations should be performed by trigonometric functions.  The [[B14|model B14]] was previously in a state of non-functioning.  The [[B14|B14 model]] now shows excellent performance.
 
*  Fix for bug #22069 by only deleting helix and sheet data with structure.delete when it exists.  This is [https://gna.org/bugs/?22069 bug #22069, the failure of the structure.delete user function with "AttributeError: Internal instance has no attribute 'helices'"].
 
*  Fix for bug #22069 by only deleting helix and sheet data with structure.delete when it exists.  This is [https://gna.org/bugs/?22069 bug #22069, the failure of the structure.delete user function with "AttributeError: Internal instance has no attribute 'helices'"].
 
*  Fix for all edge case 'no R<sub>ex</sub>' failures of the [[NS CPMG 2-site expanded]] model.  This uses the no exchange checking idea, modified to function in the relax trunk, from http://article.gmane.org/gmane.science.nmr.relax.devel/5847.  This is importantly on line 1 of the function.  The recently introduced set of 7 unit tests comprehensively showing these failures now all pass.
 
*  Fix for all edge case 'no R<sub>ex</sub>' failures of the [[NS CPMG 2-site expanded]] model.  This uses the no exchange checking idea, modified to function in the relax trunk, from http://article.gmane.org/gmane.science.nmr.relax.devel/5847.  This is importantly on line 1 of the function.  The recently introduced set of 7 unit tests comprehensively showing these failures now all pass.
 
*  Important bug fix for the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function] when multiple models are present.  This is to fix [https://gna.org/bugs/?22070 bug #22070, the failure of the structure.superimpose user function after deleting atoms with structure.delete].  The problem is that structure.delete was removing the atoms from the first model but none of the others.  This is because it was using the structural object atom_loop() method to find the atoms to be deleted, but this method operates on the first model.  So when the second model is reached, the atoms are already gone.
 
*  Important bug fix for the [http://www.nmr-relax.com/manual/structure_delete.html structure.delete user function] when multiple models are present.  This is to fix [https://gna.org/bugs/?22070 bug #22070, the failure of the structure.superimpose user function after deleting atoms with structure.delete].  The problem is that structure.delete was removing the atoms from the first model but none of the others.  This is because it was using the structural object atom_loop() method to find the atoms to be deleted, but this method operates on the first model.  So when the second model is reached, the atoms are already gone.
 +
<section end=bugfixes/>
  
 +
== Links ==
  
= Links =
+
<section begin=links/>
 +
For reference, the announcement for this release can also be found at following links:
  
For reference, the following links are also part of the announcement for this release:
+
* [http://wiki.nmr-relax.com/Relax_3.2.1 Official release notes on the relax wiki].
* [http://wiki.nmr-relax.com/Relax_3.2.1 Official release notes]
+
* {{gna link|url=gna.org/forum/forum.php?forum_id=2462|text=Gna! news item}}.
* [https://gna.org/forum/forum.php?forum_id=2462 Gna! news item]
+
* [http://article.gmane.org/gmane.science.nmr.relax.announce/55 Gmane mailing list archive].
* [http://article.gmane.org/gmane.science.nmr.relax.announce/55 Gmane]
+
* [http://www.mail-archive.com/relax-announce%40gna.org/msg00048.html The Mail Archive].
* [http://www.mail-archive.com/relax-announce%40gna.org/msg00048.html Mail Archive]
+
* [https://mail.gna.org/public/relax-announce/2014-05/msg00001.html Local archives].
* [https://mail.gna.org/public/relax-announce/2014-05/msg00001.html Local archives]
+
* [http://marc.info/?l=relax-announce&m=140105764428563&w=2 Mailing list ARChives (MARC)].
* [http://marc.info/?l=relax-announce&m=140105764428563&w=2 MARC]
 
  
 +
{{:Softpedia}}
 +
<section end=links/>
  
= Announcements =
+
== Announcements ==
  
 
{{:relax release announcements}}
 
{{:relax release announcements}}
  
  
= References =
+
== References ==
  
* [*Baldwin 2014] A. Baldwin (2014).  An exact solution for R2,eff in CPMG experiments in the case of two site chemical exchange.  ''J. Magn. Reson.'', '''244''', 114-124.  (DOI: [http://dx.doi.org/10.1016/j.jmr.2014.02.023 10.1016/j.jmr.2014.02.023]).
+
* [*Baldwin 2014] {{#lst:Citations|Baldwin14}}
 
<HarvardReferences />
 
<HarvardReferences />
  
 +
== See also ==
  
= See also =
+
* [http://www.nmr-relax.com/api/3.2/ The relax 3.2 API documentation]
 
+
{{:relax release see also}}
[[relax release descriptions]]
 
[[Category:Release_Notes]]
 

Latest revision as of 20:46, 8 October 2020


Official relax releases
relax logo
relax version 3.2.1
Previous version Next version
← relax 3.2.0 relax 3.2.2 →

Keywords B14 and B14 full relaxation dispersion models, NS CPMG 2-site expanded model, structure.delete user function
Release type Major bugfix
Release date 23 May 2014

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

Description

This is a major bugfix release which includes the equations for the B14 and B14 full relaxation dispersion models [Baldwin 2014] introduced with relax version 3.2.0, now being calculated correctly, the NS CPMG 2-site expanded model correctly handling edge cases where no exchange is expected, and the structure.delete user function correctly operating when multiple models are loaded into the data store.


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.2.1
(23 May 2014, from /trunk)
http://svn.gna.org/svn/relax/tags/3.2.1


Features

  • N/A


Changes

  • Punctuation fixes throughout the CHANGES document.
  • Modified system test Relax_disp.test_cpmg_synthetic_ns3d_to_cr72 to catch bug #22017: LinAlgError, for all numerical CPMG models. System test was renamed from test_cpmg_synthetic_cr72 to test_cpmg_synthetic_ns3d_to_cr72, to reflect which model create the data and which model fits the data.
  • Modified cpmg_synthetic script to first create all time structures before doing back-calculation. Bug #22017: LinAlgError, for all numerical CPMG models. The numerical models need all time points which are defined in setup to be present when calculating.
  • Renamed system test to test_cpmg_synthetic_ns3d_to_cr72_noise_cluster. The model that creates the data has been changed to numerical model. Bug #22017: LinAlgError, for all numerical CPMG models.
  • Implemented system test Relax_disp.test_cpmg_synthetic_ns3d_to_b14. Bug #22021: model B14 shows bad fitting to data. This is to catch model B14 showing bad fitting behaviour.
  • Parameter precision increase for system test Relax_disp.test_baldwin_synthetic. The correct implementation of the trigonometric functions allow for higher precision. Bug #22021: model B14 shows bad fitting to data. Duplicate line codes were also removed.
  • Code cleanup in system test Relax_disp.test_baldwin_synthetic_full. Bug #22021: model B14 shows bad fitting to data. The precision could also be increased by 1 digit.
  • Code cleanup in system test Relax_disp.test_baldwin_synthetic. Bug #22021: model B14 shows bad fitting to data. Removing many unnecessary lines of code.
  • Added 7 unit tests demonstrating edge case 'no Rex' failures of the NS CPMG 2-site expanded model. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; pA = 1.0; kex = 0.0; Δω = 0.0 and pA = 1.0; Δω = 0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; Δω = 0.0, pA = 1.0, and kex = 0.0. Such tests should be replicated for all dispersion models.
  • Created the Structure.test_bug_22069_structure_delete_helix_attribute system test. This is to catch bug #22069, the failure of the structure.delete user function with "AttributeError: Internal instance has no attribute 'helices'".
  • Created the Structure.test_bug_22070_structure_superimpose_after_deletion system test. This is to catch bug #22070, the failure of the structure.superimpose user function after deleting atoms with structure.delete.
  • Added some checks to the Structure.test_bug_22070_structure_superimpose_after_deletion system test. These tests reveal the real problem - that the atoms of the second model have not been removed by the structure.delete user function.
  • Added git-svn support for the relax version information module. This allows the subversion revision number and repository URL to be displayed on program startup, so that it is stored in log files. This is very useful for debugging purposes.
  • Improvements for the git-svn support in the relax version module. Python 3 is now correctly handled and the URL is properly extracted from the git repository.
  • Improvement for the unit test printouts when run with the --time command line option. The full unit test name is now printed out, reverting to the old behaviour. However the shortened test names are preserved for the other test suite categories.
  • Created the test_ns_cpmg_2site_expanded_no_rex8() relaxation dispersion unit test. This is a demonstration, showing the NS CPMG 2-site expanded model with no exchange when kex = 1e5. I.e. when the motion is too fast for exchange to be observed. This test should be used for all dispersion models to make sure that they model this edge case correctly as well. This follows from http://article.gmane.org/gmane.science.nmr.relax.devel/5906.
  • Attempt at fixing bug #22071, the relax unit test and system test not functioning. The fix here is that the git commands to show the current subversion revision number only works when run from the relax base directory, or one of the subdirectories. This should now be fixed, as the pipe running the command will first 'cd' to the relax base directory.
  • Another attempt at fixing bug #22071, the relax unit test and system test not functioning. This time the complicated shell command "cd %s; git svn find-rev $(git rev-parse HEAD)" has been replaced with "cd %s; git svn info".
  • Changed most default dispersion parameter values to avoid edge cases where there is no exchange. The Δω parameters were all 0.0 and kex 1e5, both of which result in no exchange. If this is ever used for an optimisation starting point - which it never should, apart from development, test suite, and debugging purposes - then the optimisation algorithm will have a very hard time recovering. The pA parameter has been changed to 0.90 to set it to a reasonable value while still staying far away from the no exchange condition of pA = 1.0. This follows from http://article.gmane.org/gmane.science.nmr.relax.devel/5917.
  • Fixes for 3 dispersion system tests for the change in default parameter values. The default values are used in the auto-analysis in the test suite to avoid the grid search. The changed values affected the optimisation of two spins from Flemming Hansen's data located at test_suite/shared_data/dispersion/Hansen/, residue 4 used as an example of no exchange and residue 70 used as an example where data is only available at one field. The system test Relax_disp.test_set_grid_r20_from_min_r2eff_cpmg was also modified as it was directly checking these default values.
  • Fix for the Relax_disp.test_cpmg_synthetic_dx_map_points system test. This uses the default parameter values to start the optimisation, therefore the recent change away from edge case 'no Rex' values allows the parameter values stored in ds.dx_clust_val to be correctly optimised.
  • Speed up for the version module when using a repository copy of the code. The repository revision and URL and now stored as module variables, so that the 'svn info' and 'git svn info' commands are only run twice, once for the revision() function and once for the url() function.
  • Large speed up for the relax start up times for svn and git-svn copies of the relax repository. The 'svn info' and 'git svn info' commands are now only executed once when the version module is first imported. The revision() and url() functions have been merged into the repo_info() function and this is called when the module is imported. This repo_info() function stores the repository revision and URL as the version.repo_revision and version.repo_url module variables. It also catches if these variables are already set, so that multiple imports of the module do not cause the repository information to be looked up each time. Previously the revision() and url() functions where called every time a relax state or result file was created, hence for repository copies the 'svn info' or 'git svn info' commands were being called each time. The functions were also called for each interpreter object instantiated, and for each import of the version module.


Bugfixes


Links

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

Softpedia also has information about the newest relax releases:


Announcements

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


References

  • [*Baldwin 2014] Baldwin A. J. (2014). An exact solution for R2,eff in CPMG experiments in the case of two site chemical exchange. J. Magn. Reson., 244, 114-124. (DOI: 10.1016/j.jmr.2014.02.023)

<HarvardReferences />

See also