Difference between revisions of "Relax 3.3.4"

From relax wiki
Jump to navigation Jump to search
(→‎Features: Copied the features list from the CHANGES file.)
m (Switch to the {{gna link}}, {{gna task link}}, and {{gna task url}} templates to remove dead Gna! links.)
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{lowercase title}}
 
{{lowercase title}}
  
= Description =
+
{{infobox relax release
 +
| version  = 3.3.4
 +
| prev    = 3.3.3
 +
| next    = 3.3.5
 +
| keywords = Relaxation curve-fitting, state file
 +
| type    = Major feature and bugfix
 +
| date    = 3 December 2014
 +
| manual  = yes
 +
}}
 +
 
 +
== Description ==
  
 
<section begin=description/>
 
<section begin=description/>
Line 7: Line 17:
 
<section end=description/>
 
<section end=description/>
  
= Download =
+
== Download ==
  
 
<section begin=download/>
 
<section begin=download/>
Line 13: Line 23:
 
<section end=download/>
 
<section end=download/>
  
= CHANGES file =
+
== CHANGES file ==
  
 
<section begin=metadata/>
 
<section begin=metadata/>
 +
Version 3.3.4 <br/>
 +
(3 December 2014, from /trunk) <br/>
 +
http://svn.gna.org/svn/relax/tags/3.3.4
 
<section end=metadata/>
 
<section end=metadata/>
  
== Features ==
+
=== Features ===
  
 
<section begin=features/>
 
<section begin=features/>
* Numerous improvements for the relax_fit.select_model user function.
+
* Numerous improvements for the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function].
 
* Support for the saturation recovery experiment in the relaxation exponential curve-fitting analysis.
 
* Support for the saturation recovery experiment in the relaxation exponential curve-fitting analysis.
 
* Support for the inversion recovery experiment in the relaxation exponential curve-fitting analysis.
 
* Support for the inversion recovery experiment in the relaxation exponential curve-fitting analysis.
 
* Added a section to the start of the relaxation curve-fitting chapter of the manual to include descriptions of all supported models.
 
* Added a section to the start of the relaxation curve-fitting chapter of the manual to include descriptions of all supported models.
* Addition of a button to the R1 and R2 GUI analyses for selecting the desired exponential curve model via the relax_fit.select_model user function.
+
* Addition of a button to the R<sub>1</sub> and R<sub>2</sub> GUI analyses for selecting the desired exponential curve model via the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function].
 
<section end=features/>
 
<section end=features/>
  
== Changes ==
+
=== Changes ===
  
 
<section begin=changes/>
 
<section begin=changes/>
 +
* Small updates for the wiki section of the release checklist document.
 +
* Fixes for the links at the bottom of all HTML manual pages.  This is for the [http://www.nmr-relax.com/manual/index.html automatically generated documentation], created using latex2html.  The links all require double quotes, and some a trailing '/'.  The links fixed are [http://www.nmr-relax.com], [http://www.nmr-relax.com/manual/] and [http://download.gna.org/relax/manual/relax.pdf].
 +
* Removed the [http://www.nmr-relax.com/manual/Latest_sources_the_relax_repositories.html repository backup file text from the relax manual].  The gzipped repository dump file has not been created by Gna! for many, many years.  The problem was identified by the [http://validator.w3.org/checklink W3C link checker].
 +
* Updated all of the [http://www.nmr-relax.com/manual/] links in the [http://www.nmr-relax.com/api/3.3/lib.dispersion-module.html lib.dispersion package].  This is for all of the individual model pages in the HTML manual.
 +
* Improved the description for the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function].
 +
* A small code rearrangement to create the [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper-module.html new target_functions.relax_fit_wrapper module].  This follows from the idea at {{gna task url|7415|comment=6}}.  The *func_wrapper() functions of the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.optimisation-module.html specific_analyses.relax_fit.optimisation module] have been shifted out and converted to class methods to create the [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper-module.html target_functions.relax_fit_wrapper module].  This will be used to abstract away all of the C code, and will form the infrastructure to allow new exponential curves to be quickly supported.  The modules of the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit-module.html specific_analyses.relax_fit] and [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_disp-module.html specific_analyses.relax_disp] packages now import the [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html target_functions.relax_fit_wrapper.Relax_fit_opt target function class] and use that instead.
 +
