mailrelax version 3.2.1


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

Header


Content

Posted by Edward d'Auvergne on May 23, 2014 - 15:59:
This is a major bugfix release which includes the equations for the
"B14" and "B14 full" relaxation dispersion models, from Baldwin 2014
and introduced with relax version 3.2.0, now being calculated
correctly, the 'NS CPMG 2-site expanded' model correctly handling edge
cases where no exchange is expected, and the structure.delete user
function correctly operating when multiple models are loaded into the
data store.

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:
        * N/A


    Changes:
        * Punctuation fixes throughout the CHANGES document.
        * Modified system test
Relax_disp.test_cpmg_synthetic_ns3d_to_cr72 to catch bug #22017:
(https://gna.org/bugs/index.php?22017) LinAlgError, for all numerical
CPMG models.  System test was renamed from test_cpmg_synthetic_cr72 to
test_cpmg_synthetic_ns3d_to_cr72, to reflect which model create the
data and which model fits the data.
        * Modified cpmg_synthetic script to first create all time
structures before doing back-calculation.  Bug #22017:
(https://gna.org/bugs/index.php?22017) LinAlgError, for all numerical
CPMG models.  The numerical models need all time points which are
defined in setup to be present when calculating.
        * Renamed system test to
test_cpmg_synthetic_ns3d_to_cr72_noise_cluster.  The model that
creates the data has been changed to numerical model.  Bug #22017:
(https://gna.org/bugs/index.php?22017) LinAlgError, for all numerical
CPMG models.
        * Implemented system test
Relax_disp.test_cpmg_synthetic_ns3d_to_b14.  Bug #22021:
(https://gna.org/bugs/?22021) model B14 shows bad fitting to data.
This is to catch model B14 showing bad fitting behaviour.
        * Parameter precision increase for system test
Relax_disp.test_baldwin_synthetic.  The correct implementation of the
trigonometric functions allow for higher precision.  Bug #22021:
(https://gna.org/bugs/?22021) model B14 shows bad fitting to data.
Duplicate line codes were also removed.
        * Code cleanup in system test
Relax_disp.test_baldwin_synthetic_full.  Bug #22021:
(https://gna.org/bugs/?22021) model B14 shows bad fitting to data.
The precision could also be increased by 1 digit.
        * Code cleanup in system test
Relax_disp.test_baldwin_synthetic.  Bug #22021:
(https://gna.org/bugs/?22021) model B14 shows bad fitting to data.
Removing many unnecessary lines of code.
        * Added 7 unit tests demonstrating edge case 'no Rex' failures
of the 'NS CPMG 2-site expanded' model.  This follows from the ideas
in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858.
 These tests cover all parameter value combinations which result in no
exchange: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw =
0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex
= 0.0.  Such tests should be replicated for all dispersion models.
        * Created the
Structure.test_bug_22069_structure_delete_helix_attribute system test.
 This is to catch bug #22069 (https://gna.org/bugs/index.php?22069),
the failure of the structure.delete user function with
"AttributeError: Internal instance has no attribute 'helices'".
        * Created the
Structure.test_bug_22070_structure_superimpose_after_deletion system
test.  This is to catch bug #22070
(https://gna.org/bugs/index.php?22070), the failure of the
structure.superimpose user function after deleting atoms with
structure.delete.
        * Added some checks to the
Structure.test_bug_22070_structure_superimpose_after_deletion system
test.  These tests reveal the real problem - that the atoms of the
second model have not been removed by the structure.delete user
function.
        * Added git-svn support for the relax version information
module.  This allows the subversion revision number and repository URL
to be displayed on program startup, so that it is stored in log files.
 This is very useful for debugging purposes.
        * Improvements for the git-svn support in the relax version
module.  Python 3 is now correctly handled and the URL is properly
extracted from the git repository.
        * Improvement for the unit test printouts when run with the
--time command line option.  The full unit test name is now printed
out, reverting to the old behaviour.  However the shortened test names
are preserved for the other test suite categories.
        * Created the test_ns_cpmg_2site_expanded_no_rex8() relaxation
dispersion unit test.  This is a demonstration, showing the 'NS CPMG
2-site expanded' model with no exchange when kex = 1e5.  I.e. when the
motion is too fast for exchange to be observed.  This test should be
used for all dispersion models to make sure that they model this edge
case correctly as well.  This follows from
http://article.gmane.org/gmane.science.nmr.relax.devel/5906.
        * Attempt at fixing bug #22071, the relax unit test and system
test not functioning.  This is reported at
https://gna.org/bugs/?22071.  The fix here is that the git commands to
show the current subversion revision number only works when run from
the relax base directory, or one of the subdirectories.  This should
now be fixed, as the pipe running the command will first 'cd' to the
relax base directory.
        * Another attempt at fixing bug #22071, the relax unit test
and system test not functioning.  This is reported at
https://gna.org/bugs/?22071.  This time the complicated shell command
"cd %s; git svn find-rev $(git rev-parse HEAD)" has been replaced with
"cd %s; git svn info".
        * Changed most default dispersion parameter values to avoid
edge cases where there is no exchange.  The dw parameters were all 0.0
and kex 1e5, both of which result in no exchange.  If this is ever
used for an optimisation starting point - which it never should, apart
from development, test suite, and debugging purposes - then the
optimisation algorithm will have a very hard time recovering.  The pA
parameter has been changed to 0.90 to set it to a reasonable value
while still staying far away from the no exchange condition of pA =
1.0.  This follows from
http://article.gmane.org/gmane.science.nmr.relax.devel/5917.
        * Fixes for 3 dispersion system tests for the change in
default parameter values.  The default values are used in the
auto-analysis in the test suite to avoid the grid search.  The changed
values affected the optimisation of two spins from Flemming Hansen's
data located at test_suite/shared_data/dispersion/Hansen/, residue 4
used as an example of no exchange and residue 70 used as an example
where data is only available at one field.  The system test
Relax_disp.test_set_grid_r20_from_min_r2eff_cpmg was also modified as
it was directly checking these default values.
        * Fix for the Relax_disp.test_cpmg_synthetic_dx_map_points
system test.  This uses the default parameter values to start the
optimisation, therefore the recent change away from edge case 'no Rex'
values allows the parameter values stored in ds.dx_clust_val to be
correctly optimised.
        * Speed up for the version module when using a repository copy
of the code.  The repository revision and URL and now stored as module
variables, so that the 'svn info' and 'git svn info' commands are only
run twice, once for the revision() function and once for the url()
function.
        * Large speed up for the relax start up times for svn and
git-svn copies of the relax repository.  The 'svn info' and 'git svn
info' commands are now only executed once when the version module is
first imported.  The revision() and url() functions have been merged
into the repo_info() function and this is called when the module is
imported.  This repo_info() function stores the repository revision
and URL as the version.repo_revision and version.repo_url module
variables.  It also catches if these variables are already set, so
that multiple imports of the module do not cause the repository
information to be looked up each time.  Previously the revision() and
url() functions where called every time a relax state or result file
was created, hence for repository copies the 'svn info' or 'git svn
info' commands were being called each time.  The functions were also
called for each interpreter object instantiated, and for each import
of the version module.


    Bugfixes:
        * Extremely important fix for the model B14.  This was
discovered by author Andrew Baldwin by inspecting his code in relax.
Bug #22021: (https://gna.org/bugs/?22021) model B14 shows bad fitting
to data.  The implementation was performed wrong for calculation of g3
and g4.  The implementations should be performed by trigonometric
functions.  The model B14 was previously in a state of
non-functioning.  The B14 model now shows excellent performance.
        * Fix for bug #22069 by only deleting helix and sheet data
with structure.delete when it exists.  This is bug #22069
(https://gna.org/bugs/index.php?22069), the failure of the
structure.delete user function with "AttributeError: Internal instance
has no attribute 'helices'".
        * Fix for all edge case 'no Rex' failures of the 'NS CPMG
2-site expanded' model.  This uses the no exchange checking idea,
modified to function in the relax trunk, from
http://article.gmane.org/gmane.science.nmr.relax.devel/5847.  This is
importantly on line 1 of the function.  The recently introduced set of
7 unit tests comprehensively showing these failures now all pass.
        * Important bug fix for the structure.delete user function
when multiple models are present.  This is to fix bug #22070
(https://gna.org/bugs/index.php?22070), the failure of the
structure.superimpose user function after deleting atoms with
structure.delete.  The problem is that structure.delete was removing
the atoms from the first model but none of the others.  This is
because it was using the structural object atom_loop() method to find
the atoms to be deleted, but this method operates on the first model.
So when the second model is reached, the atoms are already gone.



Related Messages


Powered by MHonArc, Updated Mon May 26 01:00:03 2014