Description

This is a major feature release consisting of over a year's worth of improvements and bug fixes, with close to 2000 code changes. All users are recommended to upgrade to this newest version. New features include the ability to determine the stereochemistry of flexible organic molecules, expansion of the frame order theory, better support for RDCs and PCSs, 2D Grace plot improvements, and many new rotation_matrix module conversion functions.

Download

The new relax versions can be downloaded from either http://nmr-relax.com/download.html or http://download.gna.org/relax/. If binary distributions are not yet available for your platform and you manage to compile the binary modules, please consider contributing these to the relax project (described in section 3.6 of the relax manual).

Full list of changes

Features

Addition of the frame_order.ref_domain() user function to specify the alignment of different domains.

Converted the reduced J(w) 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).

Added a force flag to the state.load() user function.

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.

Changes

Test suite fixes for Python 2.5.

Epydoc docstring improvements/fixes for the API documentation.

Many updates using 2to3 preparing for a transition to Python 3.x.

Renamed the pipe.list() user function to pipe.display().

Created a base class for the user function classes. More user function back end simplifications.

Addition of many new RelaxError classes for the user function interface.

Removal of many unused Python module imports.

Redesign of the RelaxError classes.

Simplified all the argument RelaxError classes using BaseArgError.

Added a check for the unimplemented constraints in the frame order code.

Rearrangement of the handling of frame order models. The tensor rotation Euler angles are now model independent, the 'rigid' model is better supported, and a clear isolation of the isotropic cone model has been made.

Shifted the current data pipe to _builtin_.cdp so that it is accessible as 'cdp' in all of relax - including user scripts (and removal of 484 calls to generic_fns.pipes.get_pipe()).

Specific architecture and optimisation details are now printed if the frame order system tests fail.

Added a function for converting the frame order matrix to the rotational superoperator.

Improved and expanded the output of the print_frame_order_2nd_degree() function.

Function renaming and argument order changes in the maths_fns.rotation_matrix module.

Huge simplifications to the unit tests for the maths_fns.rotation_matrix package.

Added a very basic, and completely empty module and class for SRLS analysis.

Redesign of the relax state loading for adding support for a XML formatted state file.

Shifted the results.write() force arg to the end.

Created the relax data store is_empty() method.

Renamed the state.load() and state.save() directory argument from dir_name to dir for consistency with the rest of relax.

Redesigned the relaxation curve fitting grid search for the new design of the minfx grid search.

Redesigned the N-state model grid search setup around the new minfx interface.

Redesigned the model-free grid search setup around the new minfx interface.

Renamed the 'grace.py' sample script to 'mf_grace_S2_vs_te.py'.

Added the spin_id_col arg to the rdc.read() user function.

Changes to the pcs.read() and rdc.read() user function interfaces.

Column numbering now starts at 1 rather than 0 within the user functions.

The relax_io.read_spin_data_file() function has been created to handle all columnar text files where each row corresponds to a spin.

Rewrote the tokenise() function to allow for the '&' boolean operator for residues and spins, allowing ':1&:GLY' or '@453&@N' to be parsed.

Renamed all the alignment ID args and variables 'id' to 'align_id' in the RDC and PCS user functions.

Added the relax_io.write_spin_data_file() function for writing spin specific data to a file (can be STDOUT).

Significant improvements to the __find_bonded_atoms() method of the internal PDB reader.

Improved the error handling for AICc model selection.

Added user variable checking to the full_analysis.py script.

Added functions for determining the element name and isotope number from an isotope name.

Added frame order methods necessary for the dx.map() user function.

Huge clean up / redesign of the specific analysis internal API.

Better layout of the user functions in the relax manual significantly dropping the page count.

Formatting improvements in the relax manual.

Removed the checking of sequence data from generic_fns.value.set().

Modified the alignment tensor print out to be more compact.

The PCS centre can now be forcefully overwritten.

Added the back end to the rdc.back_calc() user function (making it functional).

Modified all the specific analysis overfit_deselect() methods to warn when spins are deselected.

align_tensor.display() now prints the magnetic susceptibility tensor.

The rotation matrix to Euler angle algorithms have been converted to the general one of Ken Shoemake.

Simplifications and clean up of the prompt and script UI code.

Detachment of the prompt/script interface from relax allowing it to be imported by any python code.

Switched from using a cone angle to using an order parameter in the isotropic cone frame order model.

Redesigned the program introduction as an abstraction for different UIs, shifting it into the intro module.

Changed the program description to "Molecular dynamics by NMR data analysis".

Created a module for the automatic relaxation curve fitting protocol.

Shifted the RDC and PCS Q-factor calculation code so that it is no longer N-state model specific.

The RDC and PCS Q-factor calculation functions can now accept a spin_id arg.

Individual system tests can now be executed through the relax test suite.

Addition of the relax status singleton object for communicating status info between the core and the UIs.

Fix for the 'population' N-state model - the probabilities of each state was being set to that of the last state.

Constraints must be used at all times in the 'population' N-state model optimisation.

For the N-state model 'fixed' and 'population' models, if too many tensors are initialised in comparison to PCS and RDC alignments, then the parameter vector or parameter number was not being correctly assembled.

Fix for when structural models are loaded out of order.

Fix for the 'population' N-state model whereby the last probability can have a negative value.

The infinite looping around the universal solution in the dauvergne_protocol module is now being caught (for the full_analysis.py script).

Copyright (C) 2004-2006, the Gna! people. Posted items are owned by whoever posted them.
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.