* Shifted the C code Jacobian functions into the new [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper-module.html target_functions.relax_fit_wrapper module].  This shifts all of the relaxation curve-fitting C code access into the [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper-module.html  target_functions.relax_fit_wrapper module] so that the rest of relax does not need to handle the C code.  This will allow for new models to be very easily supported, as they would all be set up in this target function module.
 +
* Updated the formula in the description of the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function].
 +
* Modified the printouts from the [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb user function] if models are present.  Instead of printing out 'MODEL', 'ATOM, HETATM, TER' and 'ENDMDL' for each model, the header 'MODEL records' is printed followed by a single '.' character for each model.  For structures with many models, this results in a huge speed up of the user function which is strongly limited by how fast the terminal can display text.
 +
* Added the synthetic saturation-recovery data in the form of Sparky peak lists to the repository.  These files were created by Andras Boeszoermenyi.  They are attached to {{gna task link|7415}} as the {{gna link|url=gna.org/task/download.php?file_id=22989|text=Relax_sym.tar.gz file}}.  They were created for the formula I<sub>0</sub>(1 - e<sup>−R<sub>1</sub>.t</sup>) where I<sub>0</sub> = 1000000000000000.00 and R<sub>1</sub> = 0.5.  These files and the associated relax_sim.py script (which needs to be updated for the latest relax version) could form the basis of a basic system test.  This system test could then be used to implement the saturation-recovery experiment equations in relax.
 +
* Updated the [http://www.nmr-relax.com/api/3.3/target_functions-module.html target_functions package] __all__ list to include the relax_fit* modules.
 +
* Modified the package __all__ list checking unit test to accept *.so C modules.
 +
* Removal of an unused import in the relax_fit_zooming_grid.py system test script.
 +
* Added a system test script for testing the saturation-recovery R<sub>1</sub> experiment.  This was created by Andras Boeszoermenyi.  The file was taken from the {{gna link|url=gna.org/task/download.php?file_id=22997|text=saturation_recovery.tar.gaz file}} attached to {{gna task link|7415}}.  The only difference with the original script is that the [http://www.nmr-relax.com/manual/grace_view.html grace.view user function] calls have been removed, as these cannot be used in a system test.
 +
* Modified the relax_fit_saturation_recovery.py script to work as a system test.  This is the script from Andras Boeszoermenyi.  The change follows from the discussion of [http://thread.gmane.org/gmane.science.nmr.relax.devel/7308/focus=7369].  The status.install_path variable is now used to point to the location of the files.  The relax data store ds.tmpdir variable is used for outputting all files.  And commented out user functions have been deleted.
 +
* Added a copyright notice for Andras Boeszoermenyi for the newly added saturation-recovery R<sub>1</sub> script.  This change follows the discussion in the message [http://thread.gmane.org/gmane.science.nmr.relax.devel/7308/focus=7369].
 +
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_fit.Relax_fit-class.html#test_saturation_recovery Relax_fit.test_saturation_recovery system test].  This follows from the discussion of [http://thread.gmane.org/gmane.science.nmr.relax.devel/7308/focus=7369].
 +
* Added the saturation recovery experiment to the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function].  This simply adds a new option and sets up a different parameter set [R<sub>x</sub>, I<sub>&infin;</sub>].
 +
* Modified the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_fit.Relax_fit-class.html#test_saturation_recovery Relax_fit.test_saturation_recovery system test] script.  The [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function] call now selects the 'sat' model.
 +
* Fix for the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function] backend for the 'sat' model.
 +
* The exponential model name is now being passed into the target function class.  The model as specified by the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function] is now finally being sent into the target function, in this case the [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html target_functions.relax_fit_wrapper.Relax_fit_opt Relax_fit_opt class] in [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper-module.html target_functions.relax_fit_wrapper].
 +
* Small fix for the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function].
 +
