mailBelieve it or not, but we now have relax version 1.3.1!


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on September 29, 2008 - 19:17:
Finally, it's arrived!  The new and improved relax is finally ready
for release.  It's taken 2 years to get here, 4400 individual changes,
and a complete rewrite of almost every last line of code - all in all
an impressive team effort.  Although the jump from 1.3.0 to 1.3.1
appears small, the changes are so expansive that hardly any code is
preserved between these versions.  In addition, the release includes
all changes which occurred between relax versions 1.2.10 and 1.2.14.
For this shiny new version, we have had complete redesign of relax.
This started all the way back in October of 2006 with the post
https://mail.gna.org/public/relax-devel/2006-10/msg00053.html.  This
overhaul involves the new molecule-residue-spin data structure and the
elimination of the 'run' concept replacing it with the data pipe
paradigm.

No longer is relax constrained to handling a single spin type for the
entire system, or a single spin per residue.  Multiple structures,
multiple residues per structure, and multiple spins per residue can be
handled, paving the way for using relax with small organic molecules,
with RNA and DNA, and for protein systems using not only 15N data but
also any data from carbons or other spin types.  As for the data pipe
concept, this is the next logical step in the evolution of relax.  The
'run' had significantly diverged from its original meaning, so now it
has been renamed to the pipe.  Everything in relax is now associated
with a data pipe.  These pipes can be created, merged with user
functions such as model_selection(), branched by copying, and the
entire contents preserved at any time into an XML formatted results
file - imagination is the only limitation as to what can be done with
these pipes.  The progress of relax can be considered as the flow of
data through these pipes, with each user function modifying or using
the contents.

For for identifying and selecting spins, the spin identification
string concept has been introduced.  The string is composed of three
components: the molecule id token beginning with the '#' character,
the residue id token beginning with the ':' character, and the atom or
spin system id token beginning with the '@' character.  Each token can
be composed of multiple elements separated by the ',' character and
each individual element can either be a number, name, or range of
numbers separated by the '-' character. Hence the full id string
specification is "#<mol_name> :<res_id>[, <res_id>[, <res_id>, ...]]
@<atom_id>[, <atom_id>[, <atom_id>, ...]],".  Basic usage of the
Boolean operators and ('&') and or ('|') is also supported.

Note that in this version, not all parts of relax are currently
functional.  Many, such as relaxation curve fitting, model-free
analysis, reduced spectral density mapping, consistency testing, etc.
are fully functional but if you do uncover a non-operational user
function, please submit a bug report or use the stable 1.2.14 version.
 Conversion of the last parts of relax to the new design will not be
too hard, especially if all issues are reported.  Note that this is a
development line and that scripts written for version 1.3.1 may not
work automatically in future 1.3 versions.

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 (see section 3.6 of the relax manual for
details).


The full list of changes is:

    Features:
        * 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 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' 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.

    Changes:
        * The RelaxError and RelaxWarning systems have been
redesigned.  The objects are no longer placed into __builtin__ but
must now be imported.
        * The unit and system test frameworks have been expanded to
1046 and 55 tests respectively covering most aspects of relax usage.
        * The inclusion of headers in the sample scripts to identify
the author and age of the script.
        * Conversion of the relax data storage object into a
singleton.  Rather than accessing 'self.relax.data', the singleton is
now imported as needed.
        * Unit tests can now be run individually.
        * The optimisation code has been spun out into its own
project, minfx (https://gna.org/projects/minfx/).  This is now a
dependency.
        * The Boolean values True and False are now used instead of 1
and 0 for user function arguments.
        * The class methods of the 'generic_fns' package have been
converted to module functions for greater API flexibility.
        * Complete redesign of the diffusion tensor object in the
relax data store.  Many diffusion tensor attributes are calculated on
the fly when accessed.
        * The 'specific_fns' package has been redesigned with the API
for retrieving analysis specific methods tidied up.
        * The inevitable switch from Numeric python to numpy has occurred.
        * The system tests and unit tests can be run separately.
        * All STDOUT and STDERR output is caught by the test suite and
only printed if the test fails.
        * The system tests use the unit test framework to
significantly simplify the addition of new tests.
        * User scripts can now be used directly as system tests.
        * All threading code has been eliminated in preparation for
replacement by the multi_processor code.
        * The precision of the 15N gyromagnetic ratio input into Art
Palmer's Modelfree4 program has been increased.
        * Scientific python is no longer an essential dependency.
        * The 'unselect' user function class has been renamed to 'deselect'.
        * Big updates to the relax manual.
        * PDB files can be specified without the '.pdb' ending.

    Bugfixes:
        * The unit test and system test frameworks are now functional.
        * The failure of reduced spectral density mapping has been
identified and fixed (bug #9238, https://gna.org/bugs/?9238, bug
#9562, https://gna.org/bugs/?9562).
        * The second set of extended model-free formulae were
accessing undefined functions (bug #9189, https://gna.org/bugs/?9189).
        * Docstring fetching issues with Python 2.5 have been fixed
(bug #9390, https://gna.org/bugs/?9390).
        * The sample script for placing model-free results into a
LaTeX table now works (bug #10189, https://gna.org/bugs/?10189).
        * The default parameter values for relaxation curve fitting
were incorrectly set.
        * Security:  Replaced the insecure os.tempnam() with 
tempfile.mktemp().
        * ZeroDivisionError fix for model elimination and Monte Carlo
simulation elimination (bug #11004, https://gna.org/bugs/?11004).
        * The handling of spins with missing XH bond vectors has been
fixed (bug #11378, https://gna.org/bugs/?11378).
        * The relax_data.display() user function is now functional
again (bug #11383, https://gna.org/bugs/?11383).
        * MS Windows with Python 2.5 is now supported.



Related Messages


Powered by MHonArc, Updated Tue Sep 30 01:20:09 2008