Changes

Jump to navigation Jump to search

Relax 3.3.0

323 bytes added, 16:10, 10 September 2014
Addition of labelled section transclusion tags.
= Description =
<onlyincludesection begin=description/>
This is a major feature release which includes a huge number of changes, as can be seen below. The most important change is an incredible speed up of all [[:Category:relaxation dispersion|relaxation dispersion]] models. See the table below for a comparison to the previous [[relax 3.2.3]] release. The maximum possible advantage of linear algebra operations are used to eliminate all of the slow Python looping and to obtain the ultimate algorithms for speed. As this is using [[Numpy linalg|NumPy]], conversion to [[C]] or [[FORTRAN]] will not result in any significant speed advantage. With these huge speed ups, relax should now be one of the fastest software packages for analysing relaxation dispersion phenomena.
For R<sub>1&rho;</sub> experiments: 3 fields, each with 10 spin lock offsets, and each offset has been measured at 5 different spin lock fields. Per field there is 50 dispersion points. Total number of dispersion points per spin is 150.
<section end=description/onlyinclude>
= 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).
<section end=download/>
= CHANGES file =
<section begin=changes file/>
Version 3.3.0 <br/>
(3 September 2014, from /trunk) <br/>
http://svn.gna.org/svn/relax/tags/3.3.0
<section end=changes file/>
== Features ==
<section begin=features/>
* Huge speed ups for all of the relaxation dispersion models ranging from 1.452x to 163.004x times faster. The speed ups for the clustered spin analysis are far greater than for the single spin analysis.
* Implementation of a zooming grid search algorithm for optimisation in all analyses. This includes the addition of the [http://www.nmr-relax.com/manual/minimise_grid_zoom.html minimise.grid_zoom user function] to set the zoom level. The grid width will be divided by 2<sup>zoom_level</sup> and centred at the current parameter values. If the new grid is outside of the bounds of the original grid, the entire grid will be translated so that it lies entirely within the original.
* Added a button to the spectra list GUI element for the [http://www.nmr-relax.com/manual/spectrum_error_analysis.html spectrum.error_analysis user function]. This is placed after the 'Add' and 'Delete' buttons and is used in the NOE, R<sub>1</sub> and R<sub>2</sub> curve-fitting and relaxation dispersion analyses.
* RelaxErrors are now raised in the prompt or script UI if an old user function is called, printing out the names of the old and new user functions. This is for help in upgrading old scripts and is currently for the calc(), grid_search(), and minimise() user function calls.
<section end=features/>
== Changes ==
<section begin=changes/>
* Improved model handling for the internal structural object. The set_model() method has been added to allow either a model number to be set to the first unnumbered model (in preparation for adding new models) or to allow models to be renumbered. The logic of the add_model() has also been changed. Rather than looping over all atoms of the first model and copying them, which does not work due to the model validity checks, the entire MolList (molecule list) data structure is copied using copy.deepcopy() to make a perfect copy of the structural data. The ModelList.add_item() method has also been modified to return the newly added or numbered model. This is used by the add_model() structural object method to obtain the model object.
* Updated the Mac OS X framework setting up instruction document. New sections have been added for the nose and matplotlib Python packages, as nose is needed for the numpy and scipy testing frameworks and matplotlib might be a useful optional dependency in the future. The mpy4py section has been updated to avoid the non-framework fink version of mpicc which cannot produce universal binaries. A few other parts also have small edits.
* The prompt UI now uses the user_functions.uf_translation_table dictionary. The modified runcode() function will now check if the command typed by the user is a function or method call and then will raise a RelaxError if the command name is in the user_functions.uf_translation_table dictionary, telling the user that the user function has been renamed to the new name in the translation table. This appears to have no effect in the script UI however.
* Hack in the script UI for handling missing user functions due to it being renamed. This script UI requires a different solution as the prompt UI. The script is executed via the runpy Python module and there appears to be no clean way of catching each command before it is executed. So instead, prior to executing the script, the contents of the script are read and old user functions are searched for using re.search(). The old user function name has "(" appended to it in the search so that it is sure that it is a user function call. And the old function must have a space or newline character preceding it.
<section end=changes/>
== Bugfixes ==
<section begin=bugfixes/>
* MS Windows fixes to allow relax to run again. The code for eliminating the GNU readline ^[[?1034h escape code emission on Linux systems fails on Windows as the 'TERM' environmental variable does not exist in os.environ.
* Fix for the relaxation dispersion analysis Monte Carlo simulation printouts on clusters. The multi-processor code was calling the print() function from the Slave_command.run() method, however this runs on the slave processor. This has been shifted to the Results_command.run() method which runs on the master once the results have been returned via the Results_command. Now the printout of the simulation number and cluster ID will be visible when running via OpenMPI on a cluster.
* Correction for catastrophic implementation of Monte Carlo simulations for exponential curve-fitting R<sub>2eff</sub> values in the dispersion analysis. A wrong implemented "else if" statement, would add the intensity for the simulated intensity together with the original intensity. This means that all intensity values send to minimisation would be twice as high than usually (if spectra were not replicated). This was discovered for Monte Carlo simulations of R<sub>2eff</sub> errors in exponential fit. This will affect all analyses using full relaxation exponential curves until now. By pure luck, it seems that the effect of this would be that R<sub>2eff</sub> errors are half the value they should be. A further investigation shows, that for the selected data set, this had a minimum on influence on the fitted parameters, because the &chi;<sup>2</sup> value would be scaled up by a factor 4. [https://gna.org/bugs/?22554 Bug #22554: The distribution of intensity with errors in Monte Carlo simulations are markedly more narrow than expected]. [https://gna.org/task/?7822 Task #7822: Implement user function to estimate R<sub>2eff</sub> and associated errors for exponential curve fitting].
* Added a minfx minimum version check to the dep_check module. This is to avoid problems such as that reported at [http://gna.org/bugs/?22408 bug #22408].
<section end=bugfixes/>
= Links =
<section begin=links/>
For reference, the following links are also part of the announcement for this release:
* [http://wiki.nmr-relax.com/Relax_3.3.0 Official release notes]
* [https://mail.gna.org/public/relax-announce/2014-09/msg00000.html Local archives]
* [http://marc.info/?l=relax-announce&m=141013209125235&w=2 MARC]
<section end=links/>
= Announcements =
Trusted, Bureaucrats
4,228

edits

Navigation menu