mailrelax version 3.2.0.


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

Header


Content

Posted by Edward d'Auvergne on May 21, 2014 - 13:45:
This is a major feature release.  It includes the addition of the new
"B14" and "B14 full" relaxation dispersion models (from Baldwin 2014),
a complete rearrangement of the module layout of the specific analyses
packages, a number of new user functions, documentation improvements
including the addition of a new chapter to the manual for the N-state
model or ensemble analysis, and numerous of other features.  This is
also a major bugfix release, so all users are recommended to upgrade.
This is essential if you are using the new relaxation dispersion
analysis in relax as a severe bug in the error calculation has been
corrected.  See below for a comprehensive list of new features, the
rather large number of changes, and the long list of all bugs fixed.

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:
        * Addition of the vector_angle() relax library function for
calculating the signed or directional angle between two vectors.
        * Huge speed up of the interatom.define user function.
        * For improved feedback, a busy cursor is shown in the GUI
when executing user functions.
        * The steady-state NOE auto-analysis now produces a 2D Grace
plot of the reference and saturated spectra peak intensity values.
        * Complete redesign of the specific analyses backend,
simplifying and cleaning up this internal API and making it easier for
users to add completely new analysis types to relax.
        * Parametric reduction of the rotor frame order model,
eliminating one redundant parameter hence simplifying optimisation.
        * Large improvement for the lib.software.grace module.  The
'*_err' and '*_bc' parameter names for the parameter error and
back-calculated parameters respectively are now supported, allowing
these values to be easily plotted.
        * Expansion of the value.set user function to handle
parameters which consist of lists of values.  The index argument has
been added to allow the index of the list to be specified, and this is
then propagated into the specific analysis API.
        * Improvements for the parameter definitions in all analysis
types.  This allows for better output in 2D plots and text files.
        * Implemented linear constraints for the frame order analysis.
 This uses the log-barrier constraint algorithm in the minfx library
https://gna.org/projects/minfx/ to provide constraints without
requiring gradients.
        * Improved and expanded the relax command line options for debugging.
        * Full independence of the relax library so that it can be
used outside of relax.
        * The addition of a relaxation dispersion user function for
setting the R20 values to the minimum R2eff value.
        * Expanded capabilities for the relax_disp.sherekhan_input
user function.
        * Implementation of the "B14" and "B14 full" relaxation
