Changes

Jump to navigation Jump to search

Relax 3.1.0

8,516 bytes added, 14:42, 8 September 2014
Formatting of all symbols/parameters.
 
{{lowercase title}}
* Full support for the analysis of relaxation dispersion data in the prompt, scripting, and graphical user interfaces.
* Support for single quantum (SQ), zero quantum (ZQ), double quantum (DQ), and multiple quantum (MQ) CPMG-type data.
* Support for R1rhoR<sub>1&rho;</sub>-type data.
* Support for combined proton-heteronuclear SQ, ZQ, DQ, and MQ CPMG-type data (multiple-MQ or MMQ data).
* The [[R2eff]] model - used to determine the R2eff R<sub>2eff</sub> or R1rho R<sub>1&rho;</sub> values and errors required as the base data for all other models.
* The [[No Rex]] model - the model for no chemical exchange being present.
* The [[LM63]] SQ CPMG-type analytic model - the original Luz and Meiboom 1963 2-site fast exchange equation with parameters {R20R<sub>2</sub><sup>0</sup>, ..., phi_ex&phi;<sub>ex</sub>, kexk<sub>ex</sub>} [Luz and Meiboom 1963].* The [[LM63 3-site]] SQ CPMG-type analytic model - the original Luz and Meiboom 1963 3-site fast exchange equation with parameters {R20R<sub>2</sub><sup>0</sup>, ..., phi_exB&phi;<sub>ex,B</sub>, k_B, phi_exC&phi;<sub>ex,C</sub>, k_Ck<sub>C</sub>} [Luz and Meiboom 1963].* The [[CR72]] SQ CPMG-type analytic model - the reduced Carver and Richards 1972 2-site equation for most time scales whereby the simplification R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> is assumed with the parameters {R20R<sub>2</sub><sup>0</sup>, ..., pAp<sub>A</sub>, dw&delta;&omega;, kexk<sub>ex</sub>} [Carver and Richards 1972].* The [[CR72 full]] SQ CPMG-type analytic model - the full Carver and Richards 1972 2-site equation for most time scales with parameters {R20AR<sub>2A</sub><sup>0</sup>, R20BR<sub>2B</sub><sup>0</sup>, ..., pAp<sub>A</sub>, dw&delta;&omega;, kexk<sub>ex</sub>} [Carver and Richards 1972].* The [[IT99]] SQ CPMG-type analytic model - the Ishima and Torchia 1999 2-site model for all time scales with pA p<sub>A</sub> &#x226B; pB p<sub>B</sub> and with parameters {R20R<sub>2</sub><sup>0</sup>, ..., phi_ex&phi;<sub>ex</sub>, pAp<sub>A</sub>.dw&delta;&omega;^2, kexk<sub>ex</sub>} [Ishima and Torchia 1999].* The [[TSMFK01]] SQ CPMG-type analytic model - the Tollinger et al., 2001 2-site very-slow exchange model for time scales within range of microsecond to second time scale with parameters are {R20AR<sub>2A</sub><sup>0</sup>, ..., dw&delta;&omega;, k_ABk<sub>AB</sub>} [Tollinger et al., 2001].* The [[NS CPMG 2-site expanded]] SQ CPMG-type numeric model - A model for 2-site exchange expanded using Maple by Nikolai Skrynnikov (Tollinger et al., 2001) with the parameters {R20R<sub>2</sub><sup>0</sup>, ..., pAp<sub>A</sub>, dw&delta;&omega;, kexk<sub>ex</sub>}.* The [[NS CPMG 2-site 3D]] SQ CPMG-type numeric model - the reduced model for 2-site exchange using 3D magnetisation vectors whereby the simplification R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> is assumed with the parameters {R20R<sub>2</sub><sup>0</sup>, ..., pAp<sub>A</sub>, dw&delta;&omega;, kexk<sub>ex</sub>}.* The [[NS CPMG 2-site 3D full]] SQ CPMG-type numeric model - the full model for 2-site exchange using 3D magnetisation vectors with parameters {R20AR<sub>2A</sub><sup>0</sup>, R20BR<sub>2B</sub><sup>0</sup>, ..., pAp<sub>A</sub>, dw&delta;&omega;, kexk<sub>ex</sub>}.* The [[NS CPMG 2-site star]] SQ CPMG-type numeric model - the reduced model for 2-site exchange using complex conjugate matrices whereby the simplification R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> is assumed with the parameters {R20R<sub>2</sub><sup>0</sup>, ..., pAp<sub>A</sub>, dw&delta;&omega;, kexk<sub>ex</sub>}.* The [[NS CPMG 2-site star full]] SQ CPMG-type numeric model - the full model for 2-site exchange using complex conjugate matrices with parameters {R20AR<sub>2A</sub><sup>0</sup>, R20BR<sub>2B</sub><sup>0</sup>, ..., pAp<sub>A</sub>, dw&delta;&omega;, kexk<sub>ex</sub>}.* The [[M61]] R1rhoR<sub>1&rho;</sub>-type analytic model - the Meiboom 1961 2-site fast exchange equation for on-resonance data with parameters {R1rhoR<sub>1&rho;</sub>', ..., phi_ex&phi;<sub>ex</sub>, kexk<sub>ex</sub>} [Meiboom 1961].* The [[M61 skew]] R1rhoR<sub>1&rho;</sub>-type analytic model - the Meiboom 1961 2-site equation for all time scales with pA p<sub>A</sub> &#x226B; pB p<sub>B</sub> and with parameters {R1rhoR<sub>1&rho;</sub>', ..., pAp<sub>A</sub>, dw&delta;&omega;, kexk<sub>ex</sub>} [Meiboom 1961].* The [[DPL94]] R1rhoR<sub>1&rho;</sub>-type analytic model - the Davis et al., 1994 2-site fast exchange equation extending the 'M61' model for off-resonance data with parameters {R1rhoR<sub>1&rho;</sub>', ..., phi_ex&phi;<sub>ex</sub>, kexk<sub>ex</sub>} [Davis et al., 1994].* The [[TP02]] R1rhoR<sub>1&rho;</sub>-type analytic model - the Trott and Palmer 2002 2-site equation for all time scales with pA p<sub>A</sub> &#x226B; pB p<sub>B</sub> and with parameters {R1rhoR<sub>1&rho;</sub>', ..., pAp<sub>A</sub>, dw&delta;&omega;, kexk<sub>ex</sub>} [Trott and Palmer 2002].* The [[TAP03]] R1rhoR<sub>1&rho;</sub>-type analytic model - the Trott et al., 2003 off-resonance 2-site equation for all time scales with the weak condition pA p<sub>A</sub> &#x226B; pB p<sub>B</sub> and with parameters {R1rhoR<sub>1&rho;</sub>', ..., pAp<sub>A</sub>, dw&delta;&omega;, kexk<sub>ex</sub>} [Trott et al., 2003].* The [[MP05]] R1rhoR<sub>1&rho;</sub>-type analytic model - the Miloushev and Palmer 2005 off-resonance 2-site equation for all time scales with parameters {R1rhoR<sub>1&rho;</sub>', ..., pAp<sub>A</sub>, dw&delta;&omega;, kexk<sub>ex</sub>} [Miloushev and Palmer 2005].* The [[NS R1rho 2-site]] R1rho R<sub>1&rho;</sub> numeric model - the model for 2-site exchange using 3D magnetisation vectors with the parameters {R1rhoR<sub>1&rho;</sub>', ..., pAp<sub>A</sub>, dw&delta;&omega;, kexk<sub>ex</sub>}.* The [[MQ CR72]] MMQ-type analytic model - the Carver and Richards 1972 2-site model for most time scales expanded for MMQ CPMG data by Korzhnev et al., 2004 with the parameters {R20R<sub>2</sub><sup>0</sup>, ..., pAp<sub>A</sub>, dw&delta;&omega;, dwH&delta;&omega;<sub>H</sub>, kexk<sub>ex</sub>}.* The [[MMQ 2-site]] MMQ-type numeric model - the model for 2-site exchange whereby the simplification R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> is assumed with the parameters {R20R<sub>2</sub><sup>0</sup>, ..., pAp<sub>A</sub>, dw&delta;&omega;, dwH&delta;&omega;<sub>H</sub>, kexk<sub>ex</sub>}.
* An automated protocol for relaxation dispersion which includes sequential optimisation of the models, fixed model elimination rules to remove failed models and failed MC simulations increasing both parameter reliability and accuracy [d'Auvergne and Gooley 2006], and a final run whereby AIC model selection is used to judge statistical significance.
* Additional methods to speed up the auto-analysis by skipping the grid search: Model nesting, the more complex model starts with the optimised parameters of the simpler; Model equivalence, when two models have the same parameters; And spin clustering, the analysis starts with the averaged parameter values from a completed non-clustered analysis.
* Corrected capitalisation issues for param names. These were spotted by Ed in a thread starting at https://mail.gna.org/public/relax-devel/2009-01/msg00059.html.
* Rearranged commands in the scripts. The experiment type and exchange regime will have to be input before the cpmg pulse train delay T.
* Introduced a RelaxError when chosing 'r1rho' as experiment type as this won't be implemented now. Efforts will be concentrated on the CPMG code first, then on the R1rho R<sub>1&rho;</sub> code.
* Added tests, print statements and other code to the relaxation dispersion specific functions. Tests were proposed by Ed in a post at https://mail.gna.org/public/relax-devel/2009-01/msg00065.html.
* Started to implement a function for calculating the effective transversal relaxation rate (R2effR<sub>2eff</sub>). This follows a thread at https://mail.gna.org/public/relax-devel/2009-01/msg00067.html.
* Converted the function linear_constraints() for relaxation dispersion needs.
* Started to implement the scaling matrix for scaling the 'R2effR<sub>2eff</sub>' values. This might change in the future as other possible curve fitting parameters ('R2', 'Rex', 'kexk<sub>ex</sub>', 'R2AR<sub>2A</sub><sup>0</sup>', 'kA', 'dw&delta;&omega;') might need some scaling.
* Completed the scaling matrix code. This follows a thread at https://mail.gna.org/public/relax-devel/2009-01/msg00073.html.
* Imported relaxation dispersion in grace user functions.
* Added a missing quote which prevented the user manual to be sconstructed. This was discussed in a thread starting at https://mail.gna.org/public/relax-devel/2009-01/msg00082.html.
* Started to implement a function for reading 'R2effR<sub>2eff</sub>' values directly. This is as proposed in a post at https://mail.gna.org/public/relax-devel/2009-01/msg00020.html. The function does not contain code yet.
* Started to put equations and references in the user function docstrings and also corrected a small typo. This was proposed by Ed in a post at https://mail.gna.org/public/relax-devel/2009-01/msg00028.html.
* Corrected the way the scaling matrix is assembled. This is as proposed by Ed in a post at https://mail.gna.org/public/relax-devel/2009-01/msg00079.html. The scaling values are now based on the default values for the different parameters which were slightly modified. The only parameter for which the average is still used (as for intensities in the 'relax_fit.py' code) is 'R2effR<sub>2eff</sub>'.
* Continued to implement the user function calc_r2eff(). This follows a discussion at https://mail.gna.org/public/relax-devel/2009-01/msg00067.html.
* Copied 'test_relax_fit.py' to 'test_relax_disp.py'. This will allow the design of a few unit tests for the relaxation dispersion code.
* Changed the default value for 'int_cpmg' to avoid an impossible mathematical situation: ln(0).
* Fixed a bug where the 'id' argument was not set. This was proposed by Ed in a post at https://mail.gna.org/public/relax-devel/2009-01/msg00127.html.
* Started to make changes for multiple field relaxation dispersion analysis. This seems necessary, so maybe we should not support single field analysis of relaxation dispersion at all. -> Kovrigin et al. (2006) JMagRes, 180: 93-104. The changes made here are only a first draft and may not work. In particular, maybe the spectrum.read_intensities(), relax_disp.cpmg_frq(), spectrum.replicated(), spectrum.error_analysis(), and deselect.read() functions will need to know the magnetic field to which the particular dataset is associated... In fact, the different datasets should be input first and their R2eff R<sub>2eff</sub> calculated independently. In a second step, the actual relaxation dispersion curve fitting should be made with all data.
* Fixed a bug which prevented the manual pdf to be compiled. The problem was caused by a ':' character in the references (after the volume number, as usual). This was changed for a '.' character. Equations were fine.. Moreover, a better formatting was done by adding ':' characters after the word 'are' before enumerations.
* Fixed the unit tests. This is as proposed by Ed in a post at https://mail.gna.org/public/relax-devel/2009-01/msg00132.html.
* Started to implement the reading of 'r2eff' by relax_data.read() by first writing a system test.
* Updated a few dosctrings and tried to improve the system test.
* Removed the obsolete function 'relax_disp.r2eff_read()'. R2eff R<sub>2eff</sub> values will be read directly by 'relax_data.read()'.
* Reordered a few functions for alphabetical reasons.
* A small fix to the system test. However, is this fix the solution or is there something wrong with the reading of data (such as 'R2effR<sub>2eff</sub>') by relax_data.read()? Shouldn't the data, for example 'R2effR<sub>2eff</sub>', be available in 'cdp.mol[0].res[0].spin[0].R2eff_val[0]' or 'cdp.mol[0].res[0].spin[0].R2eff[0]' for the 1st spin of the 1st residue in the 1st molecule?
* Fixed an import (as well as a few comments). This however introduces an error concerning the 'chi2' being undefined in the C module for relaxation dispersion...
* Solved an issue created during the merge process concerning the 'return_data_name_doc' call. The solution is based on the code in 'specific_fns/relax_fit.py'.
* Import cleanup in the specific_analyses.relax_disp module.
* The relaxation dispersion specific analysis module is now using the base _data_init_spin() method. This is aliased to data_init() and replaces the old non-functional method.
* Created the relax_disp.spin_lock_field user function. This is used to set the spin-lock field strength of a given R1rho R<sub>1&rho;</sub> spectrum.
* Created the relax_disp.relax_time user function. This is almost a direct copy of the relax_fit.relax_time user function, but has been modernised.
* Fix for the printout from the relax_disp.relax_time user function - the time is no longer divided by 1k.
* Better setup checking for the relaxation dispersion specific analysis minimise() method.
* Renamed cdp.curve_type to cdp.model to better explain the variable.
* Fixes for the dispersion specific analysis separating R2eff R<sub>2eff</sub> from R2R<sub>2</sub>. There is one R2eff R<sub>2eff</sub> parameter per exponential curve, but only one R2 R<sub>2</sub> per model. The code now better handles this.* The dispersion specific methods now handle one R2eff R<sub>2eff</sub> and I0 I<sub>0</sub> parameter per exponential curve.
* Better management of the global relaxation dispersion data. The user functions relax_disp.cpmg_frq, relax_disp.spin_lock_nu1, and relax_disp.relax_time now maintain data structures in the current data pipe of the unique frequencies, fields, and times (sorted) as well as the number of frequencies, fields, and times. This data is used by the minimise user function back end to set up the target function, and will be required by many other parts of the analysis.
* The dispersion specific _assemble_param_vector() method now handles multiple R2eff R<sub>2eff</sub> and I0 I<sub>0</sub> values. These spin structures are dictionaries holding multiple values.
* Created the dispersion specific _exp_curve_loop() method for looping over each exponential curve. This yields the index and key for each curve, simplifying the handling of this data.
* Expanded the relax_disp.select_model user function documentation to cover R2eff R<sub>2eff</sub> and I0I<sub>0</sub>. These parameters and how they are optimised are now better described.
* Updated the relaxation dispersion target function class to handle the recent changes.
* First attempt at a target function for fitting exponential curves for relaxation dispersion.
* Added some synthetic data to test the 'exp_fit' relaxation dispersion model fitting. These are just basic synthetic exponential curves. R2eff R<sub>2eff</sub> and I0 I<sub>0</sub> should be very easy to find.
* The lib.software.sparky.read_list_intensity() function can now handle lowercase in the residue names.
* Created the Relax_disp.test_exp_fit system test for checking the relaxation dispersion 'exp_fit' model.
* The 'exp_fit' relaxation dispersion model now uses the minfx.grid sparseness argument. This is used to skip all parts of the grid search belonging to a different exponential curve or different spin. If the number of curves is N and the number of spins M, the grid size decreases from inc**(2*N*M) to (inc**2)*N*M. For lots of spins and curves, this is a huge decrease.
* The relaxation dispersion specific _disassemble_param_vector() method is now functional. This should allow the minimise user function to complete.
* Fixes for the dispersion specific _assemble_param_vector() method. The R2eff R<sub>2eff</sub> and I0 I<sub>0</sub> spin dictionary structures are now checked for their keys before pulling the value out.
* Fix for the relaxation dispersion grid search. The lower and upper bounds are no longer continually scaled with each optimisation.
* Increased the speed of the Relax_disp.test_exp_fit system test by using a smaller grid search.
* Combined all the system test scripts of Flemming Hansen's fixed time period CPMG data. For details of this data, see http://thread.gmane.org/gmane.science.nmr.relax.devel/3790/focus=3827.
* Fixes for the renaming of the relaxation dispersion test suite shared data directory.
* Started to redesign how R2eff R<sub>2eff</sub> is handled in the relaxation dispersion analysis. Instead of being part of the optimisation of the dispersion model, it will itself be the model named 'R2eff' (converted from the 'exp_fit' model). This model will either use the calc user function to determine R2eff R<sub>2eff</sub> when the fixed relaxation period experiment is selected, or fit exponential curves using the relax_fit C module for the variable relaxation period experiments. The R2eff R<sub>2eff</sub> values will then be copied over for each dispersion model in the auto-analysis using the value.copy user function.
* Created the relax_disp.plot_exp_curves user function. This is to be used to create 2D graphs of the exponential curves (relaxation time verses peak intensity) as the grace.write user function plots are not very nice - the curves from each spectrometer field strength and dispersion point are mixed into one curve.
* The relaxation dispersion auto-analysis is now created plots of the exponential curves.
* The R2eff model now works for the variable time relaxation period and exponential curve-fitting.
* The relax_disp.select_model user function now checks for the compiled C module when required.
* Expanded the new analysis wizard in the GUI to accommodate the relaxation dispersion auto-analysis. Now the buttons are a matrix of 4x2 with the NOE, R1R<sub>1</sub>, R2R<sub>2</sub>, and model-free analyses at the top and two new blank buttons have been added to the bottom. One will be used for the dispersion analysis.
* Created some basic graphics for the relaxation dispersion analysis fur use in the GUI.
* Added the correct sized graphic for the relaxation dispersion button in the new analysis wizard.
* Created the relaxation dispersion button in the new analysis wizard.
* Created the initial version of the relaxation dispersion auto-analysis GUI frame. This is built from copying lots of code from the NOE, R1R<sub>1</sub>, and R2 R<sub>2</sub> analyses. The dispersion specific parts will be added later.
* The relaxation dispersion GUI analysis now has an element for selecting the models to be optimised.
* Removed some unneeded checks in the relax_disp.exp_type user function.
* More fixed for the peak intensity error analysis method of the relaxation dispersion auto-analysis. The fixed relaxation time period type experiments can now be handled.
* Elimination of the relax_disp.cpmg_delayT user function. This user function is not necessary as the relax_disp.relax_time user function serves the same purpose. The use of relax_disp.relax_time instead allows for code sharing between the fixed and variable time period relaxation dispersion experiment types.
* Elimination of the relax_disp.calc_r2eff user function. This user function, which is non-functional anyway, is not needed. The calculation of the R2eff R<sub>2eff</sub> values will occur with the optimisation of the 'R2eff' model (with a call to the calc user function for the fixed time period experiment types) so direct calculation through a specific user function is not needed.
* Improvements to the GUI text subscripting in the relaxation dispersion analysis frame.
* Removed the temporary relaxation dispersion SVG graphic for the GUI analysis.
* Editing of the relaxation dispersion analysis graphic.
* Added the relaxation dispersion graphic to all of the dispersion GUI user functions missing a graphic.
* Redesign of the relaxation dispersion models in the relax_disp.select_model user function front-end. The models have been renamed and better defined based on the experiment type (CPMG or R1rhoR<sub>1&rho;</sub>).* The relaxation dispersion scaling matrix assembly now uses lib.mathematics.round_to_next_order(). This allows the printed out I0 I<sub>0</sub> values for the optimisation of the exponential curves to be easier to scale back to the real value.* The Relax_disp.test_hansen_cpmg_data_fast_2site system test now uses the R2eff model. The equivalent slow exchange system test also uses the model. This model will be used to find the R2eff R<sub>2eff</sub> values from the fixed relaxation time period data.
* Fix for some RelaxError printouts in the relaxation dispersion specific code.
* The relaxation dispersion class variables for the experiment types are now used for all comparisons. This should avoid random bugs.
* Fix for the calculation part of the relaxation dispersion auto-analysis. This is for the fixed relaxation period data types.
* The 2D Grace plots of the exponential curves are now skipped for the fixed relaxation period data types. This is in the relaxation dispersion auto-analysis.
* Started to implement the relaxation dispersion analysis specific calculate() method. This will be used to calculate the R2effR<sub>2eff</R1rho sub>/R<sub>1&rho;</sub> values for the fixed relaxation time period data types and is equivalent to Sebastien Morin's relax_disp.calc_r2eff user function which was deleted (see http://thread.gmane.org/gmane.science.nmr.relax.scm/17336).
* Converted the specific_analyses.relax_disp module into its own package. This is to allow the code to be broken up into separate modules to simplify the analysis.
* Shifted out all of the variables and dispersion data specific code into separate modules. The dispersion data private methods have been converted into functions of the specific_analyses.relax_disp.disp_data module. The package variables have also been shifted into the specific_analyses.relax_disp.variables module to avoid circular imports.
* Updates for the dispersion user functions for the changes in specific_fns.relax_disp.
* Typo fix in the new loop_all_data() function.
* Created the lib.dispersion.calc_two_point_r2eff() function. This is for calculating the R2effR<sub>2eff</R1rho sub>/R<sub>1&rho;</sub> value for the fixed relaxation time data.
* Improvements to the specific_analysis.relax_disp.disp_data module. The function loop_all_data() has been expanded to include the relaxation time period into the loop. The functions return_intensity() and return_key() have been added to return peak intensities and the key corresponding to the data returned by loop_all_data().
* Fixes for some latent bugs in the specific_analyses.relax_disp.disp_data module. The checks for the CPMG-data type in a number of functions now uses the CPMG_EXP list instead of fixed strings.
* Completed the relaxation dispersion calculate() method. This allows the R2effR<sub>2eff</R1rho sub>/R<sub>1&rho;</sub> values to be calculated for the fixed relaxation time period experiments through the calc user function.
* Created a script for running a full relaxation dispersion analysis on Flemming Hansen's data. This is located in the shared data directories and is not part of the test suite as a full analysis will take far too long.
* Updated the models in the script for the full relaxation dispersion analysis of Hansen's data.
* Modified the printouts of the relax_disp.select_model user function.
* Fix for the relaxation dispersion auto-analysis. The data pipes created for each model optimised are now switched to prior to any operations on the pipe.
* Changed the phi_ex &phi;<sub>ex</sub> parameter in the LM63 model back to rex.* Changed the Grace string for the rex parameter to be phi_ex&phi;<sub>ex</sub>.* Converted all of the specific_analyses.relax_disp.parameters module to handle different models. The R2eff R<sub>2eff</sub> and I0 I<sub>0</sub> parameters are now only part of the 'R2eff' model and all other standard parameters belong to all of the other models.
* Shifted all of the constant relaxation dispersion variables into the specific module. All of the dispersion code now uses the variables of specific_analyses.relax_disp.variables.
* Renamed the lib.dispersion.equations.fast_2site() function to r2eff_LM63(). The number of relaxation times has also been replaced by the number of dispersion points.
* Added the return_cpmg_frqs() and return_spin_lock_nu1() functions to specific_analyses.relax_disp.disp_data.
* Updates to the relaxation dispersion auto-analysis. The Grace plots created are now more dependent on the current model, so that dispersion curves are only created for the 'R2eff' model. The specific_analyses.relax_disp.variables module is now also being used.
* Started to redesign the relaxation dispersion target function class. The input data is now expected to be R2effR<sub>2eff</R1rho sub>/R<sub>1&rho;</sub> data and all mentions of exponential curves have been eliminated. The func_exp_fit() target function has been deleted as it is not used - as now the _minimise_r2eff() method in the dispersion specific analysis class is used instead. And the func_fast_2site() target function has been renamed to func_LM63().* Redesigned the optimisation code of the dispersion analysis specific class for the new target functions. This includes the assembling of R2effR<sub>2eff</sub>/R<sub>1&rho;</R1rho sub> values instead of peak heights, and a number of small fixes.
* Shifted the LM63 dispersion model functions into the new lib.dispersion.lm63 module.
* The reference spectrum is now not included when counting the number of dispersion points.
* Fix for the lib.dispersion.lm63 module and parameters of zero are now gracefully handled.
* Fixes for the func_LM63() dispersion target function.
* Shifted the R2effR<sub>2eff</R1rho sub>/R<sub>1&rho;</sub> value and error assembly into specific_analyses.relax_disp.disp_data. This is in the new return_r2eff_arrays() function. The code has also been debugged and made functional.
* Added support for handling missing data in the relaxation dispersion analysis. This support was mentioned in the post http://thread.gmane.org/gmane.science.nmr.relax.devel/3835.
* Added a FIXME to a comment about the hardcoded Bootstrap number for relaxation dispersion.
* Fix for the linear constraints setup of the 'R2eff' relaxation dispersion model. There are no constraints, so the specific_analyses.relax_disp.parameters.linear_constraints() function now returns A and b values of None.
* Basic fix for the _back_calc_r2eff() relaxation dispersion method. A variable was misnamed.
* Major redesign of the relaxation dispersion data model in the relax data store. The data model now revolves around the three concepts of the spectrometer frequency, the dispersion points, and the relaxation times. Peak intensity data is now handled through averaging using the new specific_analyses.relax_disp.disp_data.average_intensity() function. R2effR<sub>2eff</R1rho sub>/R<sub>1&rho;</sub> values are now referenced by a key generated from the spectrometer frequency and nu_CPMG frequency or nu1 spin-lock field strength. All of the specific_analyses.relax_disp package has been standardised around these concepts. This simplifies all of the modules of the package and removes a large number of latent bugs.
* A number of fixes to partly enable Monte Carlo simulations for the non 'R2eff' dispersion models.
* Finally Monte Carlo simulations for the relaxation dispersion models now work. This was a simple fix for the specific_analyses.relax_disp.parameters.param_index_to_param_info() function.
* Speedup for the relaxation dispersion system tests which use Flemming Hansen's CPMG data. The system test script now reads the truncated data files (of only residues 70 and 71) to minimise the time required to read the data and store it in the relax data store.
* Added a script to the test suite shared data for analysing the truncated Hansen CPMG data.
* Fixes for the LM63 dispersion CPMG model. The 'r2' model parameter is now an array as there is one R2 R<sub>2</sub> value per magnetic field strength. And the 'rex' parameter has been renamed to 'phi_ex&phi;<sub>ex</sub>' and is scaled quadratically with the field strength within the optimisation target function.
* Fix for the setup of the relaxation dispersion GUI analysis. The base method add_execute_relax() has been renamed to add_execute_analysis().
* Added support for interfacing with Art Palmer's CPMGFit program. The two new user functions relax_disp.cpmgfit_input and relax_disp.cpmgfit_execute have been created to interface with CPMGFit. The first creates the per spin system CPMGFit input files as well as a batch script for executing CPMGFit with all the input files. The second bypasses the batch script and allows CPMGFit to be executed from within relax. This mimics the palmer and dasha user functions. The back end code is in the new specific_analyses.relax_disp.cpmgfit module.
* Created the Relax_disp.test_hansen_cpmgfit_input system test. This is for checking the operation of the relax_disp.cpmgfit_input user function conversion of Flemming Hansen's CPMG R2eff R<sub>2eff</sub> values into input files for CPMGFit. A relax state file containing the results of an analysis of an 'R2eff' model analysis of the truncated data has been added to the test suite data to speed up the test and to check the loading of dispersion state files.
* Created a directory for the results of the CPMGFit program using Hansen's truncated CPMG data. The script 'cpmgfit.py' has been added to create the input files for CPMGFit and execute the program. The input and batch files have been added to the repository as well.
* Added the results from NESSY of the analysis of Flemming Hansen's truncated CPMG data. This is only for the truncated data of residues 70 and 71. All files, except for the PNG graphics, have been added to the repository. The 'summary' file has been created to hold the data from NESSY's summary tab, as this is not stored in the NESSY saved state and is permanently lost after closing NESSY.
* Fixes for the relax_disp branch for the spectrometer.frequency user function changes.
* Fix for the Relax_disp.test_hansen_cpmgfit_input system test. This is for the recent spectrometer.frequency user function changes.
* The specific_analyses.relax_disp.disp_data.loop_frq() function can now handle missing data. This allows the loop to yield a single value of None when the spectrometer information has not been loaded and enables R1rho R<sub>1&rho;</sub> analyses at a single field strength.* Fix for the LM63 dispersion model target function - the scaled Phi_ex &phi;<sub>ex</sub> value is now used for the R2R<sub>2</sub>.* Fixes for the relaxation dispersion auto-analysis for the LM63 model. The Rex parameter is now the phi_ex &phi;<sub>ex</sub> parameter.
* Added printouts of the optimised parameters to the Relax_disp.test_hansen_cpmg_data_LM63 system test. This includes the conversion to the equivalent CPMGFit parameters.
* Massively increased the precision of the R2eff R<sub>2eff</sub> error analysis. The hard-coded simulation number variable is now set to 100000. This appears to be necessary for reliably reproducing results in the subsequent dispersion models.
* Created the specific_analyses.relax_disp.disp_data.spin_has_frq_data() function. This is for determining if a spin has peak intensity for the given spectrometer field strength.
* Updates some scripts for the spectrometer.frequency user function change.
* Created a script to calculate the R2eff R<sub>2eff</sub> rate errors extremely precisely for Hansen's CPMG data. This uses 1 million Bootstrap simulations for calculating the errors. The 'r2eff_values.bz2' is saved after deleting the spin specific r2eff_sim structures so that the file drops from 388 Mb in size to 7.3 kb.
* The CPMGFit script for Hansen's CPMG data now starts with the high precision error r2eff_values.bz2 file. This ensures consistency between comparisons between relax, NESSY, CPMGFit, etc.
* Removed the '_trunc' part of the nessy_results directory from the NESSY final save file.
* Created the relax_disp.nessy_input user function front and backends. This user function takes the data in the relax data store and creates a NESSY save file to be opened within NESSY. The backend is the new specific_analyses.relax_disp.nessy module. For the GUI frontend, graphics for icons and the wizard have been taken from the NESSY repository file pics/nessy_new.png@r1088 in the trunk.
* A script has been added to create the NESSY input for Flemming Hansen's CPMG data.
* Updated the NESSY results for Flemming Hansen's CPMG data for the R2eff R<sub>2eff</sub> values with high precision errors. A file containing the log or printouts from NESSY has been added for reference.
* Updated the NESSY log from the Hansen CPMG data of residue 70 to remove the NESSY errors. These were removed with the commit r1090 to the NESSY trunk.
* Split up the r2eff_values.bz2 save file into the results files for each data pipe. This is for Flemming Hansen's CPMG data truncated to residues 70 and 71. This is to simplify the system tests which use this data.
* Large simplification of the Relax_disp system tests using Hansen's CPMG data. Instead of calculating the R2eff R<sub>2eff</sub> values in the test, these are read from the high error precision results files in test_suite/shared_data/dispersion/Hansen. This allows the model parameters to be consistently found and to be identical between different runs of the test.
* Added a file which compares the results for the LM63 model with Hansen's CPMG data between all programs. This currently includes relax, NESSY and CPMGFit.
* Added a printout to the specific_analyses.relax_disp.cpmgfit.translate_model() function.
* Changed the dispersion GUI tab to use the model names from specific_analyses.relax_disp.variables.
* The spectrum wizard now uses the spectrometer.frequency user function rather than frq.set. The frq.set user function is now called spectrometer.frequency.
* An upper limit of 200 rad/s has been added to the linear constraints for the R2 R<sub>2</sub> dispersion parameters.
* Fixes for the checking in the Relax_disp.test_hansen_cpmgfit_input system test.
* The relaxation dispersion auto-analysis now calls the relax_disp.plot_disp_curves user function. This user function is not implemented yet, but will be used to create plots of the dispersion curves.
* Implemented a basic graph for the relax_disp.plot_disp_curves user function. This simply plots out the nu_CPMG value or spin-lock field verses the R2effR<sub>2eff</sub>/R<sub>1&rho;</R1rho sub> values from the experiment. The graph of the back calculated R2effR<sub>2eff</sub>/R<sub>1&rho;</R1rho sub> values from the model fit is still to be added.* Fix for the linear constraints for the 'R2eff' model. The A and b matrices are no longer set to None, as this kills the auto-analysis or any analysis when constraints are turned on. Now the constraints 0 <= R2eff R<sub>2eff</sub> <= 200 and I0 I<sub>0</sub> >= 0 are used.
* Fixes for the peak intensity loading wizard for the frq.set to spectrometer.frequency user function change.
* Fixes for the backend of the relax_disp.plot_exp_curves user function. This code needed to be updated for the major changes in the relax_disp branch.
* Speed up of the system tests using Flemming Hansen's CPMG data. The grid search increments, function tolerance and maximum number of iterations have all been made looser.
* Added parameter checks to the Relax_disp.test_hansen_cpmg_data_LM63 system test.
* Fix for the phi_ex &phi;<sub>ex</sub> dispersion parameter scaling - the scaling was in the wrong direction.* Added a directory of relax results for the truncated high-precision Hansen CPMG R2eff R<sub>2eff</sub> values. This uses the base_pipe.bz2 and r2eff_pipe.bz2 files with the high-precision R2eff R<sub>2eff</sub> errors, and hence can be compared to the NESSY and CPMGFit results.* Added the residue :71 results to the lm63_comparison file. This is a summary of the optimisation results using the high-precision R2eff R<sub>2eff</sub> error results for the different dispersion softwares.
* Changes to the dispersion auto-analysis write_results() method. This is to output more of the dispersion parameters to text files and 2D grace plots.
* Created a directory and script in preparation for the relax_disp.sherekhan_input user function.
* Shifted the core of the model_loop() dispersion method into its own function. The new function specific_analyses.relax_disp.disp_data.loop_cluster() can now be used by other parts of relax. The model_loop() method now yields the data that loop_cluster() yields.
* Redesign of the relax_disp.sherekhan_input user function to handle spin clustering.
* Added the ShereKhan results for the high-precision R2eff R<sub>2eff</sub> data for Hansen's CPMG data.
* Converted the readme file for Flemming Hansen's CPMG data directory to uppercase.
* Updated the LM63 model comparison table.
* Modified the dispersion calculate() method for the R2eff R<sub>2eff</sub> values to use the analytic equation. For the R2effR<sub>2eff</sub>/R<sub>1&rho;</R1rho sub> values calculated for the fixed time period dispersion experiments via the calc user function, the very slow and tedious bootstrapping approach has been replaced by the very quick direct error calculation. The two techniques produce the same results as the bootstrap simulation number approaches infinity.
* Bug fix for the peak intensity error analysis in the dispersion auto-analysis. Now the error analysis is split based on the magnetic field strength. Previously the analysis was a mess with the split often being individual spectra.
* The proper experiment type is now set for the Relax_disp.test_hansen_trunc_data GUI test.
* Updated the relax_disp.exp_type user function to be more specific an include more experiment types.
* Updated the specific_analyses.relax_disp.variables module for the relax_disp.exp_type changes.
* The relax_disp.relax_time page is now always shown in the peak intensity wizard for the dispersion GUI. This number is needed for the fixed time period experiments as well to calculated the R2effR<sub>2eff</R1rho sub>/R<sub>1&rho;</sub> values and errors.
* Fix for the dispersion auto-analysis write_results() method. The i0 parameter text file and 2D Grace file are now only produced for the 'R2eff' model with the exponential curve base data types.
* Simplified the Relax_disp.test_hansen_trunc_data GUI test. The 'CR72' model is now deactivated and the grid search sized decreased from the default of 21 to 4.
* Renamed the file for comparing different dispersion software with Flemming Hansen's CPMG data.
* Added the initial results of the CR72 model in relax for Flemming Hansen's truncated CPMG data.
* Simplified the pA p<sub>A</sub> >= pB p<sub>B</sub> constraint in the dispersion linear_constraints() function.
* Fixes for the dispersion linear_constraints() function. The indices were being incorrectly handled - the i and k index should be one and the same parameter index.
* Added support for the 'CR72' or 'Full_CPMG' model to the relax_disp.cpmgfit_input user function.
* Added the results for the CR72 model optimisation in CPMGFit using Flemming Hansen's truncated CPMG data.
* Added the CR72 model results to the software comparison document for Hansen's CPMG data.
* Improvements for the phi_ex &phi;<sub>ex</sub> and dw &delta;&omega; relaxation dispersion model parameters. These are now stored with the units of ppm^2 and ppm respectively. The conversion to (rad/s)^2 and rad/s units respectively now is spin specific, allowing mixed spin types (1H, 13C, 15N, etc.) to be analysed simultaneously.* Updated the relax results for Hansen's CPMG data for the recent phi_ex &phi;<sub>ex</sub> and dw &delta;&omega; changes.
* Fixes for the CPMGFit results in the software comparison table for Hansen's CPMG data.
* Fix for the grid search setup for the pA p<sub>A</sub> dispersion parameter. As pA p<sub>A</sub> > p<sub>B</sub> pB, then the region from 0.0 to 0.5 does not need to be searched.* The back calculated R2eff R<sub>2eff</sub> values are now stored for dispersion analysis after minimisation.
* Fix for the CR72 model equation in lib.dispersion.cr72.r2eff_CR72(). The eta scaling factor was incorrect.
* Updated the relax results for the truncated CPMG data from Flemming Hansen. This is for the recent fixes of the CR72 model equations. Now relax produces identical results to ShereKhan for the LM63 and CR72 models.
* Created a directory for holding relaxation dispersion sample scripts.
* Added the model for no chemical exchange relaxation to the dispersion analysis.
* Updated the NESSY log file for its improved printouts. These printouts allow the R20 R<sub>2</sub><sup>0</sup> values to be accessed.
* Another update of the NESSY log for the improved and more detailed printouts.
* And again, another update of the NESSY log.
* Better checking of optimisation in the Relax_disp system tests. This affects the Relax_disp.test_hansen_cpmg_data_LM63 and Relax_disp.test_hansen_cpmg_data_CR72 system tests. Instead of using the auto-analysis, these tests now set the initial parameters close to the minimum, skip the grid search, and perform a low precision optimisation to reach the minimum. This is important because the low quality grid search and optimisation can not always find the real minimum.
* Created the lib.dispersion.equations.calc_two_point_r2eff_err() function. This complements the lib.dispersion.equations.calc_two_point_r2eff() function and is used by the dispersion calculate() method to abstract the mathematics.
* Updated the relax_disp.select_model user function docstring for the R2eff R<sub>2eff</sub> error analysis. This properly describes how the R2effR<sub>2eff</sub>/R<sub>1&rho;</R1rho sub> errors are calculated for the fixed relaxation time period experiments.
* Docstring fixes for the lib.dispersion.equations module.
* Expanded the number of model list variables in specific_analyses.relax_disp.variables. This is to include lists which are specific to CPMG-type and R1rhoR<sub>1&rho;</sub>-type experiments.* Added the new 'M61' model to the specific_analyses.relax_disp.variables module. This is the Meiboom 1961 model for 2-site fast exchange for R1rhoR<sub>1&rho;</sub>-type experiments.* Added the M61 model to the relax_disp.select_model user function frontend. This is the Meiboom 1961 model for 2-site fast exchange for R1rhoR<sub>1&rho;</sub>-type experiments.* Added the M61 model equations to the relax library. This is for the Meiboom 1961 2-site fast exchange model for R1rhoR<sub>1&rho;</sub>-type experiments.* Created the M61 2-site fast exchange dispersion model target function. This is for the Meiboom 1961 model for 2-site fast exchange for R1rhoR<sub>1&rho;</sub>-type experiments. The code for the func_M61() method was copied without modification from the func_LM63() method.* Added support for the R1rhoR<sub>1&rho;</sub>-type experiments to the relaxation dispersion analysis in the GUI. This involves using a different model list for these experiments compared to the CPMG-type experiments.
* Updated the relaxation dispersion GUI to handle the current set of experiment types.
* Fix for the Relax_disp.test_hansen_cpmg_data_auto_analysis system test. The correct model list is now being used - the R1rhoR<sub>1&rho;</sub>-type experiments should not be included.
* Fix for the missing import of the lib.dispersion.equations.calc_two_point_r2eff_err() function.
* Added support for the M61 model to the relax_disp.select_model user function back end. This is for the Meiboom 1961 2-site fast exchange model for R1rhoR<sub>1&rho;</sub>-type experiments.
* Another fix for the Relax_disp.test_hansen_cpmg_data_auto_analysis system test. The correct model list is finally being used.
* Fix for the lib.dispersion.equations.calc_two_point_r2eff_err() function. The variables were incorrectly named.
* The error when selecting a non-existent model using relax_disp.select_model is now more informative.
* Model selection in the dispersion auto-analysis is only performed if 2 or more models are present. Excluding the 'R2eff' model, if only 0 or 1 models are optimised, then model selection is skipped and a warning is given. This avoids tracebacks in the model_selection user function.
* Added some synthetic on-resonance R1rho R<sub>1&rho;</sub> data to the test suite. This is in the form of Sparky peak list files containing two spin systems.* Expanded the synthetic on-resonance R1rho R<sub>1&rho;</sub> test suite data. The data now consists of a full set of dispersion curves for the M61 model.* Added a reference to the synthetic on-resonance R1rho R<sub>1&rho;</sub> test suite data. The first ncyc1 data point now has a relaxation time period of zero, hence it can be used as the reference for a fixed time period experiment.
* The reference spectra can now be set in the relax_disp.spin_lock_field user function. By setting the field to None, the reference spectrum for a fixed relaxation time period experiment type can now be specified. This mimics the behaviour of the relax_disp.cpmg_frq user function.
* Added some error checking to the specific_analyses.relax_disp.disp_data.average_intensity() function. This is for better feedback to the user in case they have not set up their data correctly.
* Better support for missing frequency information in the specific_analyses.relax_disp.disp_data module. This is in the return_index_from_frq() function which now returns an index of 0, and in return_r2eff_arrays() which skips calculating the frequency information.
* The dispersion disassemble_param_vector() function now handles missing spectrometer information. The loop_frq() function replaces direct looping over cdp.spectrometer_frq_count.
* Variable renaming in the lib.dispersion.m61 module. The variable names are now more suited to R1rhoR<sub>1&rho;</sub>-type data, rather than CPMG-type data.
* Fix for the M61 model target function. The spin-lock fields need to be used, not the CPMG frequencies.
* Created the Relax_disp.test_r1rho_on_res_fixed_time_m61 system test. This checks the R1rhoR<sub>1&rho;</sub>-type experiment with a fixed relaxation time period using the 'R2eff' and 'M61' models. It uses the auto-analysis for this, and the 'r1rho_on_res' synthetic relaxation data.
* Created the Relax_disp.test_r1rho_on_res_exponential_m61 system test. This is identical to the Relax_disp.test_r1rho_on_res_fixed_time_m61 system test except that the full exponential curves are used rather than the 2-point fixed time approach.
* Python 3 fixes for the relaxation dispersion parameter Grace strings.
* Python 3 fix for the relax_disp.cluster user function.
* Fix for the Grace plots created by the relax_disp.plot_disp_curves user function. The data set from each frequency is now a separate set in the G0 graph.
* Improvements to the relax_disp.plot_disp_curves user function. The back-calculated R2effR<sub>2eff</R1rho sub>/R<sub>1&rho;</sub> values are now included in the plot as separate sets. In addition, the residuals have also been added to allow for a visual statistical comparison.* More improvements to the relax_disp.plot_disp_curves user function. The data sets now have labels, and the residuals have errors set to those of the R2effR<sub>2eff</sub>/R<sub>1&rho;</R1rho sub> data.
* More improvements to the relax_disp.plot_disp_curves user function. The graph axes maximum is now set to a reasonable value for the given data.
* Added the 'No Rex' model to the relax script for optimising Flemming Hansen's CPMG data.
* Shifted the _spin_ids_to_containers() method to the disp_data.spin_ids_to_containers() function.
* Fix for the relax_disp.sherekhan_input user function. The loop_cluster() function no longer returns spin containers.
* Fix for the r2eff_calc.py script for calculating R2eff R<sub>2eff</sub> values from Flemming Hansen's CPMG data.* Added a check to the dispersion specific minimise() function for the spectrometer field strength. This is essential in all dispersion models to convert between ppm and rad/s units, or ppm^2 and (rad/s)^2 for the phi_ex &phi;<sub>ex</sub> parameter.
* The r1rho_on_res_m61.py dispersion system test script now sets the spectrometer frequency information.
* Removed cdp.model as this makes no sense - a different model can be used per spin cluster. Now the variable cdp.model_type is used to identify the 'R2eff' model. For all other dispersion models this variable is set to 'Disp'.
* Updated the results of relax's analysis of the truncated CPMG data from Flemming Hansen.
* Updates for the model variable docstrings.
* Added the 'M61 skew' model to the specific_analyses.relax_disp.variables module. This is the Meiboom 1961 model for skewed populations (pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>). This commit follows step 1 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'M61 skew' model to the relax_disp.select_model user function frontend. This is the Meiboom 1961 model for skewed populations (pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>). This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Fixes for the spacing after some equations in the relax_disp.select_model docstring.
* Simplifications and comment fixes in the lib.dispersion.m61.r2eff_m61() function.
* Renamed the lib.dispersion.m61.r2eff_M61() function to r1rho_M61().
* Added the M61 skew model equations to the relax library. This is the Meiboom 1961 on-resonance 2-site model for skewed populations (pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>). This commit follows step 3 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Created the M61 skew model target function. This is the Meiboom 1961 on-resonance 2-site model for skewed populations (pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>). This commit follows step 4 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added support for the skewed condition (pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>) to the specific_analyses.relax_disp.parameters module. This is currently done by constraining pA p<sub>A</sub> to be greater than 0.85.* Added support for the M61 skew model to the relax_disp.select_model user function back end. This is the Meiboom 1961 on-resonance 2-site model for skewed populations (pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>). This commit follows step 6 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Big speeds ups of the lib.dispersion modules. Many replicated calculations have been shifted outside of the dispersion point loop, as these only need to be calculated once per function call. Some if statements have consequently been simplified.
* Renamed the lib.dispersion.equations module to lib.dispersion.two_point.
* Renamed the r1rho_on_res dispersion test suite data directory to r1rho_on_res_m61.
* Created test data for the 'M61 skew' R1rho R<sub>1&rho;</sub> model. This is the Meiboom 1961 on-resonance 2-site model for skewed populations (pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>). This commit follows step 7 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Created the Relax_disp.test_r1rho_on_res_fixed_time_m61b system test. This is for the Meiboom 1961 on-resonance 2-site model for skewed populations (pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>). This commit follows step 7 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Small simplification of the lib.dispersion.m61b module.
* Fix for the specific_analyses.relax_disp.disp_data.return_value_from_frq_index() function. This cdp.spectrometer_frq_list list structure rather than the cdp.spectrometer_frq dictionary should be used.
* Modified the optimisation printout for better formatting.
* Increased the precision of the hansen_data.py relaxation dispersion system test script. This actually speeds up the test, as the Monte Carlo simulations are significantly speed up when the CR72 model optimises to the solution.
* Updates for the pA p<sub>A</sub> dispersion parameter optimisation constraints. The parameter is now limited to be between pB p<sub>B</sub> and 1. In the case of the limit pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>, then instead the constraint is between 0.85 and 1.
* Updated the Relax_disp system tests. This is for the recent precision change and constraint changes.
* Fixes for the grid search for the 'M61 skew' dispersion model. The pA p<sub>A</sub> parameter search is now between 0.85 and 1.* Fixes for the func_M61b() dispersion target function. This is the Meiboom 1961 on-resonance 2-site model for skewed populations (pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>).* Small changes to the r1rho_on_res_m61b dispersion test data. One R20 R<sub>2</sub><sup>0</sup> rate has been increased.* Completed the lib.dispersion.m61.r1rho_M61() function. Now the R1 R<sub>1</sub> relaxation rate and rotating frame tilt angle are correctly handled. This is not used in the target functions as support for the R1 R<sub>1</sub> and offset is not yet implemented.* Added the 'DPL94' model to the specific_analyses.relax_disp.variables module. This is the David, Perlman and London 1994 R1rho R<sub>1&rho;</sub> 2-site fast exchange model. This commit follows step 1 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'DPL94' model to the relax_disp.select_model user function frontend. This is the David, Perlman and London 1994 R1rho R<sub>1&rho;</sub> 2-site fast exchange model. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Updates to the Relax_disp.test_r1rho_on_res_fixed_time_m61b system test.
* Added the DPL94 model equations to the relax library. This is the David, Perlman and London 1994 R1rho R<sub>1&rho;</sub> 2-site fast exchange model. This commit follows step 3 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Created the DPL94 model target function. This is the David, Perlman and London 1994 R1rho R<sub>1&rho;</sub> 2-site fast exchange model. This commit follows step 4 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added support for the DPL94 model to the relax_disp.select_model user function back end. This is the David, Perlman and London 1994 R1rho R<sub>1&rho;</sub> 2-site fast exchange model. This commit follows step 6 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Created the Relax_disp.test_r1rho_on_res_fixed_time_dpl94 system test. This is the David, Perlman and London 1994 R1rho R<sub>1&rho;</sub> 2-site fast exchange model. This commit follows step 7 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'IT99' model to the specific_analyses.relax_disp.variables module. This is the Ishima and Torchia 1999 2-site model for all timescales with pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>. This commit follows step 1 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'IT99' model to the relax_disp.select_model user function frontend. This is the Ishima and Torchia 1999 2-site model for all timescales with pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Updated the model lists of the dispersion analyses GUI element. This adds the IT99 CPMG-type model and the DPL94 and M61B R1rhoR<sub>1&rho;</sub>-type models.* Fixes for the IT99 model description in the relax_disp.select_model user function. This is the Ishima and Torchia 1999 2-site model for all timescales with pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the IT99 model equations to the relax library. This is the Ishima and Torchia 1999 2-site model for all timescales with pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>. This commit follows step 3 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the it99 module to the lib.dispersion package __all__ list. This is the Ishima and Torchia 1999 2-site model for all timescales with pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>. This commit follows step 3 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Created the IT99 model target function. This is the Ishima and Torchia 1999 2-site model for all timescales with pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>. This commit follows step 4 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Fix for the lib.dispersion.it99 module. This is the Ishima and Torchia 1999 2-site model for all timescales with pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>. This commit follows step 3 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the support for the pAp<sub>A</sub>.dw&delta;&omega;^2 parameter 'padw2' to the dispersion specific analysis. This is needed for the Ishima and Torchia 1999 2-site model for all timescales with pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>. This commit follows step 5 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added support for the IT99 model to the relax_disp.select_model user function back end. This is the Ishima and Torchia 1999 2-site model for all timescales with pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>. This commit follows step 6 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the support for the tex t<sub>ex</sub> parameter (tex t<sub>ex</sub> = 1/(2kex2k<sub>ex</sub>)) to the dispersion specific analysis. This is needed for the Ishima and Torchia 1999 2-site model for all timescales with pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>. This commit follows step 5 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added support for the IT99 model to the relax_disp.cpmgfit_input user function. This is the Ishima and Torchia 1999 2-site model for all timescales with pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>.
* Fix for the relax_disp.cpmgfit_input user function for when no directory is given. This was causing tracebacks.
* Fix for the LM63 model for the relax_disp.cpmgfit_input user function. The grid search was incorrectly set up - the parameter is Tau, not text<sub>ex</sub>.
* Fixes for the IT99 model for the relax_disp.cpmgfit_input user function.
* Changed the CPMGFit grid search options for the IT99 model in the relax_disp.cpmgfit_input user function.
* Replaced '-' with 'N/A' if the software is missing the model. This is for the software comparison table using Flemming Hansen's CPMG data.
* Updated the CPMGFit results for the IT99 model using Flemming Hansen's CPMG data.
* Fixed the scaling of the parameter text<sub>ex</sub>.
* Fixes for the lib.dispersion.it99 module. This is mainly because the omega_1eff parameter was not being correctly converted from the nu_cpmg values.
* Updated the relax results for Flemming Hansen's CPMG data for the IT99 model fixes.
* Fixes for the relax_disp.cpmgfit_input user function for the IT99 model grid search options.
* Updated the CPMGFit results for the IT99 grid search fixes of the last commit.
* Basic fix for the checks of the Relax_disp.test_hansen_cpmgfit_input user function. The 'text<sub>ex</sub>' parameter is now set as 'Tau'.
* Disabled the Relax_disp.test_r1rho_on_res_fixed_time_m61b system test as the 'M61b' model is rubbish.The model cannot be properly optimised as the parameters are not independent of each other.
* Fixes for the dispersion specific code. The Grace graph code of lib.software.grace no longer accepts the axis min and max arguments.
* Fixes for the checks of the Relax_disp.test_bug_20889_multi_col_peak_list GUI test. Intensity errors will not have been calculated yet, and the structure is called baseplane_rmsd anyway.
* Fix for the Relax_disp.test_bug_20889_multi_col_peak_list GUI test. The peak intensity wizard _ok() method is now called to terminate the wizard. Otherwise this causes the subsequent GUI test which tries to access the peak intensity wizard to fail.
* Created the Relax_disp.test_hansen_cpmg_data_IT99 system test. This is for testing the Ishima and Torchia 1999 2-site model for all timescales with pA p<sub>A</sub> &#x226B; pBp<sub>B</sub>. This commit follows step 7 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Initialised the relaxation dispersion chapter in the relax manual.
* Added 600x600 pixel version of the relaxation dispersion analysis graphic. This is for use in the relax manual.
* The Monte Carlo simulations now generate parameter errors for the relaxation dispersion analysis. The simulation index was being ignored, hence the input data was never the randomised data and all errors were zero.
* Removed many decimal points from the MHz value in the Grace plots from relax_disp.plot_disp_curves.
* Added support for converting between kex k<sub>ex</sub> and text<sub>ex</sub>, and pA p<sub>A</sub> and pB p<sub>B</sub> for the dispersion analysis. This is performed by the new specific_analyses.relax_disp.parameters.param_conversion() function. For this, most of the code from the assemble_param_vector() function has been shifted into get_value(), and most of disassemble_param_vector() into set_value(). The dispersion analysis now also has a custom sim_init_values() method to handle these parameters.* Added support for calculating auxiliary parameter errors for the dispersion analysis. This is via the monte_carlo.error_analysis user function. The errors for the parameter pairs kexk<sub>ex</sub>-tex t<sub>ex</sub> and pAp<sub>A</sub>-pB p<sub>B</sub> for the non-model parameter are now calculated as well.* Fix for the dispersion auto-analysis - pA p<sub>A</sub> and pB p<sub>B</sub> parameters are no longer output for the IT99 model. These are not parameters of this model.
* Updated the relax results for Flemming Hansen's truncated CPMG data for all the recent changes.
* Fix for bug #20916, (https://gna.org/bugs/?20916) - Suggestion for Python script for PNG/EPS/SVG conversion of grace files. Troels Linnet provided this patch, and was discovered during work on a Windows 7 system. This patch will provide a grace2images.py file in each folder where a call to specific_analyses/relax_disp/disp_data.py is called. It is called in plot_disp_curves(dir=None, force=None) and call the function lib.software.grace.script_grace2images(). The conversion script can be executed in Linux and Windows, if the PATH to xmgrace has been specified. It will look in a folder for grace files of ending *.agr and by default convert to PNG. One can also convert to EPS and SVG. Probably more options could be added, as PDF. The conversion depends on xmgrace compilation, and so PNG conversion is for fast inspection of graphs in folder, and EPS for further external conversion to PDF etc. The patch, the output file, and small script to test is attached. I miss to make the file executable in relax, so the script can be executed directly in Linux.
* Added the 'NS 2-site star' model to the specific_analyses.relax_disp.variables module. This is the model of the numerical solution for the 2-site Bloch-McConnell equations using complex conjugate matrices. This commit follows step 1 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Added the lib.dispersion.ns_2site_star module name to the package __all__ list.
* Updated the lib.dispersion.ns_2site_star module with additional information from Paul Schanda. The details come from http://thread.gmane.org/gmane.science.nmr.relax.devel/4132/focus=4135. The exchange-free R2 R<sub>2</sub> value parameter names have been changed to match the convention of the other lib.dispersion modules.
* Added the 'NS 2-site star' model to the relax_disp.select_model user function frontend. This is the model of the numerical solution for the 2-site Bloch-McConnell equations using complex conjugate matrices. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Fix for the non-ASCII character '\xe2' in the lib.dispersion.ns_2site_star module.
* Created the 'NS 2-site star' model target function. This is the model of the numerical solution for the 2-site Bloch-McConnell equations using complex conjugate matrices. This commit follows step 4 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Added support for the R2B R<sub>2B</sub><sup>0</sup> parameter as required by the 'NS 2-site star' model. This is the model of the numerical solution for the 2-site Bloch-McConnell equations using complex conjugate matrices. This commit follows step 5 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Added support for the 'NS 2-site star' model to the relax_disp.select_model user function back end. This is the model of the numerical solution for the 2-site Bloch-McConnell equations using complex conjugate matrices. This commit follows step 6 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Better support for the R2A R<sub>2A</sub><sup>0</sup> and R2B R<sub>2B</sub><sup>0</sup> relaxation rate parameters in the relaxation dispersion analysis. This includes a number of fixes to allow these two parameters to be handled correctly.* Added parameter conversions to go from pA p<sub>A</sub> and kex k<sub>ex</sub> to kge k<sub>ge</sub> and kegk<sub>eg</sub>. This is for the 'NS 2-site star' numerical model. The conversions have been added to the start of the target function to minimise mathematical operations to speed up the code.
* Added the missing mpower() function as lib.linear_algebra.matrix_power.square_matrix_power(). This is needed by the lib.dispersion.ns_2site_star module. The function comes from the 'fitting_main_kex.py' file attached to comment 3 of task #7712 (https://gna.org/task/?7712#comment3, https://gna.org/support/download.php?file_id=18263). The mpower() function was copied and modified to suite relax's coding conventions.
* Added a module docstring to lib.linear_algebra.matrix_power.
* Shifted to using the faster numpy.linalg.matrix_power() function in lib.dispersion.ns_2site_star. This was originally using the lib.linear_algebra.matrix_power.square_matrix_power() function, however the numpy equivalent is faster.
* More speed ups of the 'NS 2-site star' dispersion model. A number of calculations have been shifted to the target function initialisation code, avoiding unnecessary repetitive mathematical operations.
* Improvement of the error handling in the 'NS 2-site star' model. The fA and pB p<sub>B</sub> parameters are no longer being checked. Instead a Mgx value of 0.0 is being checked for. This catches additional problems. And now instead of the R2eff R<sub>2eff</sub> value being set to zero, it is set to 1e99. This is because log of zero is -inf, and then multiplied by a negative constant gives positive inf.
* Docstring completion for lib.dispersion.ns_2site_star.r2eff_ns_2site_star(). Epydoc text was missing for some of the function arguments.
* Changed 'numerical integration' to 'numerical solutions' in the dispersion chapter of the manual.
* Reworked the dispersion chapter of the manual for the recent support of numerical models. This includes better sectioning and section labelling and referencing, and the addition of the 'NS 2-site star' numerical model. The model and parameter tables have been updated as well.
* Added the 'NS 2-site star red' model to the specific_analyses.relax_disp.variables module. This is the model of the numerical solution for the 2-site Bloch-McConnell equations using complex conjugate matrices, whereby the simplification R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> is assumed. This commit follows step 1 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Rewrote the relax_disp.select_model user function documentation. All of the detailed model information has been removed as it is now in the relax user manual. The model lists have been modified to match the analytic-numeric sectioning of the manual.
* Added the 'NS 2-site star red' model to the relax_disp.select_model user function frontend. This is the model of the numerical solution for the 2-site Bloch-McConnell equations using complex conjugate matrices, whereby the simplification R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> is assumed. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Docstring fix for the lib.dispersion.ns_2site_star.r2eff_ns_2site_star() function.
* Created the 'NS 2-site star red' model target function. This is the model of the numerical solution for the 2-site Bloch-McConnell equations using complex conjugate matrices, whereby the simplification R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> is assumed. The code in common with the 'NS 2-site star' model has been shifted into the new calc_ns_2site_star_chi2() method. This commit follows step 4 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added support for the 'NS 2-site star red' model to the relax_disp.select_model user function back end. This is the model of the numerical solution for the 2-site Bloch-McConnell equations using complex conjugate matrices, whereby the simplification R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> is assumed. This commit follows step 6 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'NS 2-site star red' model to the relax user manual. This is the model of the numerical solution for the 2-site Bloch-McConnell equations using complex conjugate matrices, whereby the simplification R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> is assumed. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Fix for the Monte Carlo simulations for the numeric dispersion models. The back-calculation method was not correctly initialising the target function class.
* Added the 'CR72 red' model to the specific_analyses.relax_disp.variables module. This is the Carver and Richards 1972 analytic model with the simplification R20A R<sub>2A</sub><sup>0</sup> = R20BR<sub>2B</sub><sup>0</sup>. The current 'CR72' makes the same assumption, but that model will be expanded to support R20A R<sub>2A</sub><sup>0</sup> and R20B R<sub>2B</sub><sup>0</sup> later. This commit follows step 1 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'CR72 red' model to the relax_disp.select_model user function frontend. This is the Carver and Richards 1972 analytic model with the simplification R20A R<sub>2A</sub><sup>0</sup> = R20BR<sub>2B</sub><sup>0</sup>. The current 'CR72' makes the same assumption, but that model will be expanded to support R20A R<sub>2A</sub><sup>0</sup> and R20B R<sub>2B</sub><sup>0</sup> later. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Created the 'CR72 red' model target function. This is the Carver and Richards 1972 analytic model with the simplification R20A R<sub>2A</sub><sup>0</sup> = R20BR<sub>2B</sub><sup>0</sup>. The current 'CR72' makes the same assumption, but that model will be expanded to support R20A R<sub>2A</sub><sup>0</sup> and R20B R<sub>2B</sub><sup>0</sup> later. The code in common with the CR72 model has been shifted into the new calc_CR72_chi2() method. This commit follows step 4 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added support for the 'CR72 red' model to the relax_disp.select_model user function back end. This is the Carver and Richards 1972 analytic model with the simplification R20A R<sub>2A</sub><sup>0</sup> = R20BR<sub>2B</sub><sup>0</sup>. The current 'CR72' makes the same assumption, but that model will be expanded to support R20A R<sub>2A</sub><sup>0</sup> and R20B R<sub>2B</sub><sup>0</sup> later. This commit follows step 6 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'CR72 red' model to the relax user manual. This is the Carver and Richards 1972 analytic model with the simplification R20A R<sub>2A</sub><sup>0</sup> = R20BR<sub>2B</sub><sup>0</sup>. The current 'CR72' makes the same assumption, but that model will be expanded to support R20A R<sub>2A</sub><sup>0</sup> and R20B R<sub>2B</sub><sup>0</sup> later. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* LaTeX improvements for the 'NS 2-site star red model' section of the dispersion chapter of the manual.
* Expanded the CR72 model to handle both the R20A R<sub>2A</sub><sup>0</sup> and R20B R<sub>2B</sub><sup>0</sup> parameters. The 'CR72 red' model now functions as the old CR72 model where R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> = R20R<sub>2</sub><sup>0</sup>. All parts of the code have been modified. The lib.dispersion.cr72.r2eff_CR72() function has been expanded to support the full Carver and Richards 1972 equations, dropping back to the simplified form if R20A R<sub>2A</sub><sup>0</sup> = R20BR<sub>2B</sub><sup>0</sup>.* Fix for the dispersion specific loop_parameters() method for the R20A R<sub>2A</sub><sup>0</sup> and R20B R<sub>2B</sub><sup>0</sup> parameters. The frequency index is now correctly returned for these and the R20 R<sub>2</sub><sup>0</sup> parameter.* Better printouts of the R20A R<sub>2A</sub><sup>0</sup> and R20B R<sub>2B</sub><sup>0</sup> parameters at the end of minimisation.
* Documentation fix for the lib.dispersion.cr72 module.
* Small speed up for the lib.dispersion.cr72 module for the R20A R<sub>2A</sub><sup>0</sup> != R20B R<sub>2B</sub><sup>0</sup> case. Replicated calculations have been minimised.* Added support for model nesting in the relaxation dispersion auto-analysis. This involves copying the parameters from the simpler nested model rather than performing a full grid search. This is currently used to handle all models with R20A R<sub>2A</sub><sup>0</sup> and R20B R<sub>2B</sub><sup>0</sup> parameters where a simpler model with the single R20 R<sub>2</sub><sup>0</sup> parameter is optimised first.
* Improvements for the write_results() method of the dispersion auto-analysis. The parameter value and Grace files are now correctly created for all the recent models.
* Fix for the Relax_disp.test_hansen_cpmg_data_auto_analysis system test for model name change. This is for the change from the 'CR72' model to 'CR72 red' model.
* Added the 'NS 2-site' model to the specific_analyses.relax_disp.variables module. This is the model of the numerical solution for the 2-site Bloch-McConnell equations. It originates as optimization function number 1 from the fitting_main_kex.py script from Mathilde Lescanne, Paul Schanda, and Dominique Marion (see http://thread.gmane.org/gmane.science.nmr.relax.devel/4138, https://gna.org/task/?7712#comment2 and https://gna.org/support/download.php?file_id=18262). This commit follows step 1 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Added the 'NS 2-site' model to the relax_disp.select_model user function frontend. This is the model of the numerical solution for the 2-site Bloch-McConnell equations. It originates as optimization function number 1 from the fitting_main_kex.py script from Mathilde Lescanne, Paul Schanda, and Dominique Marion (see http://thread.gmane.org/gmane.science.nmr.relax.devel/4138, https://gna.org/task/?7712#comment2 and https://gna.org/support/download.php?file_id=18262). This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Added the 'NS 2-site' R2eff R<sub>2eff</sub> calculating function to the relax library. This is the model of the numerical solution for the 2-site Bloch-McConnell equations. It originates as optimization function number 1 from the fitting_main_kex.py script from Mathilde Lescanne, Paul Schanda, and Dominique Marion (see http://thread.gmane.org/gmane.science.nmr.relax.devel/4138, https://gna.org/task/?7712#comment2 and https://gna.org/support/download.php?file_id=18262). This commit follows step 3 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Updates and fixes for the lib.dispersion.ns_2site module. The function has been renamed, and the R1 R<sub>1</sub> arguments default to 0.0. The flip angle for the from the pulse.
* Created the 'NS 2-site' model target function. This is the model of the numerical solution for the 2-site Bloch-McConnell equations. It originates as optimization function number 1 from the fitting_main_kex.py script from Mathilde Lescanne, Paul Schanda, and Dominique Marion (see http://thread.gmane.org/gmane.science.nmr.relax.devel/4138, https://gna.org/task/?7712#comment2 and https://gna.org/support/download.php?file_id=18262). This commit follows step 4 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Converted the 'NS 2-site' model to 'NS 2-site 3D' to be more specific. This might change again in the future.
* Converted the pi-pulse propagator matrices to numpy array format. This is to enable the use of the much faster numpy.dot() function for performing the dot products.
* Speed ups for the 'NS 2-site 3D' model. The pi-pulse propagator is created only once upon target function initialisation rather than for each function call, each spin cluster, each magnetic field strength, each dispersion point, and each CPMG block.
* Modified the df, fA, and fB parameters to match the relax omega conventions of dw&delta;&omega;, wA, and wB. This follows from Paul Schanda's confirmation at http://thread.gmane.org/gmane.science.nmr.relax.devel/4132/focus=4159.* Speed up for the lib.dispersion.ns_matrices.rcpmg_3d() function. The pA p<sub>A</sub> and pB p<sub>B</sub> parameters are now sent into the function rather than being recreated by the function.* More changes to the numerical solution dispersion code to match relax's conventions. This includes the changes of df->dw&delta;&omega;, fA->wA, fB->wB, and Mgx->Mx.* Added the 'NS 2-site 3D red' model to the specific_analyses.relax_disp.variables module. This is the 'NS 2-site 3D' model with R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> = R20R<sub>2</sub><sup>0</sup>. This commit follows step 1 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'NS 2-site 3D red' model to the relax_disp.select_model user function frontend. This is the 'NS 2-site 3D' model with R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> = R20R<sub>2</sub><sup>0</sup>. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Created the 'NS 2-site 3D red' model target function. This is the 'NS 2-site 3D' model with R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> = R20R<sub>2</sub><sup>0</sup>. This commit follows step 4 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added support for the 'NS 2-site 3D red' model to the relax_disp.select_model user function back end. This is the 'NS 2-site 3D' model with R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> = R20R<sub>2</sub><sup>0</sup>. This commit follows step 6 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Updated all of the numerical model sections of the dispersion chapter of the manual. This includes additions for the 'NS 2-site 3D' and 'NS 2-site 3D red' models.
* Updated the 'NS 2-site 3D' and 'NS 2-site 3D red' models in the dispersion chapter of the relax manual. The models are now included in the tables and in the introduction.
* Added the 'NS 2-site expanded' model to the specific_analyses.relax_disp.variables module. This is the numerical model for the 2-site Bloch-McConnell equations expanded using Maple by Nikolai Skrynnikov. This commit follows step 1 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Added the 'NS 2-site expanded' model to the relax_disp.select_model user function frontend. This is the numerical model for the 2-site Bloch-McConnell equations expanded using Maple by Nikolai Skrynnikov. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Added the 'NS 2-site expanded' R2eff R<sub>2eff</sub> calculating function to the relax library. This is the numerical model for the 2-site Bloch-McConnell equations expanded using Maple by Nikolai Skrynnikov. It originates as optimization function number 5 from the fitting_main_kex.py script from Mathilde Lescanne, Paul Schanda, and Dominique Marion (see http://thread.gmane.org/gmane.science.nmr.relax.devel/4138, https://gna.org/task/?7712#comment2 and https://gna.org/support/download.php?file_id=18262). This commit follows step 3 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Fix for the lib.dispersion.ns_2site_expanded.r2eff_ns_2site_expanded() function. The pg variable should have been pA p<sub>A</sub> and it needs to be sent into the function.
* Created the 'NS 2-site expanded' model target function. This is the numerical model for the 2-site Bloch-McConnell equations expanded using Maple by Nikolai Skrynnikov. It originates as optimization function number 5 from the fitting_main_kex.py script from Mathilde Lescanne, Paul Schanda, and Dominique Marion (see http://thread.gmane.org/gmane.science.nmr.relax.devel/4138, https://gna.org/task/?7712#comment2 and https://gna.org/support/download.php?file_id=18262). This commit follows step 4 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Added support for the 'NS 2-site expanded' model to the relax_disp.select_model user function back end. This is the numerical model for the 2-site Bloch-McConnell equations expanded using Maple by Nikolai Skrynnikov. It originates as optimization function number 5 from the fitting_main_kex.py script from Mathilde Lescanne, Paul Schanda, and Dominique Marion (see http://thread.gmane.org/gmane.science.nmr.relax.devel/4138, https://gna.org/task/?7712#comment2 and https://gna.org/support/download.php?file_id=18262). This commit follows step 6 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Fix for the relax_disp.select_model user function for the 'NS 2-site expanded' model. There is only one R20 R<sub>2</sub><sup>0</sup> parameter as R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> in this model.
* Added the 'NS 2-site expanded' model to the relax user manual. This is the numerical model for the 2-site Bloch-McConnell equations expanded using Maple by Nikolai Skrynnikov. It originates as optimization function number 5 from the fitting_main_kex.py script from Mathilde Lescanne, Paul Schanda, and Dominique Marion (see http://thread.gmane.org/gmane.science.nmr.relax.devel/4138, https://gna.org/task/?7712#comment2 and https://gna.org/support/download.php?file_id=18262). This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Large renaming of the relaxation dispersion models. This includes both the analytic and numerical models. All of the models with separate R20A R<sub>2A</sub><sup>0</sup> and R20B R<sub>2B</sub><sup>0</sup> parameters now have ' full' added to the end of the model name. And all of the corresponding reduced models whereby R20A R<sub>2A</sub><sup>0</sup> = R20B R<sub>2B</sub><sup>0</sup> = R20 R<sub>2</sub><sup>0</sup> have had the trailing ' red' removed. All descriptions and variable names have been updated to match.
* Updated the dispersion auto-analysis write_results() method for the recent model changes.
* Import fix for the 'NS 2-site expanded' dispersion model target function.
* Expanded the dispersion target function class docstring to include all current dispersion models.
* Updated the parameter checks in the Relax_disp.test_hansen_cpmg_data_CR72_full system test.
* Fixes for all of the definitions of the k_AB k<sub>AB</sub> and k_BA k<sub>BA</sub> exchange parameters. These were inverted in all parts of relax. The changes only affect the numerical dispersion models.
* Created the Relax_disp.test_hansen_cpmg_data_ns_2site_3D system test. This checks the 'NS 2-site 3D' numerical dispersion model against some truncated CPMG data from Flemming Hansen.
* Created the Relax_disp.test_hansen_cpmg_data_ns_2site_3D_full system test. This checks the 'NS 2-site 3D full' numerical dispersion model against some truncated CPMG data from Flemming Hansen. The parameter checks have not been updated as there appears to be a bug.
* The Relax_disp.test_hansen_cpmg_data_ns_2site_expanded system test now passes. The test has been set up to match Relax_disp.test_hansen_cpmg_data_CR72. This allows the efficiency of each method to be compared by running the tests with the --time flag.
* Fix for the model nesting method of the relaxation dispersion auto-analysis for deselected spins.
* Added an upper constraint of 2e6 rad/s for the kex k<sub>ex</sub> dispersion parameter. This is to prevent slow optimisation to values in the order of 1e20 for models which fail.
* Updated the model lists for the relax scripts for optimising Flemming Hansen's CPMG data. The model lists now include the numeric models and the 'CR72 full' model.
* The lib.software.grace.write_xy_header() can now set the legend fill pattern and font size.
* The relax_disp.plot_disp_curves user function backend now sets clear legend boxes with smaller text.
* Fix for the Grace string for the dw &delta;&omega; dispersion parameter.* Updated the parameter value checks in the Relax_disp.test_hansen_cpmg_data_CR72 system test. The low precision parameters are slightly different because of the new upper constraint on kexk<sub>ex</sub>, simply because optimisation is terminated early rather than optimisation giving different results.
* Updated the rest of the dispersion system tests to check the correct parameter values. It is currently assumed that the 'full' dispersion models are correct as there is currently no way of testing if they are not. So the Relax_disp.test_hansen_cpmg_data_ns_2site_3D_full and Relax_disp.test_hansen_cpmg_data_ns_2site_star_full system tests have been updated to pass.
* Modified how the relaxation dispersion auto-analysis handles Monte Carlo simulations. Now there is a flag which allows per-model simulations to be enabled. By default, simulations are now only performed at the end. This is to allow for massive speed ups in the auto-analysis.
* Added Mathilde Lescanne to the copyright notices of the numeric dispersion code in the relax library. The dates must still be checked and updated correctly.
* Added support for the mc_sim_all_models flag for the dispersion auto-analysis in the GUI. The new boolean auto-analysis GUI input element is being used for this purpose.
* All of the numeric dispersion models are now much more robust. The real part of the magnetization vector for the A state could, for some parameter combinations, be either negative or NaN. These situations are now caught, and the R2eff R<sub>2eff</sub> value set to a very large number.
* Sectioning improvements for the relaxation dispersion chapter of the relax user manual.
* Added DOI numbers to a number of bibliography entries for quick links in the relax user manual.
* Added the 'LM63 3-site' model to the relax_disp.select_model user function frontend. This is the Luz and Meiboom 1963 analytic model for three exchanging sites. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Added the 'LM63 3-site' model to relaxation dispersion chapter of the relax user manual. This is the Luz and Meiboom 1963 analytic model for three exchanging sites. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Added the 'LM63 3-site' R2eff R<sub>2eff</sub> calculating function to the relax library. This is the Luz and Meiboom 1963 analytic model for three exchanging sites. This commit follows step 3 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Fixes for the 'LM63 3-site' model equations in the relaxation dispersion chapter of the user manual.
* Created the 'LM63 3-site' model target function. This is the Luz and Meiboom 1963 analytic model for three exchanging sites. This commit follows step 4 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Speed ups for the 'LM63 3-site' target function. Some mathematical operations have been shifted from the library code into the target function so that is only calculates once per function call.
* Updated the relax results for Flemming Hansen's truncated CPMG data for the 'LM63 3-site' model.
* The dispersion auto-analysis now outputs files for the kBk<sub>B</sub>, kC, phi_ex_B&phi;<sub>ex,B</sub>, and phi_ex_C &phi;<sub>ex,C</sub> parameters. This is in the write_results() method and is for creating text files and Grace plots for the 'LM 3-site' model.
* Created some synthetic test data for the 'LM63 3-site' dispersion model. This will be used to test CPMGFit and relax's implementations.
* Updated the 'LM63 3-site' dispersion model test data. The CPMG frequencies are now more realistic.
* Updated the reference Sparky peak lists for the 'LM63 3-site' dispersion model test data.
* Missing import of the specific_analyses.relax_disp.variables.MODEL_LM63_3SITE variable.
* Added scripts for calculating the R2eff R<sub>2eff</sub> values for the 'LM63 3-site' dispersion model test data.* Created the Relax_disp.test_r2eff_fit_fixed_time system test to show a failure in the auto-analysis. This shows a failure of the R2eff R<sub>2eff</sub> fitting in the dispersion auto-analysis due to Monte Carlo simulations being run when the calc() function should be called.
* Removed some parts of the Relax_disp.test_r2eff_fit_fixed_time system test. The last lines were non-functional.
* Fix for the dispersion auto-analysis if not enough models have been input for a final run. The final model selection, Monte Carlo simulation, and results writing stage of the auto-analysis now only occurs when enough models are present for model selection.
* Fix for the dispersion auto-analysis for when only the single R2eff model is optimised. This is for the case of exponential curve fitting, and allows Monte Carlo simulations to proceed even when the mc_sim_all_models flag is False.
* Removed some unused parts of the r2eff_calc.py script and added the results file.
* Made the 'LM63 3-site' dispersion model test data more realistic. Previously all the rates were within a few decimal places of the R20 R<sub>2</sub><sup>0</sup> values. Now the dispersion is much more significant.
* Modified the 'LM63 3-site' dispersion model test data again. This time the data has been changed to be that of two residues rather than two spins.
* Another update of the 'LM63 3-site' dispersion model test data. This data now makes CPMGFit happy.
* Added links to all of the copyright licensing agreements for the lib.dispersion.ns_2site_expanded module.
* Added Nikolai Skrynnikov to the copyright notice of the lib.dispersion.ns_2site_expanded module.
* Added the 'TP02' model to the specific_analyses.relax_disp.variables module. This is the Trott and Palmer 2002 R1rho R<sub>1&rho;</sub> analytic model for 2-site exchange. This commit follows step 1 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'TP02' model to the relax_disp.select_model user function frontend. This is the Trott and Palmer 2002 R1rho R<sub>1&rho;</sub> analytic model for 2-site exchange. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'TP02' model to relaxation dispersion chapter of the relax user manual. This is the Trott and Palmer 2002 R1rho R<sub>1&rho;</sub> analytic model for 2-site exchange. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'TP02' R1rhoR<sub>1&rho;</sub>' calculating function to the relax library. This is the Trott and Palmer 2002 R1rho R<sub>1&rho;</sub> analytic model for 2-site exchange. This commit follows step 3 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907). The Matlab code from Skrynnikov and Tollinger has not been converted to Python code yet. This is to allow the Matlab->Python conversion to be followed.
* Fix for the 'M61 skew' dispersion model indexing in the user manual.
* Added the 'NS 2-site expanded' model to the CPMG dispersion sample script.
* Converted the lib.dispersion.tp02 module from Matlab code to Python. The code has also been made fail-safe and repetitive calculations have been shifted outside of the loop to speed things up.
* Fixes for the TP02 model section of the dispersion chapter of the manual.
* Created the 'TP02' model target function. This is the Trott and Palmer 2002 R1rho R<sub>1&rho;</sub> analytic model for 2-site exchange. This commit follows step 4 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added support for the 'TP02' model to the relax_disp.select_model user function back end. This is the Trott and Palmer 2002 R1rho R<sub>1&rho;</sub> analytic model for 2-site exchange. This commit follows step 6 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* The spectrometer frequency information is now checked for the TP02 model.
* Started to create a script to create synthetic data for the TP02 dispersion model. This still needs a lot of work.
* Created the synthetic data for the TP02 dispersion model. The Sparky peak lists have been created and added to the repository.
* Modified the synthetic data for the TP02 dispersion model. The data is more closely mimics that from the paper, and should now be in the slow exchange regime.
* Updated the M61 R1rho R<sub>1&rho;</sub> model conditions in the table in the user manual.* Updated the TP02 R1rho R<sub>1&rho;</sub> model conditions in the table in the manual. This cannot be fast exchange.
* Started to create the Relax_disp.test_r1rho_off_res_fixed_time_tp02 system test.
* A fix for older numpy versions, as the numpy.add() function argument 'out' is relatively new.
* Changed the synthetic data file names for the TP02 dispersion model.
* Updated the Relax_disp.test_r1rho_off_res_fixed_time_tp02 system test script for the new file names.
* Added a new user function to the Relax_disp.test_r1rho_off_res_fixed_time_tp02 system test. This is the chemical_shift.read user function which currently does not exist. Chemical shifts are needed to interpret off-resonance R1rho R<sub>1&rho;</sub> data.
* Copyright of Sebastien Morin and Edward d'Auvergne re-inserted, since tsmfk01 is an alteration of lm63.py and m61.py in same directory. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Fix for converting dw &delta;&omega; from ppm to rad/s. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Added support for the TSMFK01 model to the relax_disp.select_model user function back end. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Fix for the reading of chemical shifts in the Relax_disp.test_r1rho_off_res_fixed_time_tp02 system test.
* Fixed a typo in the dispersion chapter of the user manual. This was identified by Troels Linnet at http://thread.gmane.org/gmane.science.nmr.relax.devel/4410.
* Fix for the relax_disp.spin_lock_offset user function. The cdp.dispersion_points structure was being updated when it should not be touched - a remnant of the relax_disp.spin_lock_field backend which this code was copied from.
* Added some more arguments to the dispersion target function class for off-resonance R1rho R<sub>1&rho;</sub> models. This is the structure for the spin-lock offsets and the tilt angles for each spin.
* Fix for the Relax_disp.test_r1rho_off_res_fixed_time_tp02 system test. The correct spectrum ID is now used for the relax_disp.spin_lock_offset user function calls in the script.
* The dispersion specific optimisation code is now assembling chemical shift related data. The specific_analyses.relax_disp.disp_data.return_offset_data() function has been written to return structures for the chemical shifts, offsets, and tilt angles. These are then used by the optimisation functions by passing them into the target function code.
* The TP02 model code is now in a semi functional state. The lib.dispersion code has been fixed to properly handle the data it receives and the target function code has been updated to pass in the correct data.
* The TP02 model R1rho R<sub>1&rho;</sub> off-resonance test data creation script now creates files of the R1 R<sub>1</sub> relaxation data. These files are needed for the system tests, as R1 R<sub>1</sub> data needs to be read.* The dispersion target function class now handles R1 R<sub>1</sub> relaxation data. This data is essential for the off-resonance R1rho R<sub>1&rho;</sub> models.* The Relax_disp.test_r1rho_off_res_fixed_time_tp02 system test script now reads the R1 R<sub>1</sub> relaxation data. This data is essential for the model optimisation.* The dispersion specific code is now assembling the R1 R<sub>1</sub> data and passing it to the target function. The new specific_analyses.relax_disp.disp_data.return_r1_data() function creates a data structure holding all the R1 R<sub>1</sub> data. This is used in the off-resonance R1rho R<sub>1&rho;</sub> experiments.
* Added checks to the specific_analyses.relax_disp.disp_data.return_r1_data() function. This is to help indicate to the user when data is missing.
* Fix for the Relax_disp.test_bug_20889_multi_col_peak_list GUI test. The spectrum.read_intensities user function no longer has 'heteronuc' and 'proton' arguments.
* Fix to allow R1 R<sub>1</sub> data to be randomised for Monte Carlo simulations for off-resonance R1rho R<sub>1&rho;</sub> data. This is a temporary kludge for the dispersion analysis and needs to be replaced by a cleaner solution via the base_data_loop() method.
* Fix for the synthetic data for the TP02 dispersion model. The nitrogen chemical shift was not converted from ppm to rad/s before being used to calculate the offsets.
* Fixes for the parameter checks in the Relax_disp.test_r1rho_off_res_fixed_time_tp02 system test. The parameter values had not been updated from when the test was copied from one of the other tests.
* Increased the grid search size in the Relax_disp.test_r1rho_off_res_fixed_time_tp02 system test.
* The self.field_pre_run_dir GUI element is now deactivated with the execution lock.
* Many fixes and improvements for all of the R1rho R<sub>1&rho;</sub> dispersion models in the user manual. The equations are now correct and the parameter table updated with new parameters and equations.* Removed the unused theta and R1 R<sub>1</sub> arguments for the lib.dispersion.m61.r1rho_M61() function. These off-resonance parameters are not used in the on-resonance model.
* Updated the r1rho_on_res_m61 dispersion on-resonance data for off-resonance models. The chemical shifts are now the same for all spins, to force perfect on-resonance, and the two spins are now different residues.
* Added an R1 R<sub>1</sub> data file to r1rho_on_res_m61, by copying from the r1rho_off_res_tp02 test suite data.* Updated the Relax_disp.test_r1rho_on_res_fixed_time_dpl94 system test for off-resonance data. The offsets, R1 R<sub>1</sub> data, and chemical shifts are now setup or read by the script.* Fixes for the DPL94 model to make it truly off-resonance. The tilt angles and R1 R<sub>1</sub> data are now used by the target function.
* Fixes for the r1rho_on_res_m61.py system test script. The spins are now different residues. This fixes two system tests.
* Renamed all of the current numeric dispersion models in relax to be specific to CPMG-type data. This is in preparation for adding R1rho R<sub>1&rho;</sub> numeric models. It was proposed at http://thread.gmane.org/gmane.science.nmr.relax.devel/4461.* Added the 'NS R1rho 2-site' model to the specific_analyses.relax_disp.variables module. This is the numerical model for the 2-site Bloch-McConnell equations for R1rho R<sub>1&rho;</sub> data. This commit follows step 1 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'NS R1rho 2-site' model to the relax_disp.select_model user function frontend. This is the numerical model for the 2-site Bloch-McConnell equations for R1rho R<sub>1&rho;</sub> data. This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'NS R1rho 2-site' R1rho R<sub>1&rho;</sub> calculating function to the relax library. This is the numerical model for the 2-site Bloch-McConnell equations for R1rho R<sub>1&rho;</sub> data. This code originates from the Skrynikov & Tollinger code (the sim_all.tar file https://gna.org/support/download.php?file_id=18404 attached to https://gna.org/task/?7712#comment5). Specifically the funNumrho.m file. This commit follows step 3 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Fix for the function name in the lib.dispersion.ns_r1rho_2site module and removed misplaced copyrights.
* Created the 'NS R1rho 2-site' model target function. This is the numerical model for the 2-site Bloch-McConnell equations for R1rho R<sub>1&rho;</sub> data. The code originates from the funNumrho.m file from the Skrynikov & Tollinger code (the sim_all.tar file https://gna.org/support/download.php?file_id=18404 attached to https://gna.org/task/?7712#comment5). This commit follows step 4 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added support for the 'NS R1rho 2-site' model to the relax_disp.select_model user function back end. This is the numerical model for the 2-site Bloch-McConnell equations for R1rho R<sub>1&rho;</sub> data. The code originates from the funNumrho.m file from the Skrynikov & Tollinger code (the sim_all.tar file https://gna.org/support/download.php?file_id=18404 attached to https://gna.org/task/?7712#comment5). This commit follows step 6 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).* Added the 'NS R1rho 2-site' model to the relax user manual. This is the numerical model for the 2-site Bloch-McConnell equations for R1rho R<sub>1&rho;</sub> data. The code originates from the funNumrho.m file from the Skrynikov & Tollinger code (the sim_all.tar file https://gna.org/support/download.php?file_id=18404 attached to https://gna.org/task/?7712#comment5). This commit follows step 2 of the relaxation dispersion model addition tutorial (http://thread.gmane.org/gmane.science.nmr.relax.devel/3907).
* Rearrangement of the model sections in the dispersion chapter of the user manual. These are now better separated into different categories.
* Created a save file for the r1rho_off_res_tp02 dispersion data optimised to the R2eff model. This will be used for faster system tests.
* Created the Relax_disp.test_r1rho_ns_r1rho_2site_to_tp02 system test for the new 'NS R1rho 2-site' model. This tests the 'NS R1rho 2-site' model against the R1rho R<sub>1&rho;</sub> off-resonance test data from the 'TP02' model.* A number of fixes for the 'NS R1rho 2-site' dispersion model. The model should now be fully functional. The chemical shift and R1 R<sub>1</sub> related data are now assembled for this model, and the data correctly passed from the target function to the lib.dispersion module.
* The Relax_disp.test_r1rho_ns_r1rho_2site_to_tp02 system test now passes. The optimised values have been hard-coded into the system test. They do not match the TP02 results, but are close.
* Renamed many of the Relax_disp system tests to bring some order to the naming.
* Created a system test to catch bug #21081 (https://gna.org/bugs/?21081). This uses a truncated version of Troel Linnet's save state attached to the bug report (the data pipes not used in the model selection have been manually deleted as well as all by the first 3 spins in the remaining 2 data pipes).
* Fix for bug #21081 (https://gna.org/bugs/?21081) - the failure of a dispersion cluster analysis. The problem was that the specific_analyses.relax_disp.disp_data.loop_cluster() generator method was not taking the spin.select flag into account. Now all deselected spins are excluded from the spin clusters and the free spins.
* Better support for off-resonance R1rho R<sub>1&rho;</sub> data in the dispersion GUI. A new row of buttons has been added to the dispersion GUI, just above the Peak list GUI element. The first button is for the spin.isotope user function and replaces the old GUI element. Two new buttons for loading R1 R<sub>1</sub> data and chemical shifts have also been added, as required for off-resonance R1rho R<sub>1&rho;</sub> data.
* Changed the chemical shift icon to that of the chemical shift in ppm units - the delta symbol.
* The chemical shift icon now has a transparent background.
* Small changes to the tooltips of the R1 R<sub>1</sub> and chemical shift buttons.
* Used far more Unicode for superscript, subscript and Greek letters for the model parameters. This is for the model list elements in the dispersion GUI tab.
* Added the 'TP02' and 'NS R1rho 2-site' models to the R1rho R<sub>1&rho;</sub> model list in the dispersion GUI. These models were missing from the list.
* Fix for the 'NS R1rho 2-site' model description in the relax_disp.select_model user function.
* The relax_disp.select_model GUI wizard combo element now uses Unicode for the dispersion parameters. This is for all the models. The 'LM63 3-site' model parameter list has also been fixed to match the current set.
* Fix for r20 should be called r20a. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Fix for unpacking the parameters correctly. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Added the k_AB k<sub>AB</sub> and k_BA k<sub>BA</sub> parameters to the table of all dispersion parameters.
* Proper ordering of all the dispersion models. See the thread at http://thread.gmane.org/gmane.science.nmr.relax.devel/4498 for details.
* Added the 'NS R1rho 2-site' model to the dispersion auto-analysis.
* The tutorial for adding dispersion models in the user manual has been simplified. Most of the text from the dispersion model addition tutorial in the dispersion chapter of the manual has been removed. Instead a link to the tutorial on the wiki is given as this is a much better place for such information (http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax).
* Moved the ordering of the model TSMF. Ordering conventions mentioned in this post http://article.gmane.org/gmane.science.nmr.relax.devel/4500. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Added the relax_disp.spin_lock_offset user function to the peak intensity wizard of the GUI. This is only for R1rhoR<sub>1&rho;</sub>-type data and allows off-resonance data to be analysed in the GUI.
* Data provided for the implementation of the slow-exchange analytic model of the Tollinger/Kay (2001). This model were used for fitting in the paper http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1458987.
* Created the Relax_disp.test_tp02_data_to_tp02 GUI test. This is based on the system test of the same name. This GUI test checks that an off-resonance R1rho R<sub>1&rho;</sub> analysis is functional in the GUI.
* Python 3 space fixes for the lib.software.grace.script_grace2images() function. As the script is encoded by strings, the 2to3 program cannot fix this script. Therefore the changes were made by hand.
* Unicode strings in the dispersion GUI elements is now set up with the compat.u() function.
* Added setup function for the system test of KTeilum_FMPoulsen_MAkke_2006 data. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Fixed a spelling mistake in a number of file names. This is for the test suite data located at test_suite/shared_data/dispersion/KTeilum_FMPoulsen_MAkke_2006.
* Fixes for the units in the dispersion parameter table in the user manual. The units for dw &delta;&omega; are rad.s^-1 when used in the equations, but it is stored internally as ppm.
* Truncated the dataset to only one residue L61. The truncated dataset will be expanded later. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Modified the script file for saving of a truncated base_pipe state file. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Added script files for generating a saved state file with R2eff R<sub>2eff</sub> values. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Added the first system test for model CR72 for the kteilum_fmpoulsen_makke_cpmg_data. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Fix trailing spaces. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Created the specific_analyses.relax_disp.disp_data.loop_exp*() functions. This follows from http://thread.gmane.org/gmane.science.nmr.relax.devel/4530, the thread about supporting multiple data types such as SQ+MQ data simultaneously. The methods added are loop_exp(), loop_exp_frq(), loop_exp_frq_point() and loop_exp_frq_point_time().
* Removed the relax_disp.exp_type user function page from the new analysis wizard.
* Modified the dispersion GUI analysis to handle the relax_disp.exp_type user function changes. This follows from http://thread.gmane.org/gmane.science.nmr.relax.devel/4530, the thread about supporting multiple data types such as SQ+MQ data simultaneously. The experiment type GUI element has been removed, the CPMG and R1rho R<sub>1&rho;</sub> model lists merged into one, and much code for the experiment type removed. The peak analysis wizard will need to be heavily modified for the changes.
* Added the relax_disp.exp_type user function to the peak intensity loading wizard.
* Added the experiment type to the spectrum list GUI element. This is only activated if the exp_type_flag argument is True.
* A number of fixes for the relax_disp.exp_type user function changes. This follows from http://thread.gmane.org/gmane.science.nmr.relax.devel/4530, the thread about supporting multiple data types such as SQ+MQ data simultaneously.
* Updated the Hansen CPMG data relax save files for the cdp.exp_type changes.
* Fix for the Relax_disp.test_hansen_cpmgfit_input system test for a new set of errors. The Hansen R2eff R<sub>2eff</sub> values have been recalculated and the errors are now slightly different.
* More fixes due to the cdp.exp_type change. This follows from http://thread.gmane.org/gmane.science.nmr.relax.devel/4530, the thread about supporting multiple data types such as SQ+MQ data simultaneously.
* Updated the r1rho_off_res_tp02 dispersion system test data for the cdp.exp_type changes.
* The spectrum list GUI element can now handle the cdp.exp_type data structure not existing.
* Fixes for all of the specific_analyses.relax_disp.disp_data.has_*_exp_type() functions. They now operate when no experiment types have been specified.
* Redesigned the peak intensity loading GUI wizard for handling multiple experiment types. This follows from http://thread.gmane.org/gmane.science.nmr.relax.devel/4530, the thread about supporting multiple data types such as SQ+MQ data simultaneously. The logic for the page ordering needed to be changed to be more dynamic. The CPMG and R1rho R<sub>1&rho;</sub> pages need to be shown only if the corresponding experiment type exists in the current data pipe. Hence the has_cpmg_exp_type() and has_r1rho_exp_type() dispersion functions are now used by the new methods wizard_page_after_relax_time() and wizard_page_after_cpmg_frq(). A number of now useless flags have also been removed.* Added some sanity checks to the dispersion target function class. R1rho R<sub>1&rho;</sub> models cannot be used with CPMG-type experiments, and CPMG models cannot be used with R1rhoR<sub>1&rho;</sub>-type experiments.
* Fixes for all of the GUI dispersion tests for the changes to cdp.exp_type. This follows from http://thread.gmane.org/gmane.science.nmr.relax.devel/4530, the thread about supporting multiple data types such as SQ+MQ data simultaneously.
* Large speed up of the Relax_disp.test_tp02_data_to_tp02 GUI test. By minimising the number of times the peak intensity wizard pages are regenerated, the test time decreased on one system from ~32s to ~12s.
* Simplified the code of the Relax_disp.test_hansen_trunc_data GUI test.
* The GUI now warns if the user choses inappropriate models. When clicking on 'Execute', an error message appears if R1rho R<sub>1&rho;</sub> models are selected for CPMG data and vice versa. This is simply for more intuitive user feedback.
* Fix for the relax_disp.exp_type pop up menu entry in the spectrum list GUI element. This was calling relax_fit.exp_type rather than relax_disp.exp_type.
* Fix for the relax_disp.cpmg_frq pop up menu entry in the spectrum list GUI element. The method associated with the menu entry action_relax_disp_cpmg_frq() was buggy.
* Fix for the relax_disp.spin_lock_field pop up menu entry in the spectrum list GUI element. Another action method bug - the same as in the last commit.
* Added two functions for determining if a spectrum ID corresponds to a CPMG or R1rho R<sub>1&rho;</sub> experiment. These are functions in specific_analyses.relax_disp.disp_data and they are called is_cpmg_exp_type() and is_r1rho_exp_type().
* Big redesign of the spectrum list GUI element for the dispersion analysis. This follows from http://thread.gmane.org/gmane.science.nmr.relax.devel/4530, the thread about supporting multiple data types such as SQ+MQ data simultaneously. The popup menu must be generated on the fly, as the CPMG frequency and spin-lock field strength menu entries should only be shown for the appropriate experiment type. Therefore the new generate_popup_menu() method has been added to the gui.components.base_list GUI element. The flags sent into the spectrum list GUI element have also been completely changed to now indicate the analysis type directly.
* Expanded the Relax_disp.test_hansen_trunc_data GUI test to check the spectrum list GUI element. The popup menu is now tested with the Fake_right_click() trick. And the actions of a number of the menu items, the action*() methods, are tested to see if the user functions are correctly called.
* Fixed typo. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Added the truncated test data for system test: relax -s Relax_disp.test_kteilum_fmpoulsen_makke_cpmg_data_to_cr72. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Created a relax save file with just R2eff R<sub>2eff</sub> values for the r1rho_on_res_m61 dispersion system tests data.
* Created 3 new dispersion system tests. These are for checking a new function that doesn't exist yet. The get_curve_type() function will be used to determine if the experiment corresponding to the given ID consists of exponential curves or of fixed time data.
* Fixed values for system test: relax -s Relax_disp.test_kteilum_fmpoulsen_makke_cpmg_data_to_cr72. The test now passes. The values are compared to a relax run with 500 Monte Carlo simulations. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Changed the saved states to the truncated spin system. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Fix for the residue index in the test suite when using the truncated spin system. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* The R2eff R<sub>2eff</sub> result save file for the r1rho_on_res_m61 dispersion data now contains the full data set. The previous file did not contain the full exponential curves.
* The get_curve_type() function now works with the spectrum ID. This specific_analyses.relax_disp.disp_data.get_curve_type() function already existed but it operated on all the loaded data. Now it can handle a single spectrum ID. The count_relax_times() function has been added to aid get_curve_type().
* The get_curve_type() function is now imported into the dispersion system test module.
* The checks prior to minimisation of the dispersion models is now more comprehensive.
* Bug fixes for the specific_analyses.relax_disp.checks.get_times() function. The function is now more tolerant if certain data has now been set up yet.
* Fixes for some of the R1rho R<sub>1&rho;</sub> dispersion system test scripts. The relaxation time must be set for the reference spectrum.
* Fixes for the Relax_disp.test_exp_fit system test - the spectrometer frequency is now set. This information is now compulsory.
* Converted references of ka and kA to k_ABk<sub>AB</sub>. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Updated the CPMG dispersion analysis sample script for the relax_disp.exp_type user function changes.
* Updated the user manual for the relax_disp.exp_type user function changes. The script in the prompt/script UI section of the dispersion chapter needed to be updated.
* Referencing fixes for the dispersion chapter of the user manual.
* Updated the scripts and save files for the KTeilum_FMPoulsen_MAkke_2006 dispersion data. This is for the recent relax_disp.exp_type user function changes and this allows the tests to pass. Information on how to run the scripts and tee the output to logs has been added, and the logs added to the repository.
* Added k_AB k<sub>AB</sub> to parameters. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* More fixes for the relax_disp.exp_type user function changes.
* The relaxation dispersion GUI elements now use the lib.text.gui module for Unicode strings.
* Some Unicode text fixes in the dispersion GUI analysis for older MS Windows versions.
* Updated the Grace string for the k_AB k<sub>AB</sub> parameter - it was being shown as kA.
* Fix for the model list in the GUI - the TSMFK01 model entry was broken.
* Increased the size of the dispersion model list GUI window so that all models fit without scrolling.
* Added the output from relax after analysis of all models. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Removed the size variable from the dispersion model list GUI window as it is no longer used.
* Added the k_AB k<sub>AB</sub> and k_BA k<sub>BA</sub> conversion equations to the dispersion parameter table in the user manual.
* Changed reference to Tollinger et al. instead of Tollinger/Kay. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Fixes for the dispersion GUI tests for the changes to the model list GUI element.
* Added the button for the interatom.define user function in preparation for the MQ dispersion data. This is in the dispersion tab of the GUI.
* The return_cpmg_frqs() and return_spin_lock_nu1() functions now return numpy arrays. These are functions from specific_analyses.relax_disp.disp_data.
* Speed ups for the optimisation of all of the R1rho R<sub>1&rho;</sub> dispersion models. The spin-lock field strength data structure is now converted from Hz to rad.s^-1 in the dispersion target function initialisation. Previously the conversion was happening multiple times per target function call. This has a noticeable effect on the test suite timings.* Some small speed ups for the TP02 R1rho R<sub>1&rho;</sub> dispersion model optimisation. Some unneeded calculations and aliases were removed.* Added the write-out of 'dw&delta;&omega;' and 'k_ABk<sub>AB</sub>' for model TSMFK01, when performing auto-analysis. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Added to calculate the tau_cpmg times when model is TSMFK01. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Optimized the target function for model TSMFK. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Added the conversion to k_AB k<sub>AB</sub> from kex k<sub>ex</sub> and pAp<sub>A</sub>. k_AB k<sub>AB</sub> = kex k<sub>ex</sub> * (1.0 - pAp<sub>A</sub>). Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.* Some more speed ups for the R1rho R<sub>1&rho;</sub> dispersion models. For many models, the square of the spin-lock field strength is a part of the equations. Therefore this is now pre-calculated when the target function is initialised.
* Added the relaxation dispersion documentation to all of the value user function documentation.
* Fix for the CPMG dispersion sample script - the numeric solution model name was not correct.
* Fix for the dispersion model list in the GUI - the R1rho R<sub>1&rho;</sub> models were mixed up.* Added a sample script for an off-resonance R1rho R<sub>1&rho;</sub> dispersion analysis.
* Created the empty specific_analyses.relax_disp.optimisation module. This will contain functions and other objects relating to the optimisation of the dispersion models.
* Fixed bug, where kex k<sub>ex</sub> to k_AB k<sub>AB</sub> where not possible if the model does not contain parameter 'pA'p<sub>A</sub>. The conversion is now skipped. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.* Added the conversion to k_BA k<sub>BA</sub> from kex k<sub>ex</sub> and pAp<sub>A</sub>. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.* Added system test for testing conversion to k_BA k<sub>BA</sub> from kex k<sub>ex</sub> and pAp<sub>A</sub>. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Fix for passing system test on Windows with Python 32. Precision lowered by 2 decimals. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Added system tests for conversion of kex k<sub>ex</sub> to k_ABk<sub>AB</k_BA sub>/k<sub>BA</sub> for models where kex k<sub>ex</sub> and pA p<sub>A</sub> is present. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Modified headers for scripts producing analysis for data which is full or truncated. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Created the dispersion default_value_doc object. This table is needed for the value.set user function.
* Started to create the relax_disp.catia_input user function. The frontend has been written and a stub of a function for the backend. The new specific_analyses.relax_disp.catia module has been created for this.
* Created the Relax_disp.test_hansen_catia_input system test. This is to check the output of the relax_disp.catia_input user function.
* The relax_disp.catia_input user function now creates the main CATIA input file and all R2eff R<sub>2eff</sub> data files.
* Created a script for converting Flemming Hansen's data into CATIA input files. This is for checking the relax_disp.catia_input and relax_disp.catia_execute user functions.
* Fix for the CATIA main execution file created by relax_disp.catia_input. The CATIA DataDirectory needs a '/' at the end.
* Added the CATIA input files generated by relax for Flemming Hansen's truncated CPMG data set.
* Rearranged the numeric CPMG models in the dispersion model list in the GUI.
* The main CATIA input file requires the chemical shifts and R1 R<sub>1</sub> values to be fixed, even when missing. This is for the relax_disp.catia_input user function.
* Added Tollinger reference. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Added Tollinger model TSMFK01 to sample scripts. Progress sr #3071: https://gna.org/support/?3071 - Implementation of Tollinger/Kay dispersion model (2001). Following the guide at: http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
* Rearranged the documentation for the relax_disp.select_model user function to simplify the text.
* Created the lib.text.gui.dwH Unicode string for use with the 'MQ NS 2-site' dispersion model.
* Added the 'MQ NS CPMG 2-site' model to the relax_disp.select_model user function frontend. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_disp.select_model_user_function_front_end Two new sections were added to the user function docstring for the MQ CPMG and MQ R1rho R<sub>1&rho;</sub> experiment types.
* Added support for the 'MQ NS CPMG 2-site' model to the relax_disp.select_model user function back end. This is the numeric solution for 2-site exchange for multi-quantum CPMG-type data. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_disp.select_model_user_function_back_end.
* Added support for the new 'dwH&delta;&omega;<sub>H</sub>' dispersion parameter. This is needed for the 'MQ NS CPMG 2-site' model support. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Adding_support_for_the_parameters.
* Improved the RelaxError from the relax_disp.exp_type user function when an invalid experiment type is set.
* Added the multi-quantum CPMG and R1rho R<sub>1&rho;</sub> experiment types to the dispersion variables. This is needed for the 'MQ NS CPMG 2-site' model. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Creating_a_new_experiment_type.* Added relaxation dispersion model lists for the MQ R1rho R<sub>1&rho;</sub> models. These are stubs as no MQ R1rho R<sub>1&rho;</sub> models are yet supported by relax.
* Added support for the MQ dispersion data type to the specific_analyses.relax_disp.disp_data module. This is needed for the 'MQ NS CPMG 2-site' model. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Creating_a_new_experiment_type.
* Added support for the MQ dispersion data types to the rest of relax. This is needed for the 'MQ NS CPMG 2-site' model, and the changes affect the dispersion data checks and the dispersion target functions. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Creating_a_new_experiment_type.
* Updated the relax_disp.exp_type user function for the new 'MQ CPMG' and 'MQ R1rho' experiment types. This is needed for the 'MQ NS CPMG 2-site' model. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Creating_a_new_experiment_type.
* Created the 'MQ NS CPMG 2-site' model target function. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_target_function.
* Added the 'MQ NS CPMG 2-site' R1rho R<sub>1&rho;</sub> calculating function to the relax library. This is the 2-site numeric solution for multi-quantum CPMG-type data. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_library.
* Updated the 'MQ NS CPMG 2-site' model target function to match the function in the relax library.
* Decreased the grid increments in the Relax_disp.test_sprangers_cpmg_data_auto_analysis system test. This is to speed up this test.
* Rearranged the 'Implemented models' subsection of the dispersion chapter of the manual.
* Fixed the 'MQ NS CPMG 2-site' model description in the relax_disp.select_model user function. The magnitisation vector is 2D, not 3D.
* Added a latex definition for the dwH &delta;&omega;<sub>H</sub> dispersion parameter and added the 'MQ' abbreviation.
* Added the 'MQ NS CPMG 2-site' model to the relax user manual. This is the 2-site numeric solution for multi-quantum CPMG-type data. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
* Simplified the 'MQ NS CPMG 2-site' model code in lib.dispersion.
* Speed ups for the Relax_disp.test_sprangers_cpmg_data_auto_analysis system test. This test does not pass yet, but this should allow the test to complete in under an hour.
* Added some value.set user function calls to the script for Sprangers' ClpP data.
* Added some value.set calls to the Relax_disp.test_sprangers_cpmg_data_auto_analysis system test. These user function calls will be used to test a new concept of fixing parameters in the grid search. The dw &delta;&omega; and dwH &delta;&omega;<sub>H</sub> parameters are fixed to the experimental values, as described in the README file from Remco Sprangers (in test_suite/shared_data/dispersion/Sprangers_ClpP).
* Changed the operation of the grid search for the relaxation dispersion analysis. If a parameter is a simple floating number type and it already has a value, then the grid search over that dimension is fixed. The grid increments are set to 1, and the upper and lower bounds set to the parameter value. This allows parameters to be pre-set, if known from experiment. They will nevertheless be optimised via the minimise user function.
* Added a printout for the pre-set dispersion parameter skipping in grid search.
* Updated the dispersion grid search function to user the loop_parameters() function. This is an important fix as the specific_analyses.relax_disp.optimisation.grid_search_setup() function was not matching the rest of the dispersion code, hence the parameters of the grid increments and bounds were not matching the parameter vector, scaling matrix, target function parameter depacking, etc.
* A bit of help for some of the R1rho R<sub>1&rho;</sub> dispersion model system tests. These now fail after a fundamental fix. The problem is only due to the very coarse grid search size - a finer grid search allows the solution to be correctly found. However as this is far too slow, instead the kex k<sub>ex</sub> parameter is set to be close to the solution to skip a grid search dimension.
* Some basic fixes for the Relax_disp.test_hansen_catia_input system test. The relax_disp.catia_input user function is not complete, but this allows the Relax_disp system tests to pass.
* The dispersion multi-processor optimisation code now prints out its own simulation messages. This is to fix bug #21190 (https://gna.org/bugs/?21190). The memo object now is feed in the spin IDs of the cluster and stores this as the cluster_name variable. This is used by the results object run() method, which is run on the master at the end, to print out a message along the lines of "Simulation X, cluster yyy". Therefore the message is only printed out once the calculation of that slave command is complete and returned to the master.
* Modified the Relax_disp.test_sprangers_cpmg_data_auto_analysis system test so the models are programatically changed.
* Changes to the Sprangers ClpP data analysis script.
* Simplified the Relax_disp.test_sprangers_cpmg_data_auto_analysis system test script. The pA p<sub>A</sub> and kex k<sub>ex</sub> parameters are now also pre-set to speed things up.
* Added a script and results files for the base 'R2eff' model for Remco Sprangers' ClpP data.
* Fixes for the R2eff R<sub>2eff</sub> data files for Sprangers ClpP data.* Artificially increased the errors in Sprangers ClpP data to match the publication. The R2eff R<sub>2eff</sub> errors are simply multiplied by 5, as the errors from the paper cannot be replicated.
* Converted the Relax_disp.test_sprangers_cpmg_data_auto_analysis system test to not use the auto-analysis. The test has been renamed to Relax_disp.test_sprangers_data_to_mq_ns_cpmg_2site. The optimisation is now for the cluster and has been severely cut back. The 'MQ NS CPMG 2-site' model appears to be rubbish anyway - it looks to be indeterminate with multiple solutions, and possibly infinite lines of solutions. The test now passes, and quickly.
* Created the Relax_disp.test_sprangers_data_to_mq_cr72 system test. This was copied from the Relax_disp.test_sprangers_data_to_mq_ns_cpmg_2site system test and the model changed to 'MQ CR72'. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_test_suite.
* Added support for the 'MQ CR72' model to the relax_disp.select_model user function back end. This is the Carver and Richards (1972) 2-site model expanded for MQ CPMG data by Korzhnev et al., 2004. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_disp.select_model_user_function_back_end.
* Created the 'MQ NS CPMG 2-site' model target function. This is the Carver and Richards (1972) 2-site model expanded for MQ CPMG data by Korzhnev et al., 2004. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_target_function.
* Added the 'MQ CR72' R2eff R<sub>2eff</sub> calculating function to the relax library. This is the Carver and Richards (1972) 2-site model expanded for MQ CPMG data by Korzhnev et al., 2004. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_library. The corresponding target function was updated to input the correct arguments.
* Added the 'MQ CR72' model to the dispersion auto-analysis. This is the Carver and Richards (1972) 2-site model expanded for MQ CPMG data by Korzhnev et al., 2004. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_auto-analysis.
* Added the 'MQ CR72' model to the GUI model list. This is the Carver and Richards (1972) 2-site model expanded for MQ CPMG data by Korzhnev et al., 2004. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_GUI.
* Updates for the script and results for the 'MQ CR72' model optimised using Flemming Hansen's CPMG data.
* Added a script and results files for optimising Sprangers' ClpP MQ CPMG data to the 'MQ CR72' model.
* Bug fix for the dispersion specific loop_parameters() function for the multiple quantum models. The dw &delta;&omega; and dwH &delta;&omega;<sub>H</sub> parameters were being interleaved rather than all dw &delta;&omega; for all spins first and then all dwH&delta;&omega;<sub>H</sub>. The result was that these parameters were being mixed up in the MQ model target functions when clustering was activated, causing total failure of the MQ models.
* Added a script and results files for optimising Sprangers' ClpP MQ CPMG data to the 'MQ CR72' model. This is with all spins clustered. It complements the files which are used for the pre-run results of the auto-analysis.
* Better spacing in the model table of the relaxation dispersion chapter of the relax manual.
* Added scripts and results for optimising Sprangers' ClpP MQ CPMG data to the 'MQ NS CPMG 2-site' model. This includes two scripts for non-clustered followed by clustered analysis using the 'MQ CR72' model in the auto-analysis so its parameters will be used as the optimisation starting point for the 'MQ NS CPMG 2-site' model. The results files for both scripts have been added to the repository.
* Added the 'MQ CR72' model to the relax user manual. This is the Carver and Richards (1972) 2-site model expanded for MQ CPMG data by Korzhnev et al., 2004. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
* Modified the dwH &delta;&omega;<sub>H</sub> symbol in the relax user manual.
* Created a 'TODO' section in the dispersion chapter of the relax user manual. This lists all of the features and models currently missing from the dispersion analysis in relax.
* Added the original Maple script to the lib.dispersionns_cpmg_2site_expanded module docstring for reference. This was sent by Nikolai in a private communication.
* Python 3 fixes for the dispersion data key generation and the data assembly. The specific_analyses.relax_disp.disp_data.return_param_key_from_data() function was generating different keys for Python 2 and 3. This has been fixed. The return_r2eff_arrays() function has also been modified to correctly check for these keys.
* Removed an insanely large log file from the Flemming Hansen dispersion data directories. This is the log file for the CPMGFit analysis.
* A large number of fixes for the relaxation dispersion system tested needed for the fix which changed the format of the keys by which the R2effR<sub>2eff</R1rho sub>/R<sub>1&rho;</sub> data is accessed.
* Updated the Relax_disp.test_sprangers_data_to_mq_ns_cpmg_2site system test to allow it to pass.
* Created the new Relax_disp.test_hansen_cpmg_data_auto_analysis_numeric system test. This will be used to test a new feature whereby pure numeric models will be used in the auto-analysis.
* The dispersion GUI analysis cluster_update() method is now thread safe. This removes many error messages when running the dispersion analysis in the GUI, especially for Mac OS X systems.
* The dispersion data return_cpmg_frqs() and return_spin_lock_nu1() functions are now safer. These specific_analyses.relax_disp.disp_data module functions can now be called when no data is present.
* Fixes for the calc user function for the dispersion analysis. This now does something logical for the non-R2eff models. The chi-squared value is now being calculated and stored. Previously this was only calculating the R2effR<sub>2eff</sub>/R<sub>1&rho;</R1rho sub> values for fixed relaxation time period data for the 'R2eff' model and failing for all others. Now the pre-existing _back_calc_r2eff() method is used to back-calculate and store the chi-squared value.* Redesigned the Relax_disp.test_hansen_cpmg_data_to_ns_cpmg_2site_star_full system test. The R2A R<sub>2A</sub><sup>0</sup> and R2B R<sub>2B</sub><sup>0</sup> rates cannot be distinguished for this data, therefore there was no unique solution. This resulted in too much variability between 32 and 64-bit systems as well as different operating systems. Instead a single calc user function call is used to determine the chi-squared value for a fixed set of parameters.
* Loosened the test_hansen_cpmg_data_to_ns_cpmg_2site_star_full system test for Mac OS X. Even the calc user function does not help, the results are quite different between different systems.
* The specific API calculate_r2eff() method for the dispersion analysis is now private. This is not part of the API, so it must be made private for the test suite to pass.
* Fix for a bug introduced earlier - the call to the calculate_r2eff() must also be made private.
* Fixes for 2 Relax_disp GUI tests to match the previous model-free fixes. The Fake_right_click.GetPosition() method now returns a wx.Point object.
* Added test data where both the spin-lock time, the spin lock offset and the spin lock field is varied. The data is published in "Kjaergaard, M., Andersen, L., Nielsen, L.D. & Teilum, K. (2013). A Folded Excited State of Ligand-Free Nuclear Coactivator Binding Domain (NCBD) Underlies Plasticity in Ligand Recognition. Biochemistry, 52, 1686-1693" with experimental conditions that "off-resonance R1rho R<sub>1&rho;</sub> relaxation dispersion experiments on 15N were recorded at 18.8 T and 31 C." and "using the pulse sequence of Mulder et al. with spin-lock field strengths from 431 to 1649 Hz and offsets ranging from 0 to 10000 Hz."
* Shifted the 'NS CPMG 2-site expanded' model to the top of the CPMG numerical solutions in the manual. This is because this is the default model which should be used in most cases.
* A 20-25% speed increase for the 'NS CPMG 2-site expanded' dispersion model. Many repetitive mathematical operations have been eliminated and the equations have been changed to optimise the calculation speed.
* Modified settings script for R1rho R<sub>1&rho;</sub> test dataset.
* Fix for the amsmath LaTeX package in the user manual. It needs to be after the hyperref package, as hyperref clobbers a number of amsmath features.
* Added all of the equations for the 'NS CPMG 2-site expanded' dispersion model to the relax manual. These are essentially the source code modified to look good in LaTeX.
* Fix for the display of the spin-lock nu1 values in the dispersion GUI tab. This was reported by Troels at http://thread.gmane.org/gmane.science.nmr.relax.devel/4708. The GUI spectrum element at gui.components.spectrum was at fault, the add_disp_point() method was buggy.
* Fix for the right click pop up menu entry "Set the spin-lock field" in the dispersion GUI tab. This is for the spectra list relax_disp.spin_lock_field user function call. The reference spectra are now detected and the field value set to None. This fix has been propagated to the relax_disp.cpmg_frq user function menu entry as well.
* Correcting the R1rho R<sub>1&rho;</sub> settings script for the right calculation of the spin-lock offset, omega_rf, in ppm when offset values are provided in Hz.
* Added ZQ and DQ data to the TODO list in the dispersion chapter of the manual.
* Fix for the relaxation dispersion specific private _cluster_ids() method. This was identified at http://thread.gmane.org/gmane.science.nmr.relax.devel/4716. The cluster data structure was not being referenced correctly.
* Added Dmitry Korzhnev's Fyn SH3 domain data for Asp 9 to the repository. This is from Dmitry M. Korzhnev, Philipp Neudecker, Anthony Mittermaier, Vladislav Yu. Orekhov, and Lewis E. Kay (2005) Multiple-site exchange in proteins studied with a suite of six NMR relaxation dispersion experiments: An application to the folding of a Fyn SH3 domain mutant. 127, 15602-15611 (doi: http://dx.doi.org/10.1021/ja054550e). It consists of the 1H SQ, 15N SQ, ZQ, DQ, 1H MQ and 15N MQ data for residue Asp 9 of the Fyn SH3 domain mutant.
* Added the results from Korzhnev's cpmg_fit program for the Asp9 Fyn SH3 dispersion data.
* Created a relax state for the R2eff R<sub>2eff</sub> SQ data of Korzhnev et al., 2005.
* Added printouts for the overfit_deselect() specific API method for the dispersion analysis. This is to inform the user whenever spins are deselected and why. This is to help avoid user confusion.
* Started to add some preliminary dispersion results for the Korzhnev data.
* Renamed all of the 'MQ NS CPMG 2-site' modules and functions for the change to 'MMQ 2-site'. This follows from the post at http://article.gmane.org/gmane.science.nmr.relax.devel/4734.
* Added the ZQ and DQ CPMG experiment types to the dispersion variables. This is needed for the 'MQ NS CPMG 2-site' model change to 'MMQ 2-site' and follows from the post at http://article.gmane.org/gmane.science.nmr.relax.devel/4734. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Creating_a_new_experiment_type.
* Created two new dispersion variables - EXP_TYPE_LIST_CPMG and EXP_TYPE_LIST_R1RHO. This will be used to simplify identifying CPMG vs. R1rho R<sub>1&rho;</sub> data types.
* Added support for the ZQ and DQ CPMG data type to the specific_analyses.relax_disp.disp_data module. This is needed for the 'MQ NS CPMG 2-site' model change to 'MMQ 2-site' and follows from the post at http://article.gmane.org/gmane.science.nmr.relax.devel/4734. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Creating_a_new_experiment_type.
* Completed the support for ZQ and DQ CPMG experiment types in relax. This is needed for the 'MQ NS CPMG 2-site' model change to 'MMQ 2-site' and follows from the post at http://article.gmane.org/gmane.science.nmr.relax.devel/4734. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Creating_a_new_experiment_type.
* The 'MMQ 2-site' model target function can now handle multiple CPMG data types.
* Added dispersion curve plotting to the relax script for Korzhnev et al., 2005 MMQ data.
* Turned off the dw&delta;&omega;, dwH &delta;&omega;<sub>H</sub> > 0 constraint for the 'MMQ 2-site' model.
* Added a page reference back to the intro chapter in the scripting section of the dispersion chapter. This is to help the user work out how to run a relax script.
* Fix for the sqrt() function in the dispersion parameter table.
* Proper handling of the back-calculated dispersion data for the new 'MMQ 2-site' model.
* Shifted the optimisation printouts for the dispersion analysis out of the memo. This improved the ordering of the printed out messages when running on a cluster. Instead of having multiple optimisation printouts followed by a list of the corresponding optimised values, now they are interleaved as they should be.
* Changed the definition of tex t<sub>ex</sub> thanks to feedback from Nikolai Skrynnikov. This was previously defined as tex t<sub>ex</sub> = 1/(2kex2k<sub>ex</sub>) to be compatible with CPMGFit, but has now been changed to tex t<sub>ex</sub> = 1/kexk<sub>ex</sub>.* Converted the 'IT99' dispersion model parameters to pA p<sub>A</sub> and dw&delta;&omega;. This is thanks to feedback from Nikolai Skrynnikov. I have no idea why the phi_ex &phi;<sub>ex</sub> and pAp<sub>A</sub>.dw&delta;&omega;^2 parameters were being used in the first place. The model results after the change are identical.
* Fix for the optimised parameter printout - the parameters are now scaled. This problem was only recently introduced.
* The dispersion sample scripts now have the NUMERIC_ONLY boolean variable defined.
* Updated script UI section of the dispersion chapter of the user manual. This is for the recent changes to the sample scripts including the addition of the RESULTS_DIR and INSIGNIFICANCE variables.
* Added the 'No Rex' model to the R1rho_analysis.py sample script.
* A number of fixes for the script UI section of the dispersion chapter of the manual. The NUMERIC_ONLY variable is now explained and the R1rho R<sub>1&rho;</sub> MODEL list has been changed to a set of reasonable models.
* A GUI element for the insignificance level for the dispersion auto-analysis has been added. This defaults to 1.0. The user can input any number they wish. Checks were added for non-numerical input.
* Updated the insignificance argument docstring for the dispersion auto-analysis.
* Improved printout for the relax_disp.spin_lock_field user function.
* Implemented the relax_disp.r2eff_read user function. Bot the frontend and backend have been implemented and are functional.
* Created the Relax_disp.test_hansen_cpmg_data_auto_analysis_r2eff system test. This is to test the full dispersion auto-analysis on Flemming Hansen's CPMG data using the original R2eff R<sub>2eff</sub> data rather than the derived peak heights.
* Changes for the Relax_disp.test_hansen_cpmg_data_auto_analysis_r2eff system test. The file paths have been changed.
* Created files of R2eff R<sub>2eff</sub> values and errors for Flemming Hansen's CPMG data.
* File path fixes for the script of the Relax_disp.test_hansen_cpmg_data_auto_analysis_r2eff system test.
* The error analysis is now skipped in the dispersion auto-analysis if the 'R2eff' model is not given. It is then assumed that R2effR<sub>2eff</R1rho sub>/R<sub>1&rho;</sub> data has already been loaded into the base data pipe and hence the error analysis is not needed. This avoids fatal errors.
* The specific_analyses.relax_disp.disp_data.loop_time() function can now handle no relaxation times being set.
* The relax_disp.r2eff_read user function now prints out all the data which has been read. This feedback is useful for the user to know what has or has not been read into relax.
* Fix for the dispersion auto-analysis if R2eff R<sub>2eff</sub> data already exists. The data is no longer copied from the non-existent 'R2eff' data pipe.* Fixes for the dispersion specific overfit_deselect() method for when R2eff R<sub>2eff</sub> data is read. This now no longer checks for intensity data but rather R2eff R<sub>2eff</sub> data, as intensity data will not be present if R2eff R<sub>2eff</sub> data is directly read rather than peak intensities.* Fixes for the Relax_disp.test_hansen_cpmg_data_auto_analysis system test. The setup of the auto-analysis could be simplified as the base data pipe can now contain R2eff R<sub>2eff</sub> data. The R2eff R<sub>2eff</sub> data in the 'R2eff' data pipe was no longer being read.* Some small fixes to allow the optimisation of dispersion models when no peak intensity data has been read. This is for when R2eff R<sub>2eff</sub> data has been read instead.* The relax_disp.insignificance user function can now handle selected spins with no R2effR<sub>2eff</sub>/R<sub>1&rho;</R1rho sub> data.* Fixes for the Monte Carlo simulations in the dispersion analysis when R2eff R<sub>2eff</sub> data has been read. As peak intensity data has not been read, the relaxation time period will not have been set. The _back_calc_r2eff() method can now handle this.* Improved the R2eff R<sub>2eff</sub> errors for Flemming Hansen's CPMG data. The errors are now calculated using the data from all spins rather than a truncated subset. The errors will therefore be much more accurate.* Fix for return_index_from_disp_point() for when R2effR<sub>2eff</sub>/R<sub>1&rho;</R1rho sub> data is loaded rather than intensities. This specific_analyses.relax_disp.disp_data.return_index_from_disp_point() function was always subtracting 1 from the dispersion point index to take the reference spectrum into account. This however fails if R2effR<sub>2eff</sub>/R<sub>1&rho;</R1rho sub> data is loaded instead.* Fixes for the Relax_disp.test_hansen_cpmg_data_auto_analysis* system tests. The Relax_disp.test_hansen_cpmg_data_auto_analysis system test needed updating due to the more accurate R2eff R<sub>2eff</sub> errors. The Relax_disp.test_hansen_cpmg_data_auto_analysis_r2eff system test also needed this change. It also no longer has a spin system for residue 4.
* Fixes for all of the Relax_disp system tests which use Flemming Hansen's CPMG data. These are needed due to the improved error estimates in the data files.
* Fix for a duplicated line typo in the Relax_disp.test_hansen_cpmgfit_input system test.
* Fixed a typo in the user function name in the Relax_disp.test_r2eff_read_spin system test.
* Fixes for the Relax_disp.test_r2eff_read_spin system test.
* Implemented the relax_disp.r2eff_read_spin user function. This allows R2effR<sub>2eff</R1rho sub>/R<sub>1&rho;</sub> files for each spin to be read.
* Fixed a docstring talking about RDC data in the dispersion analysis.
* Fix for the Relax_disp.test_hansen_cpmg_data_auto_analysis_numeric system test for 32-bit Linux. The 'NS CPMG 2-site expanded' model checks have been turned off again for residue 71 as these results are far to variable.
* The dispersion target function setup now uses the new MODEL_LIST_CPMG_NUM variable.
* The dispersion specific check_exp_type() function now accepts the id argument to check individual IDs.
* Redesigned the relax_disp.r2eff_read and relax_disp.r2eff_read_spin user functions. These now no longer set the metadata (spectrometer frequency and experiment type) themselves. Instead an experiment ID string must be supplied. The spectrometer.frequency and relax_disp.exp_type user functions will therefore need to be called before these R2eff R<sub>2eff</sub> functions.
* Fixes for the Relax_disp.test_hansen_cpmg_data_auto_analysis_r2eff system test. This is for the changes in the relax_disp.r2eff_read user function.
* Fixes and completion of the Relax_disp.test_r2eff_read and Relax_disp.test_r2eff_read_spin system tests. These now handle the new user function design and now also check all of the global and spin data.
* A number of fixes for the dispersion analysis for all the recent changes.
* Better MMQ data support for the dispersion specific loop_cluster() function. For the models using proton-heteronuclear multi-multiple quantum data, proton spin containers are now skipped as all the data will be analysed from the perspective of the heteronucleus.
* Conversion of the format of the relaxation dispersion R2effR<sub>2eff</R1rho sub>/R<sub>1&rho;</sub> data structures. These are now lists of lists of lists of numpy arrays instead of pure numpy rank-4 arrays. This only affects a number of related data structures in the dispersion target function class. The main purpose is to prepare to have a different number of dispersion points per experiment, per spin, and per spectrometer frequency.
* The return_cpmg_frqs() and return_spin_lock_nu1() dispersion functions now return lists of lists of arrays. The dispersion data structures are now experiment and spectrometer frequency dependent. Therefore the number of dispersion points can now be different for each.
* The dispersion target function num_disp_points structure is now variable. The number of points can now be different for each experiment type and each magnetic field strength.
* Expanded the abbreviations of the user manual for many relaxation dispersion terms.
* Update for NESSY in the dispersion software comparison table of the manual.
* Added more R1rho R<sub>1&rho;</sub> model references to the bibliography file for the manual. This includes the Trott and Palmer 2004 N-site and the Miloushev and Palmer 2005 2-site models. The Trott and Palmer 2002 R1rho R<sub>1&rho;</sub> model reference has been expanded to include all details.* Added the TP04 and MP05 R1rho R<sub>1&rho;</sub> dispersion models to the manual. These are not implemented in relax, or any of the software in the software comparison section, but are included for completeness. This was pointed out by Art Palmer.
* Added the Korzhnev et al., 2005 reference to the bibliography file for the manual.
* Fixes for a number of page numbers in the bibtex file for the user manual.
* The dispersion GUI analysis now uses graphics.fetch_icon() for all icons. The gui.paths module no longer exists.
* Created the Relax_disp.test_tp02_data_to_mp05 system test. This was copied from the Relax_disp.test_tp02_data_to_tp02 system test. The r1rho_off_res_tp02.py system test script was modified to handle both tests by allowing the list of models to optimise to be set via the ds.models variable. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_test_suite.
* Added the 'MP05' model to the dispersion variables. This is the Miloushev and Palmer 2005 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Adding_the_model_to_the_list.* Added the 'MP05' model to the relax_disp.select_model user function frontend. This is the Miloushev and Palmer 2005 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_disp.select_model_user_function_front_end.* Added support for the 'MP05' model to the relax_disp.select_model user function back end. This is the Miloushev and Palmer 2005 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_disp.select_model_user_function_back_end.* Created the 'MP05' model target function. This is the Miloushev and Palmer 2005 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_target_function.* Added the 'MP05' R2eff R<sub>2eff</sub> calculating function to the relax library. This is the Miloushev and Palmer 2005 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_library. Just in case git-svn does not preserve the file copying history, the lib/dispersion/mp05.py file was copied from the tp02.py file.* Debugging of the 'MP05' dispersion model - optimisation is now setup correctly. This is the Miloushev and Palmer 2005 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.html#Debugging.
* Fixes and improvements to the Relax_disp.test_tp02_data_to_mp05 system test. The MP05 model values, which are almost the same as the TP02 model parameters, are now being checked. The optimised parameters are now being printed out to aid in debugging. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.html#Debugging.
* Speed ups of the Relax_disp.test_tp02_data_to_tp02 and Relax_disp.test_tp02_data_to_mp05 system tests. The optimisation precision and number of Monte Carlo simulations have both been dropped.
* Added the 'MP05' model to the GUI model list. This is the Miloushev and Palmer 2005 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_GUI.* Added the 'MP05' model to the dispersion auto-analysis. This is the Miloushev and Palmer 2005 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_auto-analysis.* Added the 'MP05' model to the relax user manual. This is the Miloushev and Palmer 2005 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual. The 'MP05' model was already partly in the manual, however it was listed as unimplemented. All of the tables and the dispersion chapter text has been updated for the model.* Modified the R1rho_analysis.py sample script to use the 'MP05' model. This is the Miloushev and Palmer 2005 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_sample_scripts.
* The limitations of the 'TP03' dispersion model are now listed in the user manual.
* The 'MP05' and 'NS R1rho 2-site' are now nested in the dispersion auto-analysis. As the 'MP05' model is valid across all times scales and does not require skewed populations, its optimised parameters can be used as the starting point of optimisation of the 'NS R1rho 2-site' numeric model. This results in huge speed ups of the numeric model as previously a grid search was being performed.
* Removed all remnants of the MQ R1rho R<sub>1&rho;</sub> data type. This data type does not exist and was mostly removed, but some small bits remained.* Created the Relax_disp.test_tp02_data_to_tap03 system test. This is the Trott et al, 2003 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_test_suite This was copied from the Relax_disp.test_tp02_data_to_mp05 system test.* Added the 'TAP03' model to the dispersion variables. This is the Trott, Abergel and Palmer 2003 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Adding_the_model_to_the_list.* Added the 'TAP03' model to the relax_disp.select_model user function frontend. This is the Trott, Abergel and Palmer 2003 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_disp.select_model_user_function_front_end.* Added support for the 'TAP03' model to the relax_disp.select_model user function back end. This is the Trott, Abergel and Palmer 2003 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_disp.select_model_user_function_back_end.* Created the 'TAP03' model target function. This is the Trott, Abergel and Palmer 2003 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_target_function.* Added the 'TAP03' R2eff R<sub>2eff</sub> calculating function to the relax library. This is the Trott, Abergel and Palmer 2003 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_library.* Debugging of the 'TAP03' dispersion model - optimisation is now setup correctly. This is the Trott, Abergel and Palmer 2003 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.html#Debugging.
* Debugging of the 'TAP03' dispersion model. Removed a Unicode character from the lib.dispersion.tap03 module docstring to allow it to be used in Python 2. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.html#Debugging.
* The lib.dispersion.tap03 module can now handle negative gamma values. This avoids fatal errors during optimisation.
* Many fixes for the lib.dispersion.tap03 module to match the original equations. The 'TAP03' model solution is now similar to those of 'TP02' and 'MP05'.
* Updated the Relax_disp.test_tp02_data_to_tap03 system test numbers to match the optimised values. These were so close to the MP05 model values that the test was passing anyway.
* Added the 'TAP03' model to the GUI model list. This is the Trott, Abergel and Palmer 2003 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_GUI.* Added the 'TAP03' model to the dispersion auto-analysis. This is the Trott, Abergel and Palmer 2003 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_auto-analysis.* Added the 'TAP03' model to the relax user manual. This is the Trott, Abergel and Palmer 2003 R1rho R<sub>1&rho;</sub> analytic model for 2-site off-resonance exchange. This follows the tutorial for adding relaxation dispersion models at http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual. The 'TAP03' model was already partly in the manual, however it was listed as unimplemented. All of the tables and the dispersion chapter text has been updated for the model.
* Added the 'TAP03' and 'MP05' models to the abbreviations in the user manual.
* Improvements to all of the R1rho R<sub>1&rho;</sub> model descriptions in the dispersion chapter of the manual.
* Added a placeholder for the relaxation dispersion citation to the citation chapter of the manual. The bibtex entry for this will need to be updated later once the citation is published.
* Added support for 1H SQ CPMG data for the MMQ-type dispersion models. The key is to skip the protons in the spin cluster loops and to instead find the proton spin containers attached to the heteronuclei of the spins of the cluster. The EXP_TYPE_PROTON_SQ_CPMG and EXP_TYPE_PROTON_MQ_CPMG experiment type variables have been created to aid this. The MODEL_LIST_MMQ list variable has also been created to more consistently identify the MMQ-type dispersion models. The has_disp_data() function has been created to simplify the finding of dispersion data for a given cluster, experiment type, spectrometer frequency and dispersion point. The has_proton_sq_cpmg() and has_proton_mq_cpmg() are used to determine if there is proton dispersion data for the given heteronucleus. The loop_exp() function has been modified to yield the proton SQ and MQ data if present. Similarly the num_exp_types() and return_index_from_exp_type() functions exhibit different behaviour if this data is present. The return_r2eff_arrays() function now assembles all of the proton data on top of the heteronuclear data by fetching the protons attached to the heteronuclei and aliasing the correct spin for the given experiment type.
* Updated the relaxation dispersion target functions. The input data structures have changed type.
* Implemented the 'MMQ 2-site' CPMG model equations from the Korzhnev et al., 2005 reference. The paper reference is "Dmitry M. Korzhnev, Philipp Neudecker, Anthony Mittermaier, Vladislav Yu. Orekhov, and Lewis E. Kay (2005). Multiple-site exchange in proteins studied with a suite of six NMR relaxation dispersion experiments: An application to the folding of a Fyn SH3 domain mutant. J. Am. Chem. Soc., 127, 15602-15611. (doi: http://dx.doi.org/10.1021/ja054550e)". The original code from Mathilde Lescanne and Dominique Marion has only slightly been modified for this change as the MQ data treatment in the Korzhnev et al., 2004 reference is the same as in the 2005 reference, but using a different notation. This has been renamed to r2eff_mmq_2site_mq(). The new r2eff_mmq_2site_sq_dq_zq() function has been added to the lib.dispersion.mmq_2site module to allows the SQ, DQ, and ZQ R2eff R<sub>2eff</sub> data to be calculated. This function follows the notation of the 2005 paper. The populate_matrix() function has been modified to only accept one combined chemical shift difference value. It can now also accept different values for R20A R<sub>2A</sub><sup>0</sup> and R20BR<sub>2B</sub><sup>0</sup>, though the mmq_2site module defaults to R20AR<sub>2A</sub><sup>0</sup>=R20BR<sub>2B</sub><sup>0</sup>.* The r2eff_mmq_*() functions of lib.dispersion.mmq_2site now accept different R20A R<sub>2A</sub><sup>0</sup> and R20B R<sub>2B</sub><sup>0</sup> arguments. These are set to the same thing within the dispersion target function.* Converted the spin specific 'r2', 'r2a', and 'r2b' dispersion parameters from lists to dictionaries. The new parameter keys are based on the experiment type and the spectrometer frequency. These keys are supported by the generate_r20_key() and decompose_r20_key() pair of functions in the specific_analyses.relax_disp.disp_data module. This enables support for different R20 R<sub>2</sub><sup>0</sup> parameters for each experiment type - a key piece of infrastructure for the MMQ models. The relax_disp.select_model user function backend was modified so the parameter list only contains one instance for each of the 'r2', 'r2a', or 'r2b' strings. The specific_analyses.relax_disp.parameters.loop_parameters() function was modified so that the R20key R<sub>2</sub><sup>0</sup>key rather than frequency index is returned for the R20 R<sub>2</sub><sup>0</sup> parameters. Many other code changes were required.* The R20 R<sub>2</sub><sup>0</sup> values are now correctly handled in the dispersion target function for MMQ-type data.
* Simplified the 'MMQ 2-site' dispersion model target function. The r2eff_mmq_2site_sq_dq_zq() and r2eff_mmq_2site_mq() functions from lib.dispersion.mmq_2site are now aliased by the experiment_type_setup() target function method. Both functions now have matching arguments.
* Change of the base relaxation dispersion experiment types. The base CPMG-type experiment has been changed from "CPMG" to "SQ CPMG". This is for better combined proton-heteronuclear SQ, ZQ, DQ, and MQ (MMQ) data support. The relax_disp.exp_type user function now also as the proton SQ and MQ CPMG-types available to select from rather than the previous behaviour of relax automatically determining the type from the spin type. All of the CPMG experiment type variables in specific_analyses.relax_disp.variables have been renamed for better ordering. Many changes were therefore required.
* Updated the cpmg_fit results for the Korzhnev et al., 2005 single data sets. The starting point for optimisation is now the solution for using all data together. This allows a much better solution to be found for each script.
* Created 5 more system tests for checking the optimisation of single sets of Korzhnev et al., 2005 data. These are Relax_disp.test_korzhnev_2005_15n_dq_data, Relax_disp.test_korzhnev_2005_15n_mq_data, Relax_disp.test_korzhnev_2005_15n_zq_data, Relax_disp.test_korzhnev_2005_1h_mq_data, and Relax_disp.test_korzhnev_2005_1h_sq_data. These should individually test out all parts of the 'MMQ 2-site' dispersion model.
* The cpmg_fit script for the Korzhnev et al., 2005 15N ZQ CPMG data now starts at the relax solution. This is to try to find better solutions for dw &delta;&omega; and dwH&delta;&omega;<sub>H</sub>, thought it was not so successful.
* Updated the Relax_disp.test_korzhnev_2005_15n_zq_data system test. It now starts at the relax solution and the test passes as it seems to reasonably match the cpmg_fit results.
* Reintroduced the F vector into r2eff_mmq_2site_mq() to calculate the magnetisation.
* Shifted the relax results for the 15N SQ Korzhnev 2005 CPMG data to its own directory. The relax save state and grace curve have been added to the repository as well.
* Created a Grace plot of the failed cpmg_fit results. This is for the Korzhnev et al., 2005 data, using all data sets.
* Fixes for the cpmg_fit results for all of the data from Korzhnev et al., 2005. The dwH &delta;&omega;<sub>H</sub> value must start negative, otherwise optimisation will fail to find the correct minimum.
* Created a Grace graph for the 1H SQ data fitting of cpmg_fit.
* The dispersion specific overfit_deselect() method now handles the MMQ-type models better.
* The 'MMQ 2-site' dispersion model can now be optimised if no heteronuclear R2eff R<sub>2eff</sub> data is loaded.
* Many more fixes for the MMQ-type dispersion models for the proton spin data.
* Added many new relax results for the CPMG data form Korzhnev et al., 2005.
* The R2eff R<sub>2eff</sub> data key has been changed in the dispersion analysis. The experiment type has been added to the key so that R2eff R<sub>2eff</sub> data is not mixed up when data from multiple experiments is present.
* Updated the synthetic 'TP02' model data for the recent changes.
* Fix for the dispersion base_data_loop() method for deselected spins. A recent change broke this function when spins were deselected.
* Minor equation improvement in the dispersion chapter of the manual.
* Fix for the relax_disp.plot_disp_curves user function in the GUI. The directory argument was incorrectly set to the 'dir' type rather than 'dir sel' type so it was not shown in the GUI.
* Created the relax_disp.write_disp_curves user function. This is based on feedback from Nikolai Skrynnikov. The user function will generate one file per spin system and dump all of the R2eff R<sub>2eff</sub> values (measured, back calculated, and errors) into the file.
* The relax_disp.write_disp_curves user function is now called from the dispersion auto-analysis.
* Another bug fix for the IT99 model. This was pointed out by Nikolai Skrynnikov that the omega_1eff definition is incorrect and instead it should be omega_1eff = 4 * sqrt(3) * nu_CPMG.
* One last fix for the dispersion analysis for the changes of the model_loop() method.
* Updated the relax script for optimising Flemming Hansen's CPMG data.
* Better support for the MMQ-type data dispersion models for the end of the optimisation. The back calculated R2eff R<sub>2eff</sub> values are now handled correctly for the attached proton in the spin system.
* Updated the Relax_disp.test_korzhnev_2005_15n_dq_data system test so it passes. The optimised values are very similar to that from cpmg_fit, so the code must be functioning correctly.
* Improvement for the file names in the relax_disp.plot_disp_curves user function. The '_' character is now used between the experiment name and the rest of the file name.
* Created a Grace plot of the 15N MQ CPMG data fitting from cpmg_fit.
* Bug fix for the multiple quantum relaxation dispersion models. These require both the heteronuclear and proton chemical shift differences. But the proton difference was being scaled by the heteronuclear Larmor frequency and not the proton frequency.
* The relaxation dispersion calculate user function now stores the back calculated R2eff R<sub>2eff</sub> values. A number of changes were required for this. The code from the end of the Disp_result_command.run() method was converted to the function specific_analyses.relax_disp.disp_data.pack_back_calc_r2eff(). This allows the back calculation R2eff R<sub>2eff</sub> unpacking code to be shared. The new has_proton_mmq_cpmg() function has also been created to simplify the code.
* Bug fix for the dispersion calculate user function.
* Created a script to compare the cpmg_fit and relax solutions for the 'MMQ 2-site' dispersion model.
* Bug fix for the 'MMQ 2-site' dispersion model target function. The relaxation time was being taken as that of the first experiment for all experiments. This is a relic from the code being copied from a single experiment type model.
* Converted the 'MQ CR72' dispersion model to handle MMQ data. This model can now handle proton-heteronuclear SQ, ZQ, DQ, and MQ CPMG-type data. Some debugging might still be required.
* Fix for the 'MQ CR72' model for MQ-type data. The check to prevent acos of a number less than 1 has been changed to switch the sign rather than to set the back calculated R2eff R<sub>2eff</sub> to 1e99.* Another bug fix for the 'MQ CR72' dispersion model. The nu_CPMG value rather than the relaxation time was being used to calculate the R2eff R<sub>2eff</sub> values as the division by 'n' was missing.
* The relax_disp.plot_disp_curves user function can now handle values of NaN. These are simply replaced by 0.0 to allow Grace to open the file.
* Fixes for the 'MQ CR72' dispersion model target function.
* Removed a latent bug in the 'MMQ 2-site' dispersion model. This was not being seen but might have caused problems in the future.
* Fix for the 'MQ CR72' dispersion model target function. The correct R20 R<sub>2</sub><sup>0</sup> values are now extracted from the parameter vector.* Improvements for the 'CR72' and 'MQ CR72' dispersion model R2eff R<sub>2eff</sub> calculating functions. The numpy.arccosh() function can handle all input values when complex, therefore the checks for the real part being above 1 are not necessary.
* General improvement for the optimisation of many target functions. For those models which use the tau_CPMG value, this is now recalculated. This means that if a user inputs truncated nu_CPMG values, these are corrected when calculating tau_CPMG so that full precision values will be used for the optimisation.
* Changed the sign of the delta_omega frequency for the ZQ data in the 'CR72' and 'MQ CR72' models.
* Last fix for the 'MQ CR72' dispersion model. The wrong value was being subtracted from the first eigenvalue - the value of log(Q)/relax_T should not be divided by the number of CPMG blocks.
* Simplified the first 'MQ CR72' dispersion model formula in the manual.
* Created a relax script to compare the 'MQ CR72' dispersion model results to cpmg_fit. The cpmg_fit solution is used as the input parameters for relax, and then a calc user function call is used to back calculate the R2eff R<sub>2eff</sub> values. These values are then plotted to show the perfect match.
* Bug fixes for the 'MMQ 2-site' dispersion model. The matrix power factor must be found with the Python math.floor() function and not int() as the later will sometimes round up.
* Updated all of the relax vs. cpmg_fit comparison files in the shared data directory. These now show the perfect match between the programs. The cpmg_fit source code was modified to improve the accuracy of the gyromagnetic ratio values.
* Updates for the dispersion auto-analysis system tests using Flemming Hansen's data. The grid search increments have been increased by one to make sure the solution is always found.
* Increased the range of chemical shift differences in the grid search for the dispersion models. The range was too narrow.
* Fix for the Relax_disp.test_hansen_cpmg_data_auto_analysis system test. The kex k<sub>ex</sub> value check needed to be scaled back.
* The relax_disp.plot_disp_curves user function now produces interpolated dispersion curves. For this the new 'num_points' and 'extend' arguments have been added to the user function to give the user better control of this plotting. The interpolated curve is disabled from the numeric CPMG models as these do not support interpolation, and the 'R2eff' model as interpolation is not needed. To support this, the specific_analyses.relax_disp.optimisation.back_calc_r2eff() function has been extended to support the CPMG frequencies or spin-lock field strengths been supplied instead of retrieved. This allows a set of custom dispersion points to be used in the back calculation. The dispersion target function setup was modified to prevent the recalculation of tau_CPMG values when asked, as interpolation is not compatible with this.
* The relax_disp.plot_disp_curves user function now places the X-axis at zero. This is for better visualisation of the residuals.
* The dispersion model GUI window is now set to a reasonable size for most screens. The scrolled panel now allows all contents to be shown while having the window smaller than its contents. The height of 750 pixels should be visible on the majority of computer monitors. According to Google Analytics, ~13% of visits to http://www.nmr-relax.com have screen resolutions of 1366x768, therefore the dispersion model list window should now not be bigger than their screens.
* Merged the 'MQ CR72' dispersion model into the MMQ data type sections in the tables of the manual.
* Implemented model elimination for the relaxation dispersion analysis. This currently uses the pA p<sub>A</sub> limits of 0.501 < pA p<sub>A</sub> < 0.999 to determine if a model has failed. To implement this, the dispersion API methods deselect(), eliminate(), get_param_names() and get_param_values() were written. These were copied from the model-free analysis and modified as needed.
* Model elimination is now activated in the dispersion auto-analysis.
* The relaxation dispersion target function class can now handle cpmg_frqs arguments of None. This is useful for R1rho R<sub>1&rho;</sub> models.
* Bug fix for the recently added dispersion API eliminate method. This was accidentally always eliminating the model.
* Created a new section in the dispersion chapter of the manual covering optimisation. This describes the auto-analysis, the chi-squared function, the grid search values, how optimisation is implemented, the linear constraints used, the diagonal scaling, model elimination, and the use of OpenMPI. It absorbs the clustering section.
* Added text about the relax_disp.insignificance user function to the dispersion chapter of the manual.
* Updates for the 'MMQ 2-site' model equations in the manual.
* Added the tex t<sub>ex</sub> > 1.0 model elimination rule for the dispersion analysis.
* Updated the description of the dispersion auto-analysis in the manual.
* Added a MC simulation elimination section to the dispersion chapter of the manual.
* Loosened all checks of the N_state_model.test_populations system test. This is needed for the woeful optimisation capabilities of Mac OS X (and partly MS Windows as well).
* Avoided some wxPython 2.9.4.1 in the Relax_disp GUI tests. wxPython is quite buggy, so certain checks and tests cannot be performed.
* Fix for the specific_analyses.relax_disp.optimisation.back_calc_r2eff() function. The R2eff R<sub>2eff</sub> error data structure when the cpmg_frqs or spin_lock_nu1 argument is supplied was all zeros, whereas it should all be ones. This was causing many divide by zero numpy warnings to appear on certain operating systems (Mac OS X).
* The relax system test base tearDown() method should now be fail proof. Most code is now warped in a 'try: except: pass' block to catch all failures.
* Improvements in the test_suite.clean_up.deletion() function. It is now more fail safe on Python 3 by completely avoiding the WindowsError checking.
Trusted, Bureaucrats
4,228

edits

Navigation menu