Author: bugman Date: Fri Oct 2 13:54:25 2015 New Revision: 27951 URL: http://svn.gna.org/viewcvs/relax?rev=27951&view=rev Log: Merged revisions 25790-25792,25794-25799,25804-25809,25811-25845,25862-25896 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/branches/frame_order_cleanup ........ r25790 | bugman | 2014-09-12 15:05:07 +0200 (Fri, 12 Sep 2014) | 13 lines Added support for the model argument for the frame_order.pdb_model user function. This argument is used to specify which of the models in an ensemble will be used to represent the average domain position Monte Carlo simulations, as each simulation is encoded as a model, as well as for the distribution of structures simulating the motion of the system. The argument is therefore passed into the create_ave_pos() and create_distribution() functions of the specific_analyses.frame_order.geometric module. To handle all models being used in the non Monte Carlo simulation PDB file and only one in this file, the internal structural object is copied twice. The second copy for the MC sims has all but the chosen model deleted out of it. ........ r25791 | bugman | 2014-09-12 15:19:16 +0200 (Fri, 12 Sep 2014) | 6 lines Fix for the Frame_order.test_frame_order_pdb_model_ensemble system test. More needed to be done to set up the Monte Carlo simulations - the monte_carlo.initial_values user function call was required. ........ r25792 | bugman | 2014-09-12 15:20:32 +0200 (Fri, 12 Sep 2014) | 6 lines Modified the frame order sim_init_values() API method to handle missing optimisation data. The monte_carlo.initial_values user function was failing if optimisation had not been performed. This is now caught and handled correctly. ........ r25794 | bugman | 2014-09-12 15:30:26 +0200 (Fri, 12 Sep 2014) | 6 lines Created the Frame_order.test_frame_order_pdb_model_failed_pivot system test. This simply shows how the frame_order.pdb_model user function currently fails if the optimised pivot point is outside of the PDB coordinate limits of "%8.3f". ........ r25795 | bugman | 2014-09-12 15:45:45 +0200 (Fri, 12 Sep 2014) | 11 lines The frame_order.pdb_model user function can now properly handle a failed pivot optimisation. This is when the pivot point optimises to a coordinate outside of the PDB limits. Now all calls to specific_analyses.frame_order.data.generate_pivot() from the module specific_analyses.frame_order.geometric set the pdb_limit flag to True. This allows all representation objects to be within the PDB limits. The algorithm in generate_pivot() has been extended to allow higher positive values, as the real PDB limits are [-999.999, 9999.999]. And a RelaxWarning is called when the pivot is outside to tell the user about it. ........ r25796 | bugman | 2014-09-12 15:59:00 +0200 (Fri, 12 Sep 2014) | 17 lines Reverted r25767 as this was rubbish, the frame_order.pivot user function updates the model itself. The command used was: svn merge -r25767:r25766 . ..... r25767 | bugman | 2014-09-12 10:08:13 +0200 (Fri, 12 Sep 2014) | 6 lines Changed paths: M /branches/frame_order_cleanup/specific_analyses/frame_order/uf.py Added a call to check_pivot() to the frame_order.select_model user function. This is to prevent this user function from being called before the pivot has been set, as otherwise the parameter vector will be incorrectly set up. ..... ........ r25797 | bugman | 2014-09-12 16:06:38 +0200 (Fri, 12 Sep 2014) | 6 lines Modified the frame order auto-analysis to be more fail-safe. Almost all of the protocol is now within a try-finally block so that the execution lock will always be released. ........ r25798 | bugman | 2014-09-12 16:50:28 +0200 (Fri, 12 Sep 2014) | 7 lines Fix for the specific_analyses.frame_order.data.pivot_fixed() function. This was recently introduced (r25763) when the check for PCS data was removed from this function. To fix the problem, instead of calling base_data_types() to see if PCS data is present, the cdp.pcs_ids data structure is checked instead. ........ r25799 | bugman | 2014-09-12 16:55:53 +0200 (Fri, 12 Sep 2014) | 6 lines Fix for the model argument for the frame_order.pdb_model user function. The deletion of structural models for the Monte Carlo simulations in the average domain position representation now only happen if more than one model exists. ........ r25804 | bugman | 2014-09-12 17:10:55 +0200 (Fri, 12 Sep 2014) | 6 lines Modified the Frame_order.test_frame_order_pdb_model_failed_pivot system test. This is to show that the frame_order.pdb_model user function fails if the pivot is close to but still within the PDB coordinate limits. ........ r25805 | bugman | 2014-09-12 17:13:19 +0200 (Fri, 12 Sep 2014) | 6 lines Modified the pivot position checking in specific_analyses.frame_order.data.generate_pivot(). Now the pivot is shifted to be within the limits shrunk by 100 Angstrom. This allows any PDB representation created by the frame_order.pdb_model user function to be within the PDB limits. ........ r25806 | bugman | 2014-09-12 17:21:08 +0200 (Fri, 12 Sep 2014) | 6 lines Fix for the axis permutation protocol in the frame order auto-analysis. If a results file was found for one of the permutations, a return from the function would occur. The result is that the other permutations would not be loaded or optimised. ........ r25807 | bugman | 2014-09-12 17:31:20 +0200 (Fri, 12 Sep 2014) | 5 lines Fix for the RelaxError raised by the frame_order.select_model user function. This is the error if the model name is incorrect. ........ r25808 | bugman | 2014-09-12 17:33:54 +0200 (Fri, 12 Sep 2014) | 6 lines Created the Frame_order.test_pseudo_ellipse_zero_cone_angle system test. This is to catch for a bug in optimisation when the cone_theta_x is set to zero in the pseudo-ellipse models. ........ r25809 | bugman | 2014-09-12 17:35:47 +0200 (Fri, 12 Sep 2014) | 7 lines Bug fix for the lib.frame_order.pseudo_ellipse.tmax_pseudo_ellipse_array() function. The problem was that when theta_x or theta_y were zero, the floating point value of 0.0 would be returned. This is the incorrect behaviour as the returned value must be an array matching the dimensions of the phi angle array argument. ........ r25811 | bugman | 2014-09-12 18:07:20 +0200 (Fri, 12 Sep 2014) | 5 lines Fix for the Pseudo_elliptic cone object for when the cone angles are zero. The Pseudo_elliptic.phi_max() method now avoids a divide by zero error. ........ r25812 | bugman | 2014-09-12 18:42:47 +0200 (Fri, 12 Sep 2014) | 6 lines Updates for all of the Frame_order.test_axis_perm_* system tests. The axis permutations and angle permutations are now performed correctly within the tests themselves. This allows the tests to pass. ........ r25813 | bugman | 2014-09-12 19:03:09 +0200 (Fri, 12 Sep 2014) | 6 lines Modified the Frame_order.test_pseudo_ellipse_zero_cone_angle system test to be quick. Now that the test passes, the optimisation needs to be short. So a maximum of two iterations are now set. Otherwise the test would take hours to complete. ........ r25814 | bugman | 2014-09-12 19:22:19 +0200 (Fri, 12 Sep 2014) | 3 lines Small speed up of the Frame_order.test_auto_analysis system test. ........ r25815 | bugman | 2014-09-14 11:33:37 +0200 (Sun, 14 Sep 2014) | 3 lines Alphabetical ordering of most of the Frame_order system tests. ........ r25816 | bugman | 2014-09-14 11:39:14 +0200 (Sun, 14 Sep 2014) | 6 lines Created the very simple Frame_order.test_num_int_points system test. This simply creates a data pipe and calls the frame_order.num_int_pts user function to test its operation. This is to increase the test suite coverage of this user function. ........ r25817 | bugman | 2014-09-14 11:54:58 +0200 (Sun, 14 Sep 2014) | 6 lines Created the Frame_order.test_num_int_pts2 system test. This checks the operation of the frame_order.num_int_pts user function when only the model has been chosen. ........ r25818 | bugman | 2014-09-14 12:01:49 +0200 (Sun, 14 Sep 2014) | 3 lines Renamed the Frame_order.test_num_int_points system test to Frame_order.test_num_int_pts. ........ r25819 | bugman | 2014-09-14 12:48:27 +0200 (Sun, 14 Sep 2014) | 6 lines Created the check_domain() function for the frame order analysis. This is in the specific_analyses.frame_order.checks module. The function checks that the reference domain has been specified. ........ r25820 | bugman | 2014-09-14 12:56:20 +0200 (Sun, 14 Sep 2014) | 6 lines Created the check_model() function for the frame order analysis. This is in the specific_analyses.frame_order.checks module. The function checks that the frame order model has been selected via the frame_order.select_model user function. ........ r25821 | bugman | 2014-09-14 12:58:39 +0200 (Sun, 14 Sep 2014) | 3 lines Fixes for the new check_domain() and check_model() frame order functions. ........ r25822 | bugman | 2014-09-14 13:01:01 +0200 (Sun, 14 Sep 2014) | 3 lines The frame_order.ref_domain user function backend now uses the check_domain() function. ........ r25823 | bugman | 2014-09-14 13:13:40 +0200 (Sun, 14 Sep 2014) | 6 lines Created the check_parameters() function for the frame order analysis. This is in the specific_analyses.frame_order.checks module. The function checks that the frame order parameters have been set up and have values. ........ r25824 | bugman | 2014-09-14 13:14:51 +0200 (Sun, 14 Sep 2014) | 6 lines Created the Frame_order.test_num_int_pts3 system test. This checks the operation of the frame_order.num_int_pts user function when the model has been and the frame order parameters have been set up. ........ r25825 | bugman | 2014-09-14 13:22:08 +0200 (Sun, 14 Sep 2014) | 7 lines Created the Frame_order.test_count_sobol_points system test. This will test that the frame_order.num_int_pts user function can correctly count the number of Sobol' integration points used for the current set of parameter values. This frame_order.num_int_pts functionality does not exist yet. ........ r25826 | bugman | 2014-09-14 14:43:07 +0200 (Sun, 14 Sep 2014) | 7 lines Implementation of the specific_analyses.frame_order.optimisation.count_sobol_points() function. This is used by the frame_order.num_int_pts user function to provide a printout of the number of Sobol' integration points used for the current parameter values. This is to provide user feedback so that it is know if enough Sobol' points have been used. ........ r25827 | bugman | 2014-09-14 14:44:49 +0200 (Sun, 14 Sep 2014) | 6 lines Modified the Frame_order.test_count_sobol_points system test. The number of points has been massively decreased as generating Sobol' points takes a long time, and the check for the number of used Sobol' points has been set to the real value. ........ r25828 | bugman | 2014-09-14 14:46:58 +0200 (Sun, 14 Sep 2014) | 6 lines Created the Frame_order.test_count_sobol_points2 system test. This checks the operation of the frame_order.count_sobol_points user function. As this user function has not been implemented yet, the test currently fails. ........ r25829 | bugman | 2014-09-14 14:56:40 +0200 (Sun, 14 Sep 2014) | 6 lines Created the frame_order.count_sobol_points user function. This is simply a frontend to the new specific_analyses.frame_order.optimisation.count_sobol_points() function. ........ r25830 | bugman | 2014-09-14 14:57:04 +0200 (Sun, 14 Sep 2014) | 3 lines Updated the Frame_order.test_count_sobol_points2 system test for the correct number of Sobol' points. ........ r25831 | bugman | 2014-09-14 15:01:35 +0200 (Sun, 14 Sep 2014) | 6 lines Created the Frame_order.test_count_sobol_points_rigid system test. This is to demonstrate a failure of the frame_order.test_count_sobol_points user function when applied to the rigid frame order model. ........ r25832 | bugman | 2014-09-14 15:07:22 +0200 (Sun, 14 Sep 2014) | 5 lines Fix for the frame_order.count_sobol_points user function for the rigid model. This model is now caught at the start, a message printed out, and the function exited. ........ r25833 | bugman | 2014-09-14 15:08:46 +0200 (Sun, 14 Sep 2014) | 6 lines Fix for the Frame_order.test_count_sobol_points_rigid system test. This now checks that cdp.used_sobol_points does not exist for the rigid frame order model after a call to the frame_order.count_sobol_points user function. ........ r25834 | bugman | 2014-09-14 15:11:49 +0200 (Sun, 14 Sep 2014) | 5 lines Created the Frame_order.test_count_sobol_points_rotor system test. This is to test the frame_order.count_sobol_points user function for the rotor model. ........ r25835 | bugman | 2014-09-14 15:13:46 +0200 (Sun, 14 Sep 2014) | 5 lines Fix for the frame_order.count_sobol_points user function for the rotor model. The sigma angles unpacking required a dimensionality collapse in the Sobol' angle data structure. ........ r25836 | bugman | 2014-09-14 15:14:17 +0200 (Sun, 14 Sep 2014) | 3 lines Updated the number of points to allow the Frame_order.test_count_sobol_points_rotor system test to pass. ........ r25837 | bugman | 2014-09-14 15:38:39 +0200 (Sun, 14 Sep 2014) | 8 lines The frame order count_sobol_points() function is now being called by all of minimise user functions. This occurs at the end of the minimise.calculate, minimise.grid_search, and minimise.execute user function backends to provide more feedback to the user as to the quality of the optimisation. To avoid initialising the target function twice, the count_sobol_points() function now accepts the initialised target function as an optional argument. ........ r25838 | bugman | 2014-09-14 15:41:15 +0200 (Sun, 14 Sep 2014) | 6 lines Created the Frame_order.test_count_sobol_points_free_rotor system test. This is to demonstrate that the frame_order.count_sobol_points user function currently fails for the free-rotor model. ........ r25839 | bugman | 2014-09-14 15:44:09 +0200 (Sun, 14 Sep 2014) | 6 lines Fix for the frame_order.count_sobol_points user function for the free-rotor models. The torsion angle is now correctly handled as the 3 free-rotor models do not have cdp.cone_sigma_max set. ........ r25840 | bugman | 2014-09-14 15:44:45 +0200 (Sun, 14 Sep 2014) | 5 lines Updated the number of points in the Frame_order.test_count_sobol_points_free_rotor system test. This is to allow the test to pass. ........ r25841 | bugman | 2014-09-14 15:51:45 +0200 (Sun, 14 Sep 2014) | 6 lines Fix for the frame order count_sobol_points() function. The checks for the model, parameter and domain set up must come first, before cdp.model is accessed. Otherwise the frame_order.num_int_pts user function will often fail. ........ r25842 | bugman | 2014-09-14 15:58:19 +0200 (Sun, 14 Sep 2014) | 7 lines Fix for the frame order count_sobol_points() function. The free-rotor isotropic cone model was incorrectly handled, as the cone parameter is 'cone_s1' and not 'cone_theta'. The order parameter is now converted to angle before checking if the Sobol' point is outside of the cone or not. ........ r25843 | bugman | 2014-09-14 16:03:44 +0200 (Sun, 14 Sep 2014) | 6 lines More fixed for the frame order count_sobol_points() function. The torsion angle for the torsionless models is no longer accessed, and the cone_theta parameter is only accessed for models with this parameter. ........ r25844 | bugman | 2014-09-14 16:51:00 +0200 (Sun, 14 Sep 2014) | 6 lines Created the Frame_order.test_count_sobol_points_iso_cone_free_rotor system test. This is to test the frame_order.count_sobol_points user function for the free-rotor isotropic cone model. ........ r25845 | bugman | 2014-09-14 17:19:59 +0200 (Sun, 14 Sep 2014) | 6 lines Fix for the frame order count_sobol_points() function. The torsion angle ranges from -pi to pi, so the absolute value needs to be checked, just as in the lib.frame_order modules. ........ r25862 | bugman | 2014-09-17 11:05:28 +0200 (Wed, 17 Sep 2014) | 5 lines Updates for the number of Sobol' points in the Frame_order.test_count_sobol_points_* system tests. This is simply to allow all Frame_order system tests to pass. ........ r25863 | bugman | 2014-09-17 17:11:12 +0200 (Wed, 17 Sep 2014) | 9 lines Redesigned the frame_order.num_int_pts user function frontend for the oversampling idea. The use of the quasi-random Sobol' sequence for numerical PCS integration will be modified to use the concept of oversampling. Instead of specifying the exact number of points in the Sobol' sequence and then removing points outside of the current parameter values, the algorithm will oversample as N * Ov * 10**M, where N is the maximum number of Sobol' points to be used for the integration, Ov is the oversampling factor, and M is the number of dimensions or torsion-tilt angles used in the system. The aim is to try to use the maximum number of points N for all frame order models and all ranges of dynamics. ........ r25864 | bugman | 2014-09-17 17:11:14 +0200 (Wed, 17 Sep 2014) | 5 lines Renamed the frame_order.num_int_pts user function to frame_order.sobol_setup. The user function no longer specifies the number of integration points. Instead it now specifies the maximum number of points N and oversampling factor Ov used to generate the oversampled Sobol' sequence. ........ r25865 | bugman | 2014-09-17 17:11:16 +0200 (Wed, 17 Sep 2014) | 1 line Small fix for the frame_order.sobol_setup user function backend. ........ r25866 | bugman | 2014-09-17 17:11:18 +0200 (Wed, 17 Sep 2014) | 1 line Implemented the Sobol' sequence oversampling in the frame order target function class. ........ r25867 | bugman | 2014-09-17 17:11:20 +0200 (Wed, 17 Sep 2014) | 7 lines Converted all of the specific_analyses.frame_order package to the Sobol' point oversampling design. The correct values are now sent into the target function and all references to cdp.num_int_pts has been replaced with the cdp.sobol_max_points and cdp.sobol_oversample pair of variables. The frame_order.count_sobol_points user function backend has also been updated to show the total number of oversampling points and the number of points used. ........ r25868 | bugman | 2014-09-17 17:11:21 +0200 (Wed, 17 Sep 2014) | 3 lines The frame_order.count_sobol_points user function now shows more information. The maximum number and oversampling factors are now also printed out for maximum user feedback. ........ r25869 | bugman | 2014-09-17 17:11:23 +0200 (Wed, 17 Sep 2014) | 1 line Improved the print out formatting for the count_sobol_points() frame order function. ........ r25870 | bugman | 2014-09-17 17:11:25 +0200 (Wed, 17 Sep 2014) | 4 lines The frame order target function now passes the maximum number of Sobol' points to the relax library. The value is being passed into the lib.frame_order.*.pcs_numeric_int_*() functions, though it is not used set. ........ r25871 | bugman | 2014-09-17 17:11:26 +0200 (Wed, 17 Sep 2014) | 1 line Fix for the percentage calculation for the frame order count_sobol_points() function. ........ r25872 | bugman | 2014-09-17 17:11:28 +0200 (Wed, 17 Sep 2014) | 6 lines Changed the creation of the Sobol' points in the frame order target function. For increased accuracy of the numerical PCS integration, the first 1000 points of the Sobol' [... 283 lines stripped ...]