# relax release features

This is a collection of all of the feature lists for each released relax version.

# Version 4 of relax

## relax 4.0 series

### relax 4.0.3

• Per-atom RMSD calculation by the structure.rmsd user function.
• Much faster superimposition of structures.
• More relax deployment scripts for Google Cloud for different GNU/Linux distributions.
• Addition of OpenMPI testing scripts.
• Improved relax information printout.

### relax 4.0.1

• Many improvements for the compilation of the HTML version of the relax manual.
• Updated relax to eliminate all FutureWarnings from numpy ≥ 1.9, to future-proof relax against upcoming numpy behaviour changes.
• Ability to handle replicated R2,eff data points by the relax_disp.r2eff_read user function, but adding 0.001 to the frequency value for the replicated point.
• A new sample script for loading a model-free results file and back-calculating relaxation data.
• Improvements for the handling of PDB structural data.
• Implementation of the structure.pca user function for performing principle component analyses (PCA) of an ensemble of structures.
• Addition of a script for rapid deployment on the Google Cloud Computing infrastructure.

### relax 4.0.0

• The final, complete, and correct implementation of the frame order theory for studying rigid body motions. This is currently for analysing RDC and PCS data from internally aligned systems.

# Version 3 of relax

## relax 3.3 series

### relax 3.3.9

• Improvements to the automatic relaxation dispersion protocol for repeated CPMG data.
• Support for Monte Carlo or Bootstrap simulating the RDC and PCS Q factors.
• Huge speedup of Monte Carlo simulations in the N-state model analysis.
• Geometric mean and standard deviation functions added to the relax library.

N/A

### relax 3.3.7

• Creation of the statistics.aic and statistics.model user functions for calculating and printing out different statistics.
• Addition of new infrastructure for future support for plotting data using Veusz.
• Huge speed up for the assembly of atomic coordinates from a large number of structures.
• Sequence data in the internal structural object can now be sorted for better structural consistency.
• The structure.read_pdb user function now skips water molecules, avoiding the creation of hundreds of new molecules when reading X-ray structures.
• Conversion of the structure.mean user function to the new pipes/models/molecules/atom_id design and the addition of the set_mol_name and set_model_num arguments to allow the mean structure to be stored alongside the other molecules.
• The monte_carlo.setup user function now raises a RelaxError if the number of simulations is less than 3, avoiding subsequent errors.
• Expanded the functionality of the rdc.copy and pcs.copy user functions, allowing for the operation on two data pipes with different spin sequences, skipping deselected spins and interatomic data containers, printing out all copied data for better feedback, and copying all alignment metadata.
• The sequence.attach_protons user function now lists all the newly created spins.
• Clarification of the RDC and PCS Q factors with the printouts and XML file variable names modified to indicate if the normalisation is via the tensor size (2Da2(4 + 3R)/5) or via the sum of data squared to allow for clearer RDC vs. PCS comparisons.
• Expansion of the align_tensor.copy user function to allow all tensors to be copied between different data pipes.
• Huge speed up for loading results and state files with Monte Carlo simulation alignment tensors.
• Improvements for the rdc.weight and pcs.weight user functions. The spin_id argument can now be set to None to allow all spins or interatomic data containers to be set.
• Improvements for the pcs.structural_noise user function. The check for the presence of PCS data for points to skip now includes checking for PCS values of None. And the output Grace file now also includes the spin ID string as a string or comment value which can be displayed in the plot when desired.

### relax 3.3.4

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

### relax 3.3.3

• Implemented the lib.geometry.vectors.vector_angle_atan2() relax library function. This is for calculating the inter-vector angle using the more numerically stable atan2() formula.
• Implemented the lib.geometry.vectors.vector_angle_acos() relax library function. This is used to calculate the inter-vector angle using the arccos of the dot product formula. The function has been introduced into the relax library as the calculation is repeated throughout relax.
• Expanded the basis sets for the align_tensor.matrix_angles user function to allow the correct inter-tensor angles to be calculated. This includes the standard inter-matrix angles via the arccos of the Euclidean inner product of the alignment matrices in rank-2, 3D form divided by the Frobenius norm of the matrices, irreducible spherical tensor 5D basis set {A-2, A-1, A0, A1, A2}, and the unitary 9D basis set {Sxx, Sxy, Sxz, Syx, Syy, Syz, Szx, Szy, Szz} (all of which produce the same result).
• Expanded the basis sets for the align_tensor.svd user function to allow the correct singular values and condition number to be calculated. This includes the irreducible spherical tensor 5D basis set {A-2, A-1, A0, A1, A2} and the unitary 9D basis set {Sxx, Sxy, Sxz, Syx, Syy, Syz, Szx, Szy, Szz} (both of which produce the same result).
• Added the angle_units and precision arguments to the align_tensor.matrix_angles user function to allow either degrees or radians to be output and the number of decimal points to be specified.
• Added the precision argument to the align_tensor.svd user function to allow the number of decimal points for the singular values and condition number to be specified.
• Updated the align_tensor.display user function to output the irreducible spherical harmonic weights. This is the alignment tensor in the {A-2, A-1, A0, A1, A2} notation.

### relax 3.3.2

• Many improvements for the HTML version of the manual.
• Improved sectioning printouts in the model-free dauvergne_protocol auto-analysis.
• Significant improvements for the relax controller window.
• All wizards and user functions in the relax GUI now have focus so that keyboard is active without requiring a mouse click.
• The ESC key will now close the relax controller window and all user function windows.
• The structure.load_spins user function can now load spins from multiple non-identical molecules and merge them into one molecule allowing missing atoms and differential atom numbering to be handled.
• Improvements to the printouts for many user functions.

### relax 3.3.0

