Author: bugman Date: Tue Mar 10 09:37:20 2015 New Revision: 27790 URL: http://svn.gna.org/viewcvs/relax?rev=27790&view=rev Log: Merged revisions 27707-27714,27717-27719,27722-27751,27753-27756,27758-27761,27763-27767,27769,27771-27774,27776-27780,27782-27787 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/trunk ........ r27707 | bugman | 2015-02-20 16:16:02 +0100 (Fri, 20 Feb 2015) | 6 lines Python 3 fix for the new internal structural object MolContainer._sort() method. The list() builtin function is required to convert the output of the range() function into a true list in Python 3, so that the list.sort() method can be accessed. ........ r27708 | bugman | 2015-02-20 16:46:14 +0100 (Fri, 20 Feb 2015) | 7 lines Python 3 fix for the Test_msa.test_central_star unit test. This is from the _lib._sequence_alignment.test_msa unit test module. The logic of range() + range() does not work in Python 3, so the range function calls are now wrapped in list() function calls to convert to the correct data structure type. ........ r27709 | bugman | 2015-02-20 16:51:33 +0100 (Fri, 20 Feb 2015) | 6 lines Python 3 fix for the internal structural object MolContainer._sort_key() method. This method is used as the key for the sort() function. However in Python 3, the key cannot be None. So now if the residue number is None, the value of 0 is returned instead. ........ r27710 | bugman | 2015-02-20 16:54:24 +0100 (Fri, 20 Feb 2015) | 6 lines Python 3 fix for the pipe_control.structure.main.assemble_structural_coordinates() function. This affects most of the structure user functions. This was another case of requiring the list() built in function to create a list object from an iterator. ........ r27711 | bugman | 2015-02-20 16:56:44 +0100 (Fri, 20 Feb 2015) | 5 lines Another Python 3 list() fix for the structure user functions. This time the problem was in the pipe_control.structure.main.sequence_alignment() function. ........ r27712 | bugman | 2015-02-23 10:06:59 +0100 (Mon, 23 Feb 2015) | 9 lines Large speed up of the structure.web_of_motion user function. With the introduction of the _sort() internal structural object method and it being called by the add_atom(), the structure.web_of_motion user function was now painfully slow. As sorting the structural data is unnecessary for the backend of this user function, the add_atom() boolean argument 'sort' has been added to turn the sorting on and off, and the structure.web_of_motion backend now sets this to False. ........ r27713 | bugman | 2015-02-23 11:49:05 +0100 (Mon, 23 Feb 2015) | 6 lines Fix for the internal structural object unit test Test_object.test_add_atom_sort. This test of the _lib._structure._internal.test_object unit test module now requires the sort argument set to True when calling the add_atom() method. ........ r27714 | bugman | 2015-02-23 11:50:54 +0100 (Mon, 23 Feb 2015) | 3 lines Fix for a RelaxError message from the internal structural object when validating models. ........ r27717 | bugman | 2015-02-24 12:08:43 +0100 (Tue, 24 Feb 2015) | 3 lines Improvement for a RelaxError message when assembling structural data but no coordinates can be found. ........ r27718 | bugman | 2015-02-25 13:46:35 +0100 (Wed, 25 Feb 2015) | 6 lines Created a series of unit tests for implementing a new internal structural object feature. These tests check a new 'inv' argument for the selection() structural object method for allowing all atoms not matching the atom ID string to be selected. ........ r27719 | bugman | 2015-02-25 13:58:45 +0100 (Wed, 25 Feb 2015) | 6 lines Implemented the new 'inv' argument for the selection() structural object method. This allows for all atoms not matching the atom ID string to be selected. The unit tests for this argument now all pass, validating the implementation. ........ r27722 | bugman | 2015-03-02 11:58:42 +0100 (Mon, 02 Mar 2015) | 6 lines Improvement for the structure.mean user function. This can now be used to store an averaged structure in an empty data pipe. Previously structural data needed to be present in the current data pipe for the user function to work. ........ r27723 | bugman | 2015-03-02 15:32:59 +0100 (Mon, 02 Mar 2015) | 9 lines Bug fix for the results.write user function when loading relax state files. The results.write user function can load not only the results file consisting of a single data pipe, but also relax state files if only a single pipe is present. However this was causing the current data pipe and other pipe-independent data (sequence alignments and the GUI) to be overwritten, just as when loading a state file. Now only the data from the data pipe will be loaded and the pipe independent data in the state file will be ignored. ........ r27724 | bugman | 2015-03-02 15:34:59 +0100 (Mon, 02 Mar 2015) | 6 lines Fix for the rdc.write user function. The check for the missing rdc_data_types variable in the interatomic containers is now more comprehensive and checks for the presence of the alignment ID. ........ r27725 | bugman | 2015-03-02 16:55:08 +0100 (Mon, 02 Mar 2015) | 6 lines Created a system test to show a limitation of the rdc.copy user function. Currently, it cannot work when spin systems in two data pipes are different. The system test will be used to implement the support. ........ r27726 | bugman | 2015-03-02 17:16:44 +0100 (Mon, 02 Mar 2015) | 6 lines Simplification of the new Rdc.test_rdc_copy_different_spins system test. This no longer tests the deletion of interatomic data containers by the spin.delete user function, something which is not implemented. ........ r27727 | bugman | 2015-03-02 17:16:56 +0100 (Mon, 02 Mar 2015) | 3 lines Copyright update. ........ r27728 | bugman | 2015-03-02 17:21:04 +0100 (Mon, 02 Mar 2015) | 3 lines Added a printout to the sequence.attach_protons user function listing all the newly created spins. ........ r27729 | bugman | 2015-03-02 17:21:19 +0100 (Mon, 02 Mar 2015) | 3 lines Copyright update. ........ r27730 | bugman | 2015-03-02 17:24:08 +0100 (Mon, 02 Mar 2015) | 5 lines Some more fixes for the Rdc.test_rdc_copy_different_spins system test. The residue.delete and not spin.delete user function is required to delete the sequence data. ........ r27731 | bugman | 2015-03-02 17:27:21 +0100 (Mon, 02 Mar 2015) | 5 lines Another small fix for the new Rdc.test_rdc_copy_different_spins system test. The rdc.copy user function requires the pipe_to argument to be supplied in this case. ........ r27732 | bugman | 2015-03-02 18:09:12 +0100 (Mon, 02 Mar 2015) | 8 lines Expansion of the Rdc.test_rdc_copy_different_spins system test. The interatomic data containers are now defined via the interatom.define user function, which requires the spin.element user function to set up the element information. A printout has also been added to demonstrate a failure in the pipe_control.interatomic.interatomic_loop() function in handling the correct data pipe. ........ r27733 | bugman | 2015-03-02 18:13:09 +0100 (Mon, 02 Mar 2015) | 8 lines Big bug fix for the pipe_control.interatomic.interatomic_loop() function. This was identified in the Rdc.test_rdc_copy_different_spins system test. The problem was that the pipe argument was being ignored when looking up the spin containers. Hence if the pipe being worked on was not the current data pipe, and the spin sequences were not identical, the function would fail. This mainly affects the rdc.copy user function. ........ r27734 | bugman | 2015-03-02 18:19:26 +0100 (Mon, 02 Mar 2015) | 6 lines Some more modifications for the Rdc.test_rdc_copy_different_spins system test. One of the interatomic data containers does not have RDC data, as it is not present in the original data pipe, hence this is checked for. And the printouts have more formatting. ........ r27735 | bugman | 2015-03-02 18:22:18 +0100 (Mon, 02 Mar 2015) | 7 lines Expanded the functionality of the rdc.copy user function. The user function will now operate on two data pipes with different spin sequences. If the interatomic data container is missing from the target data pipe, a warning is given. And if the interatomic data container is not present in the source data pipe, nothing will be copied. ........ r27736 | bugman | 2015-03-03 13:43:44 +0100 (Tue, 03 Mar 2015) | 3 lines Modified the rdc.copy user function to printout all copied RDC values and errors. ........ r27737 | bugman | 2015-03-03 13:51:18 +0100 (Tue, 03 Mar 2015) | 6 lines Created the Rdc.test_rdc_copy_back_calc system test. This will be used to implement the back_calc Boolean argument for the rdc.copy user function to allow not only measured, but also back-calculated RDC values to be copied. ........ r27738 | bugman | 2015-03-03 13:53:48 +0100 (Tue, 03 Mar 2015) | 3 lines Modified the rdc.copy printout of RDCs to occur for each alignment ID. ........ r27739 | bugman | 2015-03-03 14:01:13 +0100 (Tue, 03 Mar 2015) | 6 lines Implemented the back_calc argument for the rdc.copy user function. This allows the back-calculated RDCs to be additionally copied together with the real value and error. ........ r27740 | bugman | 2015-03-03 14:06:31 +0100 (Tue, 03 Mar 2015) | 3 lines Small formatting change for the rdc.copy user function printouts. ........ r27741 | bugman | 2015-03-03 14:17:41 +0100 (Tue, 03 Mar 2015) | 6 lines Created the Pcs.test_pcs_copy_different_spins system test. This will be used to show a limitation of the pcs.copy user function in that it cannot copy data between two data pipes with different molecule, residue, and spin sequences. ........ r27742 | bugman | 2015-03-03 14:34:41 +0100 (Tue, 03 Mar 2015) | 7 lines Fix for the pcs.read user function. The problem was caught by the new Pcs.test_pcs_copy_different_spins system test. If the spin system does not exist in the current data pipe, but data for it is present in the PCS file, the pcs.read user function would terminate in a TypeError. ........ r27743 | bugman | 2015-03-03 14:38:33 +0100 (Tue, 03 Mar 2015) | 5 lines Added a printout of the alignment ID for the pcs.copy user function. This is to match the rdc.copy user function. ........ r27744 | bugman | 2015-03-03 14:43:18 +0100 (Tue, 03 Mar 2015) | 7 lines Created the Pcs.test_pcs_copy_back_calc system test. This will be used to implement the back_calc Boolean argument for the pcs.copy user function to allow not only measured, but also back-calculated PCS values to be copied. It matches the equivalent Rdc.test_rdc_copy_back_calc system test. ........ r27745 | bugman | 2015-03-03 14:46:20 +0100 (Tue, 03 Mar 2015) | 6 lines Implemented the back_calc argument for the pcs.copy user function. This allows the back-calculated PCSs to be additionally copied together with the real value and error. The implementation simply copies that of the rdc.copy user function. ........ r27746 | bugman | 2015-03-03 15:04:47 +0100 (Tue, 03 Mar 2015) | 5 lines Added full per-alignment data printouts to the pcs.copy user function to match rdc.copy. The feedback is important to know what was actually copied. ........ r27747 | bugman | 2015-03-03 15:09:00 +0100 (Tue, 03 Mar 2015) | 3 lines Modified the pcs.copy user function to handle different spin sequence between data pipes. ........ r27748 | bugman | 2015-03-03 15:13:03 +0100 (Tue, 03 Mar 2015) | 3 lines Fixes for the Pcs.test_pcs_copy_different_spins and Pcs.test_pcs_copy_back_calc system tests. ........ r27749 | bugman | 2015-03-03 15:47:17 +0100 (Tue, 03 Mar 2015) | 5 lines Fix for the pcs.copy user function for a recently introduced problem (r27747). The data pipe for the spin_loop() function must be supplied. ........ r27750 | bugman | 2015-03-03 15:48:35 +0100 (Tue, 03 Mar 2015) | 3 lines The pcs.copy user function now skips deselected spins. ........ r27751 | bugman | 2015-03-03 15:59:41 +0100 (Tue, 03 Mar 2015) | 3 lines Modified the N_state_model.test_data_copying system test to skip deselected spins. ........ r27753 | bugman | 2015-03-03 16:30:49 +0100 (Tue, 03 Mar 2015) | 3 lines Added more checks to the three Pcs.test_pcs_copy* system tests. ........ r27754 | bugman | 2015-03-03 16:33:21 +0100 (Tue, 03 Mar 2015) | 3 lines Added more checks to the three Rdc.test_rdc_copy* system tests. ........ r27755 | bugman | 2015-03-03 16:46:48 +0100 (Tue, 03 Mar 2015) | 7 lines Created the Rdc.test_calc_q_factors_no_tensor system test. This is to demonstrate a failure in the rdc.calc_q_factors user function when no alignment tensor is present. In addition, the test is also triggering an earlier problem of spin isotope information being missing. However the isotope is not required if the tensor is absent. ........ r27756 | bugman | 2015-03-03 16:49:03 +0100 (Tue, 03 Mar 2015) | 7 lines Fixes for the rdc.calc_q_factors user function for when no alignment tensor is present. This was caught by the Rdc.test_calc_q_factors_no_tensor system test. Now if no tensor is present, a warning is given and the 2Da^2(4 + 3R)/5 normalised Q factor is skipped. Also, if present but no spin isotope information is present, then RelaxSpinTypeError errors are raised. ........ r27758 | bugman | 2015-03-03 17:10:38 +0100 (Tue, 03 Mar 2015) | 6 lines The Rdc.test_rdc_copy_* system tests now check for the 'rdc_data_types' data structure. This is in the Rdc.test_rdc_copy_different_spins and Rdc.test_rdc_copy_back_calc system tests and shows that the rdc.copy user function fails to duplicate this information. ........ r27759 | bugman | 2015-03-03 17:11:47 +0100 (Tue, 03 Mar 2015) | 3 lines Removed a debugging printout. ........ r27760 | bugman | 2015-03-03 17:15:33 +0100 (Tue, 03 Mar 2015) | 6 lines The Rdc.test_rdc_copy_* system tests now check for the 'absolute_rdc' data structure. This is in the Rdc.test_rdc_copy_different_spins and Rdc.test_rdc_copy_back_calc system tests and shows that the rdc.copy user function fails to duplicate this information as well. ........ r27761 | bugman | 2015-03-03 17:18:14 +0100 (Tue, 03 Mar 2015) | 3 lines Expanded the rdc.copy user function to copy the RDC data type and absolute RDC flag information. ........ r27763 | bugman | 2015-03-03 17:34:39 +0100 (Tue, 03 Mar 2015) | 5 lines Created the Rdc.test_corr_plot system test to check the rdc.corr_plot user function. This shows that this poorly tested function works correctly. ........ r27764 | bugman | 2015-03-03 17:40:22 +0100 (Tue, 03 Mar 2015) | 5 lines Created the Pcs.test_corr_plot system test to check the pcs.corr_plot user function. This user function is poorly tested, and this test triggers a series of bugs. ........ r27765 | bugman | 2015-03-03 17:42:30 +0100 (Tue, 03 Mar 2015) | 6 lines Added the 'title' and 'subtitle' arguments to the pcs.corr_plot user function. This problem was detected by the new Pcs.test_corr_plot system test. The pcs.corr_plot user function now matches the rdc.corr_plot user function in terms of arguments. ........ r27766 | bugman | 2015-03-03 17:46:21 +0100 (Tue, 03 Mar 2015) | 3 lines Fix for the pcs.corr_plot user function when the spin containers have no element information. ........ r27767 | bugman | 2015-03-03 17:50:02 +0100 (Tue, 03 Mar 2015) | 5 lines Completed the Pcs.test_corr_plot system test. The file contents are now known and have been carefully checking in Grace. ........ r27769 | bugman | 2015-03-04 13:33:45 +0100 (Wed, 04 Mar 2015) | 12 lines Clarification of the RDC and PCS Q factors. This affects the rdc.calc_q_factors and pcs.calc_q_factors user functions, as well as all other operations involving the calculation of Q factors. The printouts have been modified to clarify if the normalisation is via the tensor size (2Da^2(4 + 3R)/5) or via the sum of data squared, and the separation of the two is now clearer. This allows for better RDC vs. PCS comparisons. In addition, the data pipe variable names have been updated to reflect the normalisation, so it is instantly known when looking at the XML contents of results or save files which was used. The backwards compatibility hooks have been modified to support the data pipe variable name changes. ........ r27771 | bugman | 2015-03-04 14:28:46 +0100 (Wed, 04 Mar 2015) | 6 lines Created the Align_tensor.test_copy_pipes system test. This is to show a problem in the align_tensor.copy user function when copying all tensors between data pipes. ........ r27772 | bugman | 2015-03-04 14:30:30 +0100 (Wed, 04 Mar 2015) | 5 lines The align_tensor.copy user function 'tensor_from' argument can now be None. This is to enable the copying of all alignment tensors from one data pipe to another. ........ r27773 | bugman | 2015-03-04 14:34:07 +0100 (Wed, 04 Mar 2015) | 5 lines Modified the pipe_control.align_tensor.align_data_exists() function to handle no tensor IDs. If no tensor ID is supplied, this will then return True if any alignment data exists. ........ r27774 | bugman | 2015-03-04 14:47:21 +0100 (Wed, 04 Mar 2015) | 6 lines Improvement for the align_tensor.copy user function. The user function has been modified to allow all alignment tensors to be copied between two data pipes. This allows the Align_tensor.test_copy_pipes system test to pass. ........ r27776 | bugman | 2015-03-04 15:10:39 +0100 (Wed, 04 Mar 2015) | 5 lines Fixes for the align_tensor.copy user function argument unit tests. The tensor_from and tensor_to arguments can now be None. ........ r27777 | bugman | 2015-03-04 15:23:13 +0100 (Wed, 04 Mar 2015) | 6 lines Created the Align_tensor.test_copy_pipes_sims system test. This demonstrates a failure of the align_tensor.copy user function when Monte Carlo simulated tensors are present. ........ r27778 | bugman | 2015-03-04 15:28:53 +0100 (Wed, 04 Mar 2015) | 3 lines Copyright update. ........ r27779 | bugman | 2015-03-04 15:32:53 +0100 (Wed, 04 Mar 2015) | 6 lines Deleted the data_store.align_tensor.AlignTensorSimList.append() method. This replacement list method was proving fatal when copy.deepcopy() is called on the alignment tensor object. The change allows the Align_tensor.test_copy_pipes_sims system test to pass. ........ r27780 | bugman | 2015-03-04 15:33:20 +0100 (Wed, 04 Mar 2015) | 3 lines Copyright update. ........ r27782 | bugman | 2015-03-05 11:02:08 +0100 (Thu, 05 Mar 2015) | 9 lines Huge speed up for loading results and state files with Monte Carlo simulation alignment tensors. The reading of the alignment tensor component of XML formatted results and state files has been modified. Previously the data_store.align_tensor.AlignTensorData._update_object() method for updating the alignment tensor object (for values, errors, simulations) was being called once for each Monte Carlo simulation. Now is it called only once for all simulations. In one test, the reading of the save file with 500 simulations dropped from 253.7 to 10.0 seconds. ........ r27783 | bugman | 2015-03-05 14:49:00 +0100 (Thu, 05 Mar 2015) | 6 lines Added an extra check for the assembly of RDC data. This is in the pipe_control.rdc.return_rdc_data() function and the check is for any unit vectors set to None, which is a fatal condition. ........ r27784 | bugman | 2015-03-05 15:05:28 +0100 (Thu, 05 Mar 2015) | 3 lines Improved the RelaxError message from the RDC assembly function when unit vectors are None. ........ [... 115 lines stripped ...]