mailrelax version 3.2.3.


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

Header


Content

Posted by Edward d'Auvergne on July 03, 2014 - 14:07:
This is a major bugfix release and the first requiring numpy >= 1.6 to
allow for faster calculations for certain analyses.  There have been
improvements to the GUI user functions, the ^[[?1034h escape code is
finally suppressed on Linux systems, and the structure.com user
function has been added.  Bugfixes include the proper handling of R20A
and R20B parameters in the relaxation dispersion models, the 'IT99'
dispersion model tex parameter was incorrectly handled, the 'LM63
3-site' dispersion models had a fatal mistake in its equations, files
with multiple extensions (for example *.pdb.gz) are now correctly
handled, and closing the free file format window in Mac OS X systems
caused the GUI to freeze.  Full details can be found below.

For this release, the Mac OS X framework used to build the universal
3-way (ppc, i386, x86_64) binaries for the stand-alone relax
application has been updated.  The relax application now bundles
Python 2.7.8, numpy 1.8.1, scipy 0.14.0, nose 1.3.3, wxPython 2.9.3.1
osx-cocoa (classic), matplotlib 1.3.1, epydoc 3.0.1, mpi4py 1.3.1 and
py2app 0.8.1.  This should result in better formatted relax state and
results files and give access to more advanced packages for power
users to take advantage of.

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,
http://www.nmr-relax.com/manual/relax_distribution_archives.html).

The full list of changes is:

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


    Changes:
        * Added proper sectioning to the release checklist document.
        * Added the upload script to the release checklist document.
        * Modified the Sequence GUI input element used for the user
function list arguments.  The first column is now of fixed with when
titles are supplied.  Previously when supplying titles, the width
would be tiny and no text would be visible.
        * Added titles for all 3D coordinate user function arguments.
This is for the Sequence GUI input element, and affects the
frame_order.average_position, n_state_model.CoM and paramag.centre
user functions.
        * The compilation of the C modules now respects the user
defined environment.  This is the patch from Justin
(https://gna.org/users/jlec) attached to bug #22145
(https://gna.org/bugs/?22145).  It has been modified to include a
comment and remove a double empty line.
        * Bug fix for the compilation of the C modules now respects
the user defined environment.  The problem was that on Mac OS X (as
well as other systems), that these environmental variables were not
defined and hence the scons commands would all fail with a KeyError
and traceback.  Now the keys in the os.environ dictionary are being
searched for before they are set.
        * Fix for the wxPython link in the installation chapter of the
manual.  This was pointing to the scipy website for some reason.
        * Changed the Python readline link for MS Windows in the
installation chapter of the manual.  This now points to
https://pypi.python.org/pypi/pyreadline as the iPython link is broken.
        * Implemented system test
Relax_disp.test_bug_22146_unpacking_r2a_r2b_cluster.  This is to catch
the wrong unpacking of R2A and R2B when performing a clustered full
dispersion model analysis.  Bug #22146: (https://gna.org/bugs/?22146)
Unpacking of R2A and R2B is performed wrong for clustered "full"
dispersion models.
        * Extended system test
Relax_disp.test_bug_22146_unpacking_r2a_r2b_cluster for B14 full
model.  This is to catch the wrong unpacking of R2A and R2B when
performing a clustered full dispersion model analysis.  Bug #22146:
(https://gna.org/bugs/?22146) Unpacking of R2A and R2B is performed
wrong for clustered "full" dispersion models.
        * Extended system test
Relax_disp.test_bug_22146_unpacking_r2a_r2b_cluster for NS CPMG 2SITE
3D full model.  This is to catch the wrong unpacking of R2A and R2B
when performing a clustered full dispersion model analysis.  Bug
#22146: (https://gna.org/bugs/?22146) Unpacking of R2A and R2B is
performed wrong for clustered "full" dispersion models.
        * Extended system test
Relax_disp.test_bug_22146_unpacking_r2a_r2b_cluster for NS CPMG 2SITE
STAR full model.  This is to catch the wrong unpacking of R2A and R2B
when performing a clustered full dispersion model analysis.  Bug
#22146: (https://gna.org/bugs/?22146) Unpacking of R2A and R2B is
performed wrong for clustered "full" dispersion models.
        * Added synthetic data generator script which created the data
to test against.  Bug #22146: (https://gna.org/bugs/?22146) Unpacking
of R2A and R2B is performed wrong for clustered "full" dispersion
models.
        * Split system test
Relax_disp.test_bug_22146_unpacking_r2a_r2b_cluster up in different
tests.  A setup function which is:
setup_bug_22146_unpacking_r2a_r2b_cluster(self, folder=None,
model_analyse=None):  And then the tests:
test_bug_22146_unpacking_r2a_r2b_cluster_B14
test_bug_22146_unpacking_r2a_r2b_cluster_CR72
test_bug_22146_unpacking_r2a_r2b_cluster_NS_3D
test_bug_22146_unpacking_r2a_r2b_cluster_NS_STAR.  Bug #22146:
(https://gna.org/bugs/?22146) Unpacking of R2A and R2B is performed
wrong for clustered "full" dispersion models.
        * Modified profiling script to get closer to the
implementation in relax.  An additional test function is setup to
figure out how to reshape the numpy arrays in the target function.
Bug #22146: (https://gna.org/bugs/?22146) Unpacking of R2A and R2B is
performed wrong for clustered "full" dispersion models.
        * Updated profiling text for CR72 model.  Now it is tested for
3 fields.  This is related to: Task #7807
(https://gna.org/task/index.php?7807): Speed-up of dispersion models
for Clustered analysis.
        * Added searching for environment variable PYTHON_INCLUDE_DIR
if Python.h is not found in standard Python library.  This can be very
handsome, if one has a Python virtual environment for multiple users.
This relates to the wiki page: http://wiki.nmr-relax.com/Epd_canopy.
        * The lib.compat.norm() replacement function for
numpy.linalg.norm() now handles no axis argument.  This is to allow
the function to be used in all cases where numpy.linalg.norm() is
used, while providing compatibility with the axis argument and all
numpy versions.
        * Fix for the scons target for compiling the relax manual when
using a repository checkout copy.  The method for compiling the relax
manual was calling the version.revision() function, however this has
been replaced a while ago by the version.repo_revision variable.
        * Created two unit tests for the lib.io.file_root() function.
The second of the tests demonstrate a failure of the function if
multiple file extensions are present.
        * Lowered chi2 value test in system test
Relax_disp.test_bug_22146_unpacking_r2a_r2b_cluster_NS_STAR.  This is
due to the data produced on 32 bit machine, and tested on 64 bit
machines.  The error was: AssertionError: 2.4659455670347743e-05 !=
0.0 within 7 places.  The reason for this is due to truncation
artifacts.
        * Fix for wrong path testing of Python.h.  Python.h would be
in PYTHON_PREFIX/include/pythonX.Y/Python.h and not in
PYTHON_PREFIX/include/Python.h.
        * Better handling of the control-C keyboard interrupt signal
in the relax test suite.  This includes two changes.  The Python 2.7
and higher unittest.installHandler() function is now called, when
present, to terminate all tests using the unittest module control-C
handler.  The second change is that the keyboard interrupt signal is
caught in a try-except statement, a message printed out, and the tests
terminated.  This should be an improvement for all systems.
        * Adding last profiling information for model CR72.
        * Added system test for model LM63 3 site.  According to
results folder in
test_suite/shared_data/dispersion/Hansen/relax_results/LM63 3-site.
This should pass, but it doesn't.
        * Created an initial Relax_disp.test_lm63_3site_synthetic
system test.  This should have been set up a long time ago.  It uses
the synthetic noise-free data in the
test_suite/shared_data/dispersion/lm63_3site directory which was
created for a system test but never converted into one.  The test
still needs modifications to allow it to pass.
        * Modifications for the Relax_disp.test_lm63_3site_synthetic
system test.  The r2eff_values.bz2 saved state file has been updated,
as it was too old to use in the test.  The test has also had a typo
bug fixed and the data pipe name updated.  The test now also checks
all of the optimised values.
        * Removed system test test_hansen_cpmg_data_to_lm63_3site.
This was a temporary implementation and has been replaced with system
test Relax_disp.test_lm63_3site_synthetic.
        * Fixes for all of the relaxation dispersion system tests
which were failing with the new minfx code.  Due to the tuning of the
log barrier constraint algorithm in minfx in the commit at
http://article.gmane.org/gmane.science.mathematics.minfx.scm/25, many
system tests needed to be slightly adjusted.  Two of the
Relax_disp.test_tp02_data_to_* system tests were also failing as the
optimisation can no longer move out of the minimum at pA = 0.5 for one
spin (due to the low quality grid search in the auto-analysis).
        * Updated the release checklist document for the new 1.0.7
release of minfx.
        * Fixes for the
Relax_disp.test_hansen_cpmg_data_missing_auto_analysis system test.
The pA parameter is no longer tested for one spin as it moves to
random values on different operating systems and 32 vs. 64-bit
systems.  This is because this spin experiences no exchange, both dw
and kex are zero.
        * Decreased the value checking precision in the
Relax_disp.test_hansen_cpmg_data_to_lm63 system test.  This is to
allow the test to pass on certain operating systems and 32-bit
systems.
        * Modified the precision of the output from the
relax_disp.sherekhan_input user function.  This is simply to allow the
Relax_disp.test_sod1wt_t25_to_sherekhan_input system test to pass on
certain 32-bit systems, as the float output to 15 decimal places is
not always the same.  This system test has been updated for the
change.
        * Modified the Relax_disp.test_sprangers_data_to_mmq_cr72
system test to pass on certain systems.  This test fails on 32-bit
Linux (and probably other systems as well).  To fix the test, the kex
values are all divided by 100 before checking them to 4 decimal places
of accuracy.
        * Improved how the relax installation path is determined in
the status object.  If the path cannot be found, the current working
directory is then checked if it is where relax is installed.  This is
needed when importing modules outside of relax.
        * Hack to permanently eliminate the ^[[?1034h escape code
being produced on Linux systems.  This is produced by importing the
readline module.  The escape code will be sent to STDOUT every time
relax is executed, so it will be present in all log files.  The
problem is the TERM environmental variable being set to 'xterm'.  The
hack simply sets TERM to an empty string.
        * More hacks for permanently eliminating the ^[[?1034h escape
code being produced on Linux systems.  This is a nasty feature of the
GNU readline library.  It is now also turned off in the dep_check
module, suppressing ^[[?1034h in Python scripts which import only
parts of relax.
        * Numpy version 1.6 or higher is now required to be able to
run relax.  This follows from the series of messages:
http://www.mail-archive.com/relax-devel@xxxxxxx/msg06288.html,
http://www.mail-archive.com/relax-devel@xxxxxxx/msg06289.html,
http://www.mail-archive.com/relax-devel@xxxxxxx/msg06327.html, and
http://www.mail-archive.com/relax-devel@xxxxxxx/msg06335.html.  If too
many users complain, maybe this change can be reverted later.  This
minimal numpy version is needed for many of the speed ups going in the
relaxation dispersion and frame order analyses.  It is required for
the numpy ufunc out arguments and for the numpy.eigsum() function.
These will likely be used in other analyses in the future for
improving the speed of relax, so it might affect users of other
analyses later on.
        * Updated the numpy minimal dependency in the installation
chapter of the manual to version 1.6.
        * Added better epydoc sectioning to the
lib.dispersion.ns_cpmg_2site_expanded module docstring.  This is to
better separate the original scripts used to document the code
evolution.
        * Empty lines are now handled by the
lib.structure.pdb_write.record() function.  By supplying the remark as
None, empty lines can now be created in the REMARK section of a PDB
file.  This can be used for nicer formatting.
        * Fixes for the Diffusion_tensor system tests due to the
recent PDB file changes.  Prior to the comparison of the generated PDB
files, all REMARK PDB lines are now stripped out.
        * Fixes for all system tests failing due to the expanded and
improved PDB REMARK section.  The system tests now remove all REMARK
records prior to comparing file contents.  The special strip_remarks()
system test method has been created to simplify the stripping process.
        * Fix for the software verification tests.  The recent
expansion and improvements of the REMARK records created by the
internal structural object PDB writing method imported the relax
version to place this information into the PDB files.  However this
breaks the relax library design, as shown by the verification tests.
Instead the relax version information is being taken from the
lib.structure.internal.object.RELAX_VERSION variable.  This defaults
to None, however the version module now sets this variable directly
when it is imported so that it is always set to the current relax
version when running relax.
        * General Python 3 fixes via the 2to3 script.
        * Removed the lib.compat.sorted() function which was providing
Python2.3 compatibility.  For a while now, relax has been unable to
run on Python versions less than 2.5.  Therefore there is no use for
having this replacement function for Python <= 2.3 which was being
placed into the builtins module.
        * Python 3 fixes for the entire codebase using the 2to3
script.  The command used was: 2to3 -j 4 -w -f xrange .
        * The internal structural object add_molecule() and
has_molecule() methods are now model specific.  This allows for finer
control of structural object.
        * Created the new lib.structure.files module.  This currently
contains the single find_pdb_files() function which will be used to
find all *.pdb, *.pdb.gz and *.pdb.bz2 versions of the PDB file in a
given path.
        * Fix for the breakage of the relax help system.  This was
reported at http://thread.gmane.org/gmane.science.nmr.relax.devel/6481.
The problem was that the TERM environmental variable was turned off to
avoid the GNU readline library on Linux systems emitting the ^[[?1034h
escape code.  See the message at
http://thread.gmane.org/gmane.science.nmr.relax.devel/6481/focus=6489
for more details.  However the Python help system obviously requires
this environmental variable.  Now only if the TERM variable is set to
'xterm' will it be reset, and to 'linux' instead of the blank string
''.  This does not affect any relax releases.


    Bugfixes:
        * Fix for the wrong unpacking of R20A and R20B in model CR72
full.  Bug #22146: (https://gna.org/bugs/?22146) Unpacking of R2A and
R2B is performed wrong for clustered "full" dispersion models.
        * Fix for the wrong unpacking of R20A and R20B in model B14
full.  Bug #22146: (https://gna.org/bugs/?22146) Unpacking of R2A and
R2B is performed wrong for clustered "full" dispersion models.
        * Fix for the wrong unpacking of R20A and R20B in model NS
CPMG 2SITE 3D full model.  Bug #22146: (https://gna.org/bugs/?22146)
Unpacking of R2A and R2B is performed wrong for clustered "full"
dispersion models.
        * Fix for the wrong unpacking of R20A and R20B in model NS
CPMG 2SITE STAR full model.  Bug #22146: (https://gna.org/bugs/?22146)
Unpacking of R2A and R2B is performed wrong for clustered "full"
dispersion models.
        * Bug fix for the lib.io.file_root() function for multiple
file extensions.  The function will now strip off all file extensions.
        * Fix for bug #22210 (https://gna.org/bugs/?22210), the
failure of the 'LM63 3-site' dispersion model.  The problem is
described in the bug report - the multiplication in the tanh()
function is a mistake, it must be a division.
        * Fix for the Library.test_library_independence verification
test on MS Windows.  The tearDown() method now uses the error handling
test_suite.clean_up.deletion() function to remove the copied version
of the relax library.
        * Fixed the packing out of parameter tex for global analysis
in model IT99.  Bug #22220 (https://gna.org/bugs/index.php?22220):
Unpacking of parameters for global analysis in model IT99, is
performed wrong.
        * Fix for bug #22257, the freezing of the GUI after using the
free file format window on Mac OS X.  This is reported at
https://gna.org/bugs/?22257.  This is a recurring problem in Mac OS X
as it cannot be tested in the relax test suite.  The problem is with
wxPython.  The modal dialogs, such as the free file format window,
cannot be destroyed on Mac OS X using wx.Dialog.Destroy() - this kills
wxPython and hence kills relax.  The problem does not exist on any
other operating system.  To fix this, all wx.Dialog.Destroy() calls
have been replaced with wx.Dialog.Close().



Related Messages


Powered by MHonArc, Updated Fri Jul 04 00:40:03 2014