Author: bugman Date: Fri Oct 2 13:44:48 2015 New Revision: 27950 URL: http://svn.gna.org/viewcvs/relax?rev=27950&view=rev Log: Merged revisions 25713-25715,25720-25723,25725-25741,25744-25747,25749-25754,25760-25769 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/branches/frame_order_cleanup ........ r25713 | bugman | 2014-09-09 14:24:13 +0200 (Tue, 09 Sep 2014) | 5 lines Implemented the frame_order.permute_axes user function. This is used to switch between local minima in the pseudo-elliptic frame order models. ........ r25714 | bugman | 2014-09-09 14:25:41 +0200 (Tue, 09 Sep 2014) | 7 lines Fix for the Frame_order.test_axis_permutation system test. The motional eigenframe in the old log file was not exactly correct and did not correspond exactly to the Euler angles in the cam_pseudo_ellipse.bz2 results file in test_suite/shared_data/frame_order/axis_permutations/. ........ r25715 | bugman | 2014-09-09 14:29:43 +0200 (Tue, 09 Sep 2014) | 6 lines Extended the Frame_order.test_axis_permutation system test to check frame_order.permute_axes twice. This will check that two calls to the frame_order.permute_axes user function will restore the original parameter values. ........ r25720 | bugman | 2014-09-09 19:13:17 +0200 (Tue, 09 Sep 2014) | 5 lines The frame_order.permute_axes user function can now handle the torsionless pseudo-ellipse. This model does not have the variable cdp.cone_sigma_max set. ........ r25721 | bugman | 2014-09-09 19:18:46 +0200 (Tue, 09 Sep 2014) | 5 lines Fix for the frame_order.permute_axes user function for the torsionless pseudo-ellipse. This should have been part of the last commit. ........ r25722 | bugman | 2014-09-09 19:33:39 +0200 (Tue, 09 Sep 2014) | 8 lines Added support for axis permutations in the frame order auto-analysis. This is done by copying the data pipe of the already optimised pseudo-elliptic models, permuting the axes, and performing another optimisation using all RDC and PCS data. This allows the second solution for these pseudo-elliptic models to be found. The 2nd pipe is included in the model selection step to allow the best solution for the model to be found. ........ r25723 | bugman | 2014-09-09 19:39:36 +0200 (Tue, 09 Sep 2014) | 7 lines Fix for the reading of old results files in the frame order auto-analysis. The directory name is now processed by the model_directory() method. This will convert the spaces to '_' and remove commas. Without this the already created files could not be found, if the model name contains a space or comma. ........ r25725 | bugman | 2014-09-09 21:12:30 +0200 (Tue, 09 Sep 2014) | 6 lines Made the pivot point in the frame order PDB representation fail-proof. If the pivot position was outside of the bounds [-1000, 1000], the PDB file creation would fail as the record would be too long. So now the pivot is shifted to be in these bounds. ........ r25726 | bugman | 2014-09-10 08:46:29 +0200 (Wed, 10 Sep 2014) | 5 lines The axis permutation step in the frame order auto-analysis is now always performed. If an old results file was found, this step was accidentally skipped. ........ r25727 | bugman | 2014-09-10 09:22:20 +0200 (Wed, 10 Sep 2014) | 3 lines Added extensive printouts to the frame_order.permute_axes user function. ........ r25728 | bugman | 2014-09-10 11:43:11 +0200 (Wed, 10 Sep 2014) | 7 lines Redesigned the frame_order.permute_axes user function frontend. Previously only cyclic permutations were considered, however non-cyclic permutations are also allowed when accompanied by an axis inversion. Therefore 3 combinations exist with cone_theta_x <= cone_theta_y, or 2 when the current combination is excluded. ........ r25729 | bugman | 2014-09-10 13:21:28 +0200 (Wed, 10 Sep 2014) | 10 lines Created 6 system tests for the frame_order.permute_axes user function. This covers the 3 starting conditions (x<y<z, x<z<y, z<x<y) and the two permutations ('A' and 'B') for each of these which do not include the starting permutation. They replace the original Frame_order.test_axis_permutation system test with the tests Frame_order.test_axis_perm_x_le_y_le_z_permA, Frame_order.test_axis_perm_x_le_y_le_z_permB, Frame_order.test_axis_perm_x_le_z_le_y_permA, Frame_order.test_axis_perm_x_le_z_le_y_permB, Frame_order.test_axis_perm_z_le_x_le_y_permA, and Frame_order.test_axis_perm_z_le_x_le_y_permB. ........ r25730 | bugman | 2014-09-10 13:41:33 +0200 (Wed, 10 Sep 2014) | 8 lines Implemented the new frame_order.permute_axes backend. The 3 starting conditions x<y<z, x<z<y, and z<x<y and the two permutations 'A' and 'B' (for each of these which do not include the starting permutation) are now supported. For these 6 combinations, the axis and order parameter permutation and the z-axis inversion are selected and applied to the current system. ........ r25731 | bugman | 2014-09-10 13:43:41 +0200 (Wed, 10 Sep 2014) | 5 lines Removed the second permutation from the 6 Frame_order.test_axis_perm_* system tests. A second identical permutation does not necessarily restore the original state. ........ r25732 | bugman | 2014-09-10 13:49:20 +0200 (Wed, 10 Sep 2014) | 5 lines Fix for the frame_order.permute_axes for the torsionless pseudo-ellipse model. The data structure cdp.cone_sigma_max does not exist in this model as cone_sigma_max == 0.0. ........ r25733 | bugman | 2014-09-10 13:57:03 +0200 (Wed, 10 Sep 2014) | 7 lines Modified the frame order auto-analysis axis permutation algorithm to handle both permutations. Instead of creating one additional data pipe for the permutations, two are now created for the permutations 'A' and 'B'. This allows all 3 solutions for the pseudo-elliptic models to be explored and included in the final model selection process. ........ r25734 | bugman | 2014-09-10 14:20:43 +0200 (Wed, 10 Sep 2014) | 5 lines Fix for the Frame_order.test_axis_perm_x_le_z_le_y_permB system test. The permuted z-axis needs to be inverted in the test. ........ r25735 | bugman | 2014-09-10 14:24:58 +0200 (Wed, 10 Sep 2014) | 8 lines Many fixes for the frame_order.permute_axes user function. The z-axis inversion is now encoded into a 3D numpy array as the index of the new z-axis position needs to be stored. The cone_theta_x, cone_theta_y and cone_sigma_max parameters are now permuted in reverse 'perm' data structure by calling its index() method. And the cone_theta_x - cone_theta_y to y-axis - x-axis switch has been removed (this may need to be reintroduced later). ........ r25736 | bugman | 2014-09-10 14:41:23 +0200 (Wed, 10 Sep 2014) | 6 lines Fix for the axis permutation protocol in the frame order auto-analysis. The pipe.copy user function does not switch pipes, therefore the pipe.switch user function is now being called so that the correct pipe is being permuted and optimised. ........ r25737 | bugman | 2014-09-10 18:46:29 +0200 (Wed, 10 Sep 2014) | 9 lines Created some test data files for visualising the frame order axis permutation. This uses the CaM frame order synthetic data for the rotor model to visualise the pseudo-ellipse frame order model axis permutations. The initial conversion sets the pseudo-ellipse torsion angle cone_sigma_max to the rotor opening half-angle, and the pseudo-elliptic cone opening to close to zero. Then the axis permutations are performed. All three solutions are optimised. PDB representations before and after optimisation are included to illustrate any problems. ........ r25738 | bugman | 2014-09-10 21:33:37 +0200 (Wed, 10 Sep 2014) | 7 lines Bug fix for the new frame_order.permute_axes user function. The cone and torsion angles were not being correctly permuted. Now the direct permutation array is being used. And the fact that cone_theta_x is a rotation along the y-axis and cone_theta_y along the x-axis is taken into account. ........ r25739 | bugman | 2014-09-11 13:43:37 +0200 (Thu, 11 Sep 2014) | 8 lines Redesign of the axis permutation algorithm of the frame_order.permute_axes user function. Instead of tracking the fact that cone_theta_x is a rotation around the y-axis and cone_theta_y is about the x-axis, now two permutation arrays are created - one for the three angles and one for the axes. The permutation array values have also been completely changed as previously the incorrect inverse permutation was coded into the algorithm. ........ r25740 | bugman | 2014-09-11 14:58:38 +0200 (Thu, 11 Sep 2014) | 6 lines Updated the frame order pseudo-ellipse motion permutation test data. This is for the CaM frame order rotor model synthetic data. The correct axis and cone angle permutations of the frame_order.permute_axes user function are now being used and optimised. ........ r25741 | bugman | 2014-09-11 14:59:42 +0200 (Thu, 11 Sep 2014) | 5 lines Renamed the pseudo-ellipse permutation directory to perm_pseudo_ellipse_x_le_y_le_z. This is for the CaM frame order rotor model synthetic data. ........ r25744 | bugman | 2014-09-11 15:42:19 +0200 (Thu, 11 Sep 2014) | 5 lines Fix for the frame_order.permute_axes user function. One of the 6 permutations had the x and y axes switched (the x <= z <= y condition, permutation A). ........ r25745 | bugman | 2014-09-11 17:17:05 +0200 (Thu, 11 Sep 2014) | 8 lines Visualisation files for all of the pseudo-ellipse permutations by frame_order.permute_axes. This includes the x <= z <= y and z <= x <= y conditions (the previous files were for x <= y <= z). In all permutation combinations, optimisation has been performed to demonstrate that these are all local minima. These all approximate the rotor when using the CaM frame order rotor model synthetic data. ........ r25746 | bugman | 2014-09-11 19:16:52 +0200 (Thu, 11 Sep 2014) | 8 lines Added support for the isotopic cone models to the frame_order.permute_axes user function. This is a simpler setup, but it uses the same permutation algorithm as derived for the pseudo-ellipse models. Instead of setting the x and y cone angles separately, they are instead averaged. And as the cone axis is undefined in the xy plane, the axis has been randomly selected as being the axis perpendicular to both the z-axis and the reference frame x-axis. ........ r25747 | bugman | 2014-09-11 19:19:18 +0200 (Thu, 11 Sep 2014) | 7 lines Created set of files showing the axis permutation problem for the isotopic cone frame order model. This shows that there are two minima. However one has a chi-squared value of ~1, and the other a value of ~150. Nevertheless, the optimisation could be trapped in the non-global minimum so the frame_order.permute_axes user function should be used for the isotopic cones as well, just in case. ........ r25749 | bugman | 2014-09-11 19:37:44 +0200 (Thu, 11 Sep 2014) | 7 lines Created the other isotropic cone condition z <= x = y. As there are no constraints in this model, this condition should not result in any major differences, just the size of the cone being different and the optimisation having to decrease the cone angle significantly to mimic the rotor. ........ r25750 | bugman | 2014-09-11 19:43:45 +0200 (Thu, 11 Sep 2014) | 5 lines Added the missing PDB files which should have been committed previously. This are in test_suite/shared_data/frame_order/cam/rotor/perm_iso_cone_z_le_xy. ........ r25751 | bugman | 2014-09-11 19:44:22 +0200 (Thu, 11 Sep 2014) | 5 lines Added the missing PDB files which should have been committed previously. This are in test_suite/shared_data/frame_order/cam/rotor/perm_iso_cone_xy_le_z/. ........ r25752 | bugman | 2014-09-11 19:52:47 +0200 (Thu, 11 Sep 2014) | 7 lines Modified the frame order auto-analysis. The axis permutation algorithm is now performed on all isotopic cone and pseudo-ellipse models. This is just in case the non-global minima was found in the original optimisation. The isotropic cone models possess two local minima whereas the pseudo-ellipse models possess three local minima. ........ r25753 | bugman | 2014-09-11 19:57:46 +0200 (Thu, 11 Sep 2014) | 5 lines Simplified the optimisation in the axis permutation part of the frame order auto-analysis. Only the last, highest quality setting is used for optimisation. ........ r25754 | bugman | 2014-09-11 20:30:12 +0200 (Thu, 11 Sep 2014) | 6 lines Fix for the axis permutation protocol in the frame order auto-analysis. This would fail if a results file for the permuted model already exists as the pipe.copy user function call was being performed too early. ........ r25760 | bugman | 2014-09-11 21:56:47 +0200 (Thu, 11 Sep 2014) | 3 lines Created set of files for the axis permutation of the torsionless isotopic cone frame order model. ........ r25761 | bugman | 2014-09-12 09:35:32 +0200 (Fri, 12 Sep 2014) | 7 lines Created an initial Frame_order.test_frame_order_pdb_model_ensemble system test. This is to check the operation of the frame_order.pdb_model user function when an ensemble of structures is encountered. However as this uses a very minimal number of user functions to set up the system, a number of other minor bugs will probably be uncovered. ........ r25762 | bugman | 2014-09-12 09:45:00 +0200 (Fri, 12 Sep 2014) | 6 lines Added printouts to the specific_analyses.frame_order.parameters.update_model() function. This is to make it easier to understand why certain things fail due to the system not being fully set up. ........ r25763 | bugman | 2014-09-12 09:49:37 +0200 (Fri, 12 Sep 2014) | 6 lines Simplified the operation of the frame_order.select_model user function. This is by removing the check of PCS data from the specific_analyses.frame_order.data.pivot_fixed() function using the base_data_types() function call. This allows the model to be set up more easily. ........ r25764 | bugman | 2014-09-12 09:54:31 +0200 (Fri, 12 Sep 2014) | 5 lines Modified the frame order check_pivot() function to operate on any data pipe. The function now accepts the pipe_name argument so that checks can happen on any data pipe. ........ r25765 | bugman | 2014-09-12 09:57:12 +0200 (Fri, 12 Sep 2014) | 5 lines Missing imports in the specific_analyses.frame_order.checks module. This is from the recent pipe_name argument addition in the check_pivot() function. ........ r25766 | bugman | 2014-09-12 09:58:37 +0200 (Fri, 12 Sep 2014) | 6 lines The frame order generate_pivot() function can now handle no pivot being present. At the start of this specific_analyses.frame_order.data module function, the check_pivot() function is being called to make sure that a pivot is present. ........ r25767 | bugman | 2014-09-12 10:08:13 +0200 (Fri, 12 Sep 2014) | 6 lines 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. ........ r25768 | bugman | 2014-09-12 10:12:00 +0200 (Fri, 12 Sep 2014) | 5 lines Modified the Frame_order.test_frame_order_pdb_model_ensemble system test so it is set up correctly. The pivot point and moving domain are now specified. ........ r25769 | bugman | 2014-09-12 10:14:16 +0200 (Fri, 12 Sep 2014) | 7 lines Added Monte Carlo simulations to the Frame_order.test_frame_order_pdb_model_ensemble system test. This is only setting up Monte Carlo simulation data structures via the monte_carlo.setup user function. This demonstrates a failure of the frame_order.pdb_model user function when an ensemble of structures is present with Monte Carlo simulations. ........ Added: trunk/test_suite/shared_data/frame_order/cam/rotor/perm_iso_cone_torsionless_xy_le_z/ - copied from r25769, branches/frame_order_cleanup/test_suite/shared_data/frame_order/cam/rotor/perm_iso_cone_torsionless_xy_le_z/ trunk/test_suite/shared_data/frame_order/cam/rotor/perm_iso_cone_xy_le_z/ - copied from r25769, branches/frame_order_cleanup/test_suite/shared_data/frame_order/cam/rotor/perm_iso_cone_xy_le_z/ trunk/test_suite/shared_data/frame_order/cam/rotor/perm_iso_cone_z_le_xy/ - copied from r25769, branches/frame_order_cleanup/test_suite/shared_data/frame_order/cam/rotor/perm_iso_cone_z_le_xy/ trunk/test_suite/shared_data/frame_order/cam/rotor/perm_pseudo_ellipse_x_le_y_le_z/ - copied from r25769, branches/frame_order_cleanup/test_suite/shared_data/frame_order/cam/rotor/perm_pseudo_ellipse_x_le_y_le_z/ trunk/test_suite/shared_data/frame_order/cam/rotor/perm_pseudo_ellipse_x_le_z_le_y/ - copied from r25769, branches/frame_order_cleanup/test_suite/shared_data/frame_order/cam/rotor/perm_pseudo_ellipse_x_le_z_le_y/ trunk/test_suite/shared_data/frame_order/cam/rotor/perm_pseudo_ellipse_z_le_x_le_y/ - copied from r25769, branches/frame_order_cleanup/test_suite/shared_data/frame_order/cam/rotor/perm_pseudo_ellipse_z_le_x_le_y/ trunk/test_suite/shared_data/frame_order/cam/rotor/perm_pseudo_ellipse_z_le_x_le_y_alt/ - copied from r25769, branches/frame_order_cleanup/test_suite/shared_data/frame_order/cam/rotor/perm_pseudo_ellipse_z_le_x_le_y_alt/ Modified: trunk/ (props changed) trunk/auto_analyses/frame_order.py trunk/specific_analyses/frame_order/checks.py trunk/specific_analyses/frame_order/data.py trunk/specific_analyses/frame_order/geometric.py trunk/specific_analyses/frame_order/parameters.py trunk/specific_analyses/frame_order/uf.py trunk/test_suite/system_tests/frame_order.py trunk/user_functions/frame_order.py [This mail would be too long, it was shortened to contain the URLs only.] Modified: trunk/auto_analyses/frame_order.py URL: http://svn.gna.org/viewcvs/relax/trunk/auto_analyses/frame_order.py?rev=27950&r1=27949&r2=27950&view=diff Modified: trunk/specific_analyses/frame_order/checks.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/frame_order/checks.py?rev=27950&r1=27949&r2=27950&view=diff Modified: trunk/specific_analyses/frame_order/data.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/frame_order/data.py?rev=27950&r1=27949&r2=27950&view=diff Modified: trunk/specific_analyses/frame_order/geometric.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/frame_order/geometric.py?rev=27950&r1=27949&r2=27950&view=diff Modified: trunk/specific_analyses/frame_order/parameters.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/frame_order/parameters.py?rev=27950&r1=27949&r2=27950&view=diff Modified: trunk/specific_analyses/frame_order/uf.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/frame_order/uf.py?rev=27950&r1=27949&r2=27950&view=diff Modified: trunk/test_suite/system_tests/frame_order.py URL: http://svn.gna.org/viewcvs/relax/trunk/test_suite/system_tests/frame_order.py?rev=27950&r1=27949&r2=27950&view=diff Modified: trunk/user_functions/frame_order.py URL: http://svn.gna.org/viewcvs/relax/trunk/user_functions/frame_order.py?rev=27950&r1=27949&r2=27950&view=diff