Author: bugman Date: Fri Oct 2 11:41:42 2015 New Revision: 27939 URL: http://svn.gna.org/viewcvs/relax?rev=27939&view=rev Log: Merged revisions 24433-24436,24441-24444,24449-24451,24455,24457-24459,24461-24499,24504,24506,24509 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/branches/frame_order_cleanup ........ r24433 | bugman | 2014-07-03 15:04:20 +0200 (Thu, 03 Jul 2014) | 8 lines Redesign of the average domain position part of the frame_order.pdb_model user function. The Monte Carlo simulations are now represented. If the file root is set to the default of 'ave_pos', then these will be placed in the file 'ave_pos.pdb', or a compressed version. Each simulation is in a different model, matching the geometric representation '*_sim.pdb' files. The original structure is copied for each model, and then rotated to the MC simulation average position. ........ r24434 | bugman | 2014-07-03 15:25:47 +0200 (Thu, 03 Jul 2014) | 6 lines Change all of the domain user function calls in the frame order CaM test data scripts. The domains are now identified by the molecule name rather than the range of residues. This allows non-protein atoms, for example the Ca2+ atoms, to be rotated to the average domain position as well. ........ r24435 | bugman | 2014-07-03 15:44:41 +0200 (Thu, 03 Jul 2014) | 8 lines The PyMOL disable command is now used by the pymol.frame_order user function. This is to first disable all PyMOL objects prior to loading anything, to hide the original structures and any previous frame order representations, and then to hide all of the Monte Carlo simulation representations. This is to simplify the picture initially presented to the user while still allowing all elements to be easily found. ........ r24436 | bugman | 2014-07-03 15:45:01 +0200 (Thu, 03 Jul 2014) | 3 lines Removed a debugging printout. ........ r24441 | bugman | 2014-07-03 17:16:15 +0200 (Thu, 03 Jul 2014) | 3 lines The pymol.frame_order user function now centers and zooms on all objects. ........ r24442 | bugman | 2014-07-03 17:48:36 +0200 (Thu, 03 Jul 2014) | 7 lines Simplified the PyMOL view commands in all of the CaM test data optimisation scripts. The pymol.view user function is not necessary as the PyMOL GUI will be launched by the pymol.frame_order user function. And the pymol.command user function call for running the 'hide all' command is also now redundant. ........ r24443 | bugman | 2014-07-03 17:55:53 +0200 (Thu, 03 Jul 2014) | 6 lines Removed all remaining uncompressed PDB files from the CaM test data directories. These were complicating the debugging of the pymol.frame_order user function, as they were being loaded on top of the compressed versions. ........ r24444 | bugman | 2014-07-03 17:58:05 +0200 (Thu, 03 Jul 2014) | 5 lines Removed some rotation files from the CaM frame order test data directories. These files are no longer of any use and just take up large amounts of room for nothing. ........ r24449 | bugman | 2014-07-04 10:34:56 +0200 (Fri, 04 Jul 2014) | 12 lines Added titles to the frame order geometric representation PDB files from frame_order.pdb_model. These are in the form of special Ti atoms placed 40 Angstrom away from the pivot along the z-axis of the system, or shifted 3 more Angstrom for the Monte Carlo simulations. These are used to label the alternative representations or the Monte Carlo simulation representations. The residue type is set to TLE and this has been registered in the internal structural object. The pymol.frame_order user function now calls the represent_titles() function to select these atoms, hide them, and then add a long descriptive title. The atom name is used to distinguish between different titles. ........ r24450 | bugman | 2014-07-04 10:47:05 +0200 (Fri, 04 Jul 2014) | 12 lines Changed the alternative representation names for the frame order geometric objects. The aim is to put both representations on a more equal footing, as they are identical solutions. Hence the inverted representation might be the correct representation of the domain motions. So instead of calling these 'positive' and 'negative', the 'A' and 'B' notation will be used. This affects the names of the files produced by the frame_order.pdb_model user function as well as the internal titles. Instead of ending the files with "*_pos.*" and ""*_neg.*", these have been changed to "*_A.*" and ""*_B.*". The atoms used for the titles have also been renamed, and the pymol.frame_order user function now labels the titles using the 'A' and 'B' notation. ........ r24451 | bugman | 2014-07-04 11:02:51 +0200 (Fri, 04 Jul 2014) | 7 lines Changes to the rotor object in the frame order geometric representations. For the isotropic and pseudo-elliptic cone models, the rotor is now halved. Instead of having two axes radiating from the central pivot and terminating in the propeller blades, now only the positive axis is shown lying in the centre of the cone. ........ r24455 | bugman | 2014-07-04 12:00:51 +0200 (Fri, 04 Jul 2014) | 6 lines Fixes for the MC simulation rotor objects in the frame order geometric representation. The axes of the Monte Carlo simulation rotors objects were being set to the original values and not to the simulation values. ........ r24457 | bugman | 2014-07-04 15:19:18 +0200 (Fri, 04 Jul 2014) | 5 lines Fixes for the titles in the frame order geometric representation from frame_order.pdb_model. There were a few bugs for a number of the frame order models preventing this code from working. ........ r24458 | bugman | 2014-07-04 15:25:04 +0200 (Fri, 04 Jul 2014) | 3 lines Added the geometric module to the specific_analyses.frame_order package __all__ list. ........ r24459 | bugman | 2014-07-04 15:38:30 +0200 (Fri, 04 Jul 2014) | 16 lines Redesign of the geometric representation of the cone structural objects to allow for models. The old representation was not compatible with the PDB model concept whereby each model must have the same number of atoms. To handle this situation, the cone objects have been simplified. Specifically the cone cap. The old behaviour was to remove all points outside of the cone when creating the cone cap, and then to stitch the cap to the cone edge in a subsequent step. Now the behaviour is that all points outside of the distribution are shifted to the cone edge. This avoids the need to stitch the cap to the edge. This behaviour means that all cones with the same inc value will have the same number of atoms. The cones for the pseudo-ellipses are not as nice as the latitudinal lines are not strait at the cone edge, but at least creating multiple models with different cone sizes is now possible. ........ r24461 | bugman | 2014-07-05 14:39:55 +0200 (Sat, 05 Jul 2014) | 5 lines Bug fix for the y-axis rotation matrix for the double rotor Sobol' integration points. The matrix was inverted. ........ r24462 | bugman | 2014-07-05 15:53:30 +0200 (Sat, 05 Jul 2014) | 17 lines Reverted r24332 as this was incorrect - the data input was wrong, not the frame order matrix. The command used was: svn merge -r24332:r24331 . ..... r24332 | bugman | 2014-06-26 16:29:46 +0200 (Thu, 26 Jun 2014) | 6 lines Changed paths: M /branches/frame_order_cleanup/lib/frame_order/double_rotor.py Fix for the double rotor frame order matrix assembly function. The rotations where applied in reverse, hence the 2nd degree frame order matrix was the Kronecker product transpose of the correct form. ..... ........ r24463 | bugman | 2014-07-05 19:06:09 +0200 (Sat, 05 Jul 2014) | 9 lines Converted all frame order target function data structures to float64. This affects the vector data structures used for the PCS numeric integration. The float32 structures added for speed do not actually increase the speed. For the double rotor model, 10 target function calls took the pcs_pivot_motion_double_rotor() function 44.936 seconds using float32 and 44.105 seconds using all float64. The cumulative time is also longer. This must be because other parts are float64, and therefore type conversions are happening during target function calls. ........ r24464 | bugman | 2014-07-05 20:29:37 +0200 (Sat, 05 Jul 2014) | 3 lines Updated the frame order system test chi-squared values for the fix of r24461. ........ r24465 | bugman | 2014-07-05 20:37:38 +0200 (Sat, 05 Jul 2014) | 6 lines Fixes for the double rotor frame order system tests for the CaM synthetic data. The torsion angles needed to be swapped and the pivot point changed from the C terminal domain CoM to the N domain CoM. ........ r24466 | bugman | 2014-07-05 20:46:51 +0200 (Sat, 05 Jul 2014) | 5 lines More fixes for the double rotor frame order system tests for the CaM synthetic data. The eigensystem was inverted. ........ r24467 | bugman | 2014-07-05 20:47:53 +0200 (Sat, 05 Jul 2014) | 5 lines Updated the chi2 check for the large angle double rotor frame order system tests. This is needed for the eigenframe fix. ........ r24468 | bugman | 2014-07-05 20:51:40 +0200 (Sat, 05 Jul 2014) | 5 lines Updates for the frame order system tests for the float32 to float64 change (r24463). Some chi-squared values have slightly changed. ........ r24469 | bugman | 2014-07-05 23:10:54 +0200 (Sat, 05 Jul 2014) | 6 lines The CaM frame order test data optimisation scripts now save more state files. The state of the true dynamics and the fixed pivot optimisation results are now stored as well. This might be useful for extracting these results without redoing the calculations. ........ r24470 | bugman | 2014-07-05 23:18:19 +0200 (Sat, 05 Jul 2014) | 5 lines The script for representing the frame order dynamics for the CaM test data has been updated. The domains of the system are now defined. ........ r24471 | bugman | 2014-07-07 09:34:02 +0200 (Mon, 07 Jul 2014) | 13 lines Changed the CaM frame order test data superimposition values. Because the domains are now defined via the molecule name rather than the residue numbers, the centroid of rotation set to the CoM has been shifted as now the Ca2+ ions are included in the CoM calculation. Therefore the superimpose.py script has been updated to not delete the Ca atoms (this reverts r23354). All of the frame order optimisation scripts have been updated with the new rotation Euler angles and translation vector. To match this, the system test base script for the CaM frame order test data has also had its rotations and translations updates, and the domain user function call changed to use molecule names. ........ r24472 | bugman | 2014-07-07 09:58:19 +0200 (Mon, 07 Jul 2014) | 5 lines Updated all of the CaM frame order system test chi-squared values. These have changed slightly due to the rotation and translation changes (r24471). ........ r24473 | bugman | 2014-07-07 16:28:29 +0200 (Mon, 07 Jul 2014) | 5 lines Added support for the 'pivot_disp' frame order parameter to the grid search. This is required for the double rotor model. ........ r24474 | bugman | 2014-07-07 16:57:24 +0200 (Mon, 07 Jul 2014) | 6 lines Changed some of the default values for the frame order auto-analysis. The number of Sobol' quasi-random integration points were far too low to obtain any reasonable results. ........ r24475 | bugman | 2014-07-07 18:20:15 +0200 (Mon, 07 Jul 2014) | 6 lines Simplified the PyMOL visualisation relax script created by the frame order auto-analysis. This now consists of a single pymol.frame_order user function call. The other pymol user function calls were unnecessary. ........ r24476 | bugman | 2014-07-08 11:26:46 +0200 (Tue, 08 Jul 2014) | 5 lines Added the full optimisation results for the large angle double rotor frame order model. This is for the CaM test data using the new frame_order.py optimisation script. ........ r24477 | bugman | 2014-07-08 11:36:31 +0200 (Tue, 08 Jul 2014) | 3 lines Removal of some accidentally committed debugging code. ........ r24478 | bugman | 2014-07-08 12:08:28 +0200 (Tue, 08 Jul 2014) | 7 lines Added model support for the rotor geometric object. This is the structural object used in the frame order analysis to create PDB representations of rotor motions. The number of atoms created for the rotor is now constant, allowing for models whereby the atom number and connectivity must be preserved between all models. ........ r24479 | bugman | 2014-07-08 12:17:48 +0200 (Tue, 08 Jul 2014) | 6 lines Changed the grid search pivot displacement frame order parameter. Instead of searching from 0 to 50 Angstroms, the search is now from 10 to 50. This is to avoid the edge case of pivot_disp = 0.0 from which the optimisation cannot escape. ........ r24480 | bugman | 2014-07-08 14:21:23 +0200 (Tue, 08 Jul 2014) | 7 lines Speed up of the PCS component of the rigid frame order model. The lanthanide to atom vectors are now being calculated outside of the alignment tensor and spin loops, as well as the inverse vector lengths to the 5th power. This increases the speed by a factor of 1.216 (from 38.133 to 31.368 seconds for 23329 calls of the func_rigid() target function). ........ r24481 | bugman | 2014-07-08 15:57:43 +0200 (Tue, 08 Jul 2014) | 5 lines Added the full optimisation results for the rigid frame order model. This is for the CaM test data using the new frame_order.py optimisation script. ........ r24482 | bugman | 2014-07-08 17:07:24 +0200 (Tue, 08 Jul 2014) | 7 lines Numpy <= 1.6 fixes for the frame order PCS code. The numpy.linalg.norm function does not have an axis argument in numpy 1.6, therefore the lib.compat.norm() function is now used instead. This function was created exactly for this axis argument problem. ........ r24483 | bugman | 2014-07-09 10:03:17 +0200 (Wed, 09 Jul 2014) | 8 lines Created the new specific_analyses.frame_order.variables module. This currently contains variables for all of the frame order model names, as well as various lists of these models. The rest of the frame order specific analysis code as well as the frame order user functions have been converted to use these model variables exclusively rather than having the model name strings hardcoded throughout the codebase. ........ r24484 | bugman | 2014-07-09 10:05:34 +0200 (Wed, 09 Jul 2014) | 5 lines Added the full optimisation results for the double rotor test data. This is for the CaM frame order test data using the new frame_order.py optimisation script. ........ r24485 | bugman | 2014-07-09 10:40:09 +0200 (Wed, 09 Jul 2014) | 3 lines Added a script for profiling the target function calls of the pseudo-ellipse frame order model. ........ r24486 | bugman | 2014-07-09 10:59:03 +0200 (Wed, 09 Jul 2014) | 5 lines Added a timeit script and log file showing how numpy.cos() is 10 times slower than math.cos(). This is for single floats. ........ r24487 | bugman | 2014-07-09 11:39:08 +0200 (Wed, 09 Jul 2014) | 9 lines Shifted the calculation of the theta_max cone opening for the pseudo-ellipse outside of all loops. This is infrastructure change for potentially eliminating all of the looping for the PCS numeric integration in the future. It however slightly speeds up the pseudo-ellipse frame order model. Using 500 target function calls in the profiling_pseudo_ellipse.py script in test_suite/shared_data/frame_order/timings/, the time spent in the pcs_pivot_motion_full_qrint() function decreases from 20.849 to 20.719 seconds. ........ r24488 | bugman | 2014-07-09 11:52:30 +0200 (Wed, 09 Jul 2014) | 6 lines Converted the torsionless pseudo-ellipse model to also use the tmax_pseudo_ellipse_array() function. This allows the calculation of the pseudo-elliptic cone opening theta_max to be shifted outside of all loops. ........ r24489 | bugman | 2014-07-09 11:59:05 +0200 (Wed, 09 Jul 2014) | 5 lines Created a profiling script and log file for the isotropic cone frame order model. This shows where the slow points of the model are, using 2000 target function calls. ........ r24490 | bugman | 2014-07-09 12:02:55 +0200 (Wed, 09 Jul 2014) | 7 lines Increased the function call number to 500 in the pseudo-ellipse frame order model profiling script. The profiling log file has also been added to show where the slowness is - specifically that the numeric PCS integration takes almost the same amount of time as the RDC frame order matrix construction using the scipy.integrate.quad() function. ........ r24491 | bugman | 2014-07-09 12:04:11 +0200 (Wed, 09 Jul 2014) | 3 lines Removal of unused imports from the lib.frame_order.rotor module as identified using pylint. ........ r24492 | bugman | 2014-07-09 14:23:48 +0200 (Wed, 09 Jul 2014) | 3 lines Added the new variables module to the specific_analyses.frame_order package __all__ list. ........ r24493 | bugman | 2014-07-09 14:59:32 +0200 (Wed, 09 Jul 2014) | 5 lines Created the specific_analyses.frame_order.checks.check_pivot() function. This is to check that the pivot point has been set. ........ r24494 | bugman | 2014-07-09 14:59:58 +0200 (Wed, 09 Jul 2014) | 3 lines The frame order grid search is now checking if the pivot point has been set. ........ r24495 | bugman | 2014-07-09 15:31:21 +0200 (Wed, 09 Jul 2014) | 7 lines Modified the specific_analyses.frame_order.parameters.update_model() function. The pivot parameters are now set to 0.0 if they do not currently exist. They were previously excluded from this initialisation, but this is required for the frame order models if the pivot is not initially fixed at a give location in the PDB space. ........ r24496 | bugman | 2014-07-09 16:20:51 +0200 (Wed, 09 Jul 2014) | 3 lines Added a profiling script and log file for the free rotor frame order model. ........ r24497 | bugman | 2014-07-09 16:36:14 +0200 (Wed, 09 Jul 2014) | 5 lines Added the log file which should have been committed at r24496. The number of function calls has also been decreased to 100. ........ r24498 | bugman | 2014-07-09 17:09:10 +0200 (Wed, 09 Jul 2014) | 7 lines Updated the frame order optimisation results for the CaM isotropic cone test data. The optimisation in the frame_order.py is now of higher precision with the number of Sobol' numeric integration points significantly increased, especially for the Monte Carlo simulations. The new frame order representation files have been added to the repository and the old ones removed. ........ r24499 | bugman | 2014-07-09 17:19:52 +0200 (Wed, 09 Jul 2014) | 7 lines Modified the script for recreating the frame order PDB representation and displaying it in PyMOL. The state loading, domain redefinition, and representation creation parts have all been removed, as these will soon all be redundant as the frame order analysis for all models is being redone. All that remains are the pymol.frame_order() function calls for displaying all the representations. ........ r24504 | bugman | 2014-07-09 19:52:00 +0200 (Wed, 09 Jul 2014) | 5 lines The pivot point parameters in the frame order analysis are no longer scaled by 100. This is to match the average domain position translation which is also not scaled. ........ r24506 | bugman | 2014-07-10 10:36:20 +0200 (Thu, 10 Jul 2014) | 8 lines The specific_analyses.frame_order.variables module is now used throughout the frame order code. [... 505 lines stripped ...]