Author: tlinnet Date: Wed Jan 7 11:16:25 2015 New Revision: 27154 URL: http://svn.gna.org/viewcvs/relax?rev=27154&view=rev Log: Merged revisions 27035-27040,27044,27052-27116,27119-27153 via svnmerge from svn+ssh://tlinnet@xxxxxxxxxxx/svn/relax/trunk ........ r27035 | bugman | 2014-12-09 08:32:31 +0100 (Tue, 09 Dec 2014) | 9 lines Added the norm_type argument to the grace.write user function. This is in response to http://thread.gmane.org/gmane.science.nmr.relax.devel/7392/focus=7438. This norm_type argument can either be 'first' or 'last' to allow different points of the plot to be the normalisation factor. The default of 'first' preserves the old behaviour of first point normalisation. ........ r27036 | bugman | 2014-12-09 08:36:47 +0100 (Tue, 09 Dec 2014) | 5 lines The relax_fit_saturation_recovery.py system test script now sets the norm_type argument. This is for testing out this new option for the grace.write user function. ........ r27037 | bugman | 2014-12-09 08:41:45 +0100 (Tue, 09 Dec 2014) | 6 lines The new grace.write user function norm_type argument has been activated. The argument is now passed from pipe_control.grace.write into the write_xy_data() function of the lib.software.grace module, and is used to select which point to use for the normalisation. ........ r27038 | bugman | 2014-12-09 08:47:10 +0100 (Tue, 09 Dec 2014) | 7 lines The relaxation exponential curve-fitting auto-analysis now sets the normalisation type. This is for the new grace.write user function. If the model for all spins is set to 'sat', then the norm_type will be set to 'last'. This allows for reasonable normalised curves for the saturation recovery R1 experiment types. ........ r27039 | bugman | 2014-12-09 08:54:53 +0100 (Tue, 09 Dec 2014) | 7 lines Change for norm_type variable in the relaxation exponential curve-fitting auto-analysis. This is now set to 'last', not only for the saturation recovery, but now also for the inversion recovery experiment types. This ensures that the normalisation point is the steady state magnetisation peak intensity. ........ r27040 | bugman | 2014-12-09 09:04:20 +0100 (Tue, 09 Dec 2014) | 8 lines Cleared the list of blacklisted objects for the cdp.exp_info data structure. The data_store.exp_info.ExpInfo class blacklist variable had previously not been used. But after recent changes, the list was now active. As all the contents of the container were blacklisted, the container was being initialised as being empty when reading the XML formatted state or results files. Therefore the blacklist is now set to an empty list. ........ r27044 | bugman | 2014-12-09 14:59:51 +0100 (Tue, 09 Dec 2014) | 12 lines Improvements for all of the tables of the relaxation dispersion chapter of the manual. The captions are now the full width (or height for rotated tables) of the page in the PDF version of the manual. The \latex{} command from the latex2html package has been used to improve the HTML versions of the tables by deactivating the landscape environment, the cmidrule command, and the caption width commands. This results in properly HTML formatted tables, rather than creating a PNG image for the whole table. These should significantly improve the tables in the webpages http://www.nmr-relax.com/manual/Comparison_of_dispersion_analysis_software.html, http://www.nmr-relax.com/manual/The_relaxation_dispersion_auto_analysis.html, and http://www.nmr-relax.com/manual/Dispersion_model_summary.html. ........ r27052 | bugman | 2014-12-10 13:58:30 +0100 (Wed, 10 Dec 2014) | 7 lines Created the Structure.test_align_molecules system test. This will be used to extend the functionality of the structure.align user function to be able to align different molecules in the same data pipe, rather than requiring either models or identically named structures in different data pipes. ........ r27053 | bugman | 2014-12-10 14:05:33 +0100 (Wed, 10 Dec 2014) | 6 lines Modified the Structure.test_align_molecules system test. This now simultaneously checks both the pipes and molecules arguments to the structure.align user function. ........ r27054 | bugman | 2014-12-10 14:11:11 +0100 (Wed, 10 Dec 2014) | 3 lines More changes for the new Structure.test_align_molecules system test. ........ r27055 | bugman | 2014-12-10 14:12:18 +0100 (Wed, 10 Dec 2014) | 3 lines Some more fixes for the Structure.test_align_molecules system test. ........ r27056 | bugman | 2014-12-10 15:53:34 +0100 (Wed, 10 Dec 2014) | 7 lines Change to the Structure.test_align system test. The molecules argument for the structure.align user function has been changed to match the models argument, in that it now needs to be a list of lists with the first dimension matching the pipes argument. This change is to help with the implementation of the new structure.align functionality. ........ r27057 | bugman | 2014-12-10 15:56:46 +0100 (Wed, 10 Dec 2014) | 9 lines Implemented the new molecules argument for the structure.align user function. In addition to accepting the new argument, the user function backend has been redesigned for flexibility. The assembly of coordinates and final rotations and translations now consist of three loops over desired data pipes, all models, and all molecules. If the models or molecules arguments are supplied, then the models or molecules in the loop which do not match are skipped. This logic simplifies and cleans up the backend. ........ r27058 | bugman | 2014-12-10 16:37:18 +0100 (Wed, 10 Dec 2014) | 6 lines Created the Structure.test_rmsd_molecules system test. This will be used to implement a new molecules argument for the structure.rmsd user function so that the RMSD between different molecules rather than different models can be calculated. ........ r27059 | bugman | 2014-12-10 17:03:24 +0100 (Wed, 10 Dec 2014) | 6 lines Implemented the new molecules argument for the structure.rmsd user function. This allows the RMSD between different molecules rather than different models to be calculated, extending the functionality of this user function. ........ r27060 | bugman | 2014-12-10 17:07:08 +0100 (Wed, 10 Dec 2014) | 3 lines Removed some temporary printouts from the structure.align user function. ........ r27061 | bugman | 2014-12-10 17:20:19 +0100 (Wed, 10 Dec 2014) | 6 lines Created the Structure.test_displacement_molecules system test. This will be used to implement the new molecules argument for the structure.displacement user function. ........ r27062 | bugman | 2014-12-10 17:34:55 +0100 (Wed, 10 Dec 2014) | 7 lines Implemented the molecules argument for the structure.displacement user function. This allows the displacements (translations and rotations) to be calculated between different molecules rather than different models. This information is stored in the dictionaries of the cdp.structure.displacement object with the keys set to the molecule list indices. ........ r27063 | bugman | 2014-12-10 18:53:48 +0100 (Wed, 10 Dec 2014) | 6 lines Created the Structure.test_find_pivot system test. This is to check the structure.find_pivot user function as this algorithm is currently not being checked in the test suite. ........ r27064 | bugman | 2014-12-10 18:57:14 +0100 (Wed, 10 Dec 2014) | 6 lines Created the Structure.test_find_pivot_molecules system test. This will be used to implement support for a molecules argument in the structure.find_pivot user function so that different molecules rather than different models can be used in the analysis. ........ r27065 | bugman | 2014-12-11 08:37:45 +0100 (Thu, 11 Dec 2014) | 3 lines Increased the precision of pivot optimisation in the Structure.test_find_pivot_molecules system test. ........ r27066 | bugman | 2014-12-11 08:41:07 +0100 (Thu, 11 Dec 2014) | 6 lines Implemented the molecules argument for the structure.find_pivot user function. This allows the motional pivot optimisation between different molecules rather than different models. ........ r27067 | bugman | 2014-12-11 08:58:36 +0100 (Thu, 11 Dec 2014) | 8 lines Shifted the atomic assembly code from the structure.align user function into its own function. The new function assemble_coordinates() of the pipe_control.structure.main module will be used to standardise the process of assembling atomic coordinates for all of the structure user functions. This will improve the support for comparing different molecules rather than different models as missing atoms or divergent primary sequence are properly handled, and it has multi-pipe support. ........ r27068 | bugman | 2014-12-11 09:04:35 +0100 (Thu, 11 Dec 2014) | 5 lines Changed the argument order for the structure.align user function. The standardised order will now be pipes, models, molecules, atom_id, etc. ........ r27069 | bugman | 2014-12-11 09:25:06 +0100 (Thu, 11 Dec 2014) | 12 lines Converted the structure.find_pivot user function to the new pipes/models/molecules/atom_id design. This allows the motional pivot algorithm to work on atomic coordinates from different data pipes, different structural models, and different molecules. The change allows the Structure.test_find_pivot_molecules system test to now pass, as missing atomic data is now correctly handled. The user function backend uses the new pipe_control.structure.main.assemble_coordinates() function. The Structure.test_find_pivot and Structure.test_find_pivot_molecules system tests have been updated for the user function argument changes. ........ r27070 | bugman | 2014-12-11 09:44:53 +0100 (Thu, 11 Dec 2014) | 12 lines Shift of the atomic coordinate assembly code into the relax library. Most of the pipe_control.structure.main.assemble_coordinates() function has been shifted into the assemble_coord_array() function of the new lib.structure.internal.coordinates module. The pipe_control function now only checks the arguments and assembles the structural objects from the relax data store, and then calls assemble_coord_array() to do all of the work. This code abstraction increases the usefulness of the atomic coordinate assembly and allows it to be significantly expanded in the future, for example by being able to take sequence alignments into consideration. ........ r27071 | bugman | 2014-12-11 09:49:08 +0100 (Thu, 11 Dec 2014) | 3 lines Tooltip standardisation for the structure.align and structure.find_pivot user functions. ........ r27072 | bugman | 2014-12-11 10:02:23 +0100 (Thu, 11 Dec 2014) | 3 lines Comment fix. ........ r27073 | bugman | 2014-12-11 10:20:56 +0100 (Thu, 11 Dec 2014) | 5 lines The coordinate assembly function now returns list of unique IDs. This is for each structural object, model and molecule. ........ r27074 | bugman | 2014-12-11 10:33:05 +0100 (Thu, 11 Dec 2014) | 6 lines Changed the structure ID strings returned by the assemble_coord_array() function. This is from the lib.structure.internal.coordinates module. The structural object name is only included if more than one structural object has been supplied. ........ r27075 | bugman | 2014-12-11 10:38:43 +0100 (Thu, 11 Dec 2014) | 3 lines More improvements for the structure ID strings returned by the assemble_coord_array() function. ........ r27076 | bugman | 2014-12-11 10:43:48 +0100 (Thu, 11 Dec 2014) | 3 lines More improvements for the structure ID strings returned by the assemble_coord_array() function. ........ r27077 | bugman | 2014-12-11 10:48:26 +0100 (Thu, 11 Dec 2014) | 6 lines Converted the internal structural displacement object to use unique IDs rather than model numbers. This allows the object to be much more flexible in what types of structures it can handle. This is in preparation for a change in the structure.displacement user function. ........ r27078 | bugman | 2014-12-11 10:50:16 +0100 (Thu, 11 Dec 2014) | 9 lines Converted the structure.displacement user function to the new pipes/models/molecules/atom_id design. This allows the displacements to be calculated between atomic coordinates from different data pipes, different structural models, and different molecules. The user function backend has been hugely simplified as it now uses the new pipe_control.structure.main.assemble_coordinates() function. The Structure.test_displacement system test has been updated for the user function argument changes. ........ r27079 | bugman | 2014-12-11 10:55:24 +0100 (Thu, 11 Dec 2014) | 3 lines Another refinement for the structure ID strings returned by the assemble_coord_array() function. ........ r27080 | bugman | 2014-12-11 10:55:53 +0100 (Thu, 11 Dec 2014) | 5 lines Updated the Structure.test_displacement_molecules system test. This is for the changes to the structure.displacement user function. ........ r27081 | bugman | 2014-12-11 11:03:54 +0100 (Thu, 11 Dec 2014) | 3 lines Docstring spelling fixes for the steady-state NOE and relaxation curve-fitting auto-analyses. ........ r27082 | bugman | 2014-12-11 11:20:03 +0100 (Thu, 11 Dec 2014) | 10 lines Converted the structure.rmsd user function to the new pipes/models/molecules/atom_id design. This allows the RMSD calculation to work on atomic coordinates from different data pipes, different structural models, and different molecules. The user function backend uses the new pipe_control.structure.main.assemble_coordinates() function. The Structure.test_rmsd_molecules system test has been updated for the user function argument changes. ........ r27083 | bugman | 2014-12-11 11:34:24 +0100 (Thu, 11 Dec 2014) | 5 lines Created the internal structural object model_list() method. This is to simplify the assembly of a list of all current models in the structural object. ........ r27084 | bugman | 2014-12-11 11:37:33 +0100 (Thu, 11 Dec 2014) | 8 lines Converted the structure.superimpose user function to the new pipes/models/molecules/atom_id design. The user function arguments have not changed, however the backend now uses the new pipe_control.structure.main.assemble_coordinates() function. This is to simply decrease the number of failure points possible in the structure user functions. The change has no effect on the user function use or results. ........ r27085 | bugman | 2014-12-11 11:42:40 +0100 (Thu, 11 Dec 2014) | 6 lines Documentation fix for the assemble_coord_array() function. The return values for lib.structure.internal.coordinates.assemble_coord_array() were incorrectly documented. ........ r27086 | bugman | 2014-12-11 11:46:04 +0100 (Thu, 11 Dec 2014) | 6 lines Modified the Structure.test_bug_22070_structure_superimpose_after_deletion system test. This now calls the structure.align user function after calling the structure.superimpose user function to better test a condition that can trigger bugs. ........ r27087 | bugman | 2014-12-11 11:49:26 +0100 (Thu, 11 Dec 2014) | 6 lines Fixes for the structure.superimpose and structure.align user functions. The fit_to_mean() and fit_to_first() functions of lib.structure.superimpose where being incorrectly called, in that they expect a list of elements and not lists of lists. ........ r27088 | bugman | 2014-12-11 12:25:03 +0100 (Thu, 11 Dec 2014) | 9 lines Code refactorisation for the structure.align user function backend. The looping over data pipes, model numbers, and molecule names, skipping those that don't match the function arguments, has been shifted into the new structure_loop() generator function of the pipe_control.structure.main module. This function assembles the data from the data store and then calls the new loop_coord_structures() generator function of the lib.structure.internal.coordinates module which does all of the work. ........ r27089 | bugman | 2014-12-11 13:13:19 +0100 (Thu, 11 Dec 2014) | 3 lines Some docstring expansions for the pipe_control.structure.main module functions. ........ r27090 | bugman | 2014-12-11 13:40:41 +0100 (Thu, 11 Dec 2014) | 9 lines Refactored the descriptions of a number of structure user functions. This includes the structure.align, structure.displacement, structure.find_pivot, structure.rmsd and structure.superimpose user functions. The paragraph_multi_struct and paragraph_atom_id module strings have been created and are shared as two paragraphs for each of these user function descriptions. This standardises the pipe/model/molecule/atom_id descriptions. The user function wizard page sizes have been updated for these changes. ........ r27091 | bugman | 2014-12-11 16:00:21 +0100 (Thu, 11 Dec 2014) | 10 lines Changed the design of the lib.structure.internal.coordinates.assemble_coord_array() function. The elements_flag argument has been renamed to seq_info_flag. If this is set, then in addition to the atomic elements, the molecule name, residue name, residue number, and atom name is now assembled and returned. This information is now the common information between the structures, hence the return values for the elements are a list of str rather than list of lists. All of the code in pipe_control.structure.main has been updated for the change. ........ r27092 | bugman | 2014-12-11 16:03:42 +0100 (Thu, 11 Dec 2014) | 6 lines Fix for the structure.align user function if no data pipes are supplied. The pipes list was no longer being created as it was shifted to the assemble_coordinates() function, however it is required for the translation and rotation function calls. ........ r27093 | bugman | 2014-12-11 16:23:46 +0100 (Thu, 11 Dec 2014) | 7 lines Bug fix for the lib.arg_check.is_int_list() function for checking a list of lists. This is used to check user function arguments, but was causing a RelaxError to be raised for all integer list of lists user function arguments when a valid value is supplied. The function has been updated to match the is_str_list() function which does not suffer from this bug. ........ r27094 | bugman | 2014-12-11 17:13:55 +0100 (Thu, 11 Dec 2014) | 17 lines Converted the structure.web_of_motion user function to the new pipe/model/molecule/atom_id design. This allows the web of motion representation to work on atomic coordinates from different data pipes, different structural models, and different molecules. The user function backend uses the new pipe_control.structure.main.assemble_coordinates() function to assemble the common atom coordinates, molecule names, residue names, residue numbers, atom names and elements. All this information is then used to construct the new web of motion PDB file. Therefore the entire backend has been rewritten. The Structure.test_web_of_motion_12, Structure.test_web_of_motion_13, and Structure.test_web_of_motion_all system tests have all been updated for the changed structure.web_of_motion user function arguments. In addition, the system tests Structure.test_web_of_motion_12_molecules, Structure.test_web_of_motion_13_molecules and Structure.test_web_of_motion_all_molecules have been created as a copy of the other tests but with the 3 structures loaded as different molecules. ........ r27095 | bugman | 2014-12-11 17:27:20 +0100 (Thu, 11 Dec 2014) | 7 lines Fix for the IDs returned by lib.structure.internal.coordinates.assemble_coord_array(). The list of unique structure IDs was being incorrectly constructed if multiple molecules are present but the molecules argument was not supplied. It would be of a different size to the coordinate data structure. ........ [... 464 lines stripped ...]