relax version 2.2.4.
Posted by Edward d'Auvergne on March 17, 2013 - 14:29:
This is a major bugfix release. System and unit test bugs in the Mac
OS X application have been eliminated, the RMSD related functions for
systems with old Numpy versions installed have been fixed, the system
information printout when the relax path contains spaces now works,
Python 3 fixes have been made throughout, problems with the last steps
of the model-free auto-analysis under certain conditions have been
resolved, and the value.write and value.display user functions no
longer present a list of zero values when very small number are
encountered (for example the field-strength independent Rex values
from a model-free analysis). Upgrading is recommended.
The new relax versions can be downloaded from
http://www.nmr-relax.com/download.html. If binary distributions are
not yet available for your platform and you manage to compile the
binary modules, please consider contributing these to the relax
project (described in section 3.6 of the relax manual,
The full list of changes is:
* Creation of the structure.create_rotor_pdb user function for
creating representations of the rotor frame order model.
* Updated the release checklist document to include the
correct instructions for minfx and bmrblib. These are the packages
bundled with relax (http://gna.org/projects/minfx/ and
* Improvements for Python 2 and 3 compatibility. Much of the
Python 2 verses 3 compatibility, as well as different Python 2 version
compatibility and different Python 3 version compatibility, code has
been shifted into the compat module. The different parts of relax now
import from the compat module for modules/packages with different
import semantics for different Python versions. In addition the
different handling of the bz2 and gzip module for reading and writing
files has been shifted from 'relax_io' into 'compat'.
* Updated the 2to3 checklist document to include multiple
threads for faster operation.
* Eliminated the os.devnull import flag
dep_check.devnull_import. This is not needed as the compat relax
module defines os.devnull for Python <= 2.3. The devnull module is no
longer part of the relax information printout.
* Added a more informative error message if the platform
module is missing. This is for Python <= 2.2. The file from
http://hg.python.org/cpython/file/2.3/Lib/platform.py can simply be
copied into the lib/pythonX.X/ directory to fix this.
* Slight change to the message printed if the platform module
* Modified the script for running the relax test-suite on
multiple Python versions. The pre-2.2 Python versions are now
commented out as well as the abortive Python 3.0.
* Created the Mf.test_bug_20613_auto_mf_diff_tensor_pdb system
test to catch bug #20613. This was reported by Angelo Miguel
Figueiredo <am dott figueiredo att fct dot unl dot pt> at
https://gna.org/bugs/?20613. This test is a direct copy of the
Mf.test_bug_20563_missing_ri_error system test. The only change is
that the local tm global model results file (in the local_tm/aic/
directory) has been modified. This results were read into relax, the
file test_suite/shared_data/structures/Ap4Aase_res1-12.pdb loaded into
the data pipe, and the results saved again. This triggers the bug as
the problem is the presence of structural data with the local tm
global model being selected in the auto-analysis.
* Shifted all of the model-free specific analysis class
documentation variables to the top. This is simply for better
organisation of the code.
* Created the model-free write_doc class variable talking
about the field strength independent Rex value. This has been added
to the value.display and value.write user functions to explain that
Rex values are very small and that the user needs to scale them up.
* Shifted all of the documentation variables to the top of the
specific API_base class. This is for better organisation.
* Added the write_doc class variable to the specific analysis
API class as a empty string. This is to fix the unit tests.
* Created the front end for the new structure.create_rotor_pdb
user function. This will be used to create a PDB representation of a
rotor motional model.
* Added file, directory and overwrite force arguments to the
structure.create_rotor_pdb user function.
* Started to implement the backend of the
structure.create_rotor_pdb user function.
* The internal structural object MolContainer.add_atom()
method now returns the index of the new atom.
* Created the internal structural object
* Fully implemented the structure.create_rotor_pdb user
function. For this, the
generic_fns.structure.geometric.create_rotor_propellers() function was
* Fix for the system tests in the Mac OS X application binary.
The Mf.test_bug_20563_missing_ri_error system test fails in the Mac
OS X application binary. The problem is that the py2app extension
used to build the Mac application decides that empty directories are
not to be included in the app, so naturally the test fails when
checking for these. Now empty results files have been added to these
directories to trick py2app to include them.
* Fixes for the unit test package __all__ list checking. Now
only *.py files and directories are checked. In some cases other
files could be present in the packages, for example the object files
when compiling the C modules. These would cause the unit tests to
* Fixes for the unit test __all__ list checking for the lib
package for the Mac OS X application. For some reason the py2app
extension which creates the app merges the Python installation
directory Resources/lib/python2.7 and the relax lib package into
Resources/lib. Now 'python2.7' is blacklisted when checking the lib
package so that the parasitic Python install location is ignored.
* Bug fix for the structure RMSD function for when old numpy
versions are present. Older numpy versions do not have the ddof
argument for the std() standard deviation function,therefore relax now
catches this, calculates the biased standard deviation formula, and
then multiplies the value by a correction factor to obtain the
* Bug fix for the info relax system information module for
when spaces are present in the relax path. If relax is placed into a
directory containing spaces, then the determination of the
architecture of the compiled C modules fails.
* Python 3 fixes for the model-free analysis specific code.
This was causing errors "AttributeError: 'dict_values' object has no
* Python 3 updates and fixes using the 2to3 program.
* Bug fix for the external Scientific Python Geometry package.
This is a strange Python 3 issue only triggered when the epydoc
Python package is installed.
* Fix for bug #20613 (https://gna.org/bugs/?20613), the
failure of the diffusion tensor PDB creation. This was reported by
Angelo Miguel Figueiredo <am dott figueiredo att fct dot unl dot pt>.
The problem was that the diffusion tensor PDB representation
structure.create_diff_tensor_pdb user function was being called even
when the local tm global model was selected. This naturally failed as
there is no global diffusion tensor. Now this user function is
avoided for the local tm global model.
* Fix for the value.write user function for very small
parameter values (Rex for example). This was reported by Martin
Ballaschk <ballaschk att fmp-berlin dott de> in the thread
and by by Angelo Miguel Figueiredo <am dott figueiredo att fct dot unl
dot pt> in the unrelated bug report at https://gna.org/bugs/?20613.
The formatting string "20.15f" has been changed to "20.15g" to allow
Python to decide if the normal decimal or exponential form of the
number should be printed.
* Fix for a strange and extremely rare typo bug in the
model-free specific analysis code. This was identified by Manish
Chaubey <manish dott chaubey att tuebingen dott mpg dott de> in the
message at http://thread.gmane.org/gmane.science.nmr.relax.user/1422.
This only occurs if a relaxation data error of zero is encountered and
is a bug in the RelaxError message explaining the problem with the
Powered by MHonArc
, Updated Sun Mar 24 23:00:02 2013