Open main menu

Changes

Relax 3.2.0

3,679 bytes added, 15:21, 9 September 2014
User function HTML manual links.
* 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 [http://www.nmr-relax.com/manual/grace_write.html 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.
* 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 [http://www.nmr-relax.com/manual/state_save.html 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.
* 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 [http://www.nmr-relax.com/manual/frame_order_select_model.html 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.
* 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 [http://www.nmr-relax.com/manual/frame_order_pivot.html 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.
* 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 [http://www.nmr-relax.com/manual/frame_order_average_position.html 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 [http://www.nmr-relax.com/manual/frame_order_pdb_model.html 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 [http://www.nmr-relax.com/manual/frame_order_pivot.html 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.
* 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 [http://www.nmr-relax.com/manual/value_set.html 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 [http://www.nmr-relax.com/manual/value_set.html 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 [http://www.nmr-relax.com/manual/value_set.html 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 [http://www.nmr-relax.com/manual/value_set.html 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.
* 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 [http://www.nmr-relax.com/manual/value_set.html value.set user function ] but not [http://www.nmr-relax.com/manual/value_write.html value.write], while allowing tables to still be shared.
* Expanded the steady-state NOE parameter description.
* Expanded the reduced spectral density mapping parameter descriptions.
* 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 [http://www.nmr-relax.com/manual/dx_map.html 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 [http://www.nmr-relax.com/manual/dx_map.html 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 [http://www.nmr-relax.com/manual/grace_write.html 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 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 [http://www.nmr-relax.com/manual/value_set.html value.set user function ] changes.* Deleted the diffusion tensor parameter setting documentation from the [http://www.nmr-relax.com/manual/value_set.html 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.
* 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 [http://www.nmr-relax.com/manual/value_copy.html 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 [http://www.nmr-relax.com/manual/value_display.html 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 [http://www.nmr-relax.com/manual/value_read.html 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 [http://www.nmr-relax.com/manual/value_set.html 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 [http://www.nmr-relax.com/manual/value_write.html value.write user function documentation].
* Changed the title for the value user function class.
* Docstring update for the relaxation dispersion linear_constraints() function.
* 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 [http://www.nmr-relax.com/manual/relax_disp_select_model.html 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 [http://www.nmr-relax.com/manual/value_set.html 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 [http://www.nmr-relax.com/manual/value_set.html 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.
* 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 [http://www.nmr-relax.com/manual/relax_disp_set_grid_r20_from_min_r2eff.html 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 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 [http://www.nmr-relax.com/manual/relax_disp_parameter_copy.html 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.
* 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 [http://www.nmr-relax.com/manual/relax_disp_select_model.html 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.
* 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 [http://www.nmr-relax.com/manual/relax_disp_cpmg_frq.html relax_disp.cpmg_frq user function ] to [http://www.nmr-relax.com/manual/relax_disp_cpmg_setup.html 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.
* 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 [http://www.nmr-relax.com/manual/relax_disp_select_model.html relax_disp.select_model user function ] front end. Added the model, its description, the equations for the analytic models, and all references to the [http://www.nmr-relax.com/manual/relax_disp_select_model.html 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.
* 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 [http://www.nmr-relax.com/manual/dx_map.html 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 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 [http://www.nmr-relax.com/manual/dx_map.html 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.
* 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 [http://www.nmr-relax.com/manual/state_save.html 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 [http://www.nmr-relax.com/manual/pymol_cone_pdb.html 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 [http://www.nmr-relax.com/manual/frame_order_pdb_model.html 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.
* 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 [http://www.nmr-relax.com/manual/rdc_corr_plot.html 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 [http://www.nmr-relax.com/manual/rdc_corr_plot.html rdc.corr_plot user function].* Added the 'title' and 'subtitle' arguments to the [http://www.nmr-relax.com/manual/rdc_corr_plot.html rdc.corr_plot user function]. This allows the defaults to be overridden with user supplied titles and subtitles.* The [http://www.nmr-relax.com/manual/rdc_corr_plot.html rdc.corr_plot ] and [http://www.nmr-relax.com/manual/pcs_corr_plot.html pcs.corr_plot ] user function now use the Grace icon in the GUI.* Created the new [http://www.nmr-relax.com/manual/pymol_frame_order.html pymol.frame_order user function]. This user function pairs with the [http://www.nmr-relax.com/manual/frame_order_pdb_model.html 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 [http://www.nmr-relax.com/manual/structure_write_pdb.html structure.write_pdb user function ] does not create the correct atom serial numbers.* Modified the [http://www.nmr-relax.com/manual/frame_order_pdb_model.html 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 [http://www.nmr-relax.com/manual/pymol_frame_order.html 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 [http://www.nmr-relax.com/manual/frame_order_pdb_model.html 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 [http://www.nmr-relax.com/manual/pymol_cone_pdb.html pymol.cone_pdb user function ] has been replaced by the [http://www.nmr-relax.com/manual/pymol_frame_order.html 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 [http://www.nmr-relax.com/manual/structure_superimpose.html 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 [http://www.nmr-relax.com/manual/structure_read_gaussian.html structure.read_gaussian], [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb], and [http://www.nmr-relax.com/manual/structure_read_xyz.html structure.read_xyz ] user functions.* Expanded the [http://www.nmr-relax.com/manual/structure_delete.html 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.
* 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 [http://www.nmr-relax.com/manual/relax_disp_sherekhan_input.html 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.
* 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 [http://www.nmr-relax.com/manual/interatom_define.html 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 [http://www.nmr-relax.com/manual/value_set.html value.set user function]).* Fixes for the [http://www.nmr-relax.com/manual/frame_order_pivot.html 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.
* 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 [http://www.nmr-relax.com/manual/relax_disp_select_model.html 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 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 [http://www.nmr-relax.com/manual/relax_disp_parameter_copy.html 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 [http://www.nmr-relax.com/manual/relax_disp_parameter_copy.html 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.
* 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 [http://www.nmr-relax.com/manual/pipe_create.html 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 [http://www.nmr-relax.com/manual/rdc_corr_plot.html 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 [http://www.nmr-relax.com/manual/structure_write_pdb.html 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.
Trusted, Bureaucrats
4,228

edits