Author: bugman Date: Fri Oct 2 14:24:34 2015 New Revision: 27956 URL: http://svn.gna.org/viewcvs/relax?rev=27956&view=rev Log: Merged revisions 26141,26207,26313-26320,26349,26365,26388-26394,26396-26477,26479-26481,26484,26534-26537,26657-26658,26668-26669 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/branches/frame_order_cleanup ........ r26141 | bugman | 2014-10-02 15:53:19 +0200 (Thu, 02 Oct 2014) | 5 lines Modified the PCS content testing base system. The paramagnetic centre is now shifted to the origin, as this is the real centre of the PCS physics. ........ r26207 | bugman | 2014-10-08 12:10:04 +0200 (Wed, 08 Oct 2014) | 17 lines Intermediate optimisation results are now stored by the frame order auto-analysis. The results from each minimise.grid_search and minimise.execute user function call are now stored in specially named directories located in the 'intermediate_results' directory, which itself is located in the auto-analysis results_dir directory. This allows intermediate results to be more easily analysed later on, which can be useful for optimising the optimisation steps. These directories can also be used for the pre_run_dir auto-analysis argument for subsequent refinements from earlier steps in the optimisation. The results stored include everything from the results_output() method and the count_sobol_points() and summarise() functions. To allow this to work, the auto-analysis functions count_sobol_points() and summarise() required modification. Results files are now always loaded into a temporary data pipe, rather switching to the corresponding pipe, and the temporary data pipe is deleted after the data has been extracted. The original data pipe name is also stored and a switch back to that pipe occurs at the end of each function. ........ r26313 | bugman | 2014-10-20 09:54:11 +0200 (Mon, 20 Oct 2014) | 7 lines The simulation is now turned of for intermediate results in the frame order auto-analysis. The intermediate results are only for checking, so for these the full pseudo-Brownian dynamics simulations are not required. The simulation flag has been introduced into the results_output() method of the auto-analysis to control this. ........ r26314 | bugman | 2014-10-20 11:52:52 +0200 (Mon, 20 Oct 2014) | 8 lines The splitting of the rigid model grid search into rotation and translation parts is now optional. In the frame order auto-analysis, the rigid_grid_split argument has been introduced. The alternating algorithm of performing a grid search over the rotational space followed by translation is now optional and turned off by default. The reason is because the global minimum is sometimes missed with this shortcut algorithm. ........ r26315 | bugman | 2014-10-20 14:45:24 +0200 (Mon, 20 Oct 2014) | 6 lines Speed up of the Frame_order.test_auto_analysis system test. The splitting of the rigid model grid search into rotation and translation parts has been reactivated. ........ r26316 | bugman | 2014-10-20 15:11:58 +0200 (Mon, 20 Oct 2014) | 5 lines Created the Optimisation.has_grid() method for the frame order auto-analysis. This is used to test if the optimisation settings object has a grid search defined. ........ r26317 | bugman | 2014-10-20 15:15:21 +0200 (Mon, 20 Oct 2014) | 7 lines The grid search can now be skipped for the rigid model in the frame order auto-analysis. If the input 3D structures are close to the real solution, the grid search over the translational and rotation parameters of the rigid model could be skipped. This speeds up the analysis and can help find the real solution in problematic cases. ........ r26318 | bugman | 2014-10-20 16:23:08 +0200 (Mon, 20 Oct 2014) | 6 lines The intermediate results storing can now be turned off in the frame order auto-analysis. The new store_intermediate Boolean argument has been added to the analysis to allow the storage of these results to be turned on or off. ........ r26319 | bugman | 2014-10-20 16:24:11 +0200 (Mon, 20 Oct 2014) | 5 lines The intermediate results are no longer stored in the Frame_order.test_auto_analysis system test. This drops the test timing on one system from ~190 seconds to ~50 seconds. ........ r26320 | bugman | 2014-10-20 16:45:49 +0200 (Mon, 20 Oct 2014) | 7 lines The compression level for results files can now be set in the frame order auto-analysis. This is via the new argument results_compress_type, which is used to set the compress_type argument of the results.write user function. The results reading parts of the auto-analysis have been updated to allow uncompressed, bzip2 compressed, and gzip compressed files to be handled. ........ r26349 | bugman | 2014-10-22 15:22:03 +0200 (Wed, 22 Oct 2014) | 7 lines Added a printout of the frame order model in the target function setup function. This is printed out when the minimise.calculate, minimise.grid_search, or minimise.execute user function are called, and is for better feedback, especially in the auto-analysis where the repetitive optimisations can be confusing. ........ r26365 | bugman | 2014-10-23 11:34:29 +0200 (Thu, 23 Oct 2014) | 6 lines Updated the frame order analysis for the structure.load_spins user function changes. The minimise_setup_atomic_pos() function of the specific_analyses.frame_order.optimisation module now handles the mixed type spin.pos variable correctly. ........ r26388 | bugman | 2014-10-23 15:32:59 +0200 (Thu, 23 Oct 2014) | 5 lines The data pipe containing a PCS subset is now optional in the frame order auto-analysis. This is for systems which have so little data that a subset makes no sense. ........ r26389 | bugman | 2014-10-23 15:47:26 +0200 (Thu, 23 Oct 2014) | 3 lines Missing import. ........ r26390 | bugman | 2014-10-23 15:57:02 +0200 (Thu, 23 Oct 2014) | 12 lines Redesigned the optimisation steps for the frame order auto-analysis. The code has been significantly simplified as the optimisation for the PCS subset and full data set was the same. The code duplication has been eliminated by combining it into the new optimisation() method. The check for the PCS subset has also been expanded so that it is skipped if the subset data pipe is not supplied, even if an optimisation object for the subset has been (this should prevent strange errors when the auto-analysis is incorrectly used). A side effect of this code merger is that the zooming grid search has now been activated for the full PCS data set. This is of great benefit when a PCS subset is not being used. ........ r26391 | bugman | 2014-10-23 16:19:39 +0200 (Thu, 23 Oct 2014) | 6 lines The minimise.execute user function skip_preset flag is now False in the frame order auto-analysis. This is for the main model optimisation. Without this flag set, the grid search for the pivot point position for the rotor model was being skipped at the first zoom level. ........ r26392 | bugman | 2014-10-23 16:32:15 +0200 (Thu, 23 Oct 2014) | 9 lines The pivot point can now be excluded from the grid search in the frame order auto-analysis. If the initial pivot point is known to be reasonable, then it may be possible to skip it in the grid search for the rotor frame order model. This can lead to a speed up of the analysis and can help with stability. The pivot_search argument has been added to the auto-analysis Optimisation.add_grid() method to enable this. The get_grid_pivot_search() method has also been added to allow the auto-analysis to query this and turn it off if desired. ........ r26393 | bugman | 2014-10-28 11:24:45 +0100 (Tue, 28 Oct 2014) | 5 lines Updated the description of the frame_order.permute_axes user function. This now includes the isotopic cone. ........ r26394 | bugman | 2014-10-28 14:23:43 +0100 (Tue, 28 Oct 2014) | 6 lines Replaced the table in the frame_order.permute_axes user function. The original table was an old and incorrect version. This has been replaced by the correct permutation table. ........ r26396 | bugman | 2014-11-01 12:36:07 +0100 (Sat, 01 Nov 2014) | 7 lines Added some old relax scripts for both simulating and predicting the frame order matrix elements. These were used for the initial implementation of the pseudo-ellipse frame order model back in July 2010. The scripts will be extended for all frame order models. The simulated values could then be used in unit tests of the frame order matrix code in lib.frame_order. ........ r26397 | bugman | 2014-11-01 14:09:17 +0100 (Sat, 01 Nov 2014) | 6 lines Updated the frame_order_simulate.py script for simulating frame order matrix elements. The MODEL variable has been added in preparation for supporting all model types, and this is now added to the file name. The Grace header is now also being automatically generated. ........ r26398 | bugman | 2014-11-01 14:42:40 +0100 (Sat, 01 Nov 2014) | 5 lines Improvements for the Grace files produced by the frame_order_simulate.py script. The model name is now set as a variable and is used for the subheading. ........ r26399 | bugman | 2014-11-01 14:44:03 +0100 (Sat, 01 Nov 2014) | 7 lines Updated the frame_order_solution.py script for directly calculating the frame order matrix elements. The MODEL variable has been added in preparation for supporting all model types, and this is now added to the file name. The Grace header is now also being automatically generated and this matches that for the frame_order_simulation.py script. ........ r26400 | bugman | 2014-11-01 17:00:00 +0100 (Sat, 01 Nov 2014) | 5 lines Zero values can now be handled in the pseudo-ellipse 1st degree frame order matrix function. This is in lib.frame_order.pseudo_ellipse.compile_1st_matrix_pseudo_ellipse(). ........ r26401 | bugman | 2014-11-01 17:01:58 +0100 (Sat, 01 Nov 2014) | 7 lines Removed some unused code in the pseudo-ellipse 2nd degree frame order matrix function. This is the compile_2nd_matrix_pseudo_ellipse() function in the lib.frame_order.pseudo_ellipse module. The change should make the RDC part of the frame order analysis for the pseudo-ellipse model slightly faster. ........ r26402 | bugman | 2014-11-01 17:57:15 +0100 (Sat, 01 Nov 2014) | 5 lines Modified the rotate_daeg() function as this is independent of the degree of the frame order matrix. This is the lib.frame_order.matrix_ops.rotate_daeg() function. ........ r26403 | bugman | 2014-11-01 18:00:21 +0100 (Sat, 01 Nov 2014) | 6 lines Fix for the compile_1st_matrix_pseudo_ellipse() function. This function of the lib.frame_order.pseudo_ellipse module now can rotate the 1st degree frame order matrix out of its eigenframe and into the PDB frame. ........ r26404 | bugman | 2014-11-01 18:02:31 +0100 (Sat, 01 Nov 2014) | 5 lines Created an executable Python script for mass converting the frame order matrix Grace graphs. The script converts the *.agr files to EPS and PNG files. ........ r26405 | bugman | 2014-11-01 18:04:10 +0100 (Sat, 01 Nov 2014) | 6 lines Modified the frame order matrix Grace graph to EPS/PNG format conversion script. The binary being called is now 'grace' rather than 'xmgrace'. This allows different Grace versions to be used. ........ r26406 | bugman | 2014-11-01 20:13:38 +0100 (Sat, 01 Nov 2014) | 6 lines Modified the frame order matrix Grace graph to EPS/PNG format conversion script. Grace is now used to create a PostScript file and then the ps2eps program is called to convert to EPS. This produces much better EPS files for inclusion into LaTeX documents. ........ r26407 | bugman | 2014-11-01 20:22:26 +0100 (Sat, 01 Nov 2014) | 8 lines Redesign of the frame_order_solution.py script for calculating the frame order matrix elements. This script now loops over all models, all motional frame orientations, and all order parameters to generate the Grace graphs of all 1st and 2nd degree frame order matrix elements. Therefore the script only needs to be executed once. The script also now calculates a point at zero (slightly shifted to 0.01 to avoid artifacts). ........ r26408 | bugman | 2014-11-01 20:24:24 +0100 (Sat, 01 Nov 2014) | 6 lines Added all of the Grace graphs produced by the frame_order_solution.py script. These are the graphs of the 1st and 2nd degree frame order matrix elements, calculated using the functions in lib.frame_order. ........ r26409 | bugman | 2014-11-02 15:39:25 +0100 (Sun, 02 Nov 2014) | 8 lines Updated frame_order_simulate.py to be much faster in simulating the frame order matrix elements. The script also matches the Grace file output of the frame_order_solution.py script. The inside() method has been renamed for the pseudo-ellipse and the infrastructure for adding support for the other frame order models has been added. By shifting calculations outside of the loops, the script is now many orders of magnitude faster. ........ r26410 | bugman | 2014-11-02 22:14:36 +0100 (Sun, 02 Nov 2014) | 4 lines Implemented the compile_1st_matrix_rotor() function. This is for the lib.frame_order.rotor module. The function will calculate the 1st degree in-frame frame order matrix for the rotor model. ........ r26411 | bugman | 2014-11-02 22:14:38 +0100 (Sun, 02 Nov 2014) | 4 lines Created the Grace graphs for the rotor model 1st degree frame order matrix elements. These are the values calculated directly from the lib.frame_order modules. The graphs were previously all zeros. ........ r26412 | bugman | 2014-11-02 22:14:41 +0100 (Sun, 02 Nov 2014) | 4 lines Implemented the compile_1st_matrix_free_rotor() function. This is for the lib.frame_order.free_rotor module. The function will calculate the 1st degree in-frame frame order matrix for the free rotor model. ........ r26413 | bugman | 2014-11-02 22:14:43 +0100 (Sun, 02 Nov 2014) | 4 lines Created the Grace graphs for the free rotor model 1st degree frame order matrix elements. These are the values calculated directly from the lib.frame_order modules. The graphs were previously all zeros. ........ r26414 | bugman | 2014-11-02 22:14:45 +0100 (Sun, 02 Nov 2014) | 4 lines Implemented the compile_1st_matrix_iso_cone() function. This is for the lib.frame_order.iso_cone module. The function will calculate the 1st degree in-frame frame order matrix for the isotropic cone model. ........ r26415 | bugman | 2014-11-02 22:14:48 +0100 (Sun, 02 Nov 2014) | 4 lines Created the Grace graphs for the isotropic cone model 1st degree frame order matrix elements. These are the values calculated directly from the lib.frame_order modules. The graphs were previously all zeros. ........ r26416 | bugman | 2014-11-02 22:14:50 +0100 (Sun, 02 Nov 2014) | 4 lines Implemented the compile_1st_matrix_iso_cone_torsionless() function. This is for the lib.frame_order.iso_cone_torsionless module. The function will calculate the 1st degree in-frame frame order matrix for the torsionless isotropic cone model. ........ r26417 | bugman | 2014-11-02 22:14:52 +0100 (Sun, 02 Nov 2014) | 4 lines Created the Grace graphs for the torsionless isotropic cone 1st degree frame order matrix elements. These are the values calculated directly from the lib.frame_order modules. The graphs were previously all zeros. ........ r26418 | bugman | 2014-11-02 22:14:55 +0100 (Sun, 02 Nov 2014) | 4 lines Implemented the compile_1st_matrix_iso_cone_free_rotor() function. This is for the lib.frame_order.iso_cone_free_rotor module. The function will calculate the 1st degree in-frame frame order matrix for the free rotor isotropic cone model. ........ r26419 | bugman | 2014-11-02 22:14:57 +0100 (Sun, 02 Nov 2014) | 4 lines Created the Grace graphs for the free rotor isotropic cone 1st degree frame order matrix elements. These are the values calculated directly from the lib.frame_order modules. The graphs were previously all zeros. ........ r26420 | bugman | 2014-11-02 22:14:59 +0100 (Sun, 02 Nov 2014) | 1 line Docstring fixes for the new compile_1st_matrix_iso_cone() function. ........ r26421 | bugman | 2014-11-02 22:45:54 +0100 (Sun, 02 Nov 2014) | 4 lines A minor speed up for the frame_order_simulate.py script. The angles are now being calculated at the very start prior to the main loop, removing repetitive calculations. ........ r26422 | bugman | 2014-11-02 22:45:56 +0100 (Sun, 02 Nov 2014) | 5 lines The frame_order_simulate.py script now uses lib.text.progress.progress_meter(). This script for simulating the frame order matrix elements now uses the standard progress meter in relax to simplify the script. This should also speed up the calculations as the progress printouts were slowing down the calculations. ........ r26423 | bugman | 2014-11-03 08:18:07 +0100 (Mon, 03 Nov 2014) | 7 lines Simulation of the pseudo-ellipse frame order matrix elements. This is for a simulation of 1,000,000 states for each angle increment, and includes in-frame and out-of-frame and varying of theta X, Y, and Z. The resultant Grace graphs have been added to the repository. ........ r26424 | bugman | 2014-11-03 08:31:48 +0100 (Mon, 03 Nov 2014) | 4 lines The frame order matrix element simulation script now uses the Kronecker outer product. This allows the frame order matrix to be in the same notation as that used internally in relax. It will cause the colours of the Sijkl_* curves to match between the simulation and solution scripts. ........ r26425 | bugman | 2014-11-06 13:47:49 +0100 (Thu, 06 Nov 2014) | 7 lines Added the rotor model to the frame order matrix element simulation script. The generated in-frame and out-of-frame Grace graphs containing the matrix values for 1,000,000 simulation values have been added to the repository. The script was modified so that the rotation is generated by special rotation_*() methods which are aliased depending on the model. ........ r26426 | bugman | 2014-11-06 14:07:28 +0100 (Thu, 06 Nov 2014) | 7 lines Added the free rotor model to the frame order matrix element simulation script. The generated in-frame and out-of-frame Grace graphs containing the matrix values for 1,000,000 simulation values have been added to the repository. The inside_free_rotor() method has been added to always return True for the rotation generated by rotation_z_axis(). ........ r26427 | bugman | 2014-11-06 15:48:03 +0100 (Thu, 06 Nov 2014) | 6 lines Simplifications and fixes for the 1st degree frame order matrix calculation for the pseudo-ellipse. The compile_1st_matrix_pseudo_ellipse() function of the lib.frame_order.pseudo_ellipse module has been significantly simplified by shifting a lot of maths outside of the quadratic integration. ........ r26428 | bugman | 2014-11-06 15:49:09 +0100 (Thu, 06 Nov 2014) | 5 lines Updated all the calculated 1st degree frame order matrix graphs for the pseudo-ellipse. The changes are due to the fixes in the lib.frame_order.pseudo_ellipse module. ........ r26429 | bugman | 2014-11-06 19:49:04 +0100 (Thu, 06 Nov 2014) | 3 lines Simplifications for all of the torsionless pseudo-ellipse frame order matrix equations. ........ r26430 | bugman | 2014-11-06 20:00:00 +0100 (Thu, 06 Nov 2014) | 6 lines Implemented the compile_1st_matrix_pseudo_ellipse_torsionless() function. This is for the lib.frame_order.pseudo_ellipse_torsionless module. The function will calculate the 1st degree in-frame frame order matrix for the torsionless pseudo-ellipse model. ........ [... 575 lines stripped ...]