• Huge speed ups for all of the relaxation dispersion models ranging from 1.452x to 163.004x times faster. The speed ups for the clustered spin analysis are far greater than for the single spin analysis.
• Implementation of a zooming grid search algorithm for optimisation in all analyses. This includes the addition of the minimise.grid_zoom user function to set the zoom level. The grid width will be divided by 2zoom_level and centred at the current parameter values. If the new grid is outside of the bounds of the original grid, the entire grid will be translated so that it lies entirely within the original.
• Increased the amount of user feedback for the minimise.grid_search user function. Now a comment for each parameter is included in the printed grid search setup table. This includes if the lower or upper bounds, or both, have been supplied and if a preset value has been used instead.
• Expanded support for R 2D graph plotting in the relax_disp.plot_disp_curves user function as the X-axis can now be the ν1 value, the effective field ωeff, or the rotating frame title angle θ. And the plots are interpolation over the spin-lock offset.
• Ability to optimise the R1 relaxation rate parameter in the off-resonance relaxation dispersion models.
• Creation of the relax_disp.r1_fit user function for activating and deactivating R1 fitting in the dispersion analysis.
• Better tab completion support in the prompt UI for Mac OS X users. For some Python versions, the Mac supplied libedit library is used rather than GNU readline. But this library uses a completely different language and hence tab completion was non-functional on these systems. The library difference is now detected and the correct language sent into libedit to activate tab completion.
• Created the time user function. This is just a shortcut for printing out the output of the time.asctime() function.
• The value.copy user function now accepts the force flag to allow destination values to be overwritten.
• Expanded model nesting capabilities in the relaxation dispersion auto-analysis to speed up the protocol.
• The spin-lock offset is now included in the spectra list GUI element for the relaxation dispersion analysis.
• Creation of the relax_disp.r2eff_estimate user function for the fast estimation of R2eff/R values and errors when full exponential curves have been collected. This experimental feature uses linearisation to estimate the R2eff and I0 parameters and the covariance matrix to estimate parameter errors.
• Gradients and Hessians are implemented for the exponential curve-fitting, hence all optimisation algorithms and constraint algorithms are now available for this analysis type. Using Newton optimisation instead of Nelder-Mead Simplex can save over an order of magnitude in computation time. This is also available in the relaxation dispersion analysis.
• The minimisation statistics are now being reset for all analysis types. The minimise.calculate, minimise.grid_search, and minimise.execute user functions now all reset the minimisation statistics for either the model or the Monte Carlo simulations prior to performing any optimisation. This is required for both parallelised grid searches and repetitive optimisation schemes to allow the result to overwrite an old result in all situations, as sometimes the original chi-squared value is lower and the new result hence is rejected.
• Large expansion of the periodic table information in the relax library to include all elements, the IUPAC 2011 standard atomic weights for all elements, mass numbers and atomic masses for all stable isotopes, and gyromagnetic ratios.
• Significant improvements to the structure centre of mass calculations by using the new periodic table information - all elements are now supported and exact masses are now used.
• Added a button to the spectra list GUI element for the spectrum.error_analysis user function. This is placed after the 'Add' and 'Delete' buttons and is used in the NOE, R1 and R2 curve-fitting and relaxation dispersion analyses.
• RelaxErrors are now raised in the prompt or script UI if an old user function is called, printing out the names of the old and new user functions. This is for help in upgrading old scripts and is currently for the calc(), grid_search(), and minimise() user function calls.

## relax 3.2 series

### relax 3.2.3