dispersion CPMG models for 2-site exchange for all time scales (from
the new Baldwin 2014 paper at
http://dx.doi.org/10.1016/j.jmr.2014.02.023).
        * Large improvements to the relax HTML manual at
http://www.nmr-relax.com/manual/index.html including fixes for URLs,
bibliography entries, links, and tables.
        * Support for multiple point creation for the OpenDX
chi-squared space mapping user function.
        * Automatic determination of reasonable initial contour levels
for the OpenDX mapping user function.
        * Addition of a new chapter to the manual for the N-state
model or ensemble analysis.
        * Creation of the new pymol.frame_order user function for
visualising results.
        * Expansion of the Grace 2D data plotting capabilities.


    Changes:
        * Shifted two functions from pipe_control.angles into the new
lib.geometry.angles module.  This is the fold_spherical_angles() and
wrap_angles() functions which are not related to the relax data store
and hence can be made independent.
        * Replaced function atan(omega1 / Delta_omega) with
atan2(omega1 , Delta_omega), to make sure returned theta values are
between 0 and pi.  This was done in the function return_offset_data()
in the specific_analyses of relax_disp.  This was discussed in:
http://thread.gmane.org/gmane.science.nmr.relax.devel/5210.
        * Changed a unit test and system test, where a change from the
atan to atan2 function to calculate theta can give differences to the
15 decimal.
        * Replaced how a global analysis average results from a
previous run to instead take the median.  This is to prevent averaging
extreme outliers, and instead take the median of the previous result.
This was discussed in:
https://mail.gna.org/public/relax-devel/2013-10/msg00009.html.
        * Modified system test Relax_disp.test_r1rho_kjaergaard to use
input guess values of phi_ex in units of ppm^2 instead of rad^2/s^2.
        * Small change to system test
Relax_disp.test_r1rho_kjaergaard.  The outcome of kex from system test
is in the area of 4-5000. The expected value is 13000.  A deeer
analysis of the input is needed, to judge what is the correct value.
        * Created the Structure.test_bug_21814_pdb_no_80_space_padding
system test.  This is for catching bug #21814
(https://gna.org/bugs/?21814), the PDB reading failure when the PDB
records are not padded to 80 spaces.  The PDB file used for the test
is the same file as attached to the bug report.
        * The verbosity flag is now used in the centre of mass
calculations.  The pipe_control.structure.mass.pipe_centre_of_mass()
function now passes the verbosity argument into the
lib.structure.mass.centre_of_mass() function.
        * Created the new vector_angle() library function.  This is
located in the lib.geometry.vectors module.  The function will
calculate the angle between two vectors with sign or direction using
the atan2() function.
        * Addition of a number of unit tests for the new
lib.geometry.vectors.vector_angle() function.
        * Changes to the lib.geometry.vectors.vector_angle() function.
 This now expects the normal of the plane in which the angle is
defined.  The original logic was not functional, therefore the angle
is forced to be negative if the cross product between the two vectors
points in the opposite direction as the normal.
        * Improvements for the log converter script.  This is for the
script used to convert SVN messages into a format for the relax
release announcement.  The script now handles spacing better.
Multi-line messages are now concatenated into a single line using a
double space between separate sentences and a single space in all
other cases.
        * Improvements for the
pipe_control.mol_res_spin.generate_spin_id_unique() function.  The
unique spin ID now takes into account if the molecule is named or not
(for single molecules).  This allows the function to be used when
dealing with the structural data rather than the molecule, residue,
and spin data structure.
        * Removed the full stop from the printout of the test names in
the test suite.  This allows for quicker copying and pasting of the
test name when running with the --time option and then selecting a
single test to run.
        * Modified the Noe.test_noe_analysis system test to catch bug
#21863 (https://gna.org/bugs/?21863).  This is the failure to create
the ref and sat Grace 2D plots in the NOE analysis.
        * Improved the user feedback when executing a user function in
the GUI.  The busy cursor is now turned on at the start of the user
function wizard page method _apply() and turned off again at the end.
This would avoid user confusion, thinking that the program has frozen
(as was the case in bug #21862, https://gna.org/bugs/?21862).
        * Changed the Noe.test_noe_analysis system test to handle the
peak intensities correctly.  This relates to bug #21863
(https://gna.org/bugs/?21863), the grace.write user function not being
able to write ref/sat plots as described in sample script noe.py.
Instead of trying to produce the 'ref.agr' and 'sat.agr' files for the
non-existent 'ref' and 'sat' parameters, instead the 'intensities.agr'
file is being produced for the peak intensity parameter.  The
reference and saturated intensities will appear as two graph sets
within that plot.
        * Changed the Noe analysis sample script to properly handle
the peak intensity Grace plots.  This relates to bug #21863
(https://gna.org/bugs/?21863), the grace.write user function not being
able to write ref/sat plots as described in sample script noe.py.
Instead of trying to produce the 'ref.agr' and 'sat.agr' files for the
non-existent 'ref' and 'sat' parameters, instead the 'intensities.agr'
file is being produced for the peak intensity parameter.  The
reference and saturated intensities will appear as two graph sets
within that plot.  These changes match those of the test suite.
        * Fix for the line numbering for the NOE analysis sample
script in the user manual.  The line numbering for the code snippets
did not match that of the full sample script shown at the start of
that section of the NOE chapter.
        * Added a simple shell script to quickly grep the entire
source tree while excluding .svn directories.  This will only work on
POSIX systems (Linux and Macs).
        * Fix for the Noe.test_bug_21562_noe_replicate_fail system
test.  The 'ref' and 'sat' parameters do not exist.  Therefore the
grace.write user function calls in the system test script have been
modified to output the 'intensities' parameter instead.
        * Complete rearrangement of the specific analysis code for the
steady-state NOE.  This brings the code into line with the recent
specific analysis code rearrangements, specifically in the
specific_analyses.relax_disp package.
        * Changed the Noe auto-analysis to properly handle the peak
intensity Grace plots.  This relates to bug #21863
(https://gna.org/bugs/?21863), the grace.write user function not being
able to write ref/sat plots as described in sample script noe.py.
Instead of trying to produce the 'ref.agr' and 'sat.agr' files for the
non-existent 'ref' and 'sat' parameters, instead the 'intensities.agr'
file is being produced for the peak intensity parameter.  The
reference and saturated intensities will appear as two graph sets
within that plot.
        * Redesign and standardisation of the peak intensity data
structure throughout all analyses in relax.  The various structures
'intensities', 'intensity_err', 'intensity_sim', 'sim_intensity', and
'intensity_bc' have all been renamed.  The new structures are called
'peak_intensity', 'peak_intensity_err', 'peak_intensity_sim' and
'peak_intensity_bc'.  This allows the structure to be processed as a
standard parameter in the specific analysis API.  One very visible
consequence is that plots of peak intensities, as well as value files,
will now have peak intensity errors.  For backwards compatibility, the
relax data store method _back_compat_hook() has been modified to catch
all previous peak intensity object variants and to standardise and
rename these to the new object names.  As the parameter is now called
'peak_intensity' rather than 'intensities', all calls to the
grace.write and value.write for this parameter have been changed in
the auto-analyses, the sample scripts, the test suite and the manual.
        * Fix for the Noe.test_noe_analysis system test.  The grace
plots of the peak intensities now have error bars.
        * The legends in Grace plots are now turned on by default, if
the legend flags are not specified.  The Noe.test_noe_analysis system
test has been updated for the change.
        * Added matplotlib detection to the dep_check module.  This
follows step 1 from the planning document at
http://thread.gmane.org/gmane.science.nmr.relax.devel/5278.
        * Added matplotlib to the info module.  This follows step 1
from the planning document at
http://thread.gmane.org/gmane.science.nmr.relax.devel/5278.
        * Modified the python_multiversion_test_suite.py script to run
the relax information printout.  This is to test out the info module
on multiple Python versions and to have a record of the setup of each
Python version.
        * Python 3 fixes for the info module.  The new
processor_name() function was not compatible with Python 3 as the text
read from STDOUT needs to be 'decoded'.
        * The variables in the relax_fit.h file are now all static.
        * Added the new exp_mc_sim_num argument to the relaxation
dispersion auto-analysis.  This is in preparation for fixing bug
#21869 (https://gna.org/bugs/?21869).  This argument allows for a
different number of Monte Carlo simulations for the 'R2eff' model when
exponential curves are fit.  It will mainly be useful in the test
suite to improve the accuracy of the R2eff errors, while still running
a low number of simulations for the other models to allow optimisation
to be quick.
        * Modifications to the Relax_disp.test_m61_exp_data_to_m61
system test.  This is to fix bug #21869 (https://gna.org/bugs/?21869),
the failure of this system test.  The number of Monte Carlo simulation
for the 'R2eff' model has been increased from 3 to 25 using the new
exp_mc_sim_num argument to the dispersion auto-analysis.  To keep the
test fast, only a single spin is optimised.
        * Redesign and major clean up of the
specific_analyses.jw_mapping package.  The code has been broken up
into separate modules.
        * Fix for the default value table documentation in the
specific_analyses.jw_mapping package.  This was broken in the last
commit.
        * Updates for the rest of relax for the redesign of the
specific_analyses.jw_mapping package.
        * Redesign and major clean up of the
specific_analyses.consistency_tests package.  The code has been broken
up into separate modules.  This matches the similar
specific_analyses.jw_mapping package.
        * Redesign and major clean up of the
specific_analyses.relax_fit package.  The code has been broken up into
separate modules.  The rest of relax has been updated to handle the
changes.
        * Removed the empty documentation strings from the specific
analysis API base class.  These are being gradually shifted into the
specific_analyses.*.uf modules, so do not belong in the API object.
        * The specific analysis API classes are now all singletons.
This change will reduce the amount of memory used, as these classes
are initialised multiple times throughout relax, especially in the
test suite.  The API objects are not used for local storage so the
multiple instance verses singleton design change will make no
difference.  The singleton design pattern code has been added to the
base class specific_analyses.api_base.Api_base so that all classes
inherit the __new__() method which implements the singleton.
        * Shifted the NOE analysis specific user function
documentation from the API object to the uf module.
        * More code refactorisation of the
specific_analyses.n_state_model package into new modules.  The API
object is now in the 'api' module, the remaining private methods have
been shifted into the 'optimisation' and 'uf' modules, and the user
function documentation moved to the 'uf' module.
        * Added units tests for package consistency testing for all of
the remaining specific analyses.
        * Fixes for the unit tests for the N-state model specific
analysis package changes.
        * Updated the package __all__ lists for a number of the
specific analyses.
        * Shifted all of the private methods for optimisation from the
relaxation dispersion API object.  These are now functions of the
specific_analyses.relax_disp.optimisation module.
        * Created the new specific_analyses.relax_disp.uf module.
This consists of the private methods of the relaxation dispersion API
object which act as the back end for the user functions, as well as
the user function documentation, all shifted from the 'api' module.
        * Shifted the model-free analysis specific API object to the
specific_analyses.model_free.api module.
        * Fixes for the new specific_analyses.model_free.api module.
        * Created the new specific_analyses.model_free.uf module.
This consists of the private methods from the 'main' module which act
as the back end for the user functions as well as the user function
documentation.
        * Created the new specific_analyses.model_free.parameters
module.  This consists of the private methods from the 'main' and
'mf_minimise'.  All class methods have been converted into functions.
        * Created the new specific_analyses.model_free.optimisation
module.  This consists of the merger of the 'mf_minimise' and
'multi_processor_commands' modules.  All the private class methods
have been converted into functions.
        * Shifted all of the model-free specific analysis API methods
into specific_analyses.model_free.api.
        * Clean up and refactoring of the
specific_analyses.model_free.bmrb module.  The class methods have all
been converted into functions, the deleted class is no longer a base
class for the specific analysis API class.
        * The read_columnar_results() method has been removed from the
specific analysis API.  This is only for backwards compatibility with
ancient relax 1.2 and earlier model-free results files, so will never
be used by any other analysis.
        * Converted all of the class methods in
specific_analyses.model_free.results to functions.  This class has
been removed from the API as well.
        * Renamed specific_analyses.model_free.results to back_compat.
 This is to make the purpose of the module clearer, to avoid developer
confusion.
        * Shifted the model-free classic_style_doc user function
documentation to the 'uf' module.
        * Shifted the last private method out of the model-free
specific analysis API class.  It has been converted into a function of
the new 'data' module, for lack of a better name.
        * Shifted some of the specific_analyses.model_free.parameters
functions into the new 'model' module.
        * Removed the test_grid_ops() method from the specific
analysis API.  This has been shifted into the new lib.optimisation
module and converted into a function, breaking a number of circular
import kludges.
        * Fixes for the specific analysis API unit tests.  The
'instance' variable used for the singleton design pattern is skipped
in the method and object checks.
        * Redesign of the specific analysis API.  All parts of relax
using this API now work with the API objects directly.  The
specific_analyses.setup module has been renamed to
specific_analyses.api and the get_specific_fn() function has been
eliminated.  Instead of calling this, the different parts of relax now
obtain the API object by calling the new return_api() function.  This
results in a large cleanup of the API - method names are no longer
changed to a different name.
        * Fix for the new singleton design of the specific analysis
API objects.  The use of the class namespace as a storage space has
been eliminated.  This was causing test suite failures when checking
the API objects.  For some reason, some of the target function objects
were being placed in 'self'.
        * Created a directory for holding the CaM double rotor frame
order synthetic data.
        * Capitalised the pivot and CoM variables in the base frame
order distribution generation script.
        * Reintroduced the distribution PDB file creation to the frame
order test data generation script.  This is the generate_base.py
script in the test_suite/shared_data/frame_order/cam directory.  The
ability to create the distribution.pdb file was long lost in this
script, and can now be activated using the DIST_PDB class variable.
        * The Frame Order test data generation base script now loads
all structures before rotating them.  This allows the progress
printout to function correctly by not having any user function
printouts as the rotations are occurring.
        * Created a simple double rotor geometric system to used for
this frame order test data generation.  The system_create.py script
creates the geometric system based on the CoMs of both domains in the
parent directory and two perpendicular rotation axes passing through
both CoMs.  A PDB file of the representation is created by the script.
        * Improvements and expansion of the frame order test data
generation base script.  More of the class variables are now defined
in this base class and dummy methods are provided to allow certain
operations to be skipped (print_axis_system(), axes_to_pdb() and
build_axes()).  Importantly, the script can now handle multiple modes
of motion with the introduction of the key _multi_system() and
_state_loop() methods.
        * Fixes for the calculation of the frame order matrix in the
test data generation base script.  The matrix generation now handles
multiple modes of motion correctly.  The total rotation matrix is
constructed when looping over the modes by using the dot product of
the individual rotation to the total, and then this is used to create
the outer product, summed over all states.
        * The frame order test data generation base script now outputs
the frame order matrix to 8 places.
        * Introduced the ROT_FILE flag to the frame order test data
generation base script.  This allows the 'rotations.bz2' file creation
to be skipped, if set to False.  This file takes time to create and is
of limited use.
        * Removed a duplicated state.save call in the frame order test
data generation base script.
        * The save file created by the frame order test data
generation base script can now be bypassed.  When loading 1,000,000
PDB structures as models into the relax data store, the RAM usage can
go over 10 Gb.  When trying to save this into a relax state file with
the state.save user function, the time required can be over a day.
Therefore the SAVE_STATE class variable has been introduced to allow
the state.save call to be bypassed.
        * Created the RDC and PCS back calculated test data for the
CaM double rotor frame order model.  This consists of a uniform
distribution over both rotors, the first centred in the C-domain and
the second in the N-domain, and the two axes being perpendicular to
each other along the CoM-CoM axis.  The distribution consists of
250000 rotated structures.  The frame order matrix for this model is
also given.
        * Created a distribution of structures for the CaM double
rotor frame order model.  This is only for a distribution of 100
structures, to keep the file size to a reasonable size.  A PyMOL *.pse
file is also included to show the distribution together with the rotor
system and the domain positions.
        * Updated the rotation() method of all the CaM frame order
test data generation scripts.  The motion_index argument is now
accepted by all of the methods to allow the base script to execute
correctly.
        * Fix for the Frame_order.test_generate_rotor2_distribution
system test.  The rotation() method now must accept the motion_index
keyword argument.
        * Created the Frame_order.test_cam_double_rotor system test
for the CaM synthetic data.  This will be used to implement the frame
order double rotor model.
        * The CaM double rotor frame order test RDC data now has
single quotes around the spin IDs.  This allows the data to be loaded
in the Frame_order.test_cam_double_rotor system test.
        * Created subsets of the CaM double rotor frame order test PCS
data.  This consists of data for only 5 spins, and matches those of
the other CaM frame order test data.
        * Large refactorisation of the frame order package.  The
private methods of the frame order package
specific_analyses.frame_order have now all been shifted into modules.
This is to simplify the package by not having huge quantities of code
in the __init__ module.  Now the code resides in the api, checks,
data, optimisation, parameters, and user_functions modules.
        * Added the double rotor frame order model to the
frame_order.select_model user function.
        * Better support for the parameters of the double rotor frame
order model.
        * Initial implementation of the double rotor frame order model
target function.  The target function func_double_rotor() has been
created as a copy of the func_rotor_qrint() method, modified for the
double rotor model.  Modifications will likely be needed as the
compile_2nd_matrix_double_rotor() and pcs_numeric_int_double_rotor()
functions are implemented.
        * Initial implementation of the lib.frame_order.double_rotor
module.  This module implements the functions needed to solve the
frame order analysis for the RDC (via the frame order matrix) and PCS
(numerically).  The interfaces have been updated for the double rotor
but most of the code still implements the basic rotor model from which
it derives.
        * Fix for the double rotor frame order model when only RDCs
are used.  The target function was not being aliased when no PCS data
was present.
        * Changed the precision of the deactivated
Frame_order.test_cam_double_rotor_pcs system test.  This test will run
with the command "relax -s Frame_order.test_cam_double_rotor_pcs" and,
because of the small angle of the test model, the chi-squared value
differences for just the PCS were too small for the previous precision
of 1 decimal place.
        * The double rotor system is now truly perpendicular.  This is
for the CaM frame order synthetic test data.  The two axes were not
perpendicular whereas for the model they should be.
        * Updated the double rotor distribution PDB file for the
perpendicular axes.  This is for the CaM frame order double rotor
synthetic data.  The number of structures in this distribution is set
to 100 (10 per motional mode).  The PyMOL *.pse file has also been
updated.
        * Updated the CaM frame order double rotor synthetic test data
for the perpendicular axes.  The RDC and PCS data has been
recalculated for 250,000 structures, this time with the axes being
truly perpendicular.
        * Added a simple script for analysing the eigensystem of the
CaM frame order double rotor test model.
        * Capitalised the class variables of all of the CaM frame
order system test scripts.
        * Class variable cleanup for the CaM frame order system test
scripts.  The variables are now all defined in the base script and
only overwritten when needed by the individual tests.
        * Changed the handling of the pivot point in the CaM frame
order system tests.  The pivot point is now a class variable, rather
than being hardcoded into a function.  The handling of a second pivot
has also been added.
        * Updated the CaM frame order double rotor system test script
to have the correct two pivots.
        * Changes to the frame_order.pivot user function.  The 'order'
argument has been added to allow for multiple pivots to be present.
The user function backend will store these as cdp.pivot, cdp.pivot2,
cdp.pivot3, etc.  The 'fix' argument is now defaulting to False to
make sure it is always boolean.
        * The second pivot is now being passed into the frame order
target function class.
        * Simplified the CaM frame order system test base script.  The
class variables are now always defined, so checking for their
existence is pointless.  The CONE_S1 is now also defined in the base
script as a class variable.
        * Added support for the new axis_alpha frame order parameter
to the specific_analyses.frame_order package.
        * Implemented the new frame order rotor model parameters in
the target function.  The parameters {axis_theta, axis_phi} have been
replaced by the single axis_alpha.  To support the new model
construct, the CoM of the entire system is now passed into the target
function.
        * The AXIS_ALPHA parameter is now initialised in the CaM frame
order system test base script.  The base script was broken a while
back due to AXIS_ALPHA not being defined but being checked for.
        * Improvements for the centre of mass calculation for the
frame order model optimisation.  This is now only calculated for the
rotor models.  The CoM is also printed out for better user feedback.
        * The CaM frame order system tests for the rotor models are
converted to the new axis_alpha parameter.  The axis_theta and
axis_phi spherical coordinates are converted to the new reduced
parameter set defined by a random point in space (the CoM of all
atoms), the pivot point, and a single angle alpha.
        * The CaM frame order system test base script is now using
lib.geometry.vectors.vector_angle().  This is for correctly
calculating the alpha axis angle for the rotor models.
        * Fixes for the rotor axis alpha angle conversion in the CaM
frame order system test base script.  The pivot point is now the point
on the rotor axis closest to the reference point (the CoM).  Therefore
the closest point is now calculated from the pivot point on the axis
and the axis vector.  This closest point is needed for defining the
new minimal parameter set for the rotor models.
        * Changes for the convert_rotor() method of the CaM frame
order system test base script.  The method now sets the alpha angle
rather than returning it.  The method now also resets the pivot point
to the point on the rotation axis closest to the CoM.
        * Fixes for the rotor axis reconstruction in the
func_rotor_qrint() frame order target function.  This is for the rotor
model.  The axis alpha angle is now correctly converted into the rotor
axis using the CoM and pivot point.
        * Optimisation is now turned on for the
Frame_order.test_cam_rotor2 system test.  This is to reveal
deficiencies in the handling of the new axis alpha parameter.
        * The frame order optimisation results unpacking function now
supports the axis alpha parameter.  This is in the function
specific_analyses.frame_order.optimisation.unpack_opt_results().
        * Updated the chi2 value check in some of the CaM frame order
system tests for the rotor model.  The chi2 value is slightly
different due to truncation and conversion artifacts of the parameter
set reduction.
        * Shifted all of the code for calculating the frame order
rotor axis into lib.frame_order.rotor_axis.  The new
frame_order.rotor_axis module consists of three function for creating
a unit vector or the rotor axis using either the axis alpha angle, the
two spherical angles or the three Euler angles.
        * Renamed the specific_analyses.frame_order.user_functions module to 
uf.
        * Fix for the optimised chi-squared value check in the
Frame_order.test_cam_rotor system test.  The reduced parameter set
results in a slightly different chi2 value.
        * Shifted the frame order average domain position info check
from the 'optimisation' to 'checks' module.
        * Fix for the CaM frame order system tests.  The axis alpha
angle and pivot shifting to the closest point to the CoM in the base
system test script now only happens for the 'rotor' and 'free rotor'
models.  This allows the tests for the isotropic cone models to pass
again.
        * Fixes for all of the CaM frame order optimisation scripts in
the test data directories.  The frame_order.average_position user
function is now essential.
        * The centre of mass printout in the frame order target
function setup now uses the verbosity argument.  This means that the
printout is not shown for the Monte Carlo simulation optimisation.
        * Correction for the nu_CPMG to tau_CPMG conversion formula in
the dispersion chapter of the manual.  In relax, the conversion
nu_CPMG = 0.25 * tau_CPMG is used and not nu_CPMG = 0.5 * tau_CPMG.
        * Merged the Van't Hoff and Arrhenius lines of the dispersion
software comparison table of the manual.
        * Renamed the specific_analyses.relax_disp.disp_data module to
specific_analyses.relax_disp.data.  This is to match the module naming
convention used in the other specific analyses, and as detailed in the
post http://thread.gmane.org/gmane.science.nmr.relax.devel/5294.
        * Updated all of the frame order optimisation scripts for the
CaM test suite data.  These simple testing scripts were very much out
of date and non-function for the current code.  Half of the code in
these scripts is now implemented in the concise frame_order.pdb_model
user function.
        * Updated the ancient
test_suite/shared_data/frame_order/cam/rotor2/pcs_only/frame_order.py
script.  This now matches the script of its parent directory.
        * Simplified all of the CaM frame order optimisation testing
scripts.  These are for the synthetic test suite data.  The
unnecessary class structure of the scripts has been eliminated.
        * The frame_order.pivot user function can now be used to turn
the pivot optimisation on and off.  If the pivot point is not given,
this user function will now just set the fixed flag and nothing else,
allowing the optimisation status of a pre-set pivot to be changed.
        * Added the axis alpha angle to the frame order return_units()
API method.
        * The frame order axis alpha angle is now defined in the grid
search from -pi to pi.
        * Replaced the 'elif' statements with 'if' in the frame order
update_model() function.  This is to avoid possible future bugs as the
logic was not consistent.
        * Renamed the specific_analyses.api_objects module to
parameter_object to better reflect what it is.  This contains a single
object for the parameter list object and therefore does not need to be
generalised for additional types of objects for the specific analysis
API.
        * Updated the module docstring of
specific_analyses.parameter_object to match its purpose.
        * Created a parameter list object for the relaxation
dispersion analysis.  Instead of using the parameter list object from
the base class, the dispersion analysis now defines its own.
        * Docstring improvements for the add_min_data() parameter list
base class method.
        * Created two new parameter list methods from the relaxation
dispersion code.  The add_model_info() and add_peak_intensity() base
class methods have been created from the relaxation dispersion code.
These are just aliases for setting up a number of parameters via add()
in a standard way.
        * The frame order specific analysis API object is now truly a
singleton.  This should help eliminate some bugs.
        * Standardised all of the parameter list objects for the
specific analyses.  All of the specific_analyses packages now contain
a parameter_object module which defines all of the parameters.  The
ordering of these is now consistent between the analyses, the result
of which will be more consistent ordering of element in the relax XML
state files.  The new Param_list.add_csa() base class method has been
added to standardise the CSA parameter.  And the capabilities of the
add_model_info() method has been expanded.
        * The parameter list objects in the specific analysis API are
now singletons.  This has no immediate benefit as these classes are
only instantiated once.  But it will allow for efficient reuse of
these objects in the future and for expansions of the specific
analysis API.
        * The frame order pivot points are now stored differently in
the current data pipe.  Instead of being stored as a list or array of
numbers in cdp.pivot, the point is now stored as cdp.pivot_x,
cdp.pivot_y and cdp.pivot_z.  The second pivot cdp.pivot2 is now
stored as cdp.pivot_x_2, cdp.pivot_y_2 and cdp.pivot_z_2.  This is to
simplify the automated handling of optimisation parameters.  Rather
than having to convert the pivot_x, pivot_y, and pivot_z parameters to
and from a list, the same mechanisms can now be used for all of the
optimised frame order parameters.  This will be used to hugely
simplify many of the functions in the
specific_analyses.frame_order.parameters module and eliminate a large
source of bugs.
        * Temporary deactivation of the
Frame_order.test_cam_double_rotor system test.
        * Huge simplification of the
specific_analyses.frame_order.parameters.assemble_param_vector()
function.  The parameters are now assembled in a generic way by
looping over cdp.params.  The simpler code should also be faster.
        * Huge simplification of
specific_analyses.frame_order.parameters.param_num().  This now simply
calls update_model() and then returns the length of cdp.params.
        * Clean up of the specific_analyses.frame_order.parameters
module.  The unused and terribly designed assemble_limit_arrays()
function has been deleted.  And unused imports have been removed.
        * Simplification of the
specific_analyses.frame_order.optimisation.unpack_opt_results()
function.  Looping over the cdp.params parameter list is now used to
minimise the amount of replicated code.
        * The frame order analysis is now using the special frame
order parameter object.
        * Elimination of the
specific_analyses.frame_order.checks.check_rdcs() function.  This
function duplicates the functionality of pipe_control.rdc.check_rdcs()
while not being as comprehensive.  Switching to the pipe_control.rdc
version minimises the amount of code in the frame order analysis,
decreasing the potential for bugs.
        * Simplified the assemble_scaling_matrix() frame order
function.  The data_type argument no longer does anything, so has been
eliminated.
        * Clean up of the base_data_types() frame order function and
it use.  The propagation of the data type list around the frame order
code is now greatly reduced.  And the alignment tensors and NOESY data
have been removed from the base_data_types() function - these are not
used.
        * Docstring fixes for the frame order specific analysis API
object.  A number of the methods were referring to the base data as
being alignment tensors, but this has changed to RDCs and PCSs a long
time ago.
        * Clean up and fixes for the frame order model_statistics()
API method.  The number of data points 'n' was incorrectly calculated
using the original alignment tensor base data.
        * Eliminated the specific analysis API object base __init__()
method.  This is no longer needed as the parameter list object is now
analysis specific and set up by each analysis type separately.  The
calls to this method from the derived classes have therefore also been
deleted.
        * Shifted the frame order specific API deselect() method into
the Api_common base class.  The method has been renamed to
_deselect_global() and extended to handle Monte Carlo simulations.
        * The specific API PARAMS object is now private.  Apart from
fixing a number of unit tests, these aliased singletons should not be
accessed by the rest of relax.
        * Created the specific analysis API common method
_is_spin_param_false().  This simply returns False.  The
is_spin_param() frame order method has been deleted and this common
method is now used instead.
        * Replaced the frame order specific API model_loop() method.
The base method _model_loop_single_global() is used instead.
        * Replaced the frame order API model_type() method with the
base _model_type_global() method.  The two methods were identical
anyway.
        * Fixes for the units of the ave_pos_x, ave_pos_y, and
ave_pos_z frame order parameters.
        * Removed the frame order API return_units() method.  This
method has been superseded by the parameter list object.
        * Added the PCS and RDC as parameters for the frame order and
N-state model analyses.  These are now defined in the respective
parameter list objects.  The base method add_align_data() has been
created to avoid code duplication.
        * Eliminated the last of the specific analysis API
return_units() methods.  This functionality is now provided by the
parameter list object.
        * Eliminated the model-free specific analysis API data_type()
method.  This functionality is now provided by the parameter list
object.
        * Converted the N_state_model.test_5_state_xz system test to
use a new way to set parameters.  Instead of using pseudo-parameters
for the value.set user function such as 'p0', 'p1', etc. for the
probabilities, which are then converted into the 'probs' parameter
with the index taken from the name, instead the index is now directly
given.  The value.set user function will need to be modified to handle
this.  The aim is to standardise the parameter list object for the
N-state model analysis.
        * Converted the remaining N-state model system tests to use
the new value.set index argument.
        * Converted all of the N-state model parameters to use the
parameter list object.  The default_value(), return_data_name() and
return_grace_string() API methods have also been deleted as these have
been superseded by the parameter list object.
        * Clean up of the N-state model user function docstrings.  The
pseudo-parameter names such as 'p0', 'p1', etc. no longer exist.
        * The new index argument for the value.set user function now
defaults to zero.  This is for backwards compatibility as the default
value of None was not handled by the user function backend.
        * Fix for one of the value.set user function unit tests.  The
'alpha2' N-state model parameter no longer exists, and the '2' is now
supplied as index=2.
        * Shifted the core of the data_names() specific analysis API
method into the parameter list object.
        * Renamed many of the specific analysis parameter list object
methods to match the API names.  This is to prepare for a decoupling
of the parameter list object from the API object.
        * Updated the relaxation dispersion citation for relax as this
is now officially published.
        * All of the add*() methods of the parameter list object have
been made private.  This is to prepare the object to be accessible to
the rest of relax, so that it can be decoupled from the specific API
object.
        * Shifted the minimisation Grace strings and units into the
parameter list object.  The return_grace_string() and return_units()
functions of the pipe_control.minimise module have been deleted and
their contents shifted into the specific analysis parameter list
object.
        * Simplified the pipe_control.minimise.minimise() function.
The specific API object only needs to be fetched once.
        * Eliminated the return_data_name() concept from the specific
analysis API.  The parameter names can now only have one value, i.e.
's2' is different from 'S2'.  In addition, a number of related
functions have been deleted form the pipe_control.minimise module as
these are now handled by the parameter list object.  The deleted
functions are return_conversion_factor() and return_value().
        * Shifted the Brownian rotational diffusion tensor parameters
into the parameter list object.  This only affects the model-free
analysis.  The pipe_control.diffusion_tensor module functions
default_value(), return_conversion_factor(), return_data_name() and
return_units() have been eliminated.  These functions have been merged
together with the diffusion parameter self._add() calls in the
model-free specific parameter list into the new parameter list base
class _add_diffusion_params() method.  To allow the model-free
analysis code to differentiate between diffusion and model-free
parameters, the new scope() parameter list base class method has been
created.  Diffusion parameters return 'global' whereas model-free
parameters return 'spin'.  The model-free specific API methods
default_value() and is_spin_param() have been deleted as these are now
provided fully by the parameter list object.  The is_spin_param()
method has been newly implemented in the parameter list object to
check the parameter scope.
        * Eliminated a lot of unused code from the
pipe_control.align_tensor module.  This includes the functions
data_names(), default_value(), map_bounds(), map_labels(),
return_conversion_factor(), return_data_name() and return_units() as
well as the unused and very old user function documentation
__default_value_prompt_doc__, __return_data_name_prompt_doc__ and
__set_prompt_doc__.  These are all remnants from the origin of the
module - the copying of the diffusion_tensor module.  But they have
never been used.
        * Changed the values of the set argument for the parameter
list object.  The 'generic' value has been renamed to 'fixed' and is
now for all permanently fixed parameters of the model - for example
the CSA value in a number of analyses.  The default set argument value
of the _add() method has been changed to 'all' so that any parameters
registered via that method are not placed in a special set (unless
specified otherwise).
        * Clean up and fixes for the parameter definitions in the
consistency testing analysis.  The fixed and calculated parameters are
now defined in the correct sets, and the description for tc has been
expanded and improved.
        * Added the ability to automatically create the parameter
tables for the user function documentation.  These are the tables used
in many of the user function docstrings.  This has been added to the
parameter list base class.  The section title is pre-specified by the
new _set_uf_title() method, and the table caption and LaTeX label by
the _set_uf_table() method.  The documentation is generated by calling
the uf_doc() method.  This uses the new type_string() method to add a
compact parameter type string representation to the table.  The aim is
to eliminate all of the hard-coded tables in the specific analyses
which are always very quickly outdated.  By automatically creating the
tables, this simplifies the codebase and simplifies the addition of
new analysis types.
        * The parameter tables are now properly initialised in all of
the specific analyses.  This will allow the tables to now be used in
the user function documentation.
        * The auto-generated user function tables can now display the
base units.
        * Spacing fix for one of the diffusion tensor parameter descriptions.
        * The label and caption for the parameter list user function
documentation is now supplied to uf_doc().  This allows different
types of tables to be generated, for example the default value is
useful for the value.set user function but not value.write, while
allowing tables to still be shared.
        * Expanded the steady-state NOE parameter description.
        * Expanded the reduced spectral density mapping parameter 
descriptions.
        * The default scope for the parameter list object uf_doc()
method is now 'spin'.  Most of the parameter tables are for setting
spin parameters, so this will minimise code.
        * Fixes for the specific analysis parameter list singleton
object.  These objects are now really singleton objects and are only
initialised once.
        * Fixes for some of the NOE system tests - the NOE parameter
description is now different.
        * Shifted the user function documentation creation into the
parameter list objects.  The uf_doc() method will now return the
pre-created documentation object, and the original base class method
for creating the documentation has been renamed to _uf_param_table().
        * Shifted all of the user functions to use the auto-generated
parameter tables.  All of the specific analysis default_value_doc and
return_data_name_doc documentation objects have been deleted and
replaced with the auto-generated ones.  This results in a big code
clean up and removes synchronisation issues with the user function
documentation quickly becoming out of date when parameters change.
        * Expansion of the dx.map user function documentation.  This
now includes tables of the N-state model and relaxation dispersion
parameters.  A new auto-generated model-free parameter table including
the diffusion parameters has been created and is now used instead of
the separate diffusion tensor and model-free parameter tables.
        * Deleted the diffusion tensor __return_data_name_doc__
documentation object.  This is no longer used, being redundant with
the new parameter list objects.
        * The frame order parameter tables for the user function
documentation are now created.
        * The dx.map user function documentation now included the
frame order parameters.
        * Different parameter sets can now be specified when creating
the parameter tables.  This is for the analysis specific parameter
list objects and the auto-generated user function documentation.
        * Clean up of the grace.write user function documentation.
The minimisation statistics table has been removed and instead the
minimisation statistics are included in the parameter tables of the
specific analyses, when appropriate.
        * Code clean up - deleted the return_data_name_doc and set_doc
pipe.control.minimise objects.  These user function documentation
objects are no longer used.  They were also extremely out of date.
        * Created the parameter list object base class _uf_doc_loop()
method.  This will be used to loop over all or subsets of the user
function documentation parameter tables.
        * The model-free parameter setting documentation has been
shifted into the parameter list object.  As the text was quite out of
date, it has been updated to the current relax design.
        * The J(w) mapping parameter setting documentation has been
shifted into the parameter list object.  This has also been updated to
reflect the current design of relax.
        * The consistency testing parameter setting documentation has
been shifted into the parameter list object.  This has also been
updated to reflect the current design of relax.
        * The relaxation dispersion parameter setting documentation
has been shifted into the parameter list object.  The documentation
has also been rewritten as it originates from Sebastien Morin back in
2009 and is now very much out of date.
        * Deleted the relaxation curve-fitting parameter setting
documentation.  This really didn't say anything.
        * The N-state model parameter setting documentation has been
shifted into the parameter list object.
        * Updated the two_domain.py N-state model sample script.  The
value setting for the N-state model is now handled differently.
        * More updates of the N-state model sample scripts for the
value.set user function changes.
        * Deleted the diffusion tensor parameter setting documentation
from the value.set user function.  These values have not been able to
be set by the value.set user function for over half a decade.
Therefore this documentation can only lead to user confusion.
        * Deletion of the user function documentation in the
pipe_control.diffusion tensor module.  The __default_value_doc__ and
__set_doc__ documentation objects are out of date and no longer used
anywhere in relax, so they have been eliminated.
        * Shifted the model-free parameter writing documentation to
the parameter list object.
        * Rearranged the parameter table ordering in the value user
functions.  The order now better matches that of the chapters of the
user manual and is consistent between the functions.
        * More reordering of the parameter tables for the value user 
functions.
        * Removed all of the prompt.doc_string.regexp_doc
documentation objects from the user functions.  This is the regular
expression documentation which no longer has a purpose.  It was for
specifying multiple parameters simultaneously in user functions such
as value.set, but this functionality has been removed.
        * Created parameter tables with no additional trailing text.
This is used in a few of the user functions.
        * Updated the value.copy user function documentation for the
frame order theory.  The value.copy title has been changed to not be
spin specific and a table of the frame order parameters has been
added.
        * Improvements for the value.display user function
documentation.  The N-state model parameter table has been removed as
these parameters are not spin specific and cannot be used.  And the
title has been modified.
        * Improvements for the value.read user function documentation.
 The N-state model parameter table has been removed as these
parameters are not spin specific and cannot be read from a file.  And
the title has been modified.
        * Updated the value.set user function documentation for the
frame order theory.  The value.set title has been changed to not be
spin specific and a table of the frame order parameters has been
added.  The spin ID documentation has also been rewritten.
        * Changed the title in the value.write user function documentation.
        * Changed the title for the value user function class.
        * Docstring update for the relaxation dispersion
linear_constraints() function.
        * The pivot point x, y and z coordinates are now registered as
parameters of the frame order analysis.  These are stored as the
parameters pivot_x, pivot_y and pivot_z.
        * Docstring fix in the relaxation curve-fitting
linear_constraints() function.
        * Converted the status.escalate variable into module variables
for lib.errors and lib.warnings.  This variable is set by the command
line flag '-e' or '--escalate'.  By converting it into a module
variable, the lib.errors and lib.warnings warnings are now independent
of relax.
        * Created the lib.warnings.TRACEBACK variable.  When True,
this will cause stack-traceback to be printed out with the warning.
This is to decouple the traceback printout from the warning to error
escalation.
        * Created the new '-r' or '--traceback' relax command line
option.  If supplied, stack tracebacks will be shown for all
RelaxWarnings and RelaxErrors.  This allows for finer debugging
control.
        * Clean up of the debugging command line options.  The debug
flag now will cause stack tracebacks to be printed on all
RelaxWarnings.
        * Created the '--error-state' command line option for saving a
pickled state when a RelaxError is raised.  This gives greater control
of a powerful feature added to relax by Chris MacRaild.  The pickled
state can then be attached to bug reports or can be used to quickly
load the state prior to failure when in the scripting UI mode.
        * Reordered the debugging command line options and removed the
'-r' shortcut.
        * The lib.errors module is now really independent of relax -
the compat module is no longer used.  Instead, the Python 2 and 3
versions of the pickle module are imported using try statements.
        * Decreased the amount of newlines around the printout from
the '--error-state' command line option.
        * Improved support for printing stack tracebacks with
RelaxWarnings.  The '--traceback' command line option will now show a
full traceback.  A replacement warnings.showwarning() function has
been written to write out the traceback before the
warnings.formatwarning() replacement function is called.
        * Divide by zero avoidance fix for the rotor frame order model
module lib.frame_order.rotor.
        * Removed the dependency on the relax dep_check module from
the relax library.  This is to further decouple the library from
relax.
        * Added a script for testing the independence of the relax library.
        * Removal of all unused imports in the lib.dispersion package.
        * Improvements to the test_library_independence.py development
script.  This script for checking the independence of the relax
library will now recursively import all packages and modules in the
library and report at the end a list of all failures.
        * Shifted the Python 2 and 3 compatibility module 'compat'
into the relax library.
        * Shifted the pipe_control.sequence.validate_sequence()
function into the relax library.  For this, the new lib.sequence
module has been created.  This change is for better library
independence.  A circular import with lib.io and lib.arg_check has
also been resolved.
        * Shifted the read_spin_data() and write_spin_data() functions
from lib.io to lib.sequence.
        * Removed the dependence on the relax 'dep_check' module from
the lib.frame_order package.  This is for more independence of the
relax library.
        * Added the missing Bioinformatics journal to the bibtex file
journal name aliases.
        * Huge clean up of all unused imports in relax.  These were
found using the find_unused_imports.py development script.  A number
of these changes significantly decrease the possibilities of circular
imports appearing in the future.  And this also makes the relax
library more independent from the rest of relax.
        * Shifted the data_store.relax_xml module into the relax
library as lib.xml.  This module contains a couple of functions which
are used for converting Python objects into an XML representation and
back again.  These are used not only by the relax data store, but also
a number of the structural objects in the relax library (which are
themselves placed in the relax data store).  This makes the relax
library more independent from the rest of relax.
        * Shifted many of the pipe_control.structure.geometric
functions into the relax library.  All but two functions from the
pipe_control.structure.geometric module are independent of the relax
data store.  These have been shifted into the new
lib.structure.geometric module.  This removes most of the remaining
relax dependencies in the relax library.
        * Removed the automatic axis labelling in the
lib.software.grace.write_xy_header() function.  This is the automatic
labelling based on the parameter Grace strings and units of the
specific analysis type.  This is now preformed by the specific
analyses themselves so the automatic code is not needed or used.  This
allows the dependence on the pipe_control.pipes module and the
specific analysis API to be removed making the relax library now 100%
independent from the rest of relax.
        * Editing of the relax command line option descriptions.
        * Created a new test category for the relax test suite - the
software verification tests.  This is part of the full test suite or
can be run by itself using the new --verification-tests command line
option.  Such tests are best described by
https://en.wikipedia.org/wiki/Verification_and_validation_%28software%29.
 These tests will be used to make sure that the design aims of the
relax source code are satisfied.  For example that the relax library
is independent from the rest of relax.  Or that the package __all__
lists actually contain all modules and sub-packages (these tests are
currently part of the unit tests).
        * Shifted the relax library independence developer script into
the software verification tests.  The functionality of the
devel_scripts/test_library_independence.py script is now within the
Library.test_library_independence software verification test.
Therefore the script has been deleted.
        * Updated the text for the software verification tests in the
test suite.
        * The relaxation dispersion auto-analysis now outputs the R20,
R20A, R20B, and R1rho0 parameters.  This includes both text files and
2D Grace plots.
        * Python 3 fix for one of the old scripts in the test suite 
directories.
        * Improved error messages for when the GUI is launched but the
wxPython installation is broken.  Now the case of a broken wxPython
installation is handled rather than just a missing installation.  The
dep_check module will store the import error message, and relax will
now report that back to the user.
        * Python 2.5 and 2.6 compatibility for the
Library.test_library_independence verification test.  The importlib
package is not available in these Python versions, but the code in the
Python 2.7 library file importlib/__init__.py is compatible all the
way back to Python 2.3.  Therefore the importlib functions have been
copied directly into the system test script and the importlib
dependency removed.
        * Updated one of the OMP model-free results files for the
different ordering of parameters in the XML.  The changes to the
parameter setup for the model-free analysis means that the XML files
are now ordered differently.
        * Fix for the Test_data.test_count_relax_times_r1rho
relaxation dispersion unit test for Python 3.2+.  The '%s'
representation of floating point numbers is different on these Python
versions - the number of decimal places used are different by default.
        * Added Python 3.4 support to some of the development scripts.
        * Added 4 more relaxation dispersion system tests to the
blacklist for when C modules are missing.  This allows these 4 tests
to be skipped in the system test rather than failing with "RelaxError:
The exponential curve-fitting C module cannot be found.".
        * Changed the backward compatibility hook for old state files
for the spectrometer frequency.  The behaviour has been changed so
that the data pipe structure spectrometer_frq_list is now sorted.
This simply allows a number of tests to pass on Python 3.3+, a user
would not notice any differences.
        * Fixes for two relaxation curve-fitting system tests for
Python 3.3+.  These are the Relax_fit.test_curve_fitting_height and
Relax_fit.test_curve_fitting_volume system tests which fail due to
accuracy differences and a bad call to the UnitTest method
assertEqaul() which should have been an assertAlmostEqual() call.
        * Added the matplotlib module to the Python binary and module
seeking script.
        * Added dataset for system test.  System test for CPMG
dataset, (http://dx.doi.org/10.1073/pnas.0907387106) Kaare Teilum,
Melanie H. Smith, Eike Schulz, Lea C. Christensen, Gleb Solomentseva,
Mikael Oliveberg, and Mikael Akkea 2009 SOD1-WT at 25 C.
        * Added system test to analyse data.  System test for CPMG
dataset, (http://dx.doi.org/10.1073/pnas.0907387106) Kaare Teilum,
Melanie H. Smith, Eike Schulz, Lea C. Christensen, Gleb Solomentseva,
Mikael Oliveberg, and Mikael Akkea 2009 SOD1-WT at 25 C.
        * The debugging command line option no longer turns on
RelaxWarning tracebacks.  These tracebacks can be separately turned on
with the --traceback command line option.
        * Made name for system test shorter and moved data to shorter
folder name.  Regarding bug #21953, (https://gna.org/bugs/?21953) -
weird performance of grid search.
        * Modified system test for cleaner implementation of tests.
Regarding bug #21953, (https://gna.org/bugs/?21953) - weird
performance of grid search.
        * Lowered range for grid search by factor 10 for kex to now
between 1-10000.  Regarding bug #21953, (https://gna.org/bugs/?21953)
- weird performance of grid search.
        * Changes to system test
Relax_disp.test_hansen_cpmg_data_auto_analysis.  Regarding bug #21953,
(https://gna.org/bugs/?21953) - weird performance of grid search.  The
grid search needed to be increased by +1 and lowering of some results
by one digit.
        * Lowering of precision in
Relax_disp.test_hansen_cpmg_data_auto_analysis_numeric.  Regarding bug
#21953, (https://gna.org/bugs/?21953) - weird performance of grid
search.
        * Changes to system test
Relax_disp.test_hansen_cpmg_data_auto_analysis_r2eff.  Regarding bug
#21953, (https://gna.org/bugs/?21953) - weird performance of grid
search.  The grid search needed to be increased by +1 and lowering of
some results by one digit.
        * Changes to system test
Relax_disp.test_hansen_cpmg_data_missing_auto_analysis.  Regarding bug
#21953, (https://gna.org/bugs/?21953) - weird performance of grid
search.  The grid search needed to be increased by +1 and changes of
some results.
        * Modified system test Relax_disp.test_sod1wt_t25_to_cr72.
Regarding bug #21953, (https://gna.org/bugs/?21953) - weird
performance of grid search.
        * Modified dw and kex in system test
Relax_disp.test_tp02_data_to_tap03.  Regarding bug #21953,
(https://gna.org/bugs/?21953) - weird performance of grid search.
        * Split system test Relax_disp.sod1wt_t25_to_cr72 into part as
setup and test part.  Regarding bug #21953,
(https://gna.org/bugs/?21953) - weird performance of grid search.
        * Started implementation of error analysis bug.  Regarding bug
#21954, (https://gna.org/bugs/?21954) - Order of
spectrum.error_analysis is important.
        * Small edit of the relax command line option descriptions.
        * Undid the modification of dw and kex in system test
Relax_disp.test_tp02_data_to_tap03.  Regarding bug #21953,
(https://gna.org/bugs/?21953) - weird performance of grid search.  The
number of iterations needed to be increased from 2000 to 2500 to allow
the values to be found.
        * Further extended system test
Relax_disp.test_sod1wt_t25_bug_21954_order_error_analysis.  Regarding
bug #21954, (https://gna.org/bugs/?21954) - order of
spectrum.error_analysis is important.
        * Extended --gui-tests Relax_disp.test_hansen_trunc_data.
Regarding bug #21954, (https://gna.org/bugs/?21954) - order of
spectrum.error_analysis is important.  To catch errors in this
dataset.
        * This time the blacklisted relaxation dispersion system tests
have been correctly reduced.  Only one blacklisted test did not
require the C modules to be compiled.
        * Shifted all of the dispersion model descriptions and
parameter lists to the variables module.  The descriptions and
parameter lists which were part of the relax_disp.select_model user
function backend have been shifted into the
specific_analyses.relax_disp.variables module as MODEL_DESC_* and
MODEL_PARAMS_* variables.  The descriptions have also all been
standardised.  The MODEL_DESC and MODEL_PARAMS dictionaries have also
been created to hold all of the descriptions and parameters in one
place.
        * The General.test_bug_21720_pipe_switching_with_tab_closure
GUI test now works without compiled C modules.
        * Updated the release checklist for the new minfx version
1.0.6 release.  See https://gna.org/forum/forum.php?forum_id=2456 and
https://freecode.com/projects/minfx.
        * Fixes for the specific API _set_param_values_spin() method
for lists and dictionaries.  This is for the value.set user function
to allow it to handle parameters of different types.  For example the
'R2' parameter in the relaxation dispersion analysis.  This API common
method now sets all dictionary elements, list elements, or the
variable to the given value.
        * Created the new
specific_analyses.relax_disp.variables.PARAMS_R20 list.  This variable
is a list of all R20 parameters of the dispersion models.  It has been
shifted out of the parameters module.
        * Created a relaxation dispersion specific API
set_param_values() method.  This originates from the base
_set_param_values_spin() method from the api_common module.  The
method has been extended to handle the R20 parameter types -
generating the current dictionary keys as needed.
        * Expanded the relaxation dispersion auto-analysis to allow
the grid search to be turned off.  By setting the grid_inc argument to
None, the grid search will be turned off.  As a replacement, the
value.set user function is used for all model parameters to set them
to their default values prior to minimisation.  This design is for
speed as optimisation from the defaults is often - though not always -
good enough.  It can be used, for example, in the test suite to make
the system tests much faster.
        * Changed the default R20 relaxation rate from 15 to 10
rad.s^-1.  This is probably closer to the average rate expected for
molecules studied by NMR.
        * The R2eff dispersion parameter now also defaults to 10 rad.s^-1.
        * Expanded the dispersion specific API set_param_values()
method for the 'r2eff' and 'i0' parameters.  This now sets these
parameter values correctly if the value sent into the method is not
composed of dictionaries.
        * Large speed up of the relaxation dispersion system tests by
about 20%.  This was achieved by turning the grid search off in the
following system tests:  Some of the optimisation values are slightly
different, or completely different for the one example of the CR72
model fitted to no exchange, and these have been updated in the tests.
        * Changed the bounds for the R20 parameters in the default
grid search.  The range of 1 to 40 rad.s^-1 was previous used.  This
has been narrowed to 5 to 20.
        * Added function to find minimum R2eff value to set as R20
value before grid search.  Feature request: #3151,
(https://gna.org/support/?3151) - user function to set the R20
parameters in the default grid search using the minimum R2eff value.
        * Added system test for setting R20 from minimum R2eff before
grid search.  Feature request: #3151, (https://gna.org/support/?3151)
- user function to set the R20 parameters in the default grid search
using the minimum R2eff value.  System test: -s
Relax_disp.test_sod1wt_t25_set_grid_r20_from_min_r2eff.
        * Extended api value.set to use index in value setting.
Feature request: #3151, (https://gna.org/support/?3151) - user
function to set the R20 parameters in the default grid search using
the minimum R2eff value.  The index used is expected to match the
spectrometer frequency.
        * Added user function: relax_disp.set_grid_r20_from_min_r2eff.
 Feature request: #3151, (https://gna.org/support/?3151) - user
function to set the R20 parameters in the default grid search using
the minimum R2eff value.
        * Modified system test to use user function instead.  Feature
request: #3151, (https://gna.org/support/?3151) - user function to set
the R20 parameters in the default grid search using the minimum R2eff
value.
        * Added relax_disp.set_grid_r20_from_min_r2eff functionality
to the relax dispersion auto_analyses.  Feature request: #3151,
(https://gna.org/support/?3151) - user function to set the R20
parameters in the default grid search using the minimum R2eff value.
        * Fix for skipping grid search, when set parameter values are
of dict() type.  Feature request: #3151,
(https://gna.org/support/?3151) - user function to set the R20
parameters in the default grid search using the minimum R2eff value.
        * Extended system test for -s
Relax_disp.test_sod1wt_t25_set_grid_r20_from_min_r2eff.  Feature
request: #3151, (https://gna.org/support/?3151) - user function to set
the R20 parameters in the default grid search using the minimum R2eff
value.  The system test now both test the creation of the correct
values, the running of grid_search, and the auto_analysis.
        * Added True/False button to activate
relax_disp.set_grid_r20_from_min_r2eff in auto analyses.  Feature
request: #3151, (https://gna.org/support/?3151) - user function to set
the R20 parameters in the default grid search using the minimum R2eff
value.
        * Set the verbosity=1, since the output is minimal.  Feature
request: #3151, (https://gna.org/support/?3151) - user function to set
the R20 parameters in the default grid search using the minimum R2eff
value.
        * Fix for non-existing dictionary keys causing errors.
Feature request: #3151, (https://gna.org/support/?3151) - user
function to set the R20 parameters in the default grid search using
the minimum R2eff value.
        * Fix for setting index=None, when setting default values for
parameters.  Feature request: #3151, (https://gna.org/support/?3151) -
user function to set the R20 parameters in the default grid search
using the minimum R2eff value.
        * Parameter values pre-set to 0.0 is now skipped in
grid_search.  Feature request: #3151, (https://gna.org/support/?3151)
- user function to set the R20 parameters in the default grid search
using the minimum R2eff value.
        * Renamed system test to reflect what it is testing.  Feature
request: #3151, (https://gna.org/support/?3151) - user function to set
the R20 parameters in the default grid search using the minimum R2eff
value.
        * Better formatting of text in user function.  Feature
request: #3151, (https://gna.org/support/?3151) - user function to set
the R20 parameters in the default grid search using the minimum R2eff
value.
        * Python 3 fix.  Feature request: #3151,
(https://gna.org/support/?3151) - user function to set the R20
parameters in the default grid search using the minimum R2eff value.
        * Better wording of experimental feature in GUI tooltip.
Feature request: #3151, (https://gna.org/support/?3151) - user
function to set the R20 parameters in the default grid search using
the minimum R2eff value.
        * An additional warning paragraph has been added to the user
function.  Feature request: #3151, (https://gna.org/support/?3151) -
user function to set the R20 parameters in the default grid search
using the minimum R2eff value.
        * Fix for system test
Relax_disp.test_set_grid_r20_from_min_r2eff_cpmg.  Feature request:
#3151, (https://gna.org/support/?3151) - user function to set the R20
parameters in the default grid search using the minimum R2eff value.
Fixed values for testing was added.
        * Improved the error reporting from the
Library.test_library_independence verification test.
        * Fix for setting the pre-set values in grid_search.  Feature
request: #3151, (https://gna.org/support/?3151) - user function to set
the R20 parameters in the default grid search using the minimum R2eff
value.  Now test that values which are of dictionary types, has more
than 0 values.
        * Modified system test Relax_disp.test_sod1wt_t25_to_cr72.
        * Added a paragraph to the clustering section of the
dispersion chapter covering parameter copying.  This explains the
purpose of the relax_disp.parameter_copy user function.
        * Created system test to catch the error -s
Relax_disp.test_sod1wt_t25_to_sherekhan_input.  Bug #21995:
(https://gna.org/bugs/?21995) creating sherekhan input files, with
data for several fields and different time_T2.
        * Removed the necessity that len(cdp.relax_time_list) = 1 when
issuing the sherekhan input user function.  Bug #21995:
(https://gna.org/bugs/?21995) creating sherekhan input files, with
data for several fields and different time_T2.
        * Made testing of files for system test -s
Relax_disp.test_sod1wt_t25_to_sherekhan_input.  Bug #21995:
(https://gna.org/bugs/?21995) creating sherekhan input files, with
data for several fields and different time_T2.  Warning, the sherekhan
user function will write to current directory.
        * Added "dir" as input to the user function
relax_disp.sherekhan_input in system test.  Bug #21995:
(https://gna.org/bugs/?21995) creating sherekhan input files, with
data for several fields and different time_T2.
        * Modified the relax_disp.sherekhan_input to accept dir as
input.  Bug #21995: (https://gna.org/bugs/?21995) creating sherekhan
input files, with data for several fields and different time_T2.
        * Turning off local dir writing in system test and set the
correct time_T2.  Bug #21995: (https://gna.org/bugs/?21995) creating
sherekhan input files, with data for several fields and different
time_T2.
        * Fix for letting ShereKhan user function write the time_T2
correct.  Bug #21995: (https://gna.org/bugs/?21995) creating sherekhan
input files, with data for several fields and different time_T2.
        * Fix for correct looping over time points, when creating
ShereKhan files.  Bug #21995: (https://gna.org/bugs/?21995) creating
sherekhan input files, with data for several fields and different
time_T2.
        * Added check for number of time points is 1.  Bug #21995:
(https://gna.org/bugs/?21995) creating sherekhan input files, with
data for several fields and different time_T2.
        * Added model MODEL_B14 to system test
Relax_disp.test_hansen_cpmg_data_auto_analysis_r2eff.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.
        * Added MODEL_B14 to specific_analyses.relax_disp.variables.
Sr #3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
        * Further added info for MODEL_B14 to
specific_analyses.relax_disp.variables.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.
        * Added B14 description to the relax_disp.select_model user
function front end.  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.
        * Added model B14 to be found as target function.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.
        * Added empty b14.py to relax library lib/dispersion/b14.py.
Sr #3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
        * Extended docstring in b14.py file.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.
        * Implemented start system test for model B14.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  System test
is Relax_disp.test_baldwin_synthetic.
        * Added Baldwin model B14 test data.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.
        * Removed MODEL_B14 to be tested in normal setup.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This is to
allow the system test to pass.
        * Removed the standard transparent "on" setting in grace
images script file.  This was rather an annoyance than helpful.
        * Made a generic script to generate R2eff data for a CPMG
model based on spin parameters, and fit the data.  Still needs to
implement some noise method.  1) The idea is to generate R2eff data
with a numerical model with some extreme parameters.  2) Then add
noise to the R2eff data.  3) Then fit with a analytical model.
Evaluate the performance on the analytical model.  This follows the
idea of the paper:  http://dx.doi.org/10.1016/j.jmr.2014.02.023 "An
exact solution for R2,eff in CPMG experiments in the case of two site
chemical exchange" Andrew J. Baldwin, Journal of Magnetic Resonance,
2014.  The script can be extended to also include global fitting, to
test this out.  The script is also ideal, when trying to implement a
new model, since test-data is ready at hand.
        * Docstring update for the test suite runner class - the
verification tests are now listed.
        * Added the software verification tests to the relax GUI.  The
verification tests can now be selected via the "Tools->Test
suite->Verification tests" menu entry.  Running the full test suite
via the menus also now included the verification tests.
        * Reordered the B14 model according to release year.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Adding_the_model_to_the_list.
 The B14 model is explained in: http://wiki.nmr-relax.com/B14.
        * Redid ordering of Model B14 according to release year.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Adding_the_model_to_the_list.
 The B14 model is explained in: http://wiki.nmr-relax.com/B14.
        * Reordered the model B14 according to release year.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Adding_the_model_to_the_list.
 The B14 model is explained in: http://wiki.nmr-relax.com/B14.
        * Reordered model B14 in target functions.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Adding_the_model_to_the_list.
 The B14 model is explained in: http://wiki.nmr-relax.com/B14.
        * Python API documentation corrections for the model B14.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Adding_the_model_to_the_list.
 The B14 model is explained in: http://wiki.nmr-relax.com/B14.
        * Replaced copyright notice for the Baldwin.py script.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Adding_the_model_to_the_list.
 The B14 model is explained in: http://wiki.nmr-relax.com/B14.
        * Changed the compression back 9, when creating grace PNG
files.  It doesn't change the quality, just the time to create the
file and the size of the file.  PNG is lossless, so compression levels
1 to 9 are all pixel-perfect.  The B14 model is explained in:
http://wiki.nmr-relax.com/B14.
        * Added a check for the existence of data pipes to the
return_api() specific analysis function.
        * Added a README file to the sample_scripts directory to help
users understand what these scripts are for.  It also explains how
these scripts should be used.
        * Implemented synthetic CPMG system test.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Adding_the_model_to_the_list.
 The B14 model is explained in: http://wiki.nmr-relax.com/B14.
        * Small changes to synthetic script data generator.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Adding_the_model_to_the_list.
 The B14 model is explained in: http://wiki.nmr-relax.com/B14.
        * Made synthetic CPMG script accept R2eff noise values as input.
        * Added array with zero R2eff error to system test
Relax_disp.test_cpmg_synthetic.
        * Added a system test, which proves that small dw values of 1,
makes the minimisation goes wrong.  This is for synthetic data with
R2eff values of +/- 0.05, which is to be expected for real data.
        * Added a row to the dispersion software comparison table for
TROSY-type data.  This follows from
http://thread.gmane.org/gmane.science.nmr.relax.devel/5414/focus=5501.
        * Added a row to the dispersion software comparison table for
the support of scalar coupling effects.  This follows from
http://thread.gmane.org/gmane.science.nmr.relax.devel/5414/focus=5501.
        * Added model B14 to the list of MODEL_LIST_NUMERIC_CPMG.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
 Model B14, uses the number of ncyc/CPMG blocks in its analytical
equation.  To pass this information correct and calculate the ncyc
power, it should be in this list.  The B14 model is explained in:
http://wiki.nmr-relax.com/B14.
        * Letting the error be 0.1 in the system test for B14.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
 This is just cosmetics, to make the dispersion graph look more
beautiful.  The B14 model is explained in:
http://wiki.nmr-relax.com/B14.
        * Implemented model B14 in the relax library.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_library.
 The code is raw implemented, with no optimisation.  This is merely to
test, that the spin parameters that created R2eff data, can be found
again after grid search and minimisation.  The B14 model is explained
in: http://wiki.nmr-relax.com/B14.
        * Correctly implemented the target function for model B14.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_target_function.
 The B14 model is explained in: http://wiki.nmr-relax.com/B14.
        * Implemented system test "relax -s
Relax_disp.test_baldwin_synthetic -d" for model B14.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
 This proves that the model is correctly implemented, and return same
data which the Baldwin script created.  The B14 model is explained in:
http://wiki.nmr-relax.com/B14.
        * Renamed the relax_disp.cpmg_frq user function to
relax_disp.cpmg_setup and added some new options.  This follows from
the thread 
http://thread.gmane.org/gmane.science.nmr.relax.devel/5511/focus=5520.
 The ncyc_even option has been added so the user can specify if the
pulse sequence requires an even number of CPMG blocks.  This is for
use in the interpolated dispersion curves, but could have other uses
in the future.
        * Removed model B14 to the list of MODEL_LIST_NUMERIC_CPMG.
Sr #3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax.
 This was not essential anyway.
        * Changed the default value of pA, the population for state A,
to 0.95.  When doing a grid search in the auto-analysis, one can set
"None".  This will then use default values specified for parameters,
instead of a grid search.  pA is best to start at 0.95, than 0.5.
        * Extended system test Relax_disp.test_baldwin_synthetic to
also include a N15 synthetic dataset.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Added the synthetic N15 data for system test
Relax_disp.test_baldwin_synthetic.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Modified system_tests/scripts/relax_disp/cpmg_synthetic.py
and the corresponding system tests.
Relax_disp.test_cpmg_synthetic_cr72.
Relax_disp.test_cpmg_synthetic_cr72_full_noise_cluster.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Attempt to implement function map_bounds in API for
relax_disp.  Bug #22012 (https://gna.org/bugs/?22012): dx.map not
implemented for pipe type relax_disp.
        * Expanded the 'CR72 full' dispersion model description in the
manual to explain its origin.  This was discussed at
http://thread.gmane.org/gmane.science.nmr.relax.devel/5410.  The
equations used the Davis et al., 1994 simplified form, and this is now
explained.
        * Changed float powers of 2.0 to integer powers of 2, to speed
up the calculations.  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.  This change did not do a large change in
speed, but is more proper.  This follows the tutorial for adding
relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Changed all instances of "r2e" with "r20b", to be consistent
with relax nomenclature.  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.  This follows the tutorial for adding
relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Changed all instances of R2g with r20a. This is to be
consistent with the relax nomenclature.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Implemented g3 and g4 as square root functions instead of
atan2.  atan2 is always returning values between -pi and pi.
https://docs.python.org/2/library/math.html.  Next step is to convert
g1>-g1, which will truly follow the CR72 Nomenclature.  For this, the
atan2 function is a blocker.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Had to lower the precision of system test
Relax_disp.test_baldwin_synthetic.  This was after changing g3, and g4
from atan2 functions, to square root functions.  The model is still
very precise though.  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.  This follows the tutorial for adding
relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Altered the sign of g1, to follow CR72 Nomenclature.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Had to lower the precision of system test
Relax_disp.test_baldwin_synthetic after sign change of g1.  The model
is still precise, finding the parameters which generated the data.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Made g2 use the CR72 parameter convention.  No change
detected, since the change will be erased by going to order**2.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Made sign change of deltaR2, to use parameter convention of
CR72.  Sr #3154: (https://gna.org/support/?3154) implementation of
Baldwin (2014) B14 model - 2-site exact solution model for all time
scales.  This follows the tutorial for adding relaxation dispersion
models at: 
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Implemented the alpha minus shorting from CR72.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Pretty the code, making space between all multiplications
"*".  Sr #3154: (https://gna.org/support/?3154) implementation of
Baldwin (2014) B14 model - 2-site exact solution model for all time
scales.  This follows the tutorial for adding relaxation dispersion
models at: 
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Pretty up the code, making space between "=".  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Pretty up the code, making space between all "-".  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Pretty up the code, making space between all "+".  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * More code clean up. Make it look pretty.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Pretty up code, by moving comments up on line.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Pretty up code.  Remove trailing spaces.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced expression with -alpha_.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced numpy.XX functions, with just the function.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced "power" with ncyc and made use of numpy power.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Pretty up code, removing multiple "(" and ")".  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced Trel with relax_time, to use relax parameter
conventions.  Sr #3154: (https://gna.org/support/?3154) implementation
of Baldwin (2014) B14 model - 2-site exact solution model for all time
scales.  This follows the tutorial for adding relaxation dispersion
models at: 
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced pb and pa with relax parameter pA.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced keg with relax parameter normal use of k_BA.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced kge with k_AB, which is relax convention.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Removed where k_AB was subtracted with k_AB.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Speedup of code, replacing repetitive calculations of dw**2.
 Sr #3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Speedup, by removing repetitive calculations of g3**2.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Speedup, by removing repetitive calculations of g4**2.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Removed the specific API method aliasing in the
pipe_control.opendx module.  The API object is now instead aliased as
self.api.
        * Docsting fixes for some model_statistics() API methods,
including the base class method.
        * Rewrite of the rotor2 CaM test data optimisation script.
This now handles the new rotor frame order model parameterisation.
Two functions have been added for converting between the old and new
parameters - alpha_angle() to calculate the new alpha parameter and
shift_pivot() for shifting the pivot to the closest point to the CoM
on the rotor axis.
        * Changed how the rotor axis is calculated in the func_rotor()
frame order target function.  A new set of notations is now being used
to try to solve a nasty alpha angle parameterisation bug.
        * Updated the rotor2 CaM frame order test data optimisation
script for the changed notation.  A new set of notations is now being
used to try to solve a nasty alpha angle parameterisation bug.
        * Fixed the average position Euler angles for the rotor2 CaM
frame order test data optimisation script.  The angles needed to be
reversed.
        * Removed an duplicated chi2 printout in the rotor2 CaM frame
order test data optimisation script.
        * Speedup - made B14 use the pre-calculated inverse time,
instead of calculating the inverse time inside the function.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Speedup - moved the repetitive calculations of pB, k_BA and
k_AB out of the library function.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Speedup - moved the calculation of deltaR2 and alpha_m out
of library function.  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.  This follows the tutorial for adding
relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Pretty-up code.  Re-ordered logic of r20 parameters, and
exchange parameters in function call.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Moved Carver and Richards (1972) zeta and Psi notation
outside library function.  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.  Not sure, if this speeds the calculation
up.  This follows the tutorial for adding relaxation dispersion models
at: 
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Speedup - made variable for the repetitive calculations of
zeta**2, and Psi**2.  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.  This follows the tutorial for adding
relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Speedup - made "1" and "2" integers to float, to prevent
Python conversion.  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.  This follows the tutorial for adding
relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Speedup - repetitive calculations of 2.0 * tcp.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Speedup - moved g_factor: g = 1/sqrt(2) outside library
function to be calculated once.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Speedup - repetitive calculations of sqrt_zeta2_Psi2 =
sqrt(zeta2 + Psi2).  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.  This follows the tutorial for adding
relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Speedup - converted expressions of complex(x, y) to (x +
y*1j).  Sr #3154: (https://gna.org/support/?3154) implementation of
Baldwin (2014) B14 model - 2-site exact solution model for all time
scales.  This follows the tutorial for adding relaxation dispersion
models at: 
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Split the func_B14 into full, with a calc function.  This is
to prepare for the splitting up of B14, into a full: R2a!=R2b, and
"normal" which is r2a=r2b.  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.  This follows the tutorial for adding
relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Documentation fix for CR72 calc function.
        * Renamed system test Relax_disp.test_baldwin_synthetic to
Relax_disp.test_baldwin_synthetic_full.  And changed model from "B14"
to "B14 full".  This is to help find where modifications now have to
be changed.  Sr #3154: (https://gna.org/support/?3154) implementation
of Baldwin (2014) B14 model - 2-site exact solution model for all time
scales.  This follows the tutorial for adding relaxation dispersion
models at: 
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Added B14_FULL to the lists of the
specific_analyses.relax_disp.variables module.  The model name is
stored in a special variable which will be used throughout relax.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Adding_the_model_to_the_list.
        * Added B14_FULL to the relax_disp.select_model user function
front end.  Added the model, its description, the equations for the
analytic models, and all references to the relax_disp.select_model
user function front end.  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.  This follows the tutorial for adding
relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax##The_relax_disp.select_model_user_function_front_end.
        * Added B14_FULL to the target function.  The system test
Relax_disp.test_baldwin_synthetic_full is now back and running.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_target_function.
        * Implemented system test Relax_disp.test_baldwin_synthetic
for the model B14, whereby the simplification R20A = R20B is assumed.
Sr #3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Added target function for the Baldwin (2014) 2-site exact
solution model for all time scales, whereby the simplification R20A =
R20B is assumed.  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.  This follows the tutorial for adding
relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_target_function.
        * Finished system test Relax_disp.test_baldwin_synthetic.
This proves that model B14 whereby the simplification R20A = R20B is
assumed is successfully implemented.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Added the synthetic data for B14 model whereby the
simplification R20A = R20B is assumed.  This is used in system test
Relax_disp.test_baldwin_synthetic.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Added B14 and B14_FULL to the relax GUI.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_GUI
        * Added the latex bibliography reference for the model B14.
This is the reference for Baldwin (2014) B14 model - 2-site exact
solution model for all time scales.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
        * Added model B14 description in the manual.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
        * Updated the references in the b14.py library file, to point
to the wiki, and the future API and html documentation.  The link to
API and html documentation is to be updated for the future compilation
of these.  Sr #3154: (https://gna.org/support/?3154) implementation of
Baldwin (2014) B14 model - 2-site exact solution model for all time
scales.  This follows the tutorial for adding relaxation dispersion
models at: 
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
        * Reinserted the library function of b14.py the calculation
of:  deltaR2 = r20a - r20b; alpha_m = deltaR2 + k_AB - k_BA; zeta = 2
* dw * alpha_m; and Psi = alpha_m**2 + 4 * k_BA * k_AB - dw**2.  And
put the g_fact = 1/sqrt(2), inside the library function.  It made no
sense to put these calculations outside the library, since there would
be no skipping of a loop.  It actually makes much better sense to keep
these calculation in the library function, to preserve the possibility
to import this module in other software.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Removed the pre-calculation of "zeta2 = zeta**2" "Psi2 =
Psi**2" since it did not speed-up things.  This power 2 of zeta and
Psi is only done once.  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.  This follows the tutorial for adding
relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Used LaTeX subequations instead, and using  R2eff parameter
is defined in the relax.tex.  Using the defined \Rtwoeff, \RtwozeroA,
\RtwozeroB, \kAB, \kBA, \kex.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
        * Fixes for all URLs in the HTML version of the relax manual.
This fix will appear later at
http://www.nmr-relax.com/manual/index.html once the next version of
relax is released.  The trick was to translate the \url{} LaTeX
commands which are not recognised by latex2html into
\htmladdnormallink{#1}{#1} commands using a htmlonly environment in
the headers.
        * The \bibitem command is no longer ignored when building the
HTML version of the relax manual.  This will allow the bibliography at
http://www.nmr-relax.com/manual/Bibliography.html to be formatted in a
reasonable way.  And citations will have proper links to the entries
in this file rather than the current behaviour of linking to itself,
hence not going anywhere.
        * Apostrophe fix in the LaTeX bibliography file.  This will
fix my name at http://www.nmr-relax.com/manual/Bibliography.html so
that it is not displayed as d’Auvergne.
        * Better latex2html support for the relax manual.  The
hyperlink command \href{}{} and inline bibliographic reference command
\bibentry{} are now supported in the HTML version of the relax manual.
 These are translated into \htmladdnormallink{#2}{#1} and \citet{#1}
command respectively, both of which are supported by latex2html.  This
will significantly improve the documentation at
http://www.nmr-relax.com/manual/index.html.
        * Made better notation of equation.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
        * Changed manual, to the recipe at Appendix 1.  This was
changed after the wish of the author.  Discussed in:
http://thread.gmane.org/gmane.science.nmr.relax.devel/5632.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
        * Changed that taucpmg = 1 / 4*nucpmg and not taucpmg = 1 /
nucpmg.  Sr #3154: (https://gna.org/support/?3154) implementation of
Baldwin (2014) B14 model - 2-site exact solution model for all time
scales.  This follows the tutorial for adding relaxation dispersion
models at: 
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
        * Added model B14 to the list of dispersion models.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
        * Relax manual fix for model TSMFK01.  Added that the model is
slow exchange.
        * Fix for equation alignment for model B14.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
        * Elimination of minus in library function b14.py.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced f0 with F0, to follow paper and relax manual.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced "ex0b" with "v1c" to follow paper and manual.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced "ex0c" with "v1s" to follow manual and paper.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced f2 with F2, to follow manual and paper.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Sqrt fix in manual for model B14.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Fix for ordering in calculation, to make it look prettier.
Sr #3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced "v2pPdN" with v5, to follow paper and manual.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaved "oGt2" with "v4" to follow manual and paper.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Took inv_tcpmg outside parenthesis to follow manual.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Sign fix in manual.  The 1/taucpmg was taken wrong outside
parenthesis.  Sr #3154: (https://gna.org/support/?3154) implementation
of Baldwin (2014) B14 model - 2-site exact solution model for all time
scales.  This follows the tutorial for adding relaxation dispersion
models at: 
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced "t2" with "F1b" to follow paper.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Replaced "t1pt2" with "F1a_plus_b" for better reading.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Reorder of lines to follow appendix 1 in paper.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Rewrote lines to follow appendix 1 in paper.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Made expression according to appendix 1 in manual.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
        * Replaced T_{\textrm{rel} with \taucpmg.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
        * Very small speed-up.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Speedup by removing integer to float conversion part.
        * Better latex2html support for the relax manual, specifically
the dispersion software comparison table.  The \yes and \no commands
are now better processed as HTML, and the rotating package 'rotate'
environment is replaced by nothing.  This will improve the dispersion
software comparison table at
http://www.nmr-relax.com/manual/Comparison_dispersion_analysis_software.html.
        * Fix for catastrophic parameter index error for model B14.
The model B14 would get the same parameter index as "B14 full", and
would hence optimise wrong parameters.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Fix for model B14 making ugly graphs.  The power of ncyc has
to be an integer.  bug #22018 (https://gna.org/bugs/?22018): Model B14
creates ugly graphs ! Sig saw all over the place.
        * Fix for model B14 full making ugly graphs.  The power of
ncyc has to be an integer.  bug #22018 (https://gna.org/bugs/?22018):
Model B14 creates ugly graphs ! Sig saw all over the place.
        * Fixes for the HTML version of the relax manual.  The renewal
of the \theequation command in the model-free and relaxation
dispersion chapters was causing all equation numbers in latex2html to
be broken.  By placing these in a latexonly environment, the problem
is avoided in the HTML version at www.nmr-relax.com/manual/.
        * Changed script for synthetic CPMG data.  This is to test the
fitting of CR72 and B14, when creating R2eff data with numerical
model: MODEL_NS_CPMG_2SITE_EXPANDED.  This script is ideal for testing
cases.  One can readily define experiments settings: sfrq_X,
time_T2_X, ncycs_X for simulating one or more spectrometer
experiments.  Spins can readily be set up, to have different dynamics,
like: r2, r2a, r2b, kex, pA and dw.  The script can test clustering,
and can convert to Sherekhan and make a hyper-dimensinal dx map to
test Chi2 hypersurface on parameter settings.  It is also ideal for
strees-testing relax, to see if its minimisation algorithm performs
well.  Sr #3154: (https://gna.org/support/?3154) implementation of
Baldwin (2014) B14 model - 2-site exact solution model for all time
scales.  This follows the tutorial for adding relaxation dispersion
models at: 
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Small improvement for generic CPMG data script file.  Sr
#3154: (https://gna.org/support/?3154) implementation of Baldwin
(2014) B14 model - 2-site exact solution model for all time scales.
This follows the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Added functionality of the visualising the spin dynamics
point which generated the data.  This is to the script, which can
visualize the synthetic CPMG data.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Fix for script for the visualising the spin dynamics point
which generated the data.  This is to the script, which can visualize
the synthetic CPMG data.  Sr #3154: (https://gna.org/support/?3154)
implementation of Baldwin (2014) B14 model - 2-site exact solution
model for all time scales.  This follows the tutorial for adding
relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Fix for the file name writing of the point file.  Bug
#22023: (https://gna.org/bugs/?22023) relax dx.map produce .net files
which makes error.
        * Made system test
Relax_disp.test_cpmg_synthetic_dx_map_points to start testing.
Modified also sample CPMG script to allow for this.  Task #7791:
(https://gna.org/task/?7791) the dx.map should accept a list of list
with values for points.
        * Modified user function dx.map to accept list of lists with
values.  Task #7791: (https://gna.org/task/?7791) the dx.map should
accept a list of list with values for points.
        * Added is_list_val_or_list_of_list_val to lib/arg_check.py.
This function is not yet done.  Task #7791:
(https://gna.org/task/?7791) the dx.map should accept a list of list
with values for points.
        * Added list_of_lists to user_functions/objects.py.  Task
#7791: (https://gna.org/task/?7791) the dx.map should accept a list of
list with values for points.
        * Added list_of_lists to uf_objects.  Task #7791:
(https://gna.org/task/?7791) the dx.map should accept a list of list
with values for points.
        * Made multiple writing of point files.  Task #7791:
(https://gna.org/task/?7791) the dx.map should accept a list of list
with values for points.
        * Added B14 to the dispersion software comparison table in the
manual (docs/latex/dispersion_software.tex).  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_relax_manual.
        * Added B14 to the dispersion auto-analysis.  The B14 models
will not create output files until this is done.  Sr #3154:
(https://gna.org/support/?3154) implementation of Baldwin (2014) B14
model - 2-site exact solution model for all time scales.  This follows
the tutorial for adding relaxation dispersion models at:
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#The_GUI
        * Completely removed the list_of_lists argument.  Task #7791:
(https://gna.org/task/?7791) the dx.map should accept a list of list
with values for points.
        * Modified the description of making x,y,z points in the chi2
space for the user function dx.map.  Task #7791:
(https://gna.org/task/?7791) the dx.map should accept a list of list
with values for points.
        * Made solutions for math domain error.  Prevented to take log
of negative values, and division by zero.  This though slows the
implementation down.  System test
Relax_disp.test_baldwin_synthetic_full went from 6.x seconds to 8-9.x
seconds.  Sr #3154: (https://gna.org/support/?3154) implementation of
Baldwin (2014) B14 model - 2-site exact solution model for all time
scales.  This follows the tutorial for adding relaxation dispersion
models at: 
http://wiki.nmr-relax.com/Tutorial_for_adding_relaxation_dispersion_models_to_relax#Debugging.
        * Changed an 'align' environment to 'equation' as there was
only one equation.
        * Removed invisible equations from the B14 dispersion model
section of the relax manual.  The trailing "\\" were causing equation
numbers to be produced on empty lines after the block of equations.
        * The f00 equation in the B14 dispersion model section of the
manual is a single equation.  The 'subequations' and 'align'
environments are therefore superfluous.
        * Modified dx.map to accept more than one point.  Task #7791:
(https://gna.org/task/?7791) the dx.map should accept a list of list
with values for points.
        * Added system test for the production of dx map.
Relax_disp.test_cpmg_synthetic_dx_map_points.  Task #7791:
(https://gna.org/task/?7791) the dx.map should accept a list of list
with values for points.
        * Added proper punctuation to the B14 dispersion model
equations in the manual.  Equations should be readable as English
sentences and they follow standard punctuation rules.  All of the
equations in the B14 model section of the dispersion chapter have been
updated to follow this.
        * Fixes for quotation marks in the B14 dispersion model
section of the manual.  LaTeX requires `' for single quotes rather
than ''.
        * Standardised the CR72 R2eff factor in the B14 dispersion
model section of the manual.  This is now defined in the preamble of
the LaTeX manuscript.
        * Converted all complex numbers 'i' in the B14 dispersion
model section of the manual to \imath.
        * Removed some unnecessary {} brackets from the user manual.
This is for the B14 model (http://wiki.nmr-relax.com/B14) section of
the dispersion chapter.
        * The ncyc variable is now defined in the LaTeX preamble.
This is for the B14 model (http://wiki.nmr-relax.com/B14) section of
the dispersion chapter.
        * Fixes for some of the maths in the B14 model section of the
dispersion chapter.
        * Fix for the arccosh operator in the B14 section of the
manual.  This is for the B14 model (http://wiki.nmr-relax.com/B14)
section of the dispersion chapter.
        * Switched to using the LaTeX math symbol for real numbers
\Re.  This is for the B14 model (http://wiki.nmr-relax.com/B14)
section of the dispersion chapter.
        * The Ncyc definition in the manual now uses a capital N.
        * The \arccosh LaTeX maths operator is now defined in the
preamble of the manual.  This is used by the B14 model
(http://wiki.nmr-relax.com/B14) section of the dispersion chapter.
        * Improved brackets for the B14 model
(http://wiki.nmr-relax.com/B14) section of the dispersion chapter.
The \left( and \right) command are used to produce brackets that scale
to the size of the maths within these brackets.  One set of unneeded
brackets were also removed.
        * Grammar fixes for the B14 model
(http://wiki.nmr-relax.com/B14) section of the dispersion chapter.
        * Added some text explaining why the B14 equations do not look
like those of the paper.  This is for the B14 model
(http://wiki.nmr-relax.com/B14) section of the dispersion chapter.
        * Small edits to the text of the B14 dispersion model section
of the manual.
        * Replaced 'get' and 'got' with alternatives, as this verb is
not to be used in formal English.  This is for the B14 model
(http://wiki.nmr-relax.com/B14) section of the dispersion chapter of
the manual.
        * Clean ups of the Carver and Richards descriptions.  This is
for the B14 model (http://wiki.nmr-relax.com/B14) section of the
dispersion chapter of the manual.
        * More basic editing of the text of the B14 dispersion model
section of the manual.
        * The T_relax symbol is now defined in the preamble of the
manual.  This is to standardise its usage in the dispersion chapter.
        * Major fix for the R2eff equations for the B14 dispersion
model in the manual.  Here tau_CPMG, the time for one CPMG block, was
mixed up with T_relax, the total time of all CPMG blocks.
        * Switched some 'v' symbols to '\nu' in the B14 dispersion
model section of the manual.
        * Standardised the spacing in the equations for the B14
dispersion model in the manual.
        * Clean ups for the end of the B14 dispersion model section of
the manual.  Here a number of 'v' were changed to \nu and the standard
\kAB, \pA, and \pB are now used.
        * Some more tau_CPMG verses T_relax fixes for the B14
dispersion model equations in the manual.
        * Added some symmetry to the T equation in the B14 dispersion
model section of the manual.
        * Latex2html fixes for the HTML version of the relax manual.
This is for the documentation at
http://www.nmr-relax.com/manual/index.html.  Latex2html has problems
determining if the contents of environments should added to the sub or
superscript.  For example $1^\textrm{st}$ is not recognised and must
be changed to $1^{\textrm{st}}$ for latex2html to function correctly.
Therefore these problems have been fixed throughout the manual.  The
number of errors printed out by latex2html is now significantly less.
        * Shifted the model-free model equations for the HTML manual
to the subequations environment.  This is for the relax manual at
http://www.nmr-relax.com/manual/index.html  This is to preserve the
equation numbering so that the HTML and PDF equation numbers match as
closely as possible.
        * Fixes for the equation number in the HTML version of the
manual.  This is for the relax manual at
http://www.nmr-relax.com/manual/index.html.
        * Made collecting of min, max and median value of chi2, when
creating the chi2 map.  Task #7792: (https://gna.org/task/?7792) make
the dx.map write suggest chi surface values.
        * Made the parsing of the min, max and median chi2 value to be
used to define the chi2 hypersurfaces when writing the dx .net
program.  Task #7792: (https://gna.org/task/?7792) make the dx.map
write suggest chi surface values.
        * Updated the latex2html HTML version to 4.1.  This is for the
relax manual at http://www.nmr-relax.com/manual/index.html.
        * Removed the "remap" keyword in the dx.map function, since
this is not in use.  Task #7792: (https://gna.org/task/?7792) make the
dx.map write suggest chi surface values.
        * Removed the keywords for "remap" in backend function, since
this was not used.  Task #7792: (https://gna.org/task/?7792) make the
dx.map write suggest chi surface values.
        * Added the keyword "chi_surface" to the front-end dx.map
function.  To set the chi2 surface level for the innermost, inner,
middle and outer isosurface.  Task #7792: (https://gna.org/task/?7792)
make the dx.map write suggest chi surface values.
        * Added the chi_surface=None to the backend function.  When
None, it will try to find reasonable chi2 values.  These will define
surface levels for the innermost, inner, middle and outer isosurface.
Task #7792: (https://gna.org/task/?7792) make the dx.map write suggest
chi surface values.
        * Now saves all chi2 values, to better find reasonable chi
level for the innermost, inner, middle and outer isosurface.  Task
#7792: (https://gna.org/task/?7792) make the dx.map write suggest chi
surface values.
        * Made the standard values of chi2 surface be 10, 20, 50 and
90 percentile of all chi2 values.  Task #7792:
(https://gna.org/task/?7792) make the dx.map write suggest chi surface
values.
        * Increased the precision of many of the
Frame_order.test_rigid_data_to_*_model system tests.  This is to fix a
test which was failing due to the recent re-parameterisation of the
rotor frame order model to eliminate one parameter.  The precision of
the numeric Sobol' sequence integration has been increased by shifting
the fixed parameter values even closer to zero.  As a consequence, the
chi-squared value of five of these tests is now lower.
        * Fix for system test
Relax_dips.test_cpmg_synthetic_dx_map_points.  Removing keyword
"remap", since this is not in use anymore.  Task #7792:
(https://gna.org/task/?7792) make the dx.map write suggest chi surface
values.
        * Changed the import of percentile from lib.mathematics to
lib.numpy_future.  Task #7792: (https://gna.org/task/?7792) make the
dx.map write suggest chi surface values.
        * Changed the percentage which is different in percentile from
numpy_future.  Task #7792: (https://gna.org/task/?7792) make the
dx.map write suggest chi surface values.
        * Added lib/numpy_future.py.  This module is for implementing
numpy function code from higher versions of numpy.  The relax
dependencies listed at the download page of relax:
http://www.nmr-relax.com/download.html#Source_code_release currently
only requires numpy >= 1.0.4.  Task #7792:
(https://gna.org/task/?7792) make the dx.map write suggest chi surface
values.
        * Added "numpy_future" to the __init__.py file in lib
directory.  Task #7792: (https://gna.org/task/?7792) make the dx.map
write suggest chi surface values.
        * Moved numpy_future from lib to extern.  Extern is special
package for external software or code that is bundled with relax.
Task #7792: (https://gna.org/task/?7792) make the dx.map write suggest
chi surface values.
        * Updated synthetic CPMG data script.  This is to analyse
complex dispersion data.  Related to bug #22021:
(https://gna.org/bugs/?22021) model B14 shows bad fitting to data.
Bug #22024: (https://gna.org/bugs/?22024) minimisation space for CR72
is catastrophic. The chi2 surface over dw and pA is bounded.
        * Added 4 unit tests for the
lib.geometry.lines.closest_point_ax() function.  This relax library
function was previously not being checked in the test suite.
        * Modified the rotor2 CaM frame order test data optimisation
script to optimise the pivot.  Print statements has been added for
comparing the optimised to the original pivot.  The rotation axis is
now also only created once, as it is now used in three places in the
script, hence the two functions for converting parameters to the new
parameterisation have been updated.
        * Modified the rotor2 CaM frame order test data optimisation
script to compare the rotor axes.  The optimised rotor axis is
recreated with the
lib.frame_order.rotor_axis.create_rotor_axis_alpha() function, and
then the original and optimised axes are compared.  The state.save
user function has been shifted forwards in the script to avoid a later
RelaxError.  The log file, average position PDB file, and state file
from running the script have been added to the repository or updated.
        * Removed the domain rotation code from the pymol.cone_pdb
user function backend.  This should only display the cone PDB object.
The domain rotation is now performed by the far more powerful
frame_order.pdb_model user function.
        * Created the Status_object.test_install_path system
verification test.  This is to catch bug #22037
(http://gna.org/bugs/?22037), the failure to load graphics in the GUI
due to the relax installation path not being set up correctly.
        * Started to create a chapter for the N-state model or
ensemble analysis in the manual.  This simply consists of a few
introductory sections and the phathalic acid graphic.
        * Spacing improvements in the stereochem_analysis.py N-state
mode sample script.
        * Docstring improvements for the stereochem_analysis.py
N-state model sample script.  The paragraphs are now all on one line
and 'Q-factor' has been changed to 'Q factor'.
        * Replaced 'Q-factor' with 'Q factor' throughout the relax
codebase.  This change to the correct notation covers code, comments,
and docstrings.
        * Added a new section for the stereochemistry analysis to the
N-state model chapter of the manual.  This is just an initial
introduction and an inclusion of the sample script.
        * Editing of the auto_analyses.stereochem_analysis module
docstring.  The line wrapping to 100 characters has been removed.
        * Exampled the stereochemistry analysis section of the N-state
model chapter of the manual.
        * Advances to the Grace 2D plotting abilities in the
lib.software.grace relax library module.  The write_xy_header()
function now accepts the new 'world', 'tick_major_spacing', and
'tick_minor_count' arguments.  These allow the world view to be
preset, and allow the ticks on the X and Y-axes to be programatically
changed.  The write_xy_data() has also been modified so that the
autoscaling can be turned off, as this Grace command will overwrite
the world view and tick setup.
        * Improvements for the 2D Grace plots created by the
rdc.corr_plot user function.  The autoscaling is now turned off, as
the data set representing the diagonal (with points [-100, -100] and
[100, 100]) causes the world view to be set to be between -100 to 100
or -200 to 200.  The world view is set to be between -50 and 50 Hz, so
that all RDCs should be visible.  The ticks in the plot have also been
set so that the minor ticks are at every Hz increment.
        * The units are now included in the Grace axis labels created
by the rdc.corr_plot user function.
        * Added the 'title' and 'subtitle' arguments to the
rdc.corr_plot user function.  This allows the defaults to be
overridden with user supplied titles and subtitles.
        * The rdc.corr_plot and pcs.corr_plot user function now use
the Grace icon in the GUI.
        * Created the new pymol.frame_order user function.  This user
function pairs with the frame_order.pdb_model user function, taking
the three PDB files created and displaying them nicely.  Neither user
function is complete, however the rotor representation of certain
frame order models is handled correctly.
        * Created a script for finding all dead
http://www.nmr-relax.com links in files of a directory tree.
        * Created the Structure.test_bug_22041_atom_numbering system
test to catch bug #22041.  This was reported at
https://gna.org/bugs/?22041.  The problem is that the
structure.write_pdb user function does not create the correct atom
serial numbers.
        * Modified the frame_order.pdb_model user function so that the
three PDB files are optional.  This allows only certain components of
the frame order theory to be represented in PDB format.
        * Improvements for the rotor PDB representation shown by the
pymol.frame_order user function.  The stick radius width change is now
only for the rotor PDB object, and not everything in PyMOL.
        * Modified the 2nd rotor model of CaM frame order optimisation
script.  The frame_order.pdb_model user function is now used to create
a PDB representation of the rotor motions for the real, expected
parameters and for the optimisation results when the pivot point is
fixed.  In addition, the pymol.cone_pdb user function has been
replaced by the pymol.frame_order user function.  All new files have
been added to the repository.
        * Added a relax script for creating a PDB representation of
the original pivot point.  This is for the 2nd rotor model of CaM
frame order in the test suite.  The resultant PDB file has been added
to the repository.
        * Modified the pivot point PDB representation script to
include the shifted pivot.  This is for the 2nd rotor model of CaM
frame order in the test suite.
        * Added the 'centre_type' argument to the
structure.superimpose user function.  This allows the default
'centroid' superimposition to be replaced by a centre of mass (CoM)
superimposition instead.  As the CoM and centroid position do not
match, the translation vector and Euler rotation angles will be
different.
        * Exposed the backend verbosity flag of the structure.read_*
user functions.  This allows the user to silence these user functions,
which can be very useful when loading many 3D structures in the
scripting UI mode.  This change is for the structure.read_gaussian,
structure.read_pdb, and structure.read_xyz user functions.
        * Expanded the structure.delete user function to add the
'verbosity' and 'spin_info' arguments.  The verbosity argument, when
set to zero, allows all output to be suppressed.  The spin_info flag
allows the deletion of spin and interatomic data to now be turned off,
so that only 3D data is deleted.
        * The new structure.delete 'verbosity' argument is now
propagated into the structural object.  This allows the printouts to
now be completely suppressed.
        * The structure.read_* user function 'verbosity' argument is
now passed into the structural object.  This allows another printout
to be silenced.
        * The structure.read_* user function 'verbosity' argument is
now passed into lib.io.open_read_file().  This allows all printouts
from these three user functions to be suppressed.
        * Converted the Mf.test_opendx_s2_te_rex system test into a
GUI test.  This is to demonstrate bug #22035
(https://gna.org/bugs/?22035), the dx.map user function being broken
in the GUI.
        * Python 3 fixes for the extern.numpy_future module.  These
changes are necessary to allow relax to even run.
        * Python 3 fixes for all of the relax code base.  The
lib.compat and multi.processor module changes were fatal, not useful
for Python 3, and hence reverted.
        * Python >= 3.2 fix for the
Relax_disp.test_sod1wt_t25_to_sherekhan_input system test.  The B0
field value of the ShereKhan input files created by the
relax_disp.sherekhan_input user function was formatted as "%s".
However in Python >= 3.2, floats are now converted to have 14 decimal
places whereas previous Python versions only had 10 places.  The user
function backend now forces only 10 decimal places to be written to
the input files.


    Bugfixes:
        * Fix for bug #21814 (https://gna.org/bugs/?21814).  This is
the PDB reading failure when the PDB records are not padded to 80
spaces.  The fix is simple, all PDB records are pre-validated.  This
includes removing all newline characters and padding each PDB record
to 80 spaces when needed.  This will however add an overhead cost --
the internal PDB reader will now be slower.  However corrupted PDB
files, produced by MODELLER for example, not padded to 80 spaces will
now be better supported.
        * Bug fix for all of the R1rho relaxation dispersion models.
The atan2() function is now being used rather than atan() for
determining the rotating frame tilt angle.  This is to allow the angle
to be in the correct quadrant - i.e. to have a sign or direction.
        * Huge speed up of the interatom.define user function.  This
is to fix bug #21862 (https://gna.org/bugs/?21862), the freezing up of
relax when using the dipolar relaxation button in the model-free
auto-analysis in the GUI.  This involves a number of changes.  The
algorithm for the backend of the interatom.define user function has
been broken into two separate parts.  The first part is new and uses
the internal structural object atom_loop() twice for each spin ID
string.  This then calls the new are_bonded_index() structural object
method which uses atom indices to find if two atoms are bonded, as the
atom indices are returned from the atom_loop().  The
are_bonded_index() is orders of magnitude faster than are_bonded() as
selection objects are not used and the bonded data structure can be
directly accessed.  The are_bonded() method has also been slightly
speed up by improving its logic.  The second part is to perform the
original algorithm of two nested spin loops over each spin ID and
using the are_bonded() structural method.  This second part only
happens if the first part finds nothing.  The structural object
atom_loop() method has been modified to be able to return the molecule
index.  These indices are needed for the new are_bonded_index()
method.  When running relax with the profile flag turned on, a simple
script which loads the 'Ubiquitin2.bz2' saved state and then the
"interatom.define(spin_id1='@N', spin_id2='@H', direct_bond=True)"
user function decreases from a total time of 143 to 3.8 seconds.
However there are no speed changes detectable in the relax test suite
- on one computer the system, unit and GUI tests only only vary by a
fraction of a second.
        * Fix for the NOE analysis for the peak intensity parameters.
This relates to bug #21863 (https://gna.org/bugs/?21863), the
grace.write user function not being able to write ref/sat plots as
described in sample script noe.py.  The 'ref' and 'sat' parameters
have been replaced by the 'intensities' dictionary data structure a
long, long time ago.  Therefore they have been eliminated and replaced
by the 'intensities' definition.
        * Fixes for the definitions of the N-state model analysis
parameters.  This analysis does not use the CSA value, and the
paramagnetic centre is a list, not a float.
        * Fixes for the definitions of the 'theta' and 'w_eff'
relaxation dispersion parameters.  These should not be manually
changed by the user and they are not optimised parameter.  Therefore
they have been shifted from the set 'params' to the set 'all', to
avoid listing them in the parameter tables (for example in the
value.set user function).
        * Fixes for the frame_order.pivot user function - the model
parameters were not being updated.  The update_model() function is now
called to make sure that the pivot point is either added or removed
from the list of model parameters.
        * Fix for bug #21924 (https://gna.org/bugs/?21924).  This is
the failure to output 2D Grace plots for the R20, R20A, R20B, and
R1rho0 relaxation dispersion parameters.  A simple test for missing
data fixed the problem.
        * Fix for the Relax_disp.test_korzhnev_2005_15n_sq_data system
test for certain MS Windows systems.  This was reported as sr #3142
(http://gna.org/support/?3142).  The problem was simply the lower
precision of this system.
        * Fix for the cpmg_analysis.py relaxation dispersion sample
script.  This was reported as sr #3142 (http://gna.org/support/?3142).
 The problem was that one of the paths was in the Linux/Unix format
and hence if the path is not changed by the user, then the script will
not work for them if they are using MS Windows or Mac OS X.
        * More path fixes for the sample scripts to allow them to run
on MS Windows and Mac OS X.  This is for the relaxation dispersion
R1rho_analysis.py script and the N-state model
conformation_analysis_rdc+pcs.py script.  These scripts should be
modified by the user for their own data, so they should not encounter
this problem when using the scripts normally.
        * Python 3 fixes throughout the codebase.
        * Python 3 fix for the Library.test_library_independence
software verification test.
        * Python 3 fix for the
Relax_disp.test_kteilum_mhsmith_eschulz_lcchristensen_gsolomentsev_moliveberg_makke_sod1wt_t25_to_cr72
system test.  The xrange builtin function does not exist in Python 3.
        * Python 3 fix for the Relax_disp.setup_sod1wt_t25 system
test.  The xrange builtin function does not exist in Python 3.
        * Updated the
Relax_disp.test_hansen_cpmg_data_missing_auto_analysis system test for
the recent changes.  This is for fixing bug #21960
(https://gna.org/bugs/?21960).  The chi-square values are different
due to the fix for bug #21954, the peak intensity error analysis bug,
and the CR72 model (http://wiki.nmr-relax.com/CR72) results are
different due to the fix for bug #21953, the change of the kex values
used in the grid search.
        * Fix for the relax_disp.select_model user function for when
the C modules are not compiled.  This was checking for the presence of
the compiled C modules whenever the 'R2eff' model was specified.
However this behaviour is incorrect.  It should only check for the C
modules if exponential curves are to be fit.
        * Fix for bug.  The variances used to calculated std, should
only be taken from those which are defined in the subset.  Regarding
bug #21954, (https://gna.org/bugs/?21954) - order of
spectrum.error_analysis is important.
        * Fix for system test Relax_disp.test_hansen_cpmgfit_input.
Bug #21989: (https://gna.org/bugs/?21989) - relax_disp.cpmgfit_input
does not work for model CR72.  The looping was performed over the file
lines instead of the defined fixed lines.  The output files is
truncated, and does not contain the wished data.
        * Fix for "offset" and "point" swapped in looping.  Bug
#21989: (https://gna.org/bugs/?21989) - relax_disp.cpmgfit_input does
not work for model CR72.
        * Fix for bug #21990, the --log and --tee options not
functioning with the test suite.  The bug report is at
https://gna.org/bugs/?21990.
        * Fix for bug #21970 (http://gna.org/bugs/?21970).  The Mac OS
X dmg file required one of the test_suite/shared_data directories
included in the 'include' list to properly bundle all relax modules
inside the Mac App framework.  This was achieved by creating a
whitelist structure and adding the directory to that.
        * Fix for bug #21984 (https://gna.org/bugs/?21984), the
numpy.float16 error.  The numpy.float16 type is not defined for all
numpy versions.  Therefore the lib.check_types.float16 type is used
instead as this defaults to numpy.float32 when numpy.float16 is
missing.
        * Fix for the relax_disp.parameter_copy function.  The median
of the values was not performed properly, since 0.0 was already in the
starting list of values.
        * Fix for the relax_disp.parameter_copy user function
description.  The parameters are not averaged but instead the median
value from all spins is taken.
        * Fix for bug #22001, the execution of script changing the
current working directory.  This is reported at
http://gna.org/bugs/?22001.  The changing of the current working
directory (CWD) was added to allow for nested scripting.  However this
is no longer needed as the script import mechanism has changed from
the exec() function call to the runpy Python module.
        * Fix for bug #22002, the failure of the
Library.test_library_independence software verification test.  This is
reported at https://gna.org/bugs/?22002.  The fix was simply to use
the relax installation path in the status singleton object to make
sure that the relax 'lib' directory can be found independently of what
the current working directory is.
        * Fix for path to sample data in sample script:
sample_scripts/relax_disp/cpmg_analysis.py.
        * Fix for path to sample data in sample script:
sample_scripts/relax_disp/R1rho_analysis.py.
        * Fix for bug #22004, the conformation_analysis_rdc+pcs.py
N-state model sample script not working.  This is reported at
https://gna.org/bugs/?22004.  The problem was that the return_api()
function call needed to be after the creation of the data pipe.
        * Fix for the local_min_search.py N-state model sample script.
 The return_api() function call was preformed too early.  Instead of
placing it after the data pipe creation, the specific analysis type is
now directly specified.
        * Fix for type in the eta scale of CR72 model.  The
calculation in relax was correct, but the scale of eta has been wrong
in the documentation.  This was discussed in:
http://thread.gmane.org/gmane.science.nmr.relax.devel/5506.  The B14
model is explained in: http://wiki.nmr-relax.com/B14.
        * Bug fix for taking the median if there is more than 0 values
in the list.  Bug #22010 (https://gna.org/bugs/?22010):
relax_disp.parameter_copy return a list of pA, if copying only for one
spin.
        * Fix for the dispersion model_statistics() specific API
method.  The spin ID argument should override the model_info argument.
 The method now correctly implements this.
        * Fixed the rotor axis direction in the
lib.frame_order.rotor_axis module.  The normalisation code has also
been simplified.
        * Fix for tabular space and forgotten "\n" when writing
dx.maps config files.  Bug #22023: (https://gna.org/bugs/?22023) relax
dx.map produce .net files which makes error.
        * Added another sentence telling the user that multiple field
relaxation data is essential.  This is for the model-free
dauvergne_protocol auto-analysis section of the relax manual and
relates to bug #21799 (https://gna.org/bugs/?21799).
        * Another sentence about multiple field relaxation data added
to the manual.  This is for the model-free dauvergne_protocol GUI
section of the relax manual and relates to bug #21799
(https://gna.org/bugs/?21799).
        * Documentation fix for IT99.  Changed kex to tex.  Still
needs to be changed at homepage:
http://www.nmr-relax.com/analyses/relaxation_dispersion.html#IT99.
Bug #22019: (https://gna.org/bugs/?22019) the IT99 model is listed
with parameter kex instead of tex.
        * Documentation fix for IT99.  Changed kex to tex in user
function.  bug #22019: (https://gna.org/bugs/?22019) the IT99 model is
listed with parameter kex instead of tex.
        * Small extra explanation in auto analysis.  Bug #21799
(https://gna.org/bugs/?21799): Insufficient recommendations/warning
message for the execution of dauvergne protocol with 1 field is
incomplete.
        * Big bug fix for the relax installation path determination.
This is to fix bug #22037 (http://gna.org/bugs/?22037), the failure to
load graphics in the GUI due to the relax installation path not being
set up correctly.  The problem is that the status module was looking
for the compat.py file to determine where the base directory is, but
this file has been moved into the lib/ package.  Now the dep_check.py
file is being searched for.
        * Fixed the description of the N-state model in the
pipe.create user function.  This has nothing to do with domain motions
- it is the treatment of ensembles of structures.
        * Fix for the axis labels in the rdc.corr_plot user function
when T data is converted to D.
        * Fix for bug #22039, the printing out of Dpar twice by the
diffusion_tensor.display user function.  This is reported at
https://gna.org/bugs/?22039.  The solution is given in the original
bug report.
        * Fix for bug #22041, the PDB atom serial number error from
the structure.write_pdb user function.  This was reported at
https://gna.org/bugs/?22041.  The problem is that the
structure.write_pdb user function preserves the atom numbering from
the original structure and uses that for the atom serial number.
However the atom serial number must be replaced with sequential values
to produce a valid PDB file.  This is fatal for any CONECT records.
        * Fix for the chain-reaction failures in the test suite.  This
fixes bug #22055 (https://gna.org/bugs/?22055), the
processor.run_queue() not cleaning up in uni_processor -
chain-reaction failures in the test suite.  The fix was insanely
simple, just implementing what was mentioned Gary Thompson's FIXME
comment in the run_queue() method of the uni-processor object.  The
queue execution code has been placed inside a 'try' statement and the
queue cleaning up code in a 'finally' statement.  This closes a
painfully difficult to find bug that has been in relax since 2006,
though only affecting relax developers.



Related Messages


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