* Renamed all of the relaxation curve-fitting target functions.  This includes all of the C functions which are model specific, by appending '_exp' to the current names to now be [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#func_exp func_exp], [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#dfunc_exp dfunc_exp], http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#d2func_exp d2func_exp], [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#jacobian_exp jacobian_exp], and [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#jacobian_chi2_exp jacobian_chi2_exp].  And all of the [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html target_functions.relax_fit_wrapper.Relax_fit_opt Relax_fit_opt target function class] *_wrapper() methods to *_exp().  The target function class is now only aliasing the *_exp() methods when the model is set to 'exp'.
 +
* Alphabetical ordering of the C function imports in the [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper-module.html target_functions.relax_fit_wrapper module].
 +
* Modified the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_fit.Relax_fit-class.html#test_saturation_recovery Relax_fit.test_saturation_recovery system test] to check for I<sub>&infin;</sub> instead of I<sub>0</sub>.
 +
* Added support for the saturation recovery experiment to parameter disassembly function.  This is in the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.parameters-module.html#disassemble_param_vector disassemble_param_vector() function] of the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.parameters-module.html specific_analyses.relax_fit.parameters module].  This function requires each experiment to be handled separately.
 +
* Implemented the target functions for the saturation recovery exponential curve.  In the [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html target_functions.relax_fit_wrapper.Relax_fit_opt Python target function class Relax_fit_opt], the new [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html#func_sat func_sat()], [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html#dfunc_sat dfunc_sat()] and [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html#d2func_sat d2func_sat()] methods have been created as wrappers for the new C functions.  These are aliased to func(), dfunc() and d2func() in the [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html#__init__ __init__() method].  In the target_functions/exponential.c C file, the functions exponential_sat(), exponential_sat_dIinf(), exponential_sat_dR(), exponential_sat_dIinf2(), exponential_sat_dR_dIinf() and exponential_sat_dR2() have been created to implement the function, gradient, and Hessian for the equation I(t) = I<sub>&infin;</sub>(1 - e<sup>-R.t</sup>).  In the target_functions/relax_fit.c file, the functions [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#func_sat func_sat()], [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#dfunc_sat dfunc_sat()], [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#d2func_sat d2func_sat()], [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#jacobian_sat jacobian_sat()] and [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#jacobian_chi2_sat jacobian_chi2_sat()] have been created as duplications of the *_exp() functions, but pointing to the exponential_sat*() functions and using I<sub>&infin;</sub> instead of I<sub>0</sub>.
 +
* Split the saturation recovery exponential equations and partial derivatives into their own C file.
 +
* Expansion and improvements for the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function] documentation and printouts.
 +
* The [http://www.nmr-relax.com/manual/relax_fit_relax_time.html relax_fit.relax_time] and [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model] user functions now have wizard graphics.  The R<sub>1</sub> graphic from graphics/analyses/r1_200x200.png is now being used.
 +
* Added support for the inversion recovery experiment to parameter disassembly function.  This matches the change for the saturation recovery experiment.  This is in the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.parameters-module.html#disassemble_param_vector disassemble_param_vector() function] of the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.parameters-module.html specific_analyses.relax_fit.parameters module].  This function requires each experiment to be handled separately.
 +
* Expanded the relax_fit_saturation_recovery.py system test script.  This now calls the [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html error_analysis.covariance_matrix user function] to test that code path.
 +
* Updated the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.api.Relax_fit-class.html#covariance_matrix relaxation curve-fitting covariance_matrix() API method] to handle all models.  The check for the 'exp' model type has been eliminated, and the parameter vector is assembled using the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.parameters-module.html#assemble_param_vector flexible assemble_param_vector() function] rather than manually constructing the vector.
 +
* The errors in the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_fit.Relax_fit-class.html#test_saturation_recovery Relax_fit.test_saturation_recovery system test] are now reasonable.  They have been set to 5% of I<sub>&infin;</sub> so that the chi-squared value during optimisation is more realistic.
 +
* Updated the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.api.Relax_fit-class.html#get_param_names relaxation curve-fitting get_param_names() API method] to handle all models.  This now simply returns the spin container 'params' list, allowing all models to be properly supported.
 +
* Big bug fix for the [http://www.nmr-relax.com/manual/error_analysis_covariance_matrix.html error_analysis.covariance_matrix user function].  The model_info structure is now being passed into the get_param_names() API method, as required by the API.
 +
* Another change for the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.api.Relax_fit-class.html#covariance_matrix relaxation curve-fitting covariance_matrix() API method] to handle all models.  The scaling matrix diagonalised list of 1.0 values now has the same number of elements as there are parameters.
 +
* Implemented the target functions for the inversion recovery exponential curve.  In the [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html target_functions.relax_fit_wrapper.Relax_fit_opt Python target function class Relax_fit_opt], the new [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html#func_inv func_inv()], [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html#dfunc_inv dfunc_inv()] and [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html#d2func_inv d2func_inv()] methods have been created as wrappers for the new C functions.  These are aliased to func(), dfunc() and d2func() in the [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html#__init__ __init__() method].  The target_functions/exponential_inv.c C file has been created with the functions exponential_inv(), exponential_inv_d0(), exponential_inv_dIinf(), exponential_inv_dR(), exponential_inv_dI02(), exponential_inv_dIinf2(), exponential_inv_dI0_dIinf(), exponential_inv_dR_dI0(), exponential_inv_dR_dIinf() and exponential_inv_dR2() have been created to implement the function, gradient, and Hessian for the equation I(t) = I<sub>&infin;</sub> - I<sub>0</sub>e<sup>-R.t</sup>.  In the target_functions/relax_fit.c file, the functions [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#func_inv func_inv()], [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#dfunc_inv dfunc_inv()], [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#d2func_inv d2func_inv()], [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#jacobian_inv jacobian_inv()] and [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit-module.html#jacobian_chi2_inv jacobian_chi2_inv()] have been created as duplications of the *_exp() functions, but pointing to the exponential_inv*() functions and adding the I<sub>&infin;</sub> dimension.
 +
* More editing of the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function].  The IR and SR abbreviations have been added, and a lot of text cleaned up.
 +
* Improvement for the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function] in the GUI.  Unicode text is now being used to display the parameters as R_x and I_0 and to show an infinity symbol in the I<sub>&infin;</sub> parameter.  The R<sub>x</sub> and I<sub>&infin;</sub> parameters have been added to [http://www.nmr-relax.com/api/3.3/lib.text.gui-module.html lib.text.gui] to allow this.
 +
* Expanded the relaxation curve-fitting chapter of the manual to include descriptions of the models.  A new section at the start of this chapter has been added to explain the different models and their equations.  This was taken from the script mode section and expanded to include the new saturation recovery experiment.
 +
* Removed the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function] call from the [http://www.nmr-relax.com/api/3.3/auto_analyses.relax_fit-module.html relax_fit auto-analysis].  This is to allow the user in a script, or in the GUI, to choose the model themselves.
 +
* Added a button to the R<sub>1</sub> and R<sub>2</sub> GUI analyses for executing the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function].  This is just after the peak list GUI element and before the optimisation settings.  It allows different curve types to be selected for the analysis.
 +
* Created the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.checks-module.html new specific_analyses.relax_fit.checks module].  This creates the check_model_setup Check object, following the check_*() function design at [http://wiki.nmr-relax.com/Relax_source_design#The_check_.2A.28.29_functions].  This will be used to make sure that the exponential curve model is set prior to executing certain user functions.
 +
* Improved the checking in the relaxation curve-fitting analysis.  The new [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.checks-module.html#check_model_setup specific_analyses.relax_fit.checks.check_model_setup() function] is now called prior to minimisation and in the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit.api.Relax_fit-class.html#get_param_names get_param_names() API method] to prevent Python errors from occurring due to missing data structures.  In addition, the [http://www.nmr-relax.com/api/3.3/pipe_control.mol_res_spin-module.html pipe_control.mol_res_spin module] function [http://www.nmr-relax.com/api/3.3/pipe_control.mol_res_spin-module.html#exists_mol_res_spin_data exists_mol_res_spin_data()] has been replaced with [http://www.nmr-relax.com/api/3.3/pipe_control.mol_res_spin-module.html#check_mol_res_spin_data check_mol_res_spin_data()].
 +
* Fix for the recently broken [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_fit.Relax_fit-class.html#test_curve_fitting_height_estimate_error Relax_fit.test_curve_fitting_height_estimate_error system test].  The [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function] is now called as this is no longer performed in the auto-analysis.
 +
* Removed the text that the inversion recovery experiment is not implemented yet.  This is in the documentation for the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function] and is in preparation for completing this.
 +
* Added the checks module to the [http://www.nmr-relax.com/api/3.3/specific_analyses.relax_fit-module.html specific_analyses.relax_fit package] __all__ list.
 +
* Fixes for the relaxation dispersion analysis for the recent relaxation curve-fitting analysis changes.  The [http://www.nmr-relax.com/api/3.3/target_functions.relax_fit_wrapper.Relax_fit_opt-class.html target_functions.relax_fit_wrapper.Relax_fit_opt Relax_fit_opt target function class] requires the model argument to be supplied to be correctly set up.
 +
* Fixes for the [http://www.nmr-relax.com/api/3.3/test_suite.unit_tests._target_functions.test_relax_fit-module.html unit tests of the target_functions.relax_fit C module].  This is for the recent renaming of all the C functions based on the model type.
 +
* Fix for the [http://www.nmr-relax.com/api/3.3/test_suite.gui_tests.rx.Rx-class.html#test_r1_analysis Rx.test_r1_analysis GUI test].  A click on the [http://www.nmr-relax.com/manual/relax_fit_select_model.html relax_fit.select_model user function] button is now being simulated.
 +
* Created a directory for holding synthetic inversion recovery R<sub>1</sub> data.
 +
* Copied synthetic inversion recovery Sparky peak lists from Sébastien Morin's inversion-recovery branch.
 +
* Created a system test script for the inversion-recovery function.  This is based on a copy of the script 'relax_fit_exp_2param_neg.py'.
 +
* The 3-parameter curve fitting test script now uses the corresponding peak lists.
 +
* Prepared the "exp_3param" test for inclusion of artificial data.
 +
* Added missing delays in the list.  The duplicates had been omitted...
 +
* Manually fix the script based on changes made during branch updating.  This is as discussed by Edward d'Auvergne in a post at [https://mail.gna.org/public/relax-devel/2012-01/msg00001.html].
 +
* Updated Séb's relax_fit_exp_3param_inv_neg.py system test script to work with the current relax design.
 +
* Added a script for calculating the expected peak intensities for an inversion recovery curve.  This is based on the values used by Sébastien Morin in his inversion-recovery branch, as the check_curve_fitting_exp_3param_inv_neg() function of the test_suite/system_tests/relax_fit.py file.
 +
* Increased the precision of the printout from the calc.py script of the last commit.
 +
* Changed the peak intensities for Gly 4 in the synthetic inversion recovery Sparky lists.  The values have been changed to match that determined from the calc.py script.  The replicate spectra intensities are simply the calculated intensity +/-1, to preserve the average.
 +
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.relax_fit.Relax_fit-class.html#test_inversion_recovery Relax_fit.test_inversion_recovery system test].  This simply calls Sébastien Morin's relax_fit_exp_3param_inv_neg.py system test script, ported from the inversion-recovery branch, and then checks the parameter values for the single optimised spin.
 +
* Updated the manual_c_module.py C module compilation development script for the recent changes.  The exponential_inv.c and exponential_sat.c files need to be compiled as well.
 +
* Python 3 fix for the relax_fit_exp_3param_inv_neg.py system test script.  The xrange() function does not exist in Python 3, so was replaced by range().
 +
* Updated the memory_leak_test_relax_fit.py development script for the C module changes.  This is only the docstring description which changed.
 +
* Epydoc docstring fixes for the [http://www.nmr-relax.com/api/3.3/lib.io-module.html lib.io module] - keyword arguments were not correctly identified.  These were identified by Troels in the post at [http://thread.gmane.org/gmane.science.nmr.relax.scm/24565/focus=7384].
 +
* Created the [http://www.nmr-relax.com/api/3.3/test_suite.system_tests.state.State-class.html#test_bug_23017_ieee_754_multidim_numpy_arrays State.test_bug_23017_ieee_754_multidim_numpy_arrays system test].  This is to catch [https://gna.org/bugs/?23017 bug #23017, the multidimensional numpy arrays are not being stored as IEEE 754 arrays in the XML state and results files].  This test checks a rank-2 float64 numpy array stored in the current data pipe against what the IEEE 754 int list should be for it.
 +
* Grammar fix for a warning from the [http://www.nmr-relax.com/manual/pymol_frame_order.html pymol.frame_order user function].
 
<section end=changes/>
 
<section end=changes/>
  
== Bugfixes ==
+
=== Bugfixes ===
  
 
<section begin=bugfixes/>
 
<section begin=bugfixes/>
 +
* Bug fix for the [http://www.nmr-relax.com/manual/pymol_view.html pymol.view user function] for when no PDB file exists.  The user function would fail with an AttributeError when the currently loaded data does not exist as a PDB file.  This is now caught and the non-existent PDB is no longer displayed.  A better solution might be to dump all the current structural data into a temporary file and load that, all within a try-finally statement to be sure to delete the temporary file.  This solution may not be what the user is interested in anyway.
 +
* Simple fix for [https://gna.org/bugs/?23017 bug #23017, the multidimensional numpy arrays are not being stored as IEEE 754 arrays in the XML state and results files].  The problem was a relatively recent regression caused by a change to the [http://www.nmr-relax.com/api/3.3/lib.arg_check-module.html#is_float_matrix is_float_matrix() function] of the [http://www.nmr-relax.com/api/3.3/lib.arg_check-module.html lib.arg_check module].  It was simply that the default dims keyword argument value was changed from None to (3, 3).  Therefore any call to the function without supplying the dims argument would fail if the matrix was not of the (3, 3) shape.
 
<section end=bugfixes/>
 
<section end=bugfixes/>
  
= Links =
+
== Links ==
  
 
<section begin=links/>
 
<section begin=links/>
Line 44: Line 128:
  
 
* [http://wiki.nmr-relax.com/Relax_3.3.4 Official release notes on the relax wiki].
 
* [http://wiki.nmr-relax.com/Relax_3.3.4 Official release notes on the relax wiki].
* [https://gna.org/forum/forum.php?forum_id=2483 Gna! news item].
+
* {{gna link|url=gna.org/forum/forum.php?forum_id=2483|text=Gna! news item}}.
 
* [http://article.gmane.org/gmane.science.nmr.relax.announce/62 Gmane mailing list archive].
 
* [http://article.gmane.org/gmane.science.nmr.relax.announce/62 Gmane mailing list archive].
 
* [http://www.mail-archive.com/relax-announce%40gna.org/msg00053.html The Mail Archive].
 
* [http://www.mail-archive.com/relax-announce%40gna.org/msg00053.html The Mail Archive].
 
* [https://mail.gna.org/public/relax-announce/2014-12/msg00000.html Local archives].
 
* [https://mail.gna.org/public/relax-announce/2014-12/msg00000.html Local archives].
* [http://marc.info/?l=relax-announce&m=141686534623579&w=2 Mailing list ARChives (MARC)].
+
* [http://marc.info/?l=relax-announce&m=141773006429004&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]
 
* [http://www.nmr-relax.com/api/3.3/ The relax 3.3 API documentation]
 
{{:relax release see also}}
 
{{:relax release see also}}
 
[[Category:Relaxation dispersion analysis]]
 
[[Category:Relaxation dispersion analysis]]

Latest revision as of 11:22, 16 October 2020


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

Keywords Relaxation curve-fitting, state file
Release type Major feature and bugfix
Release date 3 December 2014

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

Description

This is a major feature and bugfix release, finally adding support for the saturation recovery and inversion recovery R1 experiments and including a major bug fix for storing multi-dimensional numpy data structures as IEEE 754 byte arrays in the XML output of the relax state and results files.


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


Features

  • Numerous improvements for the relax_fit.select_model user function.
  • Support for the saturation recovery experiment in the relaxation exponential curve-fitting analysis.
  • Support for the inversion recovery experiment in the relaxation exponential curve-fitting analysis.
  • Added a section to the start of the relaxation curve-fitting chapter of the manual to include descriptions of all supported models.
  • Addition of a button to the R1 and R2 GUI analyses for selecting the desired exponential curve model via the relax_fit.select_model user function.


Changes


Bugfixes

  • Bug fix for the pymol.view user function for when no PDB file exists. The user function would fail with an AttributeError when the currently loaded data does not exist as a PDB file. This is now caught and the non-existent PDB is no longer displayed. A better solution might be to dump all the current structural data into a temporary file and load that, all within a try-finally statement to be sure to delete the temporary file. This solution may not be what the user is interested in anyway.
  • Simple fix for bug #23017, the multidimensional numpy arrays are not being stored as IEEE 754 arrays in the XML state and results files. The problem was a relatively recent regression caused by a change to the is_float_matrix() function of the lib.arg_check module. It was simply that the default dims keyword argument value was changed from None to (3, 3). Therefore any call to the function without supplying the dims argument would fail if the matrix was not of the (3, 3) shape.


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