relax 3.2.0

From relax wiki
Revision as of 16:21, 9 September 2014 by Bugman (talk | contribs) (Formatting of all symbols/parameters.)
Jump to navigation Jump to search


Description

This is a major feature release. It includes the addition of the new B14 and B14 full relaxation dispersion models [Baldwin 2014], a complete rearrangement of the module layout of the specific analyses packages, a number of new user functions, documentation improvements including the addition of a new chapter to the manual for the N-state model or ensemble analysis, and numerous of other features. This is also a major bugfix release, so all users are recommended to upgrade. This is essential if you are using the new relaxation dispersion analysis in relax as a severe bug in the error calculation has been corrected. See below for a comprehensive list of new features, the rather large number of changes, and the long list of all bugs fixed.


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


Features

  • Addition of the vector_angle() relax library function for calculating the signed or directional angle between two vectors.
  • Huge speed up of the interatom.define user function.
  • For improved feedback, a busy cursor is shown in the GUI when executing user functions.
  • The steady-state NOE auto-analysis now produces a 2D Grace plot of the reference and saturated spectra peak intensity values.
  • Complete redesign of the specific analyses backend, simplifying and cleaning up this internal API and making it easier for users to add completely new analysis types to relax.
  • Parametric reduction of the rotor frame order model, eliminating one redundant parameter hence simplifying optimisation.
  • Large improvement for the lib.software.grace module. The '*_err' and '*_bc' parameter names for the parameter error and back-calculated parameters respectively are now supported, allowing these values to be easily plotted.
  • Expansion of the value.set user function to handle parameters which consist of lists of values. The index argument has been added to allow the index of the list to be specified, and this is then propagated into the specific analysis API.
  • Improvements for the parameter definitions in all analysis types. This allows for better output in 2D plots and text files.
  • Implemented linear constraints for the frame order analysis. This uses the log-barrier constraint algorithm in the minfx library to provide constraints without requiring gradients.
  • Improved and expanded the relax command line options for debugging.
  • Full independence of the relax library so that it can be used outside of relax.
  • The addition of a relaxation dispersion user function for setting the R20 values to the minimum R2eff value.
  • Expanded capabilities for the relax_disp.sherekhan_input user function.
  • Implementation of the B14 and B14 full relaxation dispersion CPMG models for 2-site exchange for all time scales (from the new paper [Baldwin 2014] at http://dx.doi.org/10.1016/j.jmr.2014.02.023).
  • Large improvements to the relax HTML manual including fixes for URLs, bibliography entries, links, and tables.
  • Support for multiple point creation for the OpenDX chi-squared space mapping user function.
  • Automatic determination of reasonable initial contour levels for the OpenDX mapping user function.
  • Addition of a new chapter to the manual for the N-state model or ensemble analysis.
  • Creation of the new pymol.frame_order user function for visualising results.
  • Expansion of the Grace 2D data plotting capabilities.


Changes


Bugfixes

  • Fix for bug #21814, the PDB reading failure when the PDB records are not padded to 80 spaces. The fix is simple, all PDB records are pre-validated. This includes removing all newline characters and padding each PDB record to 80 spaces when needed. This will however add an overhead cost -- the internal PDB reader will now be slower. However corrupted PDB files, produced by MODELLER for example, not padded to 80 spaces will now be better supported.
  • Bug fix for all of the R relaxation dispersion models. The atan2() function is now being used rather than atan() for determining the rotating frame tilt angle. This is to allow the angle to be in the correct quadrant - i.e. to have a sign or direction.
  • Huge speed up of the interatom.define user function. This is to fix bug #21862, the freezing up of relax when using the dipolar relaxation button in the model-free auto-analysis in the GUI. This involves a number of changes. The algorithm for the backend of the interatom.define user function has been broken into two separate parts. The first part is new and uses the internal structural object atom_loop() twice for each spin ID string. This then calls the new are_bonded_index() structural object method which uses atom indices to find if two atoms are bonded, as the atom indices are returned from the atom_loop(). The are_bonded_index() is orders of magnitude faster than are_bonded() as selection objects are not used and the bonded data structure can be directly accessed. The are_bonded() method has also been slightly speed up by improving its logic. The second part is to perform the original algorithm of two nested spin loops over each spin ID and using the are_bonded() structural method. This second part only happens if the first part finds nothing. The structural object atom_loop() method has been modified to be able to return the molecule index. These indices are needed for the new are_bonded_index() method. When running relax with the profile flag turned on, a simple script which loads the 'Ubiquitin2.bz2' saved state and then the "interatom.define(spin_id1='@N', spin_id2='@H', direct_bond=True)" user function decreases from a total time of 143 to 3.8 seconds. However there are no speed changes detectable in the relax test suite - on one computer the system, unit and GUI tests only only vary by a fraction of a second.
  • Fix for the NOE analysis for the peak intensity parameters. This relates to bug #21863, the grace.write user function not being able to write ref/sat plots as described in sample script noe.py. The 'ref' and 'sat' parameters have been replaced by the 'intensities' dictionary data structure a long, long time ago. Therefore they have been eliminated and replaced by the 'intensities' definition.
  • Fixes for the definitions of the N-state model analysis parameters. This analysis does not use the CSA value, and the paramagnetic centre is a list, not a float.
  • Fixes for the definitions of the 'theta' and 'w_eff' relaxation dispersion parameters. These should not be manually changed by the user and they are not optimised parameter. Therefore they have been shifted from the set 'params' to the set 'all', to avoid listing them in the parameter tables (for example in the value.set user function).
  • Fixes for the frame_order.pivot user function - the model parameters were not being updated. The update_model() function is now called to make sure that the pivot point is either added or removed from the list of model parameters.
  • Fix for bug #21924, the failure to output 2D Grace plots for the R20, R2A0, R2B0, and R0 relaxation dispersion parameters. A simple test for missing data fixed the problem.
  • Fix for the Relax_disp.test_korzhnev_2005_15n_sq_data system test for certain MS Windows systems. This was reported as sr #3142. The problem was simply the lower precision of this system.
  • Fix for the cpmg_analysis.py relaxation dispersion sample script. This was reported as sr #3142. The problem was that one of the paths was in the Linux/Unix format and hence if the path is not changed by the user, then the script will not work for them if they are using MS Windows or Mac OS X.
  • More path fixes for the sample scripts to allow them to run on MS Windows and Mac OS X. This is for the relaxation dispersion R1rho_analysis.py script and the N-state model conformation_analysis_rdc+pcs.py script. These scripts should be modified by the user for their own data, so they should not encounter this problem when using the scripts normally.
  • Python 3 fixes throughout the codebase.
  • Python 3 fix for the Library.test_library_independence software verification test.
  • Python 3 fix for the Relax_disp.test_kteilum_mhsmith_eschulz_lcchristensen_gsolomentsev_moliveberg_makke_sod1wt_t25_to_cr72 system test. The xrange builtin function does not exist in Python 3.
  • Python 3 fix for the Relax_disp.setup_sod1wt_t25 system test. The xrange builtin function does not exist in Python 3.
  • Updated the Relax_disp.test_hansen_cpmg_data_missing_auto_analysis system test for the recent changes. This is for fixing bug #21960. The chi-square values are different due to the fix for bug #21954, the peak intensity error analysis bug, and the CR72 model results are different due to the fix for bug #21953, the change of the kex values used in the grid search.
  • Fix for the relax_disp.select_model user function for when the C modules are not compiled. This was checking for the presence of the compiled C modules whenever the R2eff model was specified. However this behaviour is incorrect. It should only check for the C modules if exponential curves are to be fit.
  • Fix for bug. The variances used to calculated std, should only be taken from those which are defined in the subset. Regarding bug #21954, order of spectrum.error_analysis is important.
  • Fix for system test Relax_disp.test_hansen_cpmgfit_input. Bug #21989, relax_disp.cpmgfit_input does not work for model CR72. The looping was performed over the file lines instead of the defined fixed lines. The output files is truncated, and does not contain the wished data.
  • Fix for "offset" and "point" swapped in looping. Bug #21989, relax_disp.cpmgfit_input does not work for model CR72.
  • Fix for bug #21990, the --log and --tee options not functioning with the test suite.
  • Fix for bug #21970. The Mac OS X dmg file required one of the test_suite/shared_data directories included in the 'include' list to properly bundle all relax modules inside the Mac App framework. This was achieved by creating a whitelist structure and adding the directory to that.
  • Fix for bug #21984, the numpy.float16 error. The numpy.float16 type is not defined for all numpy versions. Therefore the lib.check_types.float16 type is used instead as this defaults to numpy.float32 when numpy.float16 is missing.
  • Fix for the relax_disp.parameter_copy function. The median of the values was not performed properly, since 0.0 was already in the starting list of values.
  • Fix for the relax_disp.parameter_copy user function description. The parameters are not averaged but instead the median value from all spins is taken.
  • Fix for bug #22001, the execution of script changing the current working directory. The changing of the current working directory (CWD) was added to allow for nested scripting. However this is no longer needed as the script import mechanism has changed from the exec() function call to the runpy Python module.
  • Fix for bug #22002, the failure of the Library.test_library_independence software verification test. The fix was simply to use the relax installation path in the status singleton object to make sure that the relax 'lib' directory can be found independently of what the current working directory is.
  • Fix for path to sample data in sample script: sample_scripts/relax_disp/cpmg_analysis.py.
  • Fix for path to sample data in sample script: sample_scripts/relax_disp/R1rho_analysis.py.
  • Fix for bug #22004, the conformation_analysis_rdc+pcs.py N-state model sample script not working. The problem was that the return_api() function call needed to be after the creation of the data pipe.
  • Fix for the local_min_search.py N-state model sample script. The return_api() function call was preformed too early. Instead of placing it after the data pipe creation, the specific analysis type is now directly specified.
  • Fix for type in the eta scale of CR72 model. The calculation in relax was correct, but the scale of eta has been wrong in the documentation. This was discussed in: http://thread.gmane.org/gmane.science.nmr.relax.devel/5506.
  • Bug fix for taking the median if there is more than 0 values in the list. Bug #22010: relax_disp.parameter_copy return a list of pA, if copying only for one spin.
  • Fix for the dispersion model_statistics() specific API method. The spin ID argument should override the model_info argument. The method now correctly implements this.
  • Fixed the rotor axis direction in the lib.frame_order.rotor_axis module. The normalisation code has also been simplified.
  • Fix for tabular space and forgotten "\n" when writing dx.maps config files. Bug #22023: relax dx.map produce .net files which makes error.
  • Added another sentence telling the user that multiple field relaxation data is essential. This is for the model-free dauvergne_protocol auto-analysis section of the relax manual and relates to bug #21799.
  • Another sentence about multiple field relaxation data added to the manual. This is for the model-free dauvergne_protocol GUI section of the relax manual and relates to bug #21799.
  • Documentation fix for IT99. Changed kex to tex. Still needs to be changed at homepage: http://www.nmr-relax.com/analyses/relaxation_dispersion.html#IT99. Bug #22019: the IT99 model is listed with parameter kex instead of tex.
  • Documentation fix for IT99. Changed kex to tex in user function. Bug #22019: the IT99 model is listed with parameter kex instead of tex.
  • Small extra explanation in auto analysis. Bug #21799: Insufficient recommendations/warning message for the execution of dauvergne protocol with 1 field is incomplete.
  • Big bug fix for the relax installation path determination. This is to fix bug #22037, the failure to load graphics in the GUI due to the relax installation path not being set up correctly. The problem is that the status module was looking for the compat.py file to determine where the base directory is, but this file has been moved into the lib/ package. Now the dep_check.py file is being searched for.
  • Fixed the description of the N-state model in the pipe.create user function. This has nothing to do with domain motions - it is the treatment of ensembles of structures.
  • Fix for the axis labels in the rdc.corr_plot user function when T data is converted to D.
  • Fix for bug #22039, the printing out of Dpar twice by the diffusion_tensor.display user function. This is reported at https://gna.org/bugs/?22039. The solution is given in the original bug report.
  • Fix for bug #22041, the PDB atom serial number error from the structure.write_pdb user function. This was reported at https://gna.org/bugs/?22041. The problem is that the structure.write_pdb user function preserves the atom numbering from the original structure and uses that for the atom serial number. However the atom serial number must be replaced with sequential values to produce a valid PDB file. This is fatal for any CONECT records.
  • Fix for the chain-reaction failures in the test suite. This fixes bug #22055, the processor.run_queue() not cleaning up in uni_processor - chain-reaction failures in the test suite. The fix was insanely simple, just implementing what was mentioned Gary Thompson's FIXME comment in the run_queue() method of the uni-processor object. The queue execution code has been placed inside a 'try' statement and the queue cleaning up code in a 'finally' statement. This closes a painfully difficult to find bug that has been in relax since 2006, though only affecting relax developers.


Links

For reference, the following links are also part of the announcement for this release:


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: 10.1016/j.jmr.2014.02.023).

<HarvardReferences />


See also

relax release descriptions