Changes

Jump to navigation Jump to search

Relax 3.3.0

1,077 bytes added, 19:23, 7 September 2014
m
→‎Changes: More links.
* Updated the minfx version in the release checklist document to [https://gna.org/forum/forum.php?forum_id=2471 1.0.8]. This version has not been released yet, but it will include important fixes and additions for constrained parallelised grid searches.
* Fix for a broken link in the development chapter of the relax manual.
* Fixes for dead hyperlinks in the relaxation dispersion chapter of the relax manual. The [[B14 ]] model links to http://www.nmr-relax.com/api/3.2/lib.dispersion.b14-module.html were broken as the B in [[B14 ]] was capitalised.
* Sent in the verbosity argument value to the minfx.grid.grid_split() function. The minfx function in the next release ([https://gna.org/forum/forum.php?forum_id=2471 1.0.8]) will now be more verbose, so this will help with user feedback when running the model-free analysis on a cluster or multi-core system using MPI.
* The [http://www.nmr-relax.com/manual/time.html time user function] now uses the chronometer Oxygen icon in the GUI.
* Made it easier to switch between single and cluster reporting in profiling script. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Important fix for the creation of the multi dimensional pA numpy array. It should be created as numpy.zeros([ei][si][mi][oi]) instead of numpy.ones([ei][si][mi][oi]). This allows for rapid testing of all dimensions with np.allclose(pA, numpy.ones(dw.shape)). pA can have missing filled out values, when the number of dispersion points are different per spectrometer frequency. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added unit tests demonstrating edge cases 'no Rex' failures of the model '[[CR72 full']], for a clustered multi dimensional calculation. This is implemented for one field. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Re-implemented safety checks in lib/dispersion/cr72.py. This is now implemented for both rank-1 float array and of higher dimensions. This makes the unit tests pass for multi dimensional computing. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added unit tests demonstrating edge cases 'no Rex' failures of the model '[[CR72 full']], for a clustered multi dimensional calculation. This is implemented for three fields. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changed that special numpy structure is also created for "[[CR72"]]. This makes most system tests pass. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Critical fix for the slicing of values in target function. This makes system test: Relax_disp.test_sod1wt_t25_to_cr72 pass. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added self.has_missing keyword in initialization of the Dispersion class. This is to test once, per spin or cluster. This saves a looping over the dispersion points, when collection the data. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Switched to use self.ei, self.si, self.mi, self.oi, self.di. This is for better reading of code. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Comment out the sys.exit(), which would make the code fail for wrong calculation of dw. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Copied profiling script for CPMG model [[CR72 ]] to R1rho [[DPL94 ]] model. The framework of the script will be the same, but the data a little different. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Started converting profiling script to [[DPL94]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Replaced self.(ei,si,mi,oi,di) with self.(NE,NS,NM,NO,ND). These numbers represents the maximum number of dimensions, instead of index. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added the ei index, when creating the first dw_mask. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Removed the creation of an unnecessary structure by using numpy multiply. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the mask which finds where to replace values into the __init__ function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Copied profiling script for [[CR72 ]] to [[B14 ]] model. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Modified profiling script for the [[B14 ]] model. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Modified model [[B14 ]] lib file to faster numpy multidimensional mode. The implementations comes almost directly from the [[CR72 ]] model file. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Reverted the use of the mask "mask_set_blank". It did not work, and many system tests started failing. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Changed the target function to handle the [[B14 ]] model for faster numpy computation. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changed unit test for [[B14 ]] to match numpy input requirement. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added additional tests in b14, when math errors can occur. This is very easy with a conditional masked search in arrays. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Comment fix for finding when E0 is above 700 in lib function of [[B14]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Removed use of "asarray", since the variables are already arrays. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Changed target function for model [[CR72]]. To [[CR72 ]] is now also the input of the parameters of R20A, R20B and dw. dw is tested for zero, to return flat lines. It is faster to search in the smaller numpy array, than the 5 dimensional dw array. This is for speed-up. R20A and R20B is also subtracted, to see if the full model should be used. In the same way, it is faster to subtract the smaller array. These small tricks are expected to give 5-10 pct. speeed-up. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Made the lib function of [[CR72 ]] accept the R20A, R20B and dw of the original array. This is for speed-up. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changed unit-tests, to send in the original R20A, R20B and dw_orig to the testing of the lib function [[CR72]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Changed profiling script to send R20A, R20B and dw, as original parameters to the lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Changed target function for model [[B14]]. To [[B14 ]] now also send the input of the original parameters dw. dw is tested for zero, to return flat lines. It is faster to search in the smaller numpy array, than the 5 dimensional dw array. This is for speed-up. These small tricks are expected to give 5-10 pct. speed-up. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Made the lib function of [[B14 ]] accept dw of the original array. This is for speed-up. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changed unit-tests, to send in the original dw_orig to the testing of the lib function [[B14]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changed profiling script to send dw as original parameters to the lib function [[B14]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Copied profiling script for [[CR72 ]] model to [[TSMFK01 ]] model. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Modified profiling script to be used for model [[TSMFK01]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Modified target function for model [[TSMFK01]], to send in dw as original parameter. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Modified lib function for model [[TSMFK01 ]] to accept dw_orig as input and replaced functions to find math domain errors into maske replacements. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Made unit tests for model [[TSMFK01 ]] send in R20A and dw as a numpy array. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Large increase in speed for model [[TSMFK01 ]] by changing target functions to use multidimensional numpy arrays in calculation. This is done by restructuring data into multidimensional arrays of dimension [NE][NS][NM][NO][ND], which are number of spins, number of magnetic field strength, number of offsets, maximum number of dispersion point. The speed comes from using numpy ufunc operations. The new version is 2.4X as fast per spin calculation, and 54X as fast for clustered analysis.* Replacing math domain checking in model [[DPL94]], with masked array replacement. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* First try to speed up model [[DPL94]]. This has not succeeded, since system test: Relax_disp.test_dpl94_data_to_dpl94 still fails. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Trying to move some of the structures into its own part. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Fix for forgetting to multiply frqs to power 2. This was found by inspecting all print out before and after implementation. New implementation of [[DPL94 ]] now passes all system and unit tests. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the expansion of the R1 structure out of the for loops. This is to speed-up the __init__ of the class of the target function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the packing of errors and values out of for loop in the __init__ class of target function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the expansion of frqs out of for loops. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Documentation fix for description of input arrays to lib functions. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Converted [[TAP03 ]] model to use multi dimensional numpy arrays. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Made dw in unit tests of [[TAP03 ]] be of numpy array. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Replaced the loop structure in target function of [[TAP03 ]] with numpy arrays. This makes the model faster. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Reordered the initialization structure of the special numpy arrays. This was done in the init part of the target function of relaxation dispersion. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added model MODEL_TSMFK01 also get self.tau_cpmg calculated in init part. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Methods to replace math domain errors in model [[TP02]], has been replaced with numpy masks. Documentation is also fixed. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Fix for sending in dw as numpy array in unit tests of model [[TP02]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Replaced target function for model [[TP02]], to use higher dimensional numpy array structures. That makes the model much faster. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Fix for adding model [[TP02 ]] to part of init class to initialize preparation of higher dimension numpy structures. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Made the NOREX model a faster numpy array calculation. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Removed an unnecessary frq_struct in init of target function. frqs can just be expanded, and back_calc is cleaned afterwards with disp_struct. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Methods to replace math domain errors in model [[M61]], has been replaced with numpy masks. Documentation is also fixed. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Fix for sending in r1rho_prime and phi_ex_scaled as numpy array in unit tests of model [[M61]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Replaced target function for model [[M61]], to use higher dimensional numpy array structures. That makes the model much faster. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Methods to replace math domain errors in model [[M61b]], has been replaced with numpy masks. Documentation is also fixed. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Fix for sending in r1rho_prime and dw as numpy array in unit tests of model [[M61b]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Replaced target function for model [[M61b]], to use higher dimensional numpy array structures. That makes the model much faster. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed number of points to be send to lib function of model [[TSMFK01]]. These are not used anymore. Also removed in corresponding unit tests. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed number of points and pB to be send to lib function of model [[TP02]]. Number of points are not used anymore. pB is calculated in lib function instead. Also removed in corresponding unit tests. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed number of points and pB to send to lib function of model [[TP02]]. pB is calculated in lib function instead. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed number of points, pB, k_AB, k_BA to be send to lib function of model [[B14]]. Number of points are not used anymore. pB is calculated in lib function instead. k_AB, and k_BA are calculated in lib functions instead. Fixed in target function. Fixed in lib function. Fixed in corresponding unit tests. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Fix for sending number of points in target function of [[TSMFK01]]. This was removed in lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed number of points, pB, to be send to lib function of model [[TAP03]]. Number of points are not used anymore. pB is calculated in lib function instead. Fixed in target function. Fixed in lib function. Fixed in corresponding unit tests. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed number of points, to be send to lib function of model [[CR72]]. Number of points are not used anymore. Fixed in target function. Fixed in lib function. Fixed in corresponding unit tests. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed number of points, to be send to lib function of model [[DPL94]]. Number of points are not used anymore. Fixed in target function. Fixed in lib function. Fixed in corresponding unit tests. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed number of points, to be send to lib function of model [[M61]]. Number of points are not used anymore. Fixed in target function. Fixed in lib function. Fixed in corresponding unit tests. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed number of points, to be send to lib function of model [[M61b]]. Number of points are not used anymore. Fixed in target function. Fixed in lib function. Fixed in corresponding unit tests. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Methods to replace math domain errors in model [[MP05]], has been replaced with numpy masks. Number of points has been removed, as the masks utility replaces this. Calculation of pB, has been moved to lib function for simplicity. Documentation is also fixed. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Fix for sending in dw as numpy array in unit tests of model [[MP05]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Replaced target function for model [[MP05]], to use higher dimensional numpy array structures. That makes the model much faster. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Methods to replace math domain errors in model [[LM63]], has been replaced with numpy masks. Number of points has been removed, as the masks utility replaces this. Documentation is also fixed. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Fix for sending in number of points in unit tests of model [[LM63]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Replaced target function for model [[LM63]], to use higher dimensional numpy array structures. That makes the model much faster. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Fix for replacement of values with mask, when phi_ex is zero. This can be spin specific. System test: Relax_disp.test_hansen_cpmg_data_to_lm63 starts to fail: Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Fix for sending in r20 and phi_ex as numpy array in unit tests of [[LM63]]. This is after using masks as replacement. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* 1 digit decrease in parameter check in system test: Relax_disp.test_hansen_cpmg_data_to_lm63. It is unknown, why this has occurred. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Methods to replace math domain errors in model IT99, has been replaced with numpy masks. Number of points has been removed, as the masks utility replaces this. pB is now moved to be calculated inside. This makes the lib function simpler. Documentation is also fixed. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Fix for system test Relax_disp.test_cpmg_synthetic_dx_map_points. By just copying self.back_calc_a to self.back_calc, problem was solved. In specific_analysis.relax_disp.optimisation in function back_calc_r2eff(), the function gets the last values stores in the class function. This is in "class Disp_result_command(Result_command)" with self.back_calc = back_calc. And back_calc_r2eff() have return model.back_calc. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Methods to replace math domain errors in model ns_cpmg_2site_3d, has been replaced with numpy masks. Number of points has been removed, as the masks utility replaces this. pB is now moved to be calculated inside. This makes the lib function simpler. k_AB and k_BA is also now calculated here. Magnetization vector is also now filled in lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Fix for unit tests of model [[NS CPMG 2-site 3D ]] to the reduced input to the lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Change to the target function to the model [[NS CPMG 2-site 3D ]] to use the reduced input to the lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Changed linked matrix/vector inner products into chained dot expressions. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Wrote the essential dot matrix up to be initiated earlier. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Turned Mint vector into a 7,1 matrix, so dimensions fit with evolution matrix. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Lowered the number of dot operations, by pre-preparing the evolution matrix another round. The power is in system tests always even. The trick to removing this for loop, would be to make a general multi dot function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the bulk operation of model [[NS CPMG 2-site 3D ]] into the lib file. This is to keep the API clean. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changed the unit test of [[NS CPMG 2-site 3D]], after the input to the function has changed. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changed the target function for [[NS CPMG 2-site 3D]]. This reflects the new API layout. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changed the lib function of [[NS CPMG 2-site star]], to get input of dw and r20a+r20b of higher dimensional type. This is to move the main operations from the target function to the lib function, and make the API code clean and consistent. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changed the target function of [[NS CPMG 2-site star]], to reflect the input to the function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Made the dot evolution structure faster for [[NS CPMG 2-site 3D]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Implemented the BLAS method of dot product, which should be faster. I cannot get the "out" argument to work. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Small fix for the dot method. But the out argument does not work. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Implemented the dot method via blas. This needs a array with one more axis. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Last try to use the out argument. In the last dotting loop, the out argument wont work, no matter what I do. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Inner product fix in model [[NS CPMG 2-site 3D]]. Fix for system tests: Relax_disp.test_cpmg_synthetic_ns3d_to_b14, Relax_disp.test_cpmg_synthetic_ns3d_to_CR72, Relax_disp.test_cpmg_synthetic_ns3d_to_CR72_noise_cluster. The number of dotting with Mint, should correspond to the power. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Replaced the temporary structure self.frqs_a to self.frqs, which works for all target functions. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Replaced the temporary structure self.cpmg_frqs_a to self.cpmg_frqs, which works for all target functions. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Implemented a frqs_squared calculation in the init of target function. This is to speed up the calculations. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Restructured frqs_H to higher dimension in target function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the calculation of dw and dwH out of for loops for model [[MMQ CR72]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed looping over spin and frequencies for model [[MMQ CR72]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Temporary removed check for dw = 0.0 in [[MMQ CR72]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed number of points to be parsed to model [[MMQ CR72]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed power to be parsed to [[MMQ CR72]], since it is not used. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changed [[MMQ CR72 ]] to use multi dimensional data. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changed unit test of [[MMQ CR72 ]] to pass. dw needs to be of numpy structure. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Moved the calculation of dw out of for loops for model [[NS MMQ 2-site]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Modified lib function for [[NS MMQ 2-site]], to have looping over spins and frequencies inside lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Fixed the use of higher dimensional data in [[NS MMQ 2-site ]] SQ DQ ZQ. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Fix for documentation in [[NS MMQ 2-site]]/SQ/DQ/ZQ/MQ. Now explains which dimension data should be in. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Changed the reshaping of dw and dwH, since it is not dependent on experiment. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Changed the calculation of inner product in model [[NS CPMG 2-site 3D]]. The out argument of numpy.dot is buggy, and should not be used. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added missing instances of cleaning the data. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Bug fix for model [[LM63 3-site]]. The index si has to be used to extract data to lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Temporary added system test: test_korzhnev_2005_all_data_disp_speed_bug. This makes a minimisation with 1 iteration, and so will give the chi2 value at the preset parameter values. This is chi2 value should give 162.5, but gives 74.7104. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Updated documentation on dimensionality of numpy array num_points. They are in dimension [NE][NS][[NM][NO], where oi gives the number of dispersion points at that offset. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Fix for system test: test_korzhnev_2005_all_data. The masking for replacing values was wrong. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the cleaning of data points and replacing of values of out loop for model [[NS MMQ 2-site]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Fix for structure cleaning and value replacing for model [[MMQ CR72]]. System test: test_korzhnev_2005_all_data revealed how this should be done properly. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Fix for system test test_korzhnev_2005_all_data_disp_speed_bug. The precision is lowered, and now matches the original system test. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Replaced index to numpy array from example [0][si][mi][oi] to [0, si, mi, oi]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Documentation fix, where a double bracket "[[" has been copied into all lib functions. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* More fixes for numpy index in lib functions. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Restructured target function for [[NS MMQ 3-site ]] to the new API structure of higher dimensional data. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Reordered the lib function for [[NS MMQ 3-site ]] to use higher dimensional data. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Documentation fix for which dimensionality number of points have. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Documentation fix for the initial data structure of cpmg_frqs, spin_lock_nu1, r1. They were incorrect. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* First attempt to implement target function for [[NS R1rho 2-site]]. But it does not work yet. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* First attempt to implement lib function for [[NS R1rho 2-site]]. But it does not work yet. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Fatal fix for calling inv_relax_time from relax_time variable. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Removal of the temporary offset argument. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Documentation fix for the dimensionality of the input arrays. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Implemented the target function for [[NS R1rho 3-site]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Implemented the lib function for [[NS R1rho 3-site]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Implemented target function for [[LM63 3-site]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Implemented the lib function for [[LM63 3-site]], for higher dimensional data. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed the number of disp points in target function for [[LM63 3-site]], since it is no longer used, but have been replaced with mask replacements. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Implemented class function in target class, to return back_calc values as list of lists. This is the back and forth conversion between the data structures implemented when gathering the data, and the data send to the library function of higher dimensionality. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Used the new class function: get_back_calc(), to get the data in the right structures when interpolating for graphs. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Replaced double or triple hash-tags "##" with single hash-tags "#". Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Copyright fixes for all the models, where Troels E. Linnet have made changes to make them functional for higher dimensional data. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Copyright fix for model [[TSMFK01]]. Sebastien Morin did not take part of implementing the [[TSMFK01 ]] model. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Created a super script for profiling the relaxation dispersion models. This script will execute all of the current profiling scripts in the directory test_suite/shared_data/dispersion/profiling for both the current version of relax and any other specified version (current set to the 3.2.2 relax tag). It will run the scripts and relax versions interleaved N=10 times and extract the func_*() target function call profile timings. This interleaving makes the numbers much more consistent. Averages and standard deviations are then calculated, as well as the speed up between the two relax versions. The results are printed out in a format suitable for the relax release messages.
* Increased the number of iterations to 1000 in all of the profiling scripts. This is for better statistics in the disp_profile_all.py script, and makes the number consistent between the different models.
* Fixed the ordering of the relax versions in the dispersion super profiling script disp_profile_all.py. This has also been fixed in the disp_spin_speed branch to relax 3.2.2 comparison log.
* Added a log file for comparing the speed of the disp_speed_branch to relax 3.2.1. This is from the disp_profile_all.py statistics generating script.
* Added a profiling script for the '[[NS CPMG 2-site expanded' ]] dispersion model. This is the model at http://wiki.nmr-relax.com/NS_CPMG_2-site_expanded. The script was copied from that of the [[CR72 ]] model, and it only needed to be changed in a few places. This is the first numeric model profiling script.* Updated the profiling super script and log for the '[[NS CPMG 2-site expanded' ]] model. This is the model at http://wiki.nmr-relax.com/NS_CPMG_2-site_expanded. This shows that the single spin calculation is 1.8 times faster, and the cluster of 100 11.7 times faster, when compared to relax 3.2.2.
* Modified all of the dispersion model profiling scripts. The single() function for timing the single spin target function speed has been modified to include a second outer loop over 100 'spins'. This means that the timing numbers are equivalent to the cluster timings, as both are then over 100 spins. This now allows not only relax version differences and model differences to be compared, but also the non-clustered and clustered analysis speeds.
* Added a script for profiling the '[[NS CPMG 2-site 3D' ]] relaxation dispersion model. This is the model at http://wiki.nmr-relax.com/NS_CPMG_2-site_3D. Again this only involved copying one of the other scripts and modifying a few variable and function names.* Added the '[[NS CPMG 2-site 3D' ]] model to the dispersion super profiling script. To handle the fact that this script has nr_iter set to 100 rather than 1000 (as otherwise it is too slow), a list of scaling factors has been created to scale all timing numbers to equivalent values.* Added [[DPL94 ]] profiling script. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Modified profiling script for [[TSMFK01]], to use correct parameters k_AB and r20a. Or else, the lib functions is just calculating with zero? Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changes to profiling script of [[NS CPMG 2-site expanded]]. The model does not have r20a and r20b, but only r2. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Made changes to the profiling script of [[NS CPMG 2-site 3D]]. Need to use the full model, when r2a and r2b is specified. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changes to profiling script of [[NS CPMG 2-site expanded]]. The unpacking can be removed. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Fix for the profiling script of [[NS CPMG 2-site 3D]]. The model should also be specified to full. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* The disp_profile_all.py super script now prints out the current relax version information. This is so that the log files contain information about the repository revision and path.
* Copied profiling script of [[DPL94 ]] to [[NS R1rho 2-site]].
* Improved the final printout from the disp_profile_all.py dispersion model super profiling script.
* Added profiling script for [[NS R1rho 2-site]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* The disp_profile_all.py dispersion model super profiling script is now executable.
* Decreased all nr_iter values by 10 and added more dispersion models to the super profiling script. This is for the dispersion model profiling scripts in test_suite/shared_data/dispersion/profiling/, all controlled by the disp_profile_all.py super profiling script for generating statistics using all of the other profiling scripts. The number of iterations needed to be decreased as otherwise it would now take almost 1 day to generate the statistics table.
* Moved the parter conversion in [[LM63 3-site ]] into the lib function. This cleans up the target api function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Copied profiling script for [[DPL94 ]] to [[TAP03]].* Copied profiling script for [[DPL94 ]] to [[TP02]].* Copied profiling script for [[DPL94 ]] to [[MP05]].* Copied profiling script for [[DPL94 ]] to [[M61]].* Modified profiling script for [[TAP03 ]] to be used. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Modified profiling script for [[TP02]], to be used. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Modified profiling script for [[MP05]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Modified profiling script for [[M61]]. This is the last one. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Expansion of the disp_profile_all.py dispersion model super profiling scripts. The newly added profiling scripts for models '[[M61']], '[[TP02']], '[[TAP03']], and '[[MP05' ]] are now included in the super script to generate statistics for all of these as well. The nr_iter variable has also been changed to match the other analytic models, so that the standard deviations are lowered and the statistics are better.* Moved the parameter conversion of [[MMQ CR72 ]] into lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Moved the parameter conversions of k_AB, k_BA and pB into lib function of [[NS MMQ 2-site]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Moved the parameter conversion from target function to lib function for [[NS R1rho 2-site]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Updated the dispersion model speed statistics for the disp_spin_speed branch vs. relax-3.2.2. This now includes the '[[NS CPMG 2-site 3D']], '[[DPL94']], and '[[NS R1rho 2-site' ]] dispersion models. The timings for the single spin analyses are now comparable to the clustered analysis, as the equivalent of 100 single spins is being used. The final printout is also in a better format to present for the relax release messages. These new results show the insane 160x speed up of the '[[DPL94' ]] model.
* Alignment improvements for the final printout from the dispersion model super profiling script. The log file has been updated with what the new formatting will look like.
* Updated the model names in the dispersion model super profiling script. The '[[CR72']], '[[B14' ]] and '[[NS CPMG 2-site 3D' ]] models are the full, slower versions rather than the faster models with R20 = R20A = R20B. The log file has been updated to match.* Moved the parameter conversion for [[NS MMQ 3-site ]] into lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Updated the dispersion model profiling comparison of the disp_spin_speed branch vs. relax-3.2.2. The '[[M61']], '[[TP02']], '[[TAP03']], and '[[MP05' ]] models are now included. The final printout has been manually updated to reflect the newest version of the disp_profile_all.py super profiling script.* Moved the parameter conversion for [[NS R1rho 3-site ]] into lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Copied profiling script for [[CR72]], so there is now a normal and a full version.* Copied profiling for [[B14 ]] to normal and full model.
* Created a text file suitable for use as part of the relax release notes. This contains the statistically averaged profiling information of the speed of the dispersion models in the disp_spin_speed branch vs. relax-3.2.2. This file has been created so that it can be used as part of the release notes for the version of relax that contains the insane speed ups of this branch. This file will be updated as new models are profiled and if any more speed ups magically appear.
* Copied profiling script for [[NS CPMG 2-site 3D]].* Copied profiling script for [[NS CPMG 2-site star]].* Copied profiling script for [[No Rex]].* Modified profiling script for [[B14]], to R20A=R20B. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Implemented profiling script for [[NS CPMG 2-site 3D]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Implemented profiling script for [[NS CPMG 2-site star ]] and [[NS CPMG 2-site star full|star full]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Copied profiling script to be used for [[LM63]].
* Copied profiling script to model IT99.
* Added profiling script for IT99. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Implemented profiling script for [[LM63]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Moved the "eta_scale = 2.0**(-3.0/2.0)" out of lib function for [[MMQ CR72]], since this is only needs to be computed once. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Fix for spaces aroung "=" outside functions. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Critical fix for wrong space inserted in [[NS MMQ 3-site ]] MQ. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Fixed the input for unit test of [[MMQ CR72]]. The number of input parameters has been lowered. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Added additional math domain checking in [[B14]]. This is when v1c is less than 1.0. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Comment fixing, for explaining the masking and replacing when dw is zero. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Copied profiling script to be used for profiling the use of higher dimensional data for the numpy eig function.
* Added function to compute the matrix exponential for higher dimensional data of shape [NE][NS][NM][NO][ND][7][7]. This is done by using numpy.einsum, to make the dot product of the last two axis. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Inserted intermediate step, to check if the matrix propagator to evolve the magnetization is equal when done for lower dimensional data of shape [7][7] and higher dimensional data of shape [NE][NS][NM][NO][ND][7][7]. A short example is shown at the wiki: http://wiki.nmr-relax.com/Numpy_linalg#Ellipsis_broadcasting_in_numpy.einsum. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Implemented double speed of model [[NS CPMG 2-site 3D]]. This is done by moving the costly calculation of the matrix exponential out of the for loops. The trick was to find a method to do dot product of higher dimensions. This was done with numpy.einsum, example at: http://wiki.nmr-relax.com/Numpy_linalg#Ellipsis_broadcasting_in_numpy.einsum. Example: dot_V_W = einsum('...ij,...jk', V, W_exp_diag) where V, and W_exp_diag has shape [NE][NS][NM][NO][ND][7][7]. The profiling script shows a 2X speed up.
* Made notation consistent for variables, using "_i" to clarify extracted data from matrix. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the calculation the evolution matrix out of for loops. The trick is that numpy.einsum allows for dot product of higher dimension: The essential evolution matrix; This is a dot product of the outer [7][7] matrix of the Rexpo_mat and r180x_mat matrices, which have the shape [NE][NS][NM][NO][ND][7][7]; This can be achieved by using numpy einsum, and where ellipsis notation will use the last axis.
* Implemented system test: test_cpmg_synthetic_b14_to_ns3d_cluster. This is to catch failures of the model, when data is clustered. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Removed unused variables in [[NS CPMG 2-site 3D]], to clean up the code. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added the NS matrices, rr1rho_3d_rankN, to collect the multi dimensional 3D exchange matrix, of rank [NE][NS][NM][NO][ND][6][6]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added a check in lib/dispersion/ns_r1hro_2site.py, to see if the newly created multidimensional ns matrix of rank NE][NS][NM][NO][ND][6][6], is equal to the previous [6][6] matrix. It is. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Made the function use the new multidimensional R_mat matrix. System test: test_tp02_data_to_ns_r1rho_2site still passes. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Fix to the matrix_exponential_rankN, to return the exact exponential for any higher dimensional square matrix of shape [NE][NS][NM][NO][ND][X][X]. The fix was to the eye(X), to make the shape the same as the input shape. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the costly calculation of the matrix exponential out of for loops. It was the numpy.eig and numpy.inv which was draining power. This speeds up model [[NS R1rho 2-site]], by a factor 4X.
* Made the returned multidimensional rr1rho_3d_rankN, be of float64 type. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Cleaned up the code of [[NS R1rho 2-site]], and removed the matrix argument to the function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed the parsing of a matrix to the lib function of [[NS R1rho 2-site]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Added the function "rcpmg_star_rankN" for the collection of the multidimensional relaxation matrix for model [[NS CPMG 2-site star]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Insert check, that the newly created multidimensional matrix is the same. They are, but only to the fifth digit. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Started using the newly created multidimensional matrix. test_hansen_cpmg_data_to_ns_cpmg_2site_star. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the costly matrix_exponential of cR2 out of for loops. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Rearranged the dot code, for better view. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Cleaned up the code in model [[NS CPMG 2-site star]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Simplified model [[NS CPMG 2-site 3D]]. The expansion of matrices to higher dimensionality is not necessary. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Further cleaned up the code in [[NS CPMG 2-site star]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed input of matrix, Rr, Rex, RCS and R to model [[NS CPMG 2-site star]]. These matrices is now extracted from NS matrix function rcpmg_star_rankN. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Implemented the collection of the multidimensional matrix m1 and m2 in model [[NS MMQ 2-site]]. Inserted also a check, that the newly computed matrix is equal. They are, to the 6 digit. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Started using the newly created multidimensional m1 and m2 matrices. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the costly calculation of matrix_exponential of M1 and M2 out of for loop, in model ns_mmq_2site_mq. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the matrices for Bloch-McConnell from lib ns_mmq_2site, since they are now defined in ns_matrices.py. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the Bloch-McConnell matrix for 3-site exchange, into the lib/dispersion/ns_matrices.py. This is to standardize the code. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Removed m1 and m2 to be sent to lib function of [[NS MMQ 2-site]], since they are now populated inside the lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Implemented the Bloch-McConnell matrix for 3-site exchange, for multidimensional data. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Inserted a check, that the new higher dimensional m1 and m2 matrices are equal to before. They are, to the 5 digit. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Started using the newly created higher dimensional Bloch-McConnell matrix for 3-site exchange. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the calculation of the matrix exponential out of for loops for [[NS MMQ 3-site ]] MQ. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Converted [[NS MMQ 3-site]]/SQ/DQ/ZQ to calculate the matrix exponential out of the for loops. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Removed the complex64 to be used as dtype in matrix exponential. Fix for missing "_i" in variable. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Removed m1 and m2 to be sent to target function of ns_mmq_3site_chi2. They are now populated inside the lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Documentation and input fix for [[NS MMQ 2-site]]. The m1 and m2 matrices are populated inside the lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Renamed some numerical matrices, to get consistency in naming. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Implemented multidimensional [[NS R1rho 3-site ]] exchange matrix. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Inserted check, that newly multi dimensional matrix is equal the old. It is, to the 13 digit. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Started using the newly multidimensional 3D exchange matrix. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved the calculation of the matrix exponential out of the for loops for [[NS R1rho 3-site]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Removed the parameter "matrix" to be send to lib function of [[NS R1rho 3-site]], since it is now populated inside the lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Moved parameter conversion for [[NS R1rho 3-site ]] inside lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Cleaned up the Dispersion class target function, for creation of matrices, which is now populated inside the lib functions instead. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Removed pA and pB from the matrix population function rcpmg_star_rankN, since they are not used. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Removed pA and pB from the matrix population function rr1rho_3d_2site_rankN, since they are not used. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Documentation fix for the dimensionality for model [[NS R1rho 2-site]]. The data is lined up to be of form [NE][NS][NM][NO][ND]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Removed pA, pB and pC from the matrix population function rr1rho_3d_3site_rankN, since they are not used. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Deleted the profiling of eig function profiling script. This was never implemented. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Modified super profiling script, to allow input to script, where alternative version of relax is positioned. Collected the variables in a list of lists, for better overview. Added a print out comment to IT99, to remember the bug. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added comment field to super profiling script. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Math domain fix for [[NS CPMG 2-site expanded]]. This is when t108 or t112 is zero, in the multidimensional array, a division error occurs. The elements are first set to 1.0, to allow for computation. Then elements are later replaced with 1e100. Lastly, if the elements are not part of the "True" dispersion point structure, they are cleaned out. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Precision lowering of system test, test_korzhnev_2005_15n_sq_data and test_korzhnev_2005_1h_sq_data. The system tests does not fail on Linux 64-bit system, but only on Mac 32-bit system. This is due to floating error deviations. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added log files for super profiling against tags 3.2.1 and 3.2.2. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Moved numerical solution matrices into the corresponding lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Copied profiling scripts, to be used for 3-site models and MMQ models.
* Implemented profiling script for [[LM63 3-site]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Improved the relax version printouts for the dispersion model master profiling script. This now reports both relax versions.
* Removed a tonne of unused imports from the dispersion model profiling scripts. This is to allow most of the scripts to run on the relax 3.1.x versions, as well as to clean up the scripts. The unused imports were found using the command: pylint test_suite/shared_data/dispersion/profiling/*.py --disable=all --enable=unused-import.
* Added a relaxation dispersion model profiling log file for relax version 3.2.1 vs. 3.2.0. This is the output from the dispersion model profiling master script. It shows a 2.2 times increase in speed for the [[B14 ]] and [[B14 full ]] models, with all other models remaining at the same speed. This matches the changes for relax 3.2.1 (https://gna.org/forum/forum.php?forum_id=2462), the main feature of which is a major bugfix for the [[B14 ]] models.
* The 'relax -v' command is now used for the dispersion model profiling script initial printout. This is to show the two different relax versions being compared.
* Modifications to the dispersion model profiling master script. The info.print_sys_info() function of the current relax version is being called at the start to show all information about the current system. This is useful to know the speed of the machine, the OS, the Python version and numpy version. The numpy version is important as future versions might optimise certain functions that are currently very slow, hence that could be a cause of model speed differences. In addition, the path variables path1 and path2 have been renamed to path_new and path_old to make it clearer which is which. And the individual profiling scripts are no longer copied to the base directory of the relax versions being compared, and are run in place.
* Added a relaxation dispersion model profiling log file for relax version 3.2.0 vs. 3.1.7. This is the output from the dispersion model profiling master script. It shows that there are no speed differences.
* Added a relaxation dispersion model profiling log file for relax version 3.1.7 vs. 3.1.6. This is the output from the dispersion model profiling master script. It shows that there are no speed differences.
* Modified profiling script for [[NS R1rho 3-site]], to be functional. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Modified profiling script for [[NS R1rho 3-site linear ]] to be functional. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added a relaxation dispersion model profiling log file for relax version 3.1.3 vs. 3.1.2 vs. 3.1.1. This is the output from the dispersion model profiling master script. It shows that there are no major speed differences between these relax versions.
* Added the system information printout to the dispersion model profiling master script output. This is for the log files comparing one version of relax to the previous version.
* Added profiling script for model [[MMQ CR72]], Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Fix for the replacement value for invalid values in model [[MMQ CR72]]. The value was set to use r20, but should instead be 1e100. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Copied profiling script from [[MMQ CR72]], to [[NS MMQ 2-site ]] and [[NS MMQ 3-site|3-site]].* Copied profiling script to [[NS MMQ 3-site linear]].* Implemented profiling script for [[NS MMQ 2-site]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Implemented profiling script for [[NS MMQ 3-site ]] and [[NS MMQ 3-site linear|3-site linear]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Speeded up model [[NS CPMG 2-site star]], by moving the forming of the propagator matrix out of the for loops, and preform it. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added a relaxation dispersion model profiling log file for relax version 3.1.4 vs. 3.1.3. This is the output from the dispersion model profiling master script. It shows that there are no speed differences.
* Speeded up [[NS MMQ 2-site]], by moving the forming of evolution matrix out of the for loops, and preform it. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Speeded up [[NS MMQ 3-site]], by moving the forming of evolution matrix out of the for loops, and preform it. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Added a relaxation dispersion model profiling log file for relax version 3.1.5 vs. 3.1.4. This is the output from the dispersion model profiling master script. It shows that there are no speed differences.
* Speeded up [[NS R1rho 2-site]], by preforming the evolution matrices, and the M0 matrix in the init part of the target function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Speeded up [[NS R1rho 3-site]], by preforming the evolution matrices, and the M0 matrix in the init part of the target function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Expanded the dispersion model profiling master script to cover all the new profiling scripts. This includes all 3-site and MMQ models. The list is now complete and covers all models. The only model not included in '[[M61 skew' ]] which has redundant parameters and is not optimisable anyway.* Added a relaxation dispersion model profiling log file for relax version 3.1.6 vs. 3.1.5. This is the output from the dispersion model profiling master script. It shows that there are almost no speed differences, except for a slight decrease in speed in the '[[CR72 full' ]] model for single spins.
* Split system test test_tp02_data_to_ns_r1rho_2site into a setup and test part. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Implemented a clustered version of system test test_tp02_data_to_ns_r1rho_2site. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Inserted an extremely interesting development in [[NS R1rho 2-site]]. If one do a transpose of M0, one can calculate all the matrix evolutions in the start via numpy einsum. Since M0 is in higher a dimensions, one should not do a numpy transpose, but swap/roll the outer M0 6x1 axis. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Shortened the code dramatically for [[NS R1rho 2-site]]. It is possible to calculate all in "one" go, after having the transposed/rolled-back M0 magnetization. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Speeded up the code of [[NS R1rho 2-site]]. This was essential done to numpy einsum, and doing the dot operations in multiple dimensions. It was though necessary to realize, that to do the proper dot product operations, the outer two axis if M0 should be swapped, by rolling the outer axis one back. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Speeded up the code of [[NS R1rho 3-site]]. This was essential done to numpy einsum, and doing the dot operations in multiple dimensions. It was though necessary to realize, that to do the proper dot product operations, the outer two axis if M0 should be swapped, by rolling the outer axis one back. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* For model [[NS CPMG 2-site 3D]], the M0 matrix was preformed for higher dimensionality in init of target function. The transposes/rolled axis versions was also initiated. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Swapped the dot product position, when propagating the magnetisation in model [[NS CPMG 2-site 3D]]. This it to try to align to same method as in [[NS R1rho 2-site]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Lowered the looping in [[NS CPMG 2-site 3D]], by preforming the initial dot product. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Speeded up [[NS CPMG 2-site 3D]], by preforming the magnetisation. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Got rid of the inner evolution of the magnetization. If the looping over the number of CPMG elements is given by the index l, and the initial magnetization has been formed, then the number of times for propagation of magnetization is l = power_si_mi_di-1. If the magnetization matrix "Mint" has the index Mint_(i,k) and the evolution matrix has the index Evol_(k,j), i=1, k=7, j=7 then the dot product is given by: Sum_{k=1}^{k} Mint_(1,k) * Evol_(k,j) = D_(1, j). The numpy einsum formula for this would be: einsum('ik,kj -> ij', Mint, Evol). Following evolution will be: Sum_{k=1}^{k} D_(1, j) * Evol_(k,j) = Mint_(1,k) * Evol_(k,j) * Evol_(k,j). We can then realize, that the evolution matrix can be raised to the power l. Evol_P = Evol**l. It will then be: einsum('ik,kj -> ij', Mint, Evol_P). Get which power to raise the matrix to. l = power_si_mi_di-1. Raise the square evolution matrix to the power l. evolution_matrix_T_pwer_i = matrix_power(evolution_matrix_T_i, l), Mint_T_i = dot(Mint_T_i, evolution_matrix_T_pwer_i) or Mint_T_i = einsum('ik,kj -> ij', Mint_T_i, evolution_matrix_T_pwer_i). Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Tried to implement using lib.linear_algebra.matrix_power.square_matrix_power instead of matrix_power from numpy in [[NS CPMG 2-site 3D]]. Strangely, then system test: test_hansen_cpmg_data_to_ns_cpmg_2site_3D_full starts to fail. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Changes to unit test of [[NS CPMG 2-site 3D]]. This is after the new initiated M0 matrix in init of target function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Double speed in [[NS CPMG 2-site star]], after using numpy.linalg.matrix_power instead of the lib version in relax. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Triple speed in [[NS MMQ 2-site]], after using numpy.linalg.matrix_power instead of the lib version in relax. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Small fix for making sure that power is a integer in [[NS MMQ 2-site]]. Following system tests was failing: Relax_disp.test_korzhnev_2005_15n_dq_data, Relax_disp.test_korzhnev_2005_15n_sq_data, Relax_disp.test_korzhnev_2005_15n_zq_data, Relax_disp.test_korzhnev_2005_1h_sq_data, Relax_disp.test_korzhnev_2005_all_data, Relax_disp.test_korzhnev_2005_all_data_disp_speed_bug. They should already be integers, but is now solved. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Comment and spell fixing in [[NS CPMG 2-site 3D]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Triple speed in [[NS MMQ 3-site]], after using numpy.linalg.matrix_power instead of the lib version in relax. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.* Updated the dispersion model profiling comparison of the disp_spin_speed branch vs. relax-3.2.2. This now includes all dispersion models. This shows the large speed increases in the numeric and MMQ models recently obtained. Note that something went wrong with the '[[NS CPMG 2-site 3D full' ]] model for the clustered analysis, most times were around 24 seconds except for the first which was strangely 292 seconds.* Updated the relaxation dispersion model profiling log file for relax version 3.2.2 vs. 3.2.1. This adds the MMQ and 3-site models to the log file. The new information shows that there was a 4.2 times speed up for the '[[MMQ CR72' ]] model between these two relax versions, both for single spins and clustered spins, a much greater improvement than any other of the models.
* Removed the now redundant disp_profile_all_3.2.2.table.txt dispersion model profiling table. As the dispersion model profiling master script now covers all dispersion models, the output from this script produces this table exactly. Therefore the end of the log files saved from running this script contains this table.
* Initiated lengthy profiling script, that shows that doing square numpy matrix_power on strided data, can speed up the calculation by factor 1.5. The profiling script can quickly be turned into a unit test, and includes small helper functions to calculate how to stride through the data. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Expanded the dispersion target function class documentation. The NE, NS, NM, NO, and ND notation is now explained.
* Added Ti and NT to the dispersion target function class documentation.
* Slight speed up of the '[[B14' ]] and '[[B14 full' ]] dispersion models by minimising repetitive maths.
* Initial try to write up a 2x2 matrix by closed form. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Made the validation check in profiling of matrix_power check all values. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Replaced all self.num_exp with self.NE in target function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Replaced all self.num_frq with self.NM in target function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* A very small speed up to the [[CR72 ]] dispersion models by minimising repetitive maths operations. The k_BA and k_AB rates are used to simplify the Psi calculation, dropping from 3 to 2 multiplications and removing a squaring operation. The Dpos and Dneg value calculations have been simplified to drop one multiplication operation. And the calculation of eta_scale / cpmg_frqs now only occurs once rather than twice.
* Removal of a tonne of unused imports in the lib.dispersion package. These were identified using the command "pylint * --disable=all --enable=unused-import".
* A very small speed up to the [[MMQ CR72 ]] dispersion model by minimising repetitive maths operations. This matches the recent change for the [[CR72 ]] model, though the Psi calculation was already using the fast form.
* Created a master profiling script for comparing the speed between different dispersion models. This is similar to the disp_profile_all.py script except it only operates on a single relax version. The output is then simply the timings, with statistics, of the calculation time for 100 function calls for 100 spins (either 10,000 function calls for single spins or 100 function calls for the cluster of 100 spins). The output of the script for the current disp_spin_speed branch code has also been added.
* Critical fix for the recalculation of tau cpmg, when plotting for numerical models. The interpolated dispersion points with tau_cpmg was calculated with frq, instead of cpmg_frq. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Code validation of lib/dispersion/two_point.py. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Code validation of target_functions/relax_disp.py. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* For model [[NS MMQ 3-site]], moved the parameter conversion of dw_AB from target function to lib function. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Removed chi sum initialisation in func_ns_mmq_2site() as this is not used. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Documentation fix for the get_back_calc() function in target_function/relax_disp.py. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Removed unnecessary repetitive calculation of kex**2 in model [[DPL94]]. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* API documentation fixes, where a "\" is the last character on the line. There should be a space " ", ending this character. Task #7807 (https://gna.org/task/?7807): Speed-up of dispersion models for clustered analysis.
* Updated the [https://gna.org/forum/forum.php?forum_id=2472 minfx version number to 1.0.9] in the release checklist document. This as of yet unreleased version contains an important fix for parallelised grid searches when the number of increments is set to one (i.e. a preset parameter).
* Improved the logic for skipping parameters in the grid search. The logic is also fully explained in the user function documentation.
* Removal of all unused imports. These were identified using the devel_scripts/find_unused_imports.py script.
* Reverted the deletion of the Relax_disp.test_hansen_cpmg_data_to_lm63_3site system test which occurred in relax 3.2.3. See the thread at http://thread.gmane.org/gmane.science.nmr.relax.scm/21774/focus=6300 for the request that this deletion be reverted. This is the only system test for the '[[LM63 3-site' ]] dispersion model using real data. Having this test allows for better coverage of the code.
* Updated the Relax_disp.test_hansen_cpmg_data_to_lm63_3site system test. This is for the changes to the optimisation user functions.
* Updated the checks in the Relax_disp.test_hansen_cpmg_data_to_lm63_3site system test. The values were incorrect due to a bug in relax and a non-optimal minfx setting (https://gna.org/bugs/?22210 and https://gna.org/bugs/?22211).
* Added an intermediate attempt to show the back calculated data in the graph for R1rho/R2 as function of the effective field in rotating frame: w_eff. The graph is aiming for the representation of Figure 2 in Kjaergaard et al 2013. (http://dx.doi.org/10.1021/bi4001062). The figure can be seen at https://gna.org/support/download.php?file_id=20208. It becomes clear, that it is not necessary interpolate through the spin-lock offset, but it is sufficient to interpolate through the spin-lock field strengths. The necessary step was the extraction of the effective field in rotating frame, w_eff. In earlier attempt is shown at: http://wiki.nmr-relax.com/File:Matplotlib_52_N_R1_rho_R2eff_w_eff.png This though show lines for 6 offset values. The question is how to show the single line of interpolation. Sr #3124 (https://gna.org/support/?3124): Grace graphs production for R1rho analysis with R2eff as function of Omega_eff. Sr #3138 (https://gna.org/support/?3138): Interpolating theta through spin-lock offset [Omega], rather than spin-lock field strength [w1].
* Added NMR library function to convert the given frequency from rad/s to ppm units. Sr #3124 (https://gna.org/support/?3124): Grace graphs production for R1rho analysis with R2eff as function of Omega_eff. Sr #3138 (https://gna.org/support/?3138): Interpolating theta through spin-lock offset [Omega], rather than spin-lock field strength [w1].
* Hard-coded restriction of R1rho extra plotting to model [[DPL94]], [[TP02]], [[TAP03]], [[MP05]], NS_R1RHO_2SITE[[NS R1rho 2-site]]. Sr #3124 (https://gna.org/support/?3124): Grace graphs production for R1rho analysis with R2eff as function of Omega_eff. Sr #3138 (https://gna.org/support/?3138): Interpolating theta through spin-lock offset [Omega], rather than spin-lock field strength [w1].
* Fix for sending the correct data structures to target function, and fix for the spin index which is always zero in graph production. Sr #3124 (https://gna.org/support/?3124): Grace graphs production for R1rho analysis with R2eff as function of Omega_eff. Sr #3138 (https://gna.org/support/?3138): Interpolating theta through spin-lock offset [Omega], rather than spin-lock field strength [w1].
* Moved the file_name creation out of the interpolate function, to make it a general function for interpolating. Sr #3124 (https://gna.org/support/?3124): Grace graphs production for R1rho analysis with R2eff as function of Omega_eff. Sr #3138 (https://gna.org/support/?3138): Interpolating theta through spin-lock offset [Omega], rather than spin-lock field strength [w1].
* Modified back-end of plot_disp_curves() to reflect changes to the front-end function. Sr #3124 (https://gna.org/support/?3124): Grace graphs production for R1rho analysis with R2eff as function of Omega_eff. Sr #3138 (https://gna.org/support/?3138): Interpolating theta through spin-lock offset [Omega], rather than spin-lock field strength [w1].
* Extended system test Relax_disp.test_r1rho_kjaergaard_auto(), to check that the expected graphs exist. Sr #3124 (https://gna.org/support/?3124): Grace graphs production for R1rho analysis with R2eff as function of Omega_eff. Sr #3138 (https://gna.org/support/?3138): Interpolating theta through spin-lock offset [Omega], rather than spin-lock field strength [w1].
* Added model '[[No Rex' ]] to system test Relax_disp.test_r1rho_kjaergaard_auto(), to check all graphs are produced. Sr #3124 (https://gna.org/support/?3124): Grace graphs production for R1rho analysis with R2eff as function of Omega_eff. Sr #3138 (https://gna.org/support/?3138): Interpolating theta through spin-lock offset [Omega], rather than spin-lock field strength [w1].
* Added function to return the initial part of the file name for grace plotting. Sr #3124 (https://gna.org/support/?3124): Grace graphs production for R1rho analysis with R2eff as function of Omega_eff. Sr #3138 (https://gna.org/support/?3138): Interpolating theta through spin-lock offset [Omega], rather than spin-lock field strength [w1].
* Modified system test to use the new function to return initial part of file name for grace plotting. Sr #3124 (https://gna.org/support/?3124): Grace graphs production for R1rho analysis with R2eff as function of Omega_eff. Sr #3138 (https://gna.org/support/?3138): Interpolating theta through spin-lock offset [Omega], rather than spin-lock field strength [w1].
* A profiling showed, that it was not faster to preform the index view.
* Made new general stride helper function and matrix_exponential function.
* Changed to the matrix_exponential function for [[NS R1rho 2site2-site]].
* Removed all unused helper functions, and matrix exponential functions. They are now condensed to the fewest possible functions.
* Fix for eye matrix being formed incorrectly.
* Added functionality to return r1_fit parameter in loop_parameters() function. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Added model variable MODEL_DPL94_FIT_R1, to relax_disp target function. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Split the target function of model [[DPL94 ]] into a func_DPL94 and calc_DPL94. This is to prepare for a target function func_DPL94_fit_r1. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Added initial target function for model DPL94_fit_r1. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Added list of R1rho models, which can fit R1 in their equations. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Added new variable, for models which has parameters with mixed dw, and has four variables Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Added to relax_disp auto_analyses, that R1_fit should be plotted and written out. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Added 2 new models, MODEL_NOREX_R1RHO and MODEL_NOREX_R1RHO_FIT_R1. The "NOREX" model is not covering R1rho models. The target function for "NOREX" is calculated as: back_calc = R20 R20 is for R1hro models equivalent to R1rho prime (R1rho'), which for example in the model of [[DPL94 ]] would mean: R1rho = R1rho' But for the "NOREX" case, the return should be R1rho = R1 * cos^2(theta) + (R1rho' + 0) * sin^2(theta). This affects all off-resonance model calculations. These two target functions will be implemented. Bug #22440 (https://gna.org/bugs/?22440): The "NOREX" model is not covering R1rho models. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Made the model MODEL_NOREX_R1RHO_FIT_R1, be tested in system test Relax_disp.test_r1rho_kjaergaard_missing_r1(). Bug #22440 (https://gna.org/bugs/?22440): The "NOREX" model is not covering R1rho models. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Added models MODEL_NOREX_R1RHO and MODEL_NOREX_R1RHO_FIT_R1 to MODEL_LIST_FULL. Bug #22440 (https://gna.org/bugs/?22440): The "NOREX" model is not covering R1rho models. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Moved the auto_analyses plot of special R1rho graphs into the check of has_r1rho_exp_type(). Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Moved the auto-analyses plotting and writing of r2, r2a and r2b for CPMG models into test of has_cpmg_exp_type(). Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Replaced in auto analysis all instances of '[[No Rex' ]] and 'R2eff' with its equivalent defined variables. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Re-arranged plotting and writing in auto-analyses of relax disp, when model is R2eff. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Removed unused variables in auto-analyses of relax_disp. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Implemented the list "MODEL_LIST_NEST", which define which model are used for nesting. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Fix for the nested copying of r2, if using a nested list. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Added the equivalent R1 fit models for: [[TP02]], [[TAP03]], [[MP05 ]] and NS_R1RHO_2SITE[[NS R1rho 2-site]]. The R1 fit models will no be implemented for 3-site models, because there will be to many variables. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Added the new R1 fit models to system test Relax_disp.test_r1rho_kjaergaard_missing_r1(). Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Split target function of model [[TP02]], into a calc and two func_TP02* variants. One target function will use measured R1 values, while one target function will use the fitted R1 values. They will use the same calculation function. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Fix for error checking covering R1rho off resonance models in target function. This is for checking presence of chemical shifts and r1. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Split target function of model [[TAP03]], into a calc and two func_TAP03* variants. One target function will use measured R1 values, while one target function will use the fitted R1 values. They will use the same calculation function. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.* Split target function of model [[MP05]], into a calc and two func_MP05* variants. One target function will use measured R1 values, while one target function will use the fitted R1 values. They will use the same calculation function. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Fix for system test Relax_disp.test_r1rho_kjaergaard_auto_check_graphs(), where the special R1rho graphs is no longer produced for the R2eff models. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Split target function of model ns_r1rho_2site, into a calc and two func_ns_r1rho_2site* variants. One target function will use measured R1 values, while one target function will use the fitted R1 values. They will use the same calculation function. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* In auto analysis of relax_disp, started implementing the new nesting function. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Modified nesting function to return all model info for the current model, and the comparable model. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Fix for nesting kex, when model is [[CR72]], and analysed models is [[LM63]]. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.* Fix for nesting kex, when model is [[CR72]], and analysed models is IT99. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Added a return from the nesting model, if all fails. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Replaced the test, if acquiring the model info to a numerical model from a analytical model. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Fix in back end for relax_disp.parameter_copy, where r2a and r2b should be skipped, since it has already been copied. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Locked values in system test Relax_disp.test_r1rho_kjaergaard_missing_r1. This is possible after locking the R2eff values and errors from a previous run. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Removed MODEL_NS_CPMG_2SITE_EXPANDED to be analysed in system test test_hansen_cpmg_data_missing_auto_analysis. The new ordering of models, will make MODEL_NS_CPMG_2SITE_EXPANDED be analysed first, and results copied to model [[CR72]]. This will interfere with the old results. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.* Lowered the precision of dw for model [[NS CPMG 2-site expanded]], in system test est_hansen_cpmg_data_auto_analysis_numeric. Model [[NS CPMG 2-site expanded ]] is now analysed before MODEL_CR72, which alter the values a bit. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Added GUI text for parameter r1_fit. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Added front-end description of the 6 new R1 fit R1rho models for relax_disp.select_model. Sr #3135 (https://gna.org/support/?3135): Optimisation of the R1 relaxation rate for the off-resonance R1rho relaxation dispersion models.
* Split the unit test of specific_analyses.relax_disp.checks.get_times() into its own unit test file.
* Added a "check" function, what will determine if R1 data is missing for a model to analyse. Also added corresponding unit tests, to test the functionality.
* Modified in documentation, that the "[[No Rex" ]] model have one chemical exchange site, namely itself.
* Copied variables.py to model.py. There should not exist any functions in variables.py. It should only consist of hardcoded variables, and the functions related to model sorting and nesting is split into its own file.
* Parted the file of variables.py into model.py.
* Modified nesting function, to pull list of possible models from dictionary, and check if these models are available in the completed models.
* Added initial Python script, to help print each model and its corresponding nested models. It can be executed by: relax test_suite/shared_data/dispersion/print_model_info/print_model_info.py.
* Added a relaxation dispersion example to show how certain literature statements are just utter crap. This follows from http://thread.gmane.org/gmane.science.nmr.relax.scm/22774/focus=6693, and the change http://thread.gmane.org/gmane.science.nmr.relax.scm/22774 which implement such dangerous literature conjectures. To see how a real minimum is excluded from the optimisation space, here for residue :2, execute the R1rho_analysis.py script in relax. This is synthetic data generated with kex = 1e5 assuming the model [[TP02]]. For the case of residue :2, this still produces an optimisable minimum in the space and dispersion curves. However the change blocks optimisation to the minimum.
* Added a function to determine how to nest/copy the parameters, when nesting from another model. It takes the list of parameters from the current model, and the list of parameters available in the nested model, and return a dictionary of parameter conversion for the current model params.
* Added unit test for the new function which determine how parameters are copied for a nested model parameters.
* Inserted dictionary, that will convert a R1rho off-resonance without R1, to the corresponding model which fit R1.
* Inserted to the check of missing R1, that MODEL_NOREX_R1RHO also depends on R1.
* Implemented function that determine if any model in the list of all models should be replaced or inserted as the correct '[[No Rex' ]] model. It also translate the R1rho off-resonance model to the corresponding 'R1 fit' models, if R1 is not loaded.
* Inserted system test Relax_disp.test_convert_no_rex_fit_r1, which test the return for the function that will determine if models self.models in the relax_disp should be translated/corrected.
* Fix for unit test, where the standard value of R1 was lowered from 5.0 to 2.0. Also fixed an import error in another unit test.
* Minimised the dependencies of the version module. This no longer relies on the dep_check module.
* Inserted return of True/False flags from function which convert models. The flag tells if: flag if '[[No Rex' ]] model for R1rho off-resonance was translated; flag if '[[No Rex' ]] model for R1rho off-resonance was inserted; flag if R1rho off-resonance was translated to 'R1 fit' models if no R1 data was found.
* Changes to system test, after the number of returns from function has been altered.
* Inserted into relax_disp auto_analyses, to convert the input models. This will convert/insert the correct '[[No Rex' ]] to the corresponding '[[No Rex' ]] model for R1rho off-resonance models. It will also translate to the corresponding 'R1 fit' model, if no 'R1 data' has been loaded with relax_data.read() function.
* Lowering of precision in system test Relax_disp.test_r1rho_kjaergaard_missing_r1(). This is due to 64/32-bit issues, between analysing on Linux computer, and testing on Mac computer.
* Made the GUI selection of models for relaxation dispersion more simple. After the implementation of a function which will translate the models, the '[[No Rex' ]] model will be converted to the '[[No Rex' ]] model for R1rho off-resonance. Also the corresponding 'R1 fit' model will be chosen instead, if R1 data has not been loaded. This makes the model selection easier in the GUI interface.* Bugfix for Relax_disp.test_bug_21715_clustered_indexerror, where only 'R2eff', '[[No Rex' ]] is analysed. This special case was not tested in the translating function.
* Shortening the text in the auto_analysis, and raises a warning if R1 data has not been loaded.
* Rewrote the logic of the key-word 'optimise_r2eff' in the auto-analyses of relax disp. If R2eff result file exist in the 'pre_run_dir', this is loaded. If the results contain both values, and errors, then no optimisation is performed on the R2eff model. Unless the 'optimise_r2eff' flag is raised, which is not standard.
* Fix for the misspelled is_r1_optimised() function.
* The r1_fit flag is stored in the Disp_minimise_command class and passed into the target function. This matches the details at http://thread.gmane.org/gmane.science.nmr.relax.scm/22850/focus=6736. The specific_analyses.relax_disp.optimisation.Disp_minimise_command class calls is_r1_optimised() and stores the result. This is then passed into the relaxation dispersion target function class.
* Modified that '[[NS CPMG 2-site expanded' ]] will be preferred before '[[NS CPMG 2-site 3D' ]] and '[[NS CPMG 2-site star']].* Modified the nesting for '[[NS MMQ 3-site linear']]. '[[NS MMQ 3-site linear' ]] should be able to nest from '[[NS MMQ 3-site']].
* Fix to unit test, after MODEL_NS_CPMG_2SITE_EXPANDED has been preferred over other numerical CPMG models.
* Modified to unit test, that when model: MODEL_PARAMS_NS_R1RHO_3SITE nest from: MODEL_PARAMS_NS_R1RHO_2SITE the conversion should be: 'r2', 'r2' 'pA', 'pA' 'dw_AB', 'dw' 'kex_AB', 'kex' 'pB', '1 - pA' 'dw_BC', 'dw' 'kex_BC', 'kex' 'kex_AC', 'kex'. Here '1 - pA' is a special conversion flag.
* Implemented the special flag '1 - pA', when nesting parameters from models with fewer chemical sites.
* Implemented the nesting of parameters from a model with fewer chemical sites when nesting for [[NS R1rho 3-site]].
* Inserted system test Relax_disp.test_model_nesting_and_param() which will go through all models, and then through all it nested models, testing that all parameters have a conversion.
* Modified system test Relax_disp.test_model_nesting_and_param() to only print, when the converted parameter is different from the original parameter.
* One final fix for the Model_class.params list with 'r1'. The is_r1_optimised() function is now called with the model name argument, as required.
* Updated the relax_disp.r1_fit user function docstring. This now includes information about which models support R1 parameter optimisation.
* Removed results files to allow the Relax_disp.test_r1rho_kjaergaard_missing_r1 system test to pass. These are the test_suite/shared_data/dispersion/Kjaergaard_et_al_2013/check_graphs/mc_2000/ results files for the '[[No Rex' ]] and '[[DPL94' ]] models, as well as the final run. This commit is to allow the test to temporarily pass. It can be reverted once a better solution is discussed and decided upon.
* Altered the number of Monte Carlo simulations in test script to 2000.
* Merger of the '[[No Rex' ]] and 'No Rex R1rho off res' models in the specific_analyses.relax_disp package. In the 'variables' module, all *_NOREX_R1RHO variables have simply been deleted and the MODEL_LIST_* structures updated. For the 'data' module, the is_r1_optimised() function was modified to catch the '[[No Rex' ]] model and to then use the cdp.exp_type_list structure to determine if the experiment type is EXP_TYPE_R1RHO. This will be modified in the future by using a function for determining if the current experiment is on or off-resonance. The return_r1_data() and return_r1_err_data() functions have also been modified to check if R1 values are fit rather than if the model is in MODEL_LIST_R1RHO_OFF_RES. In the 'model' module, in addition to deleting all *_NOREX_R1RHO variables, the convert_no_rex() function has also been deleted as it no longer serves a purpose. In the 'checks' module, all 'No Rex R1rho off res' model references have been replaced with '[[No Rex']].* Updated the dispersion auto-analysis for the universal '[[No Rex' ]] model. The 'No Rex R1rho off res' references have all been deleted. The model conversion logic is also no longer needed and has been deleted.* Converted the relaxation dispersion GUI interface to the unified '[[No Rex' ]] model. All of the MODEL_NOREX_R1RHO references have simply been deleted.* Converted the relaxation dispersion target function class to the unified '[[No Rex' ]] model design. On top of removing all references to MODEL_NOREX_R1RHO, the aliasing of self.func now checks the experiment type list to determine which target function to use. This is not an ideal solution and will not handle mixed CPMG and R1rho experiment, however neither will the target functions yet. The creation of the off-resonance data structures has also been modified so that they are now R1rho independent. This allows the structures to be properly created while at the same time enabling this code to be compatible with off-resonance CPMG data in the future.
* Removed the 'No Rex R1rho off res' model from the relax_disp.select_model user function frontend.
* Removed all references to the 'No Rex R1rho off res' model in the system tests. In addition, the Relax_disp.test_convert_no_rex system test has been deleted as it no longer has a purpose. For the Relax_disp.test_model_nesting_and_param system test, to allow this to work the cdp.exp_type_list list is set to EXP_TYPE_LIST.
* Removed all references to the 'No Rex R1rho off res' model in the unit tests.
* Updated the '[[No Rex' ]] dispersion model description in the relax manual. The universal nature of the model is now described, including the addition of the off-resonance CPMG and R1rho equations for the absence of chemical exchange. The R1 parameter optimisation is also shortly covered.
* Added a subsection to the dispersion chapter of the manual about R1 parameter optimisation.
* Added the R1 parameter fitting GUI element to the dispersion GUI tab. This is a simple Boolean toggle element that allows the R1 optimisation to be turned on. The value is passed into the auto-analysis.
* Fix for also storing 'r1_fit' to cdp even though it is set to False. Bug #22541 (https://gna.org/bugs/?22541): The R1 fit flag does not work in the GUI.
* Cleanup in GUI test Relax_disp.test_r2eff_err_estimate. This now passes after previous commit. Bug #22541 (https://gna.org/bugs/?22541): The R1 fit flag does not work in the GUI.
* Added model [[DPL94]], to be tested in GUI test Relax_disp.test_r2eff_err_estimate. This shows that the bug is still there. Bug #22541 (https://gna.org/bugs/?22541): The R1 fit flag does not work in the GUI.
* Fix for system test test_estimate_r2eff_err and test_r1rho_kjaergaard_missing_r1, where r1_fit=True, needed to be send to Auto_analyses. Bug #22541 (https://gna.org/bugs/?22541): The R1 fit flag does not work in the GUI.
* API documentation fixes.
Trusted, Bureaucrats
4,228

edits

Navigation menu