• Improvements for a number of GUI elements used in the user function windows.
• The ^[[?1034h escape code should now no longer be emitted by GNU readline on Linux systems.
• Created the very basic structure.com user function for calculating the centre of mass. This is to simply allow an easy interface to the pipe_control.structure.mass.pipe_centre_of_mass() function.
• Expansion of the REMARK section of the PDB file created for the internal structural object. This is visible when using the structure.write_pdb user function, as well as the many other user functions which create PDB files. The relax version as well as the file creation date are now recorded in the PDB file. This extra information should be very useful. Empty lines in the REMARK section improve the formatting.

### relax 3.2.2

• Large speedups of all analytical relaxation dispersion models by converting the R2eff calculations and value error checking from single values to numpy arrays.
• Edge cases where function failures occur are now properly handled for all analytical relaxation dispersion models.
• Completion of the frame_order.pdb_model user function backend for the frame order PDB representation.
• relax will now detect when files with *.gz or *.bz2 file extensions are being created and automatically gzip or bzip compress the file.

• N/A

### relax 3.2.0

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

## relax 3.1 series

### relax 3.1.6

• Full support for PDB chain IDs in the internal structural object.
• Improvements for the devel_scripts/python_seek.py for finding all installed Python versions and modules. Individual modules can now be specified on the command line.
• The pedantic command line option -p, --pedantic has been renamed to -e, --escalate.
• The new prompt command line option -p, --prompt causes the relax prompt mode to launch after running a script to allow relax to be inspected interactively.
• Better organisation of the relax command line options into groups, as shown by running 'relax -h'.
• A tutorial for using the relaxation dispersion analysis in the GUI has been added to the manual. This includes step-by-step instructions with many screenshots.
• Improvements to the manual including better and consistent line breaking for the GUI menu item text, user functions, file and directory paths, and Python module paths.
• The spectrum.read_intensities user function can now load multiple files simultaneously, allowing for simplified use in the GUI.
• Improvements to the sequence data input GUI window including the item count being displayed and a 'Delete' button to remove the last element.
• Improvement for the relaxation dispersion auto-analysis - the names of the automatically created data pipes are now unique by appending the name of the data pipe bundle to the end. This allows multiple dispersion auto-analyses to exist simultaneously in the GUI or within one relax state file.
• The relaxation dispersion analysis now handles deselected spins.
• Improved colour coding of relax log messages in the relax manual.
• The relaxation dispersion auto-analysis now creates the chi2.out text file. This is for more easily comparing the chi-squared values between analyses.

N/A

### relax 3.1.4

• The structure.write_pdb user function now supports multiple molecules being present.
• Large speed optimisations for the internal structural object when multiple models are present.
• Improved support for replicated spectra in the NOE analysis.

N/A

N/A

### relax 3.1.1

• Support for reading 3D structures of organic molecules from Gaussian log files using the new structure.read_gaussian user function.
• Addition of the lib.periodic_table module for storing information about the periodic table.
• Addition of the lib.nmr module for basic NMR related functions. It currently has functions for converting between ppm, Hz, and rad.s-1 units.
• Many improvements to the relaxation dispersion chapter of the user manual.
• The NS MMQ 3-site linear numeric model - the model for 3-site exchange using 3D magnetisation vectors linearised with kAC = kCA = 0 with the parameters {R20, ..., pA, pB, ΔωAB, ΔωBC, ΔωHAB, ΔωHBC, kexAB, kexBC}.
• The NS MMQ 3-site numeric model - the model for 3-site exchange using 3D magnetisation vectors with the parameters {R20, ..., pA, pB, ΔωAB, ΔωBC, ΔωHAB, ΔωHBC, kexAB, kexBC, kexAC}.
• The NS R1rho 3-site linear numeric model - the model for 3-site exchange using 3D magnetisation vectors linearised with kAC = kCA = 0 with the parameters {R', ..., pA, pB, ΔωAB, ΔωBC, kexAB, kexBC}.
• The NS R1rho 3-site numeric model - the model for 3-site exchange using 3D magnetisation vectors wit'h the parameters {R', ..., pA, pB, ΔωAB, ΔωBC, kexAB, kexBC, kexAC}.
• More model nesting in the relaxation dispersion auto-analysis (CR72 and MMQ CR72, LM63 and LM63 3-site).
• Large speed up of the TP02 and NS R1rho 2-site dispersion models by minimising repetitive calculations.
• Support for the reading of peak intensities from NMRPipe seriesTab formatted files (*.ser).

### relax 3.1.0

• 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 R-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 or R 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 {R20, …, φex, kex} [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 {R20, …, φex,B, kB, φex,C, kC} [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 R2A0 = R2B0 is assumed with the parameters {R20, …, pA, δω, kex} [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 {R2A0, R2B0, …, pA, δω, kex} [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 ≫ pB and with parameters {R20, …, φex, pA.δω2, kex} [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 {R2A0, …, δω, kAB} [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 {R20, …, pA, δω, kex}.
• 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 R2A0 = R2B0 is assumed with the parameters {R20, …, pA, δω, kex}.
• 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 {R2A0, R2B0, …, pA, δω, kex}.
• 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 R2A0 = R2B0 is assumed with the parameters {R20, …, pA, δω, kex}.
• 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 {R2A0, R2B0, …, pA, δω, kex}.
• The M61 R-type analytic model - the Meiboom 1961 2-site fast exchange equation for on-resonance data with parameters {R', …, φex, kex} [Meiboom 1961].
• The M61 skew R-type analytic model - the Meiboom 1961 2-site equation for all time scales with pA ≫ pB and with parameters {R', …, pA, δω, kex} [Meiboom 1961].
• The DPL94 R-type analytic model - the Davis et al., 1994 2-site fast exchange equation extending the M61 model for off-resonance data with parameters {R', …, φex, kex} [Davis et al., 1994].
• The TP02 R-type analytic model - the Trott and Palmer 2002 2-site equation for all time scales with pA ≫ pB and with parameters {R', …, pA, δω, kex} [Trott and Palmer 2002].
• The TAP03 R-type analytic model - the Trott et al., 2003 off-resonance 2-site equation for all time scales with the weak condition pA ≫ pB and with parameters {R', …, pA, δω, kex} [Trott et al., 2003].
• The MP05 R-type analytic model - the Miloushev and Palmer 2005 off-resonance 2-site equation for all time scales with parameters {R', …, pA, δω, kex} [Miloushev and Palmer 2005].
• The NS R1rho 2-site R numeric model - the model for 2-site exchange using 3D magnetisation vectors with the parameters {R', …, pA, δω, kex}.
• 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 {R20, …, pA, δω, δωH, kex}.
• The MMQ 2-site MMQ-type numeric model - the model for 2-site exchange whereby the simplification R2A0 = R2B0 is assumed with the parameters {R20, …, pA, δω, δωH, kex}.
• 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.
• Parallelisation of the dispersion analysis at the level of the spin cluster and Monte Carlo simulation for fast optimisation on computer clusters using OpenMPI.

## relax 3.0 series

### relax 3.0.2

• Much better pseudo-atom support, including not requiring tetrahedral geometry.
• The value.write user function can now create files with non-numeric data, such as the models for each spin.
• Improvements to the 2D Grace plotting from the grace.write user function including full support for multiple graphs and the setting of the axes to the zero point.

### relax 3.0.1

• Improved handling of peak lists.
• Simplification of the user function GUI elements for those associated with the free file format.
• Support for the reading of chemical shifts into the relax data store with the new chemical_shift.read user function.
• Improvements to the appearance of the GUI by using more unicode.
• Redesign of the model list GUI element used in the model-free analysis.

### relax 3.0.0

• Huge amounts of code throughout the relax codebase has been shifted into independent functions in the relax library.
• Many new functions added to the relax library.
• Complete rearrangement of the relax package and module layout.
• Clean up and improvements to the relaxation curve-fitting C module including the removal of a severe memory leak eating up all the RAM when lots of spins are analysed simultaneously.
• Complete redesign of the 2D graphing code for improved data visualisation and to allow expansion to software other than Grace.
• Polishing of the GUI - many bug fixes and improvements throughout the GUI.
• Addition of the --time command line option for the relax test suite.
• Large speed ups of the relax test suite.
• Merger of the dipole_pair and interatomic user function classes into the new interatom user function class.
• Added support for J couplings.
• Import cleanups throughout relax, avoiding potential future bugs and making the code much cleaner.
• Addition of many new scripts for use by the relax developers.
• Support for the NMRPipe SeriesTab format in the spectrum.read_intensities user function.
• Improvements for all code examples in the relax user manual including much better fonts, formatting, line wrapping, line numbering, and colouring using the lstlisting LaTeX environment.
• Created the relax language definition for the lstlisting LaTeX environment for better colouring of relax scripts in the user manual.
• Converted the Citations chapter of the relax user manual into a preface chapter.
• Overhaul of the indexing in the relax user manual.
• Higher level structuring of the user manual into parts.
• Creation of the optimisation chapter of the relax user manual.
• General improvements throughout the user manual.

# Version 2 of relax

## relax 2.2 series

### relax 2.2.5

• The files created by the value.write user function now include a header describing the parameter.
• The relax internal structural object now supports the merger of molecules. This can be useful if different domains of one system are in two PDB files or are split in the one file.
• The structure.delete user function can now be used to delete parts of molecules down to the level of individual atoms.
• Helix and sheet information from PDB files are now stored in the internal structural object as metadata. The structure.read_pdb and structure.write_pdb user functions will preserve this information.
• The numbers output by the value.display and value.write user functions can now be scaled.
• The model-free auto-analysis now generates field strength dependent Rex files for each field present.

### relax 2.2.3

• Added the mol_name_target argument to the structure.load_spins user function. This allows spins from different molecules to be placed together in the same molecule container in the relax data store.
• Created the structure.web_of_motion user function. This is used to create a special PDB file which represents the atomic motions between different structural models. Identical atoms of the selected models are concatenated into one model, within a temporary internal structural object, and linked together using PDB CONECT records.
• Better PDB support in the internal structural object with: Improvements and fixes in reading/writing, an update of the format to version 3.30, and faster PDB parsing.
• Creation of two new modules for better PDB support - generic_fns.structure.pdb_read and generic_fns.structure.pdb_write.
• Improvements to the structure.find_pivot user function including the addition of the func_tol argument to better control the simplex optimisation and the use of the logarithmic barrier function to prevent the pivot from heading to infinity when the solution is a line.
• Initialised a new package called 'lib' - this will in the future be an extensive collection of functions, methods, classes, objects, etc. useful for the study of all types of molecular dynamics.
• Line wrapping has been turned on in the relax controller in the GUI so that all text is visible.

N/A

### relax 2.2.0

• Implementation of the rdc.copy and pcs.copy user functions.
• Improved printouts from the model_selection, pipe.display, rdc.read user functions.
• Implemented the interatomic.copy and interatomic.create user functions.
• Added the 'units' argument to the frq.set user function to allow values other than Hz to be input.
• Added the 'empty' flag to the sequence.copy user function to allow all the spin contents to be copied.
• Implemented the pcs.structural_noise user function. This is used to determine the PCS error due to structural noise via simulation, and adds the error via variance addition to the experimental PCS error.
• The N-state model grid search optimises each tensor separately when only tensors are optimised. This massively collapses the grid search size from inc5*N to N*inc5, where inc are the number of increments per dimension and N is the number of alignments, making a grid search possible.
• Implemented the rdc.set_errors and pcs.set_errors user functions.
• Added Monte Carlo simulation support for the paramagnetic centre for PCSs in the N-state model.
• The paramagnetic centre position for the PCS can now be optimised using algorithms other than simplex, such as BFGS, as the gradients of the PCS equations have been implemented. This allows for huge speedups as the simplex optimiser is not suited to such a problem.
• The probabilities and paramagnetic position can now be simultaneously optimised in the N-state model. Such a combination would have previously failed to unpack the parameters correctly.
• Constraints are now allowed for the paramagnetic position optimisation in the N-state model. This is because the gradients are implemented and functional.

## relax 2.1 series

### relax 2.1.2

• Python 2.3 to 3.3 support, including large changes throughout the code to be able to run on Python 3.
• Improvements to the GUI tutorial in the model-free chapter of the relax manual.
• A number of bugfixes.
• Small improvements overall.

### relax 2.1.1

• Creation of extensive tutorials for both the script and GUI modes for the NOE, R1 and R2, model-free chapters with screenshots in of the GUI in operation.
• Restored support for multiple spin types in the NOE, R1 and R2 analyses allowing, for example, tryptophan sidechain indole NE1 data to be analysed.
• The activation and expansion of the consistency testing chapter to the user manual.
• The completion of the reduced spectral density mapping chapter of the user manual.
• Improvements to the user function section of the user manual with better visual separation and the inclusion of the icons used in the GUI.
• Creation of the relax data model chapter of the user manual to explain how to set up data in relax in all UI modes (with screenshots in the GUI mode).
• Creation of the citations chapter of the user manual to help users properly cite the parts of relax that they use.
• A complete rewrite of the relaxation curve-fitting chapter of the relax manual.
• General improvements and expansions throughout the user manual (the manual is now 15 Mb compared to 4.3 Mb for relax 2.1.0).

### relax 2.1.0

• Update of relax to the GNU General Public License version 3.
• Introduction of the interatomic data container design for NMR data such as the magnetic dipole-dipole interaction between two spins (including relaxation and RDC data) and NOESY data.
• Support for absolute or signless RDC values.
• Creation of a fast molecule, residue and spin data lookup framework using private metadata.

## relax 2.0 series

### relax 2.0.0

• A complete restructuring of the user functions - all user functions are automatically generated within all user interfaces (UIs) including the prompt and script UI, and the graphical UI (GUI).
• The user functions now have special definitions in the 'user_functions' directory making it very simple to add or modify user functions.
• Big improvements to the help system in the prompt UI mode. This is now automatically generated when accessed by the user. Bold font is now used for section titles and keyword arguments, the user function class documentation has been expanded and is now related to the functionality, the user function representation printout is cleaner, and the text is now wrapped for better display on all operating systems.
• Automatic creation of the Alphabetical listing of user functions chapter of the relax manual from the user function definitions.
• The analysis specific API of the specific_fns directory has been redesigned to extensively use the parameter list objects. Many API base methods will now automatically work with the parameter list object, removing the need for a analysis specific implementation.
• The GUI test suite has been significantly expanded. The system test relax scripts can now be used as GUI tests - the user functions are executed through the self._execute_uf() method which allows execution within all UIs, testing out the different code paths.
• The specific and GUI tests can now be executed by group. For example all the model-free system tests can be run with 'relax -s Mf'. This is very useful for relax development.
• The XML formatted results and save files has been redesigned (it has improved, is more accurate, is easier to read in Python version 2.7.3 and above, and contains more metadata) and is now at version 2.
• The printouts of spin specific data has improved with the addition of an automatic column width algorithm.
• The addition of a new concept called data pipe bundles - related data pipes can now be grouped together into bundles. For example in the dauvergne_protocol model-free auto-analysis[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b], all internally generated data pipes are grouped together in the same bundle.
• Each GUI analysis tab is now associated with a unique data pipe bundle rather than a dedicated data pipe. This allows for better data pipe handling.
• Improved BMRB support. The 'File->Export for BMRB deposition' menu has been added to the GUI which opens a special BMRB export window.
• More metadata is now read from the NMR-STAR files into the relax data store.
• The bmrb.display user function is now operational.
• Big redesign of the Spectral_error_type_page wizard page used in the auto NOE and Rx analyses - this now includes the full description of the spectrum.error_analysis user function, so that the user has easy access to a description of how peak intensity errors and handled.
• Mac OS X font size and text layout improvements in the GUI.
• Improvements to the spacing at the top and bottom of the list GUI elements - this includes a spacing before the bottom buttons.
• The relaxation data 'Add' button in the model-free GUI analysis tab is now a multi-page wizard which allows all of the relaxation data metadata to be input.
• The model-free GUI analysis tab now has a 'View metadata' button for opening a window displaying all metadata associated with the relaxation data.
• The model-free GUI analysis tab now has a button for loading relaxation data from Bruker Dynamics Centre files.

# Version 1 of relax

## relax 1.3 series

### relax 1.3.16

• The scons 'install' target now creates both *.pyc and *.pyo files during installation - this should result in faster relax startup times.
• The test suite now passes on the Fink relax installation on Mac OS X as the ancient and very dead PyXML module is now being detected and worked around.
• Renamed the 'pdc' user function class to 'bruker' and removed all references to 'protein' - this is due to the Bruker absorption of the Protein Dynamics Centre into the Bruker Dynamics Centre announced at https://mail.gna.org/public/relax-users/2012-04/msg00011.html (Message-id: <4F7AE13B.6010309@bruker.de>) by Dr. Klaus-Peter Neidig (peter dott neidig att bruker-biospin dott de).
• Updates and improvements throughout the relax user manual.
• Added a new section to the introduction chapter of the user manual for Gary Thompson's multi-processor framework.
• Added screenshots and descriptions of the graphical user interface (GUI) to the introduction and all of the analysis chapters of the relax user manual.
• The GUI and logging/teeing modes are now compatible with each other.
• Expansion and completion of the model-free chapter of the relax user manual.

### relax 1.3.15

• Large improvements to the HTML user manual (http://www.nmr-relax.com/manual/index.html).
• The full test suite, including GUI tests, can now be run successfully from the GUI.
• The Mac OS X binary distribution file now supports Leopard, Snow Leopard and Lion as well as the PPC, i386 and x86_64 CPU architectures.
• The prompt and script output to a terminal is now coloured.
• Faster program startup by only importing the test suite and GUI packages if they are actually needed.
• Files selected via the GUI user functions can now be previewed.
• Redesign of the spin loading wizard of the spin viewer window to be more intuitive.
• Expansion of the system information print out.
• Advances in the multi-processor framework including the pre-sending of data to slaves.
• Support for wxPython 2.9.

### relax 1.3.14

• An expanded system information printout (from 'relax -i').
• Improvements to the multi-processor implementation, including creation of a public API and a reference implementation.
• Overhaul of the multi-processor stream capture design - the slave IO streams are now properly redirected to the master processor and the master no longer overrides stream capture by the relax user interfaces.
• Numpy data structures are now supported in relax save files.
• Implemented the rdc.delete and pcs.delete user functions.
• Speed ups of a number of user functions involved in looping over atomic or spin specific data - this can be significant if a lot of structural operations are performed, or a large number of structures are required.
• Redesigned how spin parameters are handled in the specific analyses (which includes parameter name changes).

### relax 1.3.13

• The positive and negative cones from the frame order theory are now different PDB models.
• Monte Carlo simulations are now implemented for the frame order analysis.
• Created the structure.connect_atom user function to expose the back-end functionality.
• Created the structure.add_atom user function to expose the back-end functionality.
• Created the structure.translate user function to translate structural components.
• Created the structure.superimpose user function which uses the Kabsch algorithm to implement the direct fit-to-first algorithm and the iterative fit-to-mean algorithm.
• Created the structure.displacement user function to calculate the rotational and translational displacement between two models via the Kabsch algorithm.
• Extended the N-state model analysis to allow a separate paramagnetic centre per state.
• The structure.read_pdb user function can now handle bzip2 or gzip compressed PDB files.
• The structure.write_pdb user function can now create compressed (bzip2 or gzip) PDB files.
• Created the structure.rotate user function to allow the application of arbitrary rotations to the structures loaded into relax about a given origin.
• Added the bc flag to the RDC and PCS display and write user functions to allow the back-calculated data to be displayed or written rather than the measured values.
• Increased the efficiency of the relax data store spin system creation, this becomes noticeable when large numbers of structures are read into relax.
• The N-state model can now be optimised with a subset of the alignment tensors fixed.
• The alignment_tensor.fix user function is now tensor specific, allowing a subset of tensors to be optimised while the others are kept fixed.
• Added the ability to specify J+D verses J+2D measured RDCs.
• Addition of many new oxygen icons for the GUI.
• Implemented the sys_info user function in all UI modes (prompt/script/GUI).
• Implemented the spectrum.delete user function in all UI modes (prompt/script/GUI).
• Addition of the pymol.macro_apply, pymol.macro_create, and pymol.macro_run user functions for the visualisation of model-free parameters mapped to a structure. This matches the equivalent Molmol user functions and styles.
• A complete redesign of the GUI where any number of analyses can be created and closed as needed.
• The GUI is now fully functional on Mac OS X and MS Windows.
• The elimination of many race conditions causing the GUI to crash.
• Implementation within the GUI of many of the relax user functions available in the prompt and scripting UI modes.
• Creation of the test suite GUI test category to complement the system and unit tests.
• Added a toolbar to the main relax window with some of the most important menu entries as icons.
• Most parts of the GUI are now deactivated when execution is in progress (via the execution lock) to prevent fatal race conditions.
• Redesigned the dauvergne_protocol, NOE and Rx auto-analyses to use a pre-prepared data pipe for data input. This allows greater support for the GUI and for analyses of RNA, DNA, and small molecules.

### relax 1.3.12

• The multi-processor capabilities of Gary Thompson's multi package including both uniprocessor and mpi4py modes.

### relax 1.3.11

• Integration of relax and the BioMagResBank (BMRB, http://www.bmrb.wisc.edu).
• Support for the creation of NMR-STAR version 3.1 files for BMRB deposition of model-free analysis results.
• Support for the reading of all versions of NMR-STAR files containing model-free or relaxation data from the BMRB.
• Use of the new bmrblib library for BMRB integration support.
• Activated the PDC peak intensity type reading.
• Added the Bruker PDC to the exp_info.software_select user function back end.
• Implemented the value.set user function in the GUI.
• Redesign of how relaxation data is handled within relax so that the data is identified via ID strings rather than relaxation type and frequency strings.
• Added two sample scripts for determining the populations of an ensemble of small molecules. This uses RDCs and PCSs with the N-state model to study the dynamics of small organic molecules (http://dx.doi.org/10.1002/chem.201100854).
• The GUI can now be resized.
• Big clean up and simplification of the GUI code resulting in a more regularised GUI on all operating systems.
• Added initial support for determining protein connectivities in the internal structural reader. This is currently only for intra-residue connectivities in the protein backbone.
• Support for the reading of the organic chemistry XYZ 3D structure file format.

### relax 1.3.8

• Created a sample script to create a CSV file of model-free results for reading into spreadsheets, based on the LaTeX table generation script.
• Extensive system tests for all the model-free models have been introduced.

### relax 1.3.7

• Shifted the relax installation path variable from __main__ into the status singleton object, allowing relax modules to be imported outside of relax.
• Shifted the global relax debug flag from __main__.debug to the relax status singleton, allowing the flag to be defined even when imported from outside of relax.

### relax 1.3.6

• Addition of Michael Bieri's model-free data extraction script.
• Added support for CCPN Analysis 2.1 peak lists (exported in Sparky format).
• Execution locking has been implemented to prevent threaded execution from killing relax. This will be useful for the relax GUI.
• Scripts are now run as modules rather than using execfile(), closing a security hole.
• Created the frame_order.domain_to_pdb user function to associate PDB files with domains in the current data pipe.
• Rewrote frame_order.cone_pdb to handle all of the frame order models.
• The sign of the RDC can be inverted to correct for the negative 15N gyromagnetic ratio.
• Better identification of the molecule end in the internal PDB reader.
• Implemented Monte Carlo simulations for the N-state model.
• The grid_search user function argument incs can now be a list with None elements to fix parameters.
• Expanded the number of frame order models to include the 'free rotor', 'rigid', 'rotor', 'iso cone, free rotor', 'iso cone, torsionless', 'iso cone', 'pseudo-ellipse, free rotor', 'pseudo-ellipse, torsionless', and 'pseudo-ellipse'.
• Pre-defined probabilities can now be used in the 'fixed' N-state model optimisation.
• The Ln3+ position can be directly optimised in the N-state models.
• The pcs.back_calc user function now does something.
• Created the n_state_model.elim_no_prob to remove structures with zero probability.
• Created the align_tensor.fix user function for fixing the alignment tensor during optimisation.
• The alignment tensor optimisation is now optional within the population N-state model target fn.
• The RDCs and PCSs can now be given optimisation weights.
• Per point comments are now included in the Grace files.
• The RDC and PCS correlation plots now also show the experimental errors.
• The RDC and PCS back-calculation user functions now add the alignment ID to the RDC and PCS if absent to allow both data types to be back-calculated in the absence of measured data.
• The N-state model calculate() method now stores the back-calculated RDCs and PCSs and Q factors.
• The PyMOL module pymol.cmd is now available within the pymol user function class, accessible as pymol.cmd from the prompt/script interface.

### relax 1.3.5

• Addition of the frame_order.ref_domain user function to specify the alignment of different domains.
• Converted the reduced J(ω) mapping sample script to the relax 1.3 design to make it functional.
• Created the 'rigid' frame order model.
• Made the profile module optional, removing the dependency on the Python development packages.
• Created the maths_fns.rotation_matrix.axis_angle_to_quaternion() function.
• Created the maths_fns.rotation_matrix.quaternion_to_axis_angle() function.
• Created the maths_fns.rotation_matrix.R_to_quaternion() function.
• relax save files are now by default XML formatted rather than the pickle format (for better compatibility with future relax versions and between different systems).
• Redesign and improvement of the frame order grid search.
• Added a script for creating Molmol macros to represent the model-free motions.
• Created the structure.delete user function for deleting all structural information.
• Spun out the automatic model-free protocol code from the full_analysis.py script. The simplified script now simply sends in user supplied data to an automatic analysis API.
• Expansion of the rotation_matrix module with the addition of many new conversion functions.
• Added support for using methyl pseudo-atom RDCs.
• Created the structure.get_pos user function for extracting atomic positions.
• The atomic position can now be directly supplied to pcs.centre.
• Addition of a sample script for the determination the relative stereochemistry of organic molecules.
• Large improvements for the creation of 2D Grace plots.
• Anisotropic cone PDB representations can now be created.
• The diffusion tensor within the PDB frame can now be specified, avoiding the 2304 different Euler angle conventions for a rank-2 symmetric tensor.
• PyMOL is now being executed as a python module, if available, instead of being launched on the command line and remotely controlled.
• Addition of the rdc.display and rdc.write user functions.
• Addition of the pcs.display and pcs.write user functions.
• Implemented dfunc_tensor_opt() and d2func_tensor_opt() allowing all optimisation algorithms to be used for the N-state model.
• Creation of the rdc.corr_plot and pcs.corr_plot user functions for creating correlation plots of measured vs. back-calculated RDCs and PCSs.
• Added the -i or --info option to relax.

### relax 1.3.4

• The file format of peak intensity lists is now automatically detected (supporting Sparky, XEasy and NMRView).
• Initial support for a generically formatted peak intensity file (note, this is not yet usable).
• Error analysis for peak intensities is significantly improved with support for baseplane RMSD, a subset of spectra replicated, and all spectra replicated for both peak heights and peak volumes.
• NOESY distance restraints (in Xplor or generic format) can now be used in the N-state model via the noe.read_restraints user function.
• Psuedo atoms/spin containers are now supported via the spin.create_pseudo user function (used for the NOE distance restraints).
• Support for multiple molecules and/or multiple models within relax.
• Multiple molecules (as one or more PDB files) can now be read in as individual molecules of different models.
• Multiple models (as one or more PDB files) can now be read in as multiple molecules of the same model.
• The internal PDB writer can now generate a file with multiple molecules and multiple models.
• The N-state model with fixed and equal probabilities is now supported.
• The bond length values for RDCs are now hard-coded (from Ottiger, M. and Bax A., J. Am. Chem. Soc. (1998), 120, 12334-12341).
• Added the Bruker ncproc parameter to handle Topspin's integer scaling of FID intensities (to the spectrum.read_intensities user function).
• Hybridisation support, present in relax 1.2, has returned allowing data pipes to be merged (i.e. to hybridise two model-free data pipes with a different diffusion tensor for sets of spins).
• The initial code for relaxation dispersion analyses has been added (note, this is not yet usable).
• Initial support for the new Frame Order theories, using the isotropic cone model for RDC data of domain dynamics.
• MOLMOL macro support for plotting model-free parameter values onto the structure has returned.

### relax 1.3.2

• The NOE analysis has been converted to the new design and is fully functional again.

### relax 1.3.1

• Complete redesign of relax (https://mail.gna.org/public/relax-devel/2006-10/msg00053.html).
• Extension of the Grace plotting abilities to include series data such as relaxation exponential curves.
• For easy reference, all physical constants have been shifted to the 'physical_constants.py' module.
• Complete overhaul of the handling of structures with the introduction of a structural object API.
• An internal structural object has been created, complete with PDB reading and writing methods, to optionally replace the Scientific python PDB object.
• Large improvements to the API documentation by the use of epydoc formatted docstrings.
• All spins can be looped over simply by using the spin_loop() generator function.
• Molecules, residues, and spins are now selected by the new syntax of the spin identification string.
• Improvements and simplifications to the 'full_analysis.py' script [d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b] with all user modifiable variables shifted to the top of the script as global variables.
• Automatic looping until convergence has been added to the 'full_analysis.py' [d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b] script to further simplify usage.
• Setting the type of nucleus is now done with the value.set user function on a spin-by-spin basis. This is important for RNA, small molecules and protein analyses with Ca and N data.
• A new analysis type, the N-state model for interpreting domain motions using RDC and PCS data, is now supported.
• The mechanical pivot-CoM analysis of the N-state model and associated cone image construction is included.
• The consistency testing code has been ported from the 1.2 line.
• The results file has been converted to the versatile XML format.
• All analysis types, present and future, are automatically supported through the reading and writing of the XML results file.
• The XML results file stores floats at full 64 bit precision in an XML attribute using the IEEE-754 byte array.

### relax 1.3.0

• Implementation of the PDB geometric representation of the Brownian rotational diffusion tensor using structure.create_diff_tensor_pdb.
• Added a sample script for the creation of the PDB representation of the diffusion tensor.
• Addition of the ability to calculate the centre of mass of the selected residues (not available as a user function).
• The addition of PDB writing capabilities (not available as a user function).
• Creation of the molmol.command user function to send Molmol commands to a running instance of Molmol.
• Creation of the molmol.ribbon user function to apply the Molmol ribbon style (which is equivalent to clicking on 'ribbon' in the Molmol side menu).
• Creation of the molmol.tensor_pdb user function for displaying the PDB geometric object of the diffusion tensor in Molmol over a loaded structure.
• Preliminary support for PyMOL.
• Creation of the pymol.view user function for launching PyMOL.
• Creation of the pymol.cartoon user function for hiding everything, showing the cartoon representation, and colouring the cartoon by secondary structure.
• Creation of the pymol.tensor_pdb user function, the equivalent of molmol.tensor_pdb.
• A unit test framework for the test suite has been created and a few tests have been written (accessible through the --test-suite or --unit-test command line arguments).
• Addition of the structure.create_vector_dist user function for creating a PDB representation of the XH bond vectors of selected residues from the structure.
• Addition of the pymol.vector_dist user function for displaying the PDB representation of the XH vector distribution overlain over the structure within PyMOL.

## relax 1.2 series

N/A

N/A

N/A

### relax 1.2.11

• The Grace plotting abilities have been extended, especially concerning relaxation exponential curve-fitting.
• A sample script has been added to plot the difference between the measured and back calculated peak intensities.
• Automatic looping over iterations in the 'full_analysis.py' sample script[d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b] is now possible.

### relax 1.2.10

• Addition of tests to the 'full_analysis.py' script for the identification of convergence [d'Auvergne and Gooley, 2007][d'Auvergne and Gooley, 2008b].
• Different columns can be specified for the residue number in the select.read and unselect.read user functions.
• More advanced selection of spin systems or residues is possible through the use of the Boolean operators 'OR', 'NOR', 'AND', 'NAND', 'XOR', or 'XNOR'.
• Addition of a sample script for the creation a LaTeX longtable of the model-free results.
• The rows of the model-free and reduced spectral density results files are no longer truncated for deselected spin systems, hence all data is now stored in the results file. (see bug #8059)

N/A

### relax 1.2.7

• The C modules now compile without problem on MS Windows.
• The MS Windows binary distribution packages are now successfully built using the SCons build system.
• The batch file 'relax.bat' has been created for running relax from the MS Windows command prompt.
• The program introduction width is now 80 characters in MS Windows for proper display from the command prompt.

N/A

# Announcements

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

# References

• [Baldwin 2014] Baldwin A. J. (2014). An exact solution for R2,eff in CPMG experiments in the case of two site chemical exchange. J. Magn. Reson., 244, 114-124. (DOI: 10.1016/j.jmr.2014.02.023)
• [Bieri et al, 2011] ^ Bieri, M., d'Auvergne, E., and Gooley, P. (2011). relaxGUI: a new software for fast and simple NMR relaxation data analysis and calculation of ps-ns and μs motion of proteins. J. Biomol. NMR, 50, 147-155. (DOI: 10.1007/s10858-011-9509-1)
• [Carver and Richards 1972] ^ 1 2 Carver, J. P. and Richards, R. E. (1972). General 2-site solution for chemical exchange produced dependence of T2 upon Carr-Purcell pulse separation. J. Magn. Reson., 6(1), 89-105. (DOI: 10.1016/0022-2364(72)90090-X)
• [d'Auvergne and Gooley 2006] ^ d'Auvergne, E. J. and Gooley, P. R. (2006). Model-free model elimination: A new step in the model-free dynamic analysis of NMR relaxation data. J. Biomol. NMR, 35(2), 117-135. (DOI: 10.1007/s10858-006-9007-z)
• [d'Auvergne and Gooley, 2007] ^ 1 2 3 4 5 6 d'Auvergne, E. J. and Gooley, P. R. (2007). Set theory formulation of the model-free problem and the diffusion seeded model-free paradigm. Mol. BioSyst., 3(7), 483-494. (DOI: 10.1039/b702202f)
• [d'Auvergne and Gooley, 2008a] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models I. Minimisation algorithms and their performance within the model-free and Brownian rotational diffusion spaces. J. Biomol. NMR, 40(2), 107-119. (DOI: 10.1007/s10858-007-9214-2)
• [d'Auvergne and Gooley, 2008b] ^ 1 2 3 4 5 6 d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133. (DOI: 10.1007/s10858-007-9213-3)
• [d'Auvergne and Gooley, 2008] d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models. J. Biomol. NMR, 40(2), 107-133. (DOI: 10.1007/s10858-007-9214-2, 10.1007/s10858-007-9213-3)
• [Davis et al., 1994] ^ Davis, D. G., Perlman, M. E., and London, R. E. (1994). Direct measurements of the dissociation-rate constant for inhibitor-enzyme complexes via the T1rho and T2 (CPMG) methods. J. Magn. Reson., 104(3), 266-275. (DOI: 10.1006/jmrb.1994.1084)
• [Fushman et al., 1998] Fushman, D., Tjandra, N., and Cowburn, D. (1998). Direct measurement of 15N chemical shift anisotropy in solution. J. Am. Chem. Soc., 120(42), 10947-10952. (DOI: 10.1021/ja981686m)
• [Ishima and Torchia 2005] Ishima, R. and Torchia, D. A. (1999). Estimating the time scale of chemical exchange of proteins from measurements of transverse relaxation rates in solution. J. Biomol. NMR, 14(4), 369-372. (DOI: 10.1023/A:1008324025406)
• [Luz and Meiboom 1963] ^ 1 2 Luz, Z. and Meiboom, S. (1963). Nuclear magnetic resonance study of protolysis of trimethylammonium ion in aqueous solution - order of reaction with respect to solvent. J. Chem. Phys., 39(2), 366-370. (DOI: 10.1063/1.1734254)
• [Meiboom 1961] ^ 1 2 Meiboom, S. (1961). Nuclear magnetic resonance study of proton transfer in water. J. Chem. Phys., 34(2), 375-388. (DOI: 10.1063/1.1700960)
• [Miloushev and Palmer 2005] ^ Miloushev, V. Z. and Palmer, 3rd, A. G. (2005). R(1rho) relaxation for two-site chemical exchange: general approximations and some exact solutions. J. Magn. Reson., 177(2), 221-227. (DOI: 10.1016/j.jmr.2005.07.023)
• [Morin and Gagné, 2009] Morin, S. and Gagné, S. (2009). Simple tests for the validation of multiple field spin relaxation data. J. Biomol. NMR, 45, 361-372. (DOI: 10.1007/s10858-009-9381-4)
• [Morin et al., 2014] Morin, S., Linnet, T. E., Lescanne, M., Schanda, P., Thompson, G. S., Tollinger, M., Teilum, K., Gagné, S., Marion, D., Griesinger, C., Blackledge, M., and d'Auvergne, E. J. (2014). relax: the analysis of biomolecular kinetics and thermodynamics using NMR relaxation dispersion data. Bioinformatics, 30(15), 2219-2220. (DOI: 10.1093/bioinformatics/btu166)
• [Tollinger et al., 2001] ^ Tollinger, M., Skrynnikov, N. R., Mulder, F. A. A., Forman-Kay, J. D., and Kay, L. E. (2001). Slow dynamics in folded and unfolded states of an sh3 domain. J. Am. Chem. Soc., 123(46), 11341-11352. (DOI: 10.1021/ja011300z)
• [Trott and Palmer 2002] ^ Trott, O. and Palmer, 3rd, A. G. (2002). R1rho relaxation outside of the fast-exchange limit. J. Magn. Reson., 154(1), 157-160. (DOI: 10.1006/jmre.2001.2466)
• [Trott et al., 2003] ^ Trott, O., Abergel, D., and Palmer, A. (2003). An average-magnetization analysis of R-1 rho relaxation outside of the fast exchange. Mol. Phys., 101(6), 753-763. (DOI: 10.1080/0026897021